diff --git a/core/odin/ast/ast.odin b/core/odin/ast/ast.odin index 22139d7f9..3f84aefde 100644 --- a/core/odin/ast/ast.odin +++ b/core/odin/ast/ast.odin @@ -166,7 +166,6 @@ Comp_Lit :: struct { tag: ^Expr, // possibly nil } - Tag_Expr :: struct { using node: Expr, op: tokenizer.Token, @@ -326,27 +325,6 @@ Auto_Cast :: struct { expr: ^Expr, } -Inline_Asm_Dialect :: enum u8 { - Default = 0, - ATT = 1, - Intel = 2, -} - - -Inline_Asm_Expr :: struct { - using node: Expr, - tok: tokenizer.Token, - param_types: []^Expr, - return_type: ^Expr, - has_side_effects: bool, - is_align_stack: bool, - dialect: Inline_Asm_Dialect, - open: tokenizer.Pos, - constraints_string: ^Expr, - asm_string: ^Expr, - close: tokenizer.Pos, -} - @@ -893,6 +871,95 @@ Bit_Field_Field :: struct { comments: ^Comment_Group, // possibly nil } + +Asm_Template :: struct { + using node: Expr, + token: tokenizer.Token, + type: ^Proc_Type, + specs: []^Asm_Spec, + clobbers: []^Asm_Clobber, + instructions: []^Stmt, +} + +Asm_Spec :: struct { + using node: Stmt, + name: ^Ident, + tied_name: ^Ident, + type: ^Expr, + value: ^Expr, + directives: []^Expr, +} + +Asm_Register :: struct { + using node: Expr, + token: tokenizer.Token, + name: string, + flag: string, // %flags.z +} + +Asm_Clobber :: struct { + using node: Stmt, + token: tokenizer.Token, + name: string, + value: ^Expr, +} + +Asm_Label :: struct { + using node: Expr, + token: tokenizer.Token, + name: string, +} + +Asm_Label_Decl :: struct { + using node: Stmt, + label: ^Asm_Label, +} + +Asm_Instruction :: struct { + using node: Stmt, + name: ^Ident, + operands: []^Expr, +} + +Asm_Memory_Operand_Kind :: enum u8 { + Default, + Pre, + Post, +} + +Asm_Memory_Operand :: struct { + using node: Expr, + kind: Asm_Memory_Operand_Kind, + open: tokenizer.Token, + segment_override: ^Expr, + base: ^Expr, + index_op: tokenizer.Token, + index: ^Expr, + scale_op: tokenizer.Token, + scale: ^Expr, + disp_op: tokenizer.Token, + disp: ^Expr, + close: tokenizer.Token, + type: ^Expr, +} + +Asm_Register_Group :: struct { + using node: Expr, + open: tokenizer.Token, + registers: []^Expr, + range_token: tokenizer.Token, + close: tokenizer.Token, + type: ^Expr, +} + +Asm_Directive :: struct { + using node: Stmt, + token: tokenizer.Token, + name: string, + operands: []^Expr, +} + + Any_Node :: union { ^Package, ^File, @@ -928,7 +995,6 @@ Any_Node :: union { ^Type_Assertion, ^Type_Cast, ^Auto_Cast, - ^Inline_Asm_Expr, ^Proc_Group, @@ -981,6 +1047,17 @@ Any_Node :: union { ^Field, ^Field_List, ^Bit_Field_Field, + + ^Asm_Template, + ^Asm_Spec, + ^Asm_Register, + ^Asm_Clobber, + ^Asm_Label, + ^Asm_Label_Decl, + ^Asm_Instruction, + ^Asm_Memory_Operand, + ^Asm_Register_Group, + ^Asm_Directive, } @@ -1015,7 +1092,6 @@ Any_Expr :: union { ^Type_Assertion, ^Type_Cast, ^Auto_Cast, - ^Inline_Asm_Expr, ^Proc_Group, @@ -1037,6 +1113,12 @@ Any_Expr :: union { ^Relative_Type, ^Matrix_Type, ^Bit_Field_Type, + + ^Asm_Template, + ^Asm_Register, + ^Asm_Label, + ^Asm_Memory_Operand, + ^Asm_Register_Group, } @@ -1066,4 +1148,10 @@ Any_Stmt :: union { ^Import_Decl, ^Foreign_Block_Decl, ^Foreign_Import_Decl, + + ^Asm_Spec, + ^Asm_Clobber, + ^Asm_Instruction, + ^Asm_Label_Decl, + ^Asm_Directive, } diff --git a/core/odin/ast/clone.odin b/core/odin/ast/clone.odin index 163485840..3f6c810a5 100644 --- a/core/odin/ast/clone.odin +++ b/core/odin/ast/clone.odin @@ -196,11 +196,6 @@ clone_node :: proc(node: ^Node) -> ^Node { r.expr = clone(r.expr) case ^Auto_Cast: r.expr = clone(r.expr) - case ^Inline_Asm_Expr: - r.param_types = clone(r.param_types) - r.return_type = clone(r.return_type) - r.constraints_string = clone(r.constraints_string) - r.asm_string = clone(r.asm_string) case ^Bad_Stmt: // empty @@ -354,6 +349,40 @@ clone_node :: proc(node: ^Node) -> ^Node { r.name = clone(r.name) r.type = clone(r.type) r.bit_size = clone(r.bit_size) + case ^Asm_Template: + r.type = auto_cast clone(r.type) + r.specs = clone(r.specs) + r.clobbers = clone(r.clobbers) + r.instructions = clone(r.instructions) + case ^Asm_Spec: + r.name = auto_cast clone(r.name) + r.tied_name = auto_cast clone(r.tied_name) + r.type = clone(r.type) + r.value = clone(r.value) + r.directives = clone(r.directives) + case ^Asm_Register: + // okay + case ^Asm_Clobber: + r.value = clone(r.value) + case ^Asm_Label: + // okay + case ^Asm_Label_Decl: + r.label = auto_cast clone(r.label) + case ^Asm_Instruction: + r.name = auto_cast clone(r.name) + r.operands = clone(r.operands) + case ^Asm_Memory_Operand: + r.segment_override = clone(r.segment_override) + r.base = clone(r.base) + r.index = clone(r.index) + r.scale = clone(r.scale) + r.disp = clone(r.disp) + r.type = clone(r.type) + case ^Asm_Register_Group: + r.registers = clone(r.registers) + r.type = clone(r.type) + case ^Asm_Directive: + r.operands = clone(r.operands) case: fmt.panicf("Unhandled node kind: %v", r) } diff --git a/core/odin/ast/walk.odin b/core/odin/ast/walk.odin index d3824c213..15c2bfe07 100644 --- a/core/odin/ast/walk.odin +++ b/core/odin/ast/walk.odin @@ -161,12 +161,6 @@ walk :: proc(v: ^Visitor, node: ^Node) { walk(v, n.expr) case ^Auto_Cast: walk(v, n.expr) - case ^Inline_Asm_Expr: - walk_expr_list(v, n.param_types) - walk(v, n.return_type) - walk(v, n.constraints_string) - walk(v, n.asm_string) - case ^Bad_Stmt: case ^Empty_Stmt: @@ -431,6 +425,63 @@ walk :: proc(v: ^Visitor, node: ^Node) { walk(v, n.name) walk(v, n.type) walk(v, n.bit_size) + + case ^Asm_Template: + walk(v, n.type) + for spec in n.specs { + walk(v, spec) + } + for clobber in n.clobbers { + walk(v, clobber) + } + walk_stmt_list(v, n.instructions) + case ^Asm_Spec: + walk(v, n.name) + if n.tied_name != nil { + walk(v, n.tied_name) + } + if n.type != nil { + walk(v, n.type) + } + if n.value != nil { + walk(v, n.value) + } + walk_expr_list(v, n.directives) + case ^Asm_Register: + case ^Asm_Clobber: + if n.value != nil { + walk(v, n.value) + } + case ^Asm_Label: + case ^Asm_Label_Decl: + walk(v, n.label) + case ^Asm_Instruction: + walk(v, n.name) + walk_expr_list(v, n.operands) + case ^Asm_Memory_Operand: + if n.segment_override != nil { + walk(v, n.segment_override) + } + walk(v, n.base) + if n.index != nil { + walk(v, n.index) + } + if n.scale != nil { + walk(v, n.scale) + } + if n.disp != nil { + walk(v, n.disp) + } + if n.type != nil { + walk(v, n.type) + } + case ^Asm_Register_Group: + walk_expr_list(v, n.registers) + if n.type != nil { + walk(v, n.type) + } + case ^Asm_Directive: + walk_expr_list(v, n.operands) case: fmt.panicf("ast.walk: unexpected node type %T", n) } diff --git a/core/odin/parser/parser.odin b/core/odin/parser/parser.odin index 73f17c376..1d9d14f8e 100644 --- a/core/odin/parser/parser.odin +++ b/core/odin/parser/parser.odin @@ -1197,7 +1197,8 @@ parse_foreign_block :: proc(p: ^Parser, tok: tokenizer.Token) -> ^ast.Foreign_Bl skip_possible_newline_for_literal(p) open := expect_token(p, .Open_Brace) - for p.curr_tok.kind != .Close_Brace && p.curr_tok.kind != .EOF { + for p.curr_tok.kind != .Close_Brace && + p.curr_tok.kind != .EOF { decl := parse_foreign_block_decl(p) if decl != nil { append(&decls, decl) @@ -2923,7 +2924,8 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr { expect_token_after(p, .Open_Brace, "union") variants: [dynamic]^ast.Expr - for p.curr_tok.kind != .Close_Brace && p.curr_tok.kind != .EOF { + for p.curr_tok.kind != .Close_Brace && + p.curr_tok.kind != .EOF { type := parse_type(p) if _, ok := type.derived.(^ast.Bad_Expr); !ok { append(&variants, type) @@ -3061,89 +3063,45 @@ parse_operand :: proc(p: ^Parser, lhs: bool) -> ^ast.Expr { return bf case .Asm: - tok := expect_token(p, .Asm) + if peek_token_kind(p, .Open_Brace) { // asm group + tok := expect_token(p, .Asm) + open := expect_token(p, .Open_Brace) - param_types: [dynamic]^ast.Expr - return_type: ^ast.Expr - if allow_token(p, .Open_Paren) { - for p.curr_tok.kind != .Close_Paren && p.curr_tok.kind != .EOF { - t := parse_type(p) - append(¶m_types, t) - if p.curr_tok.kind != .Comma || - p.curr_tok.kind == .EOF { - break + args: [dynamic]^ast.Expr + + for p.curr_tok.kind != .Close_Brace && + p.curr_tok.kind != .EOF { + elem := parse_expr(p, false) + + if p.curr_tok.kind == .Where { + tok_where := expect_token(p, .Where) + cond := parse_expr(p, false) + + be := ast.new(ast.Binary_Expr, elem.pos, end_pos(p.prev_tok)) + be.left = elem + be.op = tok_where + be.right = cond + elem = be } - advance_token(p) - } - expect_token(p, .Close_Paren) + append(&args, elem) - if allow_token(p, .Arrow_Right) { - return_type = parse_type(p) + allow_token(p, .Comma) or_break } + + close := expect_closing_brace_of_field_list(p) + + if len(args) == 0 { + error(p, tok.pos, "expected at least 1 argument in an 'asm' group") + } + + pg := ast.new(ast.Proc_Group, tok.pos, end_pos(close)) + pg.tok = tok + pg.open = open.pos + pg.args = args[:] + pg.close = close.pos + return pg } - - has_side_effects := false - is_align_stack := false - dialect := ast.Inline_Asm_Dialect.Default - for allow_token(p, .Hash) { - if p.curr_tok.kind == .Ident { - name := advance_token(p) - switch name.text { - case "side_effects": - if has_side_effects { - error(p, tok.pos, "duplicate directive on inline asm expression: '#side_effects'") - } - has_side_effects = true - case "align_stack": - if is_align_stack { - error(p, tok.pos, "duplicate directive on inline asm expression: '#align_stack'") - } - is_align_stack = true - case "att": - if dialect == .ATT { - error(p, tok.pos, "duplicate directive on inline asm expression: '#att'") - } else if dialect != .Default { - error(p, tok.pos, "conflicting asm dialects") - } else { - dialect = .ATT - } - case "intel": - if dialect == .Intel { - error(p, tok.pos, "duplicate directive on inline asm expression: '#intel'") - } else if dialect != .Default { - error(p, tok.pos, "conflicting asm dialects") - } else { - dialect = .Intel - } - } - - } else { - error(p, p.curr_tok.pos, "expected an identifier after hash") - } - } - - skip_possible_newline_for_literal(p) - open := expect_token(p, .Open_Brace) - asm_string := parse_expr(p, false) - expect_token(p, .Comma) - constraints_string := parse_expr(p, false) - allow_token(p, .Comma) - close := expect_closing_brace_of_field_list(p) - - e := ast.new(ast.Inline_Asm_Expr, tok.pos, end_pos(close)) - e.tok = tok - e.param_types = param_types[:] - e.return_type = return_type - e.constraints_string = constraints_string - e.has_side_effects = has_side_effects - e.is_align_stack = is_align_stack - e.dialect = dialect - e.open = open.pos - e.asm_string = asm_string - e.close = close.pos - - return e - + return parse_asm_template(p) } return nil @@ -3920,3 +3878,444 @@ parse_import_decl :: proc(p: ^Parser, kind := Import_Decl_Kind.Standard) -> ^ast return decl } + + +parse_asm_register :: proc(p: ^Parser) -> ^ast.Asm_Register { + token := expect_token(p, .Mod) + name := expect_token(p, .Ident) + reg := ast.new(ast.Asm_Register, token.pos, end_pos(name)) + reg.token = token + reg.name = name.text + if allow_token(p, .Period) { + flag := expect_token_after(p, .Ident, "register name and period for the flag") + if flag.kind == .Ident { + reg.flag = flag.text + } + } + return reg +} + +parse_asm_operand :: proc(p: ^Parser, allow_memory_operand: bool) -> ^ast.Expr { + operand: ^ast.Expr + + #partial switch p.curr_tok.kind { + case .Period: + token := expect_token(p, .Period) + name := parse_ident(p) + label := ast.new(ast.Asm_Label, token.pos, name) + label.token = token + label.name = name.name + return label + + case .Ident: + operand = parse_ident(p) + + case .Mod: + operand = parse_asm_register(p) + + case .Integer, .Float, .Rune: + tok := advance_token(p) + bl := ast.new(ast.Basic_Lit, tok.pos, end_pos(tok)) + bl.tok = tok + return bl + + case .Add, .Sub, .Xor: + token := advance_token(p) + op := parse_asm_operand(p, false) + ue := ast.new(ast.Unary_Expr, token.pos, op) + ue.op = token + ue.expr = op + return ue + + case .Open_Paren: + return parse_expr(p, false) + + case .Hash: + _ = expect_token(p, .Hash) + name := expect_token(p, .Ident) + if name.text == "pre" || name.text == "post" { + operand = parse_asm_operand(p, allow_memory_operand) + if operand == nil { + error(p, name.pos, "expected an 'asm' memory operand after #%s", name.text) + } else if mem, ok := operand.derived_expr.(^ast.Asm_Memory_Operand); !ok { + error(p, name.pos, "expected an 'asm' memory operand after #%s", name.text) + } else { + switch name.text { + case "pre": mem.kind = .Pre + case "post": mem.kind = .Post + } + } + } + + case .Open_Bracket: + if allow_memory_operand { + open := expect_token(p, .Open_Bracket) + segment_override: ^ast.Expr + base: ^ast.Expr + index: ^ast.Expr + scale: ^ast.Expr + disp: ^ast.Expr + type: ^ast.Expr + + index_op: tokenizer.Token + scale_op: tokenizer.Token + disp_op: tokenizer.Token + + base = parse_asm_operand(p, false) + + if allow_token(p, .Colon) { + // [segment: ...] + segment_override = base + if segment_override != nil { + if _, ok := segment_override.derived_expr.(^ast.Asm_Register); !ok { + error(p, segment_override.pos, "expected an 'asm' register as the segment override") + } + } + base = parse_asm_operand(p, false) + } + + // [base] + // [base + index] + // [base + index*scale] // *, <<, >> + // [base + index*scale + disp] + if allow_token(p, .Add) || allow_token(p, .Sub) { + index_op = p.prev_tok + index = parse_asm_operand(p, false) + if allow_token(p, .Mul) || allow_token(p, .Shl) || allow_token(p, .Shr) { + scale_op = p.prev_tok + scale = parse_asm_operand(p, false) + } + if allow_token(p, .Add) || allow_token(p, .Sub) { + disp_op = p.prev_tok + disp = parse_asm_operand(p, false) + } + } + + close := expect_token(p, .Close_Bracket) + + // [...]:type + if allow_token(p, .Colon) { + type = parse_type(p) + } + + mem := ast.new(ast.Asm_Memory_Operand, open.pos, end_pos(close)) + mem.kind = .Default + mem.open = open + mem.segment_override = segment_override + mem.base = base + mem.index_op = index_op + mem.index = index + mem.scale_op = scale_op + mem.scale = scale + mem.disp_op = disp_op + mem.disp = disp + mem.close = close + mem.type = type + return mem + } + + case .Open_Brace: + if allow_memory_operand { + open := expect_token(p, .Open_Brace) + + registers: [dynamic]^ast.Expr + type: ^ast.Expr + + first_reg := parse_asm_operand(p, false) + range_token: tokenizer.Token + + #partial switch p.curr_tok.kind { + case .Range_Half, .Range_Full: + range_token = advance_token(p) + second_reg := parse_asm_operand(p, false) + append(®isters, first_reg) + append(®isters, second_reg) + allow_token(p, .Comma) // trailing comma + case: + append(®isters, first_reg) + allow_token(p, .Comma) // separator/trailing + for p.curr_tok.kind != .Close_Brace && p.curr_tok.kind != .EOF { + reg := parse_asm_operand(p, false) + append(®isters, reg) + allow_token(p, .Comma) or_break + } + } + + close := expect_token(p, .Close_Brace) + if allow_token(p, .Colon) { + type = parse_type(p) + } + + rg := ast.new(ast.Asm_Register_Group, open.pos, end_pos(close)) + rg.open = open + rg.registers = registers[:] + rg.range_token = range_token + rg.close = close + rg.type = type + return rg + } + } + + if operand == nil { + error(p, p.curr_tok.pos, "invalid 'asm' operand, found '%s'", p.curr_tok.text) + advance_token(p) + } else if p.curr_tok.kind == .Open_Bracket { + p.expr_level += 1 + open := expect_token(p, .Open_Bracket) + index := parse_asm_operand(p, false) + close := expect_token(p, .Close_Bracket) + p.expr_level -= 1 + ie := ast.new(ast.Index_Expr, operand.pos, end_pos(close)) + ie.expr = operand + ie.open = open.pos + ie.index = index + ie.close = close.pos + operand = ie + } + return operand +} + +parse_asm_operands :: proc(p: ^Parser) -> []^ast.Expr { + operands: [dynamic]^ast.Expr + for p.curr_tok.kind != .Semicolon && + p.curr_tok.kind != .Close_Brace && + p.curr_tok.kind != .EOF { + operand := parse_asm_operand(p, true) + if operand != nil { + append(&operands, operand) + } + allow_token(p, .Comma) or_break + } + allow_token(p, .Semicolon) + return operands[:] +} + +parse_asm_ident :: proc(p: ^Parser) -> ^ast.Ident { + tok := p.curr_tok + if tok.kind == .Ident || tokenizer.is_keyword(tok.kind) { + advance_token(p) + } else { + tok.text = "_" + expect_token(p, .Ident) + } + i := ast.new(ast.Ident, tok.pos, end_pos(tok)) + i.name = tok.text + return i +} + +parse_asm_instruction :: proc(p: ^Parser) -> ^ast.Stmt { + if allow_token(p, .Semicolon) { + return nil + } + + make_instruction :: proc(p: ^Parser) -> ^ast.Stmt { + name := parse_asm_ident(p) + operands := parse_asm_operands(p) + instruction := ast.new(ast.Asm_Instruction, name.pos, end_pos(p.prev_tok)) + instruction.name = name + instruction.operands = operands + return instruction + } + + if tokenizer.is_keyword(p.curr_tok.kind) { + return make_instruction(p) + } + + #partial switch p.curr_tok.kind { + case .Ident: + return make_instruction(p) + + case .Period: + token := expect_token(p, .Period) + name := parse_ident(p) + colon := expect_token(p, .Colon) + + label := ast.new(ast.Asm_Label, token.pos, name) + label.token = token + label.name = name.name + + label_decl := ast.new(ast.Asm_Label_Decl, token.pos, end_pos(colon)) + label_decl.label = label + return label_decl + + case .Hash: + token := expect_token(p, .Hash) + name := expect_token(p, .Ident) + operands := parse_asm_operands(p) + dir := ast.new(ast.Asm_Directive, token.pos, end_pos(p.prev_tok)) + dir.token = token + dir.name = name.text + dir.operands = operands + return dir + } + + error(p, p.curr_tok.pos, "expected an 'asm' instruction, got '%s'", p.curr_tok.text) + advance_token(p) + return nil +} + +parse_asm_signature :: proc(p: ^Parser, asm_token: tokenizer.Token) -> ^ast.Proc_Type { + expect_token(p, .Open_Paren) + p.expr_level += 1 + params, _ := parse_field_list(p, .Close_Paren, ast.Field_Flags_Signature_Params) + if .Optional_Semicolons in p.flags { + skip_possible_newline(p) + } + p.expr_level -= 1 + expect_token_after(p, .Close_Paren, "'asm' template parameter list") + results, diverging := parse_results(p) + + is_generic := is_field_list_generic(params, true) + if !is_generic && results != nil { + is_generic = is_field_list_generic(results, false) + } + + pt := ast.new(ast.Proc_Type, asm_token.pos, end_pos(p.prev_tok)) + pt.tok = asm_token + pt.calling_convention = "\"inlineasm\"" + pt.params = params + pt.results = results + pt.diverging = diverging + pt.generic = is_generic + return pt +} + +parse_asm_spec :: proc(p: ^Parser) -> ^ast.Asm_Spec { + name := parse_ident(p) + tied_name: ^ast.Ident + type: ^ast.Expr + value: ^ast.Expr + + if allow_token(p, .Arrow_Right) { + tied_name = parse_ident(p) + } + if allow_token(p, .Colon) { + type = parse_type(p) + } + if allow_token(p, .Eq) { + #partial switch p.curr_tok.kind { + case .Ident: + value = parse_ident(p) + case .Mod: + value = parse_asm_register(p) + case: + error(p, p.curr_tok.pos, "expected a register or scratch parameter") + _ = parse_expr(p, true) + } + } + + if tied_name != nil { + if type != nil { + error(p, p.curr_tok.pos, "an 'asm' specification for tied values cannot declare a type") + } + } else if type == nil && value == nil { + error(p, p.curr_tok.pos, "an 'asm' specification must specify at least either a type or a value if the value is not tied") + } + + directives: [dynamic]^ast.Expr + for p.curr_tok.kind == .Hash { + token := expect_token(p, .Hash) + dname := expect_token_after(p, .Ident, "hash for directive") + if dname.kind == .Ident { + bd := ast.new(ast.Basic_Directive, token.pos, end_pos(dname)) + bd.tok = token + bd.name = dname.text + append(&directives, bd) + } + } + + spec := ast.new(ast.Asm_Spec, name.pos, end_pos(p.prev_tok)) + spec.name = name + spec.tied_name = tied_name + spec.type = type + spec.value = value + spec.directives = directives[:] + return spec +} + +parse_asm_template :: proc(p: ^Parser) -> ^ast.Expr { + token := expect_token(p, .Asm) + + signature := parse_asm_signature(p, token) + + specs: []^ast.Asm_Spec + clobbers: []^ast.Asm_Clobber + + if .Optional_Semicolons in p.flags { + skip_possible_newline(p) + } + + if p.curr_tok.kind == .Open_Bracket { + specs_dyn: [dynamic]^ast.Asm_Spec + clobbers_dyn: [dynamic]^ast.Asm_Clobber + + expect_token(p, .Open_Bracket) + for p.curr_tok.kind != .Close_Bracket && + p.curr_tok.kind != .EOF { + spec: ^ast.Asm_Spec + #partial switch p.curr_tok.kind { + case .Ident: + spec = parse_asm_spec(p) + case .Hash: + hash := expect_token(p, .Hash) + name := expect_token(p, .Ident) + switch name.text { + case "volatile", "align_stack", "pure": + clobber := ast.new(ast.Asm_Clobber, hash.pos, end_pos(name)) + clobber.token = hash + clobber.name = name.text + append(&clobbers_dyn, clobber) + case "clobber": + value := parse_asm_operand(p, false) + clobber := ast.new(ast.Asm_Clobber, hash.pos, end_pos(p.prev_tok)) + clobber.token = hash + clobber.name = name.text + clobber.value = value + append(&clobbers_dyn, clobber) + case: + error(p, name.pos, "expected #clobber, #volatile, #align_stack, or #pure, got '%s'", name.text) + } + case: + error(p, p.curr_tok.pos, "expected an 'asm' specification which begins with an identifier, got '%s'", p.curr_tok.text) + advance_token(p) + } + if spec != nil { + append(&specs_dyn, spec) + } + allow_token(p, .Comma) or_break + } + expect_token(p, .Close_Bracket) + if .Optional_Semicolons in p.flags { + skip_possible_newline(p) + } + + specs = specs_dyn[:] + clobbers = clobbers_dyn[:] + } + + instructions: []^ast.Stmt + + if !allow_token(p, .Open_Brace) { + error(p, p.curr_tok.pos, "expected a body for an 'asm' template") + advance_token(p) + } else { + instrs: [dynamic]^ast.Stmt + for p.curr_tok.kind != .Close_Brace && + p.curr_tok.kind != .EOF { + instruction := parse_asm_instruction(p) + if instruction != nil { + append(&instrs, instruction) + } + } + expect_token(p, .Close_Brace) + instructions = instrs[:] + } + + at := ast.new(ast.Asm_Template, token.pos, end_pos(p.prev_tok)) + at.token = token + at.type = signature + at.specs = specs + at.clobbers = clobbers + at.instructions = instructions + return at +} \ No newline at end of file diff --git a/core/rexcode/build.lua b/core/rexcode/build.lua index 791f233a2..144be28cb 100755 --- a/core/rexcode/build.lua +++ b/core/rexcode/build.lua @@ -220,7 +220,14 @@ local function structural(isa) local p, bad = pkg(isa), {} local function must(rel) if not file_exists(p.."/"..rel) then bad[#bad+1]="missing "..rel end end local function absent(rel) if file_exists(p.."/"..rel) then bad[#bad+1]="stray "..rel end end - must("tables.odin"); must("tablegen/encoding_table.odin"); must("tablegen/gen.odin") + -- the table source is encoding_table.odin, except where it has been renamed + -- to instruction_table.odin (arm64/riscv/x86); either satisfies the check + local function must_one(a, b) + if not (file_exists(p.."/"..a) or file_exists(p.."/"..b)) then + bad[#bad+1] = "missing "..a.." (or "..b..")" + end + end + must("tables.odin"); must_one("tablegen/encoding_table.odin", "tablegen/instruction_table.odin"); must("tablegen/gen.odin") must("tablegen/generated/encode_tables.odin"); must("tablegen/generated/decode_tables.odin") must("tablegen/generated/writer.odin") must("mnemonic_builders.odin"); must("tools/gen_mnemonic_builders.odin") diff --git a/core/rexcode/isa/arm32/decoder.odin b/core/rexcode/isa/arm32/decoder.odin index e975455c4..ef31dd6a5 100644 --- a/core/rexcode/isa/arm32/decoder.odin +++ b/core/rexcode/isa/arm32/decoder.odin @@ -152,15 +152,29 @@ find_and_decode :: proc(word: u32, mode: Mode, ilen: u32, inst: ^Instruction, in // back to the index within ENCODING_TABLE[mnemonic]. Stored as // (form_idx + 1) so a zero hint means "not set". inst.form_id = DECODE_FORM_IDX[entry_idx] + 1 + // Carry the `.i32` suffix out with the instruction, so a decoded + // instruction re-encodes to the same form without needing form_id. + inst.dt = e.dt // Cond: A32 entries with bits[31:28] variable in mask take cond from word - if mode == .A32 && (e.mask >> 28) == 0 { + if e.flags.cond_in_21 { + // Four conditions only, and not in their usual order. + inst.cond = VSEL_CONDITIONS[(word >> 20) & 3] + } else if mode == .A32 && (e.mask >> 28) == 0 { inst.cond = u8((word >> 28) & 0xF) } else { inst.cond = 14 // AL / unconditional } if e.flags.sets_flags { - inst.flags.sets_flags = true + inst.sets_flags = true + } + // LDM/STM carry the writeback in bit 21; nothing else in the operand + // model records it, and without it the two forms print identically. + for k in 0 ..< len(e.enc) { + if e.enc[k] == .A32_REG_LIST || e.enc[k] == .RN_A32_WB || e.enc[k] == .IMPL_SP { + inst.writeback = (word >> 21) & 1 != 0 + break + } } for _, k in e.enc { @@ -251,13 +265,18 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op st := Shift_Type(u8(st_bits) + u8(Shift_Type.LSL_REG)) rs := u8((word >> 8) & 0xF) return Operand{reg = reg, kind = .REGISTER, size = 4, - shift_type = st, shift_amt = rs, cond = 14} + shift_type = st, shift_amt = rs} case .GPR_SHIFTED: // Imm-shift: amount in bits 11..7, type in 6..5, bit 4 = 0. st := Shift_Type((word >> 5) & 0x3) amt := u8((word >> 7) & 0x1F) if st == .ROR && amt == 0 { return op_reg_shifted(reg, .RRX, 0) } if st == .LSL && amt == 0 { return op_reg(reg) } + // A shift of zero is not a shift, so the field spends that + // spare value on 32 instead -- the one amount five bits cannot + // otherwise reach. LSL has no use for it and ROR spends it on + // RRX, so only these two. + if (st == .LSR || st == .ASR) && amt == 0 { return op_reg_shifted(reg, st, 32) } return op_reg_shifted(reg, st, amt) } return op_reg(reg) @@ -300,6 +319,11 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op // ---- A32 immediates ---- case .A32_IMM12: return op_imm(i64(word & 0xFFF)) case .A32_IMM_SHIFT: return op_imm(i64((word >> 7) & 0x1F)) + case .A32_IMM_SHIFT_32: + // The LSR and ASR mnemonics reach 32 the same way a shifted operand + // does: a field of zero, since a shift of zero would be a MOV. + amt := (word >> 7) & 0x1F + return op_imm(i64(amt == 0 ? 32 : amt)) case .A32_SHIFT_TYPE: return op_imm(i64((word >> 5) & 0x3)) case .A32_IMM24: // Ambiguous: A32_IMM24 is used both for branch displacements (B/BL, @@ -376,13 +400,29 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op u_bit := (word >> 23) & 1 disp := i32(word & 0xFFF) if u_bit == 0 { disp = -disp } - return op_mem(mem_imm(base, disp)) + mm := mem_imm(base, disp) + if u_bit == 0 { mm.sign = -1 } + return op_mem(mm) + case .MEM_IMM8_SCALED4, .MEM_IMM8_SCALED4_PRE, .MEM_IMM8_SCALED4_POST: + // The VFP and coprocessor loads count the offset in words, so the + // eight bits reach +/-1020 rather than +/-255. + base := Register(REG_GPR | u16((word >> 16) & 0xF)) + u_bit := (word >> 23) & 1 + disp := i32(word & 0xFF) * 4 + if u_bit == 0 { disp = -disp } + mm := mem_imm(base, disp) + if enc == .MEM_IMM8_SCALED4_PRE { mm.mode = .PRE_INDEX } + if enc == .MEM_IMM8_SCALED4_POST { mm.mode = .POST_INDEX } + if u_bit == 0 { mm.sign = -1 } + return op_mem(mm) case .MEM_IMM8_OFFSET: base := Register(REG_GPR | u16((word >> 16) & 0xF)) u_bit := (word >> 23) & 1 disp := i32(((word >> 8) & 0xF) << 4 | (word & 0xF)) if u_bit == 0 { disp = -disp } - return op_mem(mem_imm(base, disp)) + mm := mem_imm(base, disp) + if u_bit == 0 { mm.sign = -1 } + return op_mem(mm) case .MEM_REG_OFFSET: base := Register(REG_GPR | u16((word >> 16) & 0xF)) idx := Register(REG_GPR | u16(word & 0xF)) @@ -400,11 +440,13 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op case .CPS_IFLAGS: return op_imm(i64(word & 0x1FF)) case .PSR_FIELD_MASK: return op_imm(i64(decode_psr_field(word))) case .SYSM_FIELD: return op_imm(i64(word & 0xFF)) - case .COPROC_NUM_FIELD: return op_imm(i64((word >> 8) & 0xF)) + case .COPROC_NUM_FIELD: return op_reg(Register(REG_COPROC_NUM | u16((word >> 8) & 0xF))) case .COPROC_OPC1_FIELD: return op_imm(i64((word >> 20) & 0xF)) case .COPROC_OPC2_FIELD: return op_imm(i64((word >> 5) & 0x7)) case .COPROC_CRN_FIELD: return op_reg(Register(REG_COPROC | u16((word >> 16) & 0xF))) case .COPROC_CRM_FIELD: return op_reg(Register(REG_COPROC | u16(word & 0xF))) + case .COPROC_CRD_FIELD: return op_reg(Register(REG_COPROC | u16((word >> 12) & 0xF))) + case .COPROC_OPC1_MCR: return op_imm(i64((word >> 21) & 0x7)) case .COPROC_OPC_MCRR: return op_imm(i64((word >> 4) & 0xF)) case .NEON_CMODE: return op_imm(i64((word >> 8) & 0xF)) case .NEON_OP_BIT: return op_imm(i64((word >> 5) & 1)) @@ -414,15 +456,86 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op a := extract_neon_modimm_abcdefgh(word) cmode := (word >> 8) & 0xF op := (word >> 5) & 1 - return op_imm(i64(decode_neon_modimm(a, cmode, op))) + v := decode_neon_modimm(a, cmode, op) + // Only cmode 1111 expands to a float; the rest are bit patterns. + if cmode == 0b1111 { return op_float_imm(v) } + return op_hex_imm(v) + case .DBG_OPTION: return op_imm(i64(word & 0xF)) + case .MRS_SPEC_REG: return op_reg(Register(REG_SREG | u16(((word >> 22) & 1) * 2))) + case .VFP_SPEC_REG: return op_reg(Register(REG_FPSC | u16((word >> 16) & 0xF))) + case .SETEND_ENDIAN: return op_reg(Register(REG_ENDIAN | u16((word >> 9) & 1))) + case .IMPL_SP: return op_reg(SP) + case .MODE_IMM5: return op_imm(i64(word & 0x1F)) + case .RN_A32_WB: return op_reg(Register(REG_GPR | u16((word >> 16) & 0xF))) + case .VM_S_PLUS1: + // The second of a consecutive pair; only the first is encoded. + return op_reg(Register(REG_SPR | u16(((word & 0xF) << 1 | ((word >> 5) & 1)) + 1))) + case .NEON_LANE_VN_32: + n := ((word >> 7) & 1) << 4 | ((word >> 16) & 0xF) + return op_dpr_lane(Register(REG_DPR | u16(n)), u8((word >> 21) & 1)) case .VFP_IMM8: a := ((word >> 16) & 0xF) << 4 | (word & 0xF) - return op_imm(i64(decode_vfp_imm8_f32(a))) - case .VFP_S_LIST, .VFP_D_LIST: - // Register count is encoded in bits 7..0 (count, not bitmask). Wrap - // as a REG_LIST so the encoder's shape_match for SPR_LIST/DPR_LIST - // accepts it; the encoder packs the same 8-bit count back out. - return op_reg_list(u16(word & 0xFF)) + // Held as the 32-bit pattern whatever the form's width: it is the + // same value either way, and it is what re-encoding needs back. + return op_float_imm(decode_vfp_imm8_f32(a)) + case .NEON_D_LIST_1: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 1, 1, false) + case .NEON_D_LIST_2: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 2, 1, false) + case .NEON_D_LIST_3: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 3, 1, false) + case .NEON_D_LIST_4: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 4, 1, false) + case .NEON_D_LIST_2X: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 2, 2, false) + case .NEON_D_LIST_3X: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 3, 2, false) + case .NEON_D_LIST_4X: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 4, 2, false) + case .NEON_D_LIST_ALL: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), 1, 1, true) + case .NEON_D_LIST_ALL_2, .NEON_D_LIST_ALL_3, .NEON_D_LIST_ALL_4: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + count := u8(2 + (int(enc) - int(Operand_Encoding.NEON_D_LIST_ALL_2))) + return op_reg_run(Register(REG_DPR | u16(n)), count, + ((word >> 5) & 1) != 0 ? 2 : 1, true) + case .NEON_LANE_D_8, .NEON_LANE_D_16, .NEON_LANE_D_32, .NEON_LANE_D_8_2, .NEON_LANE_D_16_2, .NEON_LANE_D_32_2, .NEON_LANE_D_8_3, .NEON_LANE_D_16_3, .NEON_LANE_D_32_3, .NEON_LANE_D_8_4, .NEON_LANE_D_16_4, .NEON_LANE_D_32_4: + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + shift, mask, count := neon_lane_shape(enc) + op := op_dpr_lane(Register(REG_DPR | u16(n)), u8((word >> shift) & mask)) + op.list = {count = count, stride = 1} + return op + case .NEON_VDUP_LANE_8, .NEON_VDUP_LANE_16, .NEON_VDUP_LANE_32: + imm4 := (word >> 16) & 0xF + shift: u32 = enc == .NEON_VDUP_LANE_8 ? 1 : enc == .NEON_VDUP_LANE_16 ? 2 : 3 + return op_dpr_lane(Register(REG_DPR | u16(((word >> 5) & 1) << 4 | (word & 0xF))), + u8(imm4 >> shift)) + case .NEON_VM_SCALAR_16: + return op_dpr_lane(Register(REG_DPR | u16(word & 0x7)), + u8(((word >> 5) & 1) << 1 | ((word >> 3) & 1))) + case .NEON_VM_SCALAR_32: + return op_dpr_lane(Register(REG_DPR | u16(word & 0xF)), u8((word >> 5) & 1)) + case .NEON_VN_TABLE_1, .NEON_VN_TABLE_2, .NEON_VN_TABLE_3, .NEON_VN_TABLE_4: + n := ((word >> 7) & 1) << 4 | ((word >> 16) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), table_run_length(enc)) + case .VFP_S_LIST: + // {S, ...} -- imm8 counts the registers, and the run starts at Vd. + // Both halves matter: keeping only the count printed the wrong bank + // and the wrong registers. + n := ((word >> 12) & 0xF) << 1 | ((word >> 22) & 1) + return op_reg_run(Register(REG_SPR | u16(n)), max(u8(word & 0xFF), 1)) + case .VFP_D_LIST: + // {D, ...} -- imm8 counts half-words here, two per D register. + n := ((word >> 22) & 1) << 4 | ((word >> 12) & 0xF) + return op_reg_run(Register(REG_DPR | u16(n)), max(u8((word & 0xFF) / 2), 1)) // ---- Branch fields (decoded into RELATIVE) ---- case .BRANCH_24: @@ -479,8 +592,30 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op return op_imm(i64((word >> 18) & 0xF)) // ---- Saturate / bit field ---- - case .SAT_IMM5, .SAT_IMM5_T32, .BFI_MSB: + case .NEON_SHLL_8: return op_imm(8) + case .NEON_SHLL_16: return op_imm(16) + case .NEON_SHLL_32: return op_imm(32) + case .NEON_ROT_2: return op_imm(((word >> 24) & 1) != 0 ? 270 : 90) + case .NEON_ROT_4: return op_imm(i64(((word >> 20) & 3) * 90)) + case .NEON_ROT_4_HI: return op_imm(i64(((word >> 23) & 3) * 90)) + case .VFP_FBITS: + // The fixed-point width is 16 or 32 by the sx bit, and the fraction + // is that less imm4:i -- so the widest fraction encodes as zero. + width: u32 = ((word >> 7) & 1) != 0 ? 32 : 16 + return op_imm(i64(width - (((word & 0xF) << 1) | ((word >> 5) & 1)))) + case .SAT_IMM5, .SAT_IMM5_T32: + // SSAT and SSAT16 saturate to a signed width of one to 32, and the + // field holds one less than that. USAT and USAT16 saturate to an + // unsigned width of zero to 31, which the field holds as it stands. + return op_imm(i64(((word >> 16) & 0x1F) + 1)) + case .SAT_IMM5_U, .SAT_IMM5_U_T32: return op_imm(i64((word >> 16) & 0x1F)) + case .BFX_WIDTH: + // One less than the width. + return op_imm(i64(((word >> 16) & 0x1F) + 1)) + case .BFI_MSB: + // The top bit's position; the syntax wants the width. + return op_imm(i64(((word >> 16) & 0x1F) - ((word >> 7) & 0x1F) + 1)) case .BFI_LSB, .BFI_LSB_T32: return op_imm(i64((word >> 7) & 0x1F)) case .NEON_SHIFT_IMM6: @@ -522,18 +657,42 @@ unpack_operand :: proc(word: u32, enc: Operand_Encoding, ot: Operand_Type) -> Op // PRE_INDEX and POST_INDEX wrap MEM_IMM12_OFFSET: same field layout but the // addressing mode flag is set differently. We reconstruct the full Memory // operand here (base, disp, sign, mode). + case .RT2_A32_PAIR: + return op_reg(Register(REG_GPR | u16(((word >> 12) + 1) & 0xF))) + case .MEM_IMM8_PRE_INDEX: + base := Register(REG_GPR | u16((word >> 16) & 0xF)) + disp := i32(((word >> 8) & 0xF) << 4 | (word & 0xF)) + if (word >> 23) & 1 == 0 { disp = -disp } + mm := mem_imm_pre(base, disp) + + if (word >> 23) & 1 == 0 { mm.sign = -1 } + + return op_mem(mm) + case .MEM_IMM8_POST_INDEX: + base := Register(REG_GPR | u16((word >> 16) & 0xF)) + disp := i32(((word >> 8) & 0xF) << 4 | (word & 0xF)) + if (word >> 23) & 1 == 0 { disp = -disp } + mm := mem_imm_post(base, disp) + + if (word >> 23) & 1 == 0 { mm.sign = -1 } + + return op_mem(mm) case .MEM_PRE_INDEX: base := Register(REG_GPR | u16((word >> 16) & 0xF)) u_bit := (word >> 23) & 1 disp := i32(word & 0xFFF) if u_bit == 0 { disp = -disp } - return op_mem(mem_imm_pre(base, disp)) + mm := mem_imm_pre(base, disp) + if u_bit == 0 { mm.sign = -1 } + return op_mem(mm) case .MEM_POST_INDEX: base := Register(REG_GPR | u16((word >> 16) & 0xF)) u_bit := (word >> 23) & 1 disp := i32(word & 0xFFF) if u_bit == 0 { disp = -disp } - return op_mem(mem_imm_post(base, disp)) + mm := mem_imm_post(base, disp) + if u_bit == 0 { mm.sign = -1 } + return op_mem(mm) case .MEM_LITERAL: // PC-relative literal load: U bit + 12-bit signed disp u_bit := (word >> 23) & 1 @@ -558,6 +717,22 @@ decode_max_instruction_count :: #force_inline proc "contextless" (data: []u8) -> return len(data) / 2 } +// How many D registers a VTBL/VTBX table spans. +@(private="file", require_results) +table_run_length :: #force_inline proc "contextless" (e: Operand_Encoding) -> u8 { + #partial switch e { + case .NEON_VN_TABLE_1: return 1 + case .NEON_VN_TABLE_2: return 2 + case .NEON_VN_TABLE_3: return 3 + case .NEON_VN_TABLE_4: return 4 + } + return 1 +} + +// The conditions VSEL can name, in the order bits 21:20 give them. +@(private="file") +VSEL_CONDITIONS := [4]u8{0, 6, 10, 12} // EQ, VS, GE, GT + // Typical-case estimate of the instruction count for `data`. @(require_results) decode_estimate_instruction_count :: #force_inline proc "contextless" (data: []u8) -> int { @@ -572,3 +747,24 @@ decode_reserve :: proc(instructions: ^[dynamic]Instruction, inst_info: ^[dynamic if inst_info != nil { reserve(inst_info, len(inst_info) + n) } if label_defs != nil { reserve(label_defs, len(label_defs) + n) } } + +// The lane field's position and the list length for a NEON single-lane +// load/store. The lane sits just above the alignment bits, and how far above +// follows the element size: bits 7:5 for .8, 7:6 for .16, bit 7 for .32. +@(private="file", require_results) +neon_lane_shape :: #force_inline proc "contextless" (e: Operand_Encoding) -> (shift, mask: u32, count: u8) { + #partial switch e { + case .NEON_LANE_D_8: return 5, 0x7, 1 + case .NEON_LANE_D_16: return 6, 0x3, 1 + case .NEON_LANE_D_32: return 7, 0x1, 1 + case .NEON_LANE_D_8_2: return 5, 0x7, 2 + case .NEON_LANE_D_16_2: return 6, 0x3, 2 + case .NEON_LANE_D_32_2: return 7, 0x1, 2 + case .NEON_LANE_D_8_3: return 5, 0x7, 3 + case .NEON_LANE_D_16_3: return 6, 0x3, 3 + case .NEON_LANE_D_32_3: return 7, 0x1, 3 + case .NEON_LANE_D_8_4: return 5, 0x7, 4 + case .NEON_LANE_D_16_4: return 6, 0x3, 4 + case: return 7, 0x1, 4 + } +} diff --git a/core/rexcode/isa/arm32/encoder.odin b/core/rexcode/isa/arm32/encoder.odin index 065213e6d..3dd3f07dd 100644 --- a/core/rexcode/isa/arm32/encoder.odin +++ b/core/rexcode/isa/arm32/encoder.odin @@ -160,9 +160,11 @@ encode_one_inline :: #force_inline proc( if inst.form_id != 0 && int(inst.form_id) - 1 < len(forms) { f := &forms[inst.form_id - 1] if f.mode == inst.mode && + (inst.dt[0] == .NONE || f.dt == inst.dt) && (want_len == 0 || inst_size_from_bits(f.bits, f.mode) == want_len) && encoding_matches_inline(inst, f) && - inst.flags.sets_flags == f.flags.sets_flags && + inst.sets_flags == f.flags.sets_flags && + writeback_matches(inst, f) && mem_mode_matches(inst, f) { form = f } @@ -170,10 +172,16 @@ encode_one_inline :: #force_inline proc( if form == nil { for &f in forms { if f.mode != inst.mode { continue } + // The `.i32` / `.s32.f32` suffix. NEON reuses one operand shape + // across every element width, so without this the scan can only + // ever reach the first form of a shape. .NONE means the caller did + // not say, and every form of the shape stays eligible. + if inst.dt[0] != .NONE && f.dt != inst.dt { continue } if want_len > 0 && inst_size_from_bits(f.bits, f.mode) != want_len { continue } if !encoding_matches_inline(inst, &f) { continue } - if inst.flags.sets_flags && !f.flags.sets_flags { continue } - if !inst.flags.sets_flags && f.flags.sets_flags { continue } + if inst.sets_flags && !f.flags.sets_flags { continue } + if !inst.sets_flags && f.flags.sets_flags { continue } + if !writeback_matches(inst, &f) { continue } if !mem_mode_matches(inst, &f) { continue } form = &f break @@ -194,10 +202,10 @@ encode_one_inline :: #force_inline proc( word = (word & 0x0FFFFFFF) | (u32(inst.cond) << 28) } - if form.enc[0] != .NONE { word |= pack_operand_inline(&inst.ops[0], form.enc[0], pc, inst_idx, relocs, form) } - if form.enc[1] != .NONE { word |= pack_operand_inline(&inst.ops[1], form.enc[1], pc, inst_idx, relocs, form) } - if form.enc[2] != .NONE { word |= pack_operand_inline(&inst.ops[2], form.enc[2], pc, inst_idx, relocs, form) } - if form.enc[3] != .NONE { word |= pack_operand_inline(&inst.ops[3], form.enc[3], pc, inst_idx, relocs, form) } + if form.enc[0] != .NONE { word |= pack_operand_inline(&inst.ops[0], form.enc[0], pc, inst_idx, relocs, form, inst) } + if form.enc[1] != .NONE { word |= pack_operand_inline(&inst.ops[1], form.enc[1], pc, inst_idx, relocs, form, inst) } + if form.enc[2] != .NONE { word |= pack_operand_inline(&inst.ops[2], form.enc[2], pc, inst_idx, relocs, form, inst) } + if form.enc[3] != .NONE { word |= pack_operand_inline(&inst.ops[3], form.enc[3], pc, inst_idx, relocs, form, inst) } return word, inst_size_from_bits(form.bits, form.mode), true } @@ -239,7 +247,11 @@ mem_mode_matches :: #force_inline proc "contextless" (inst: ^Instruction, form: // because R0-as-index is exceedingly rare in real code. has_index := op.mem.index != Register(0) #partial switch form.enc[k] { - case .MEM_IMM12_OFFSET, .MEM_IMM8_OFFSET: + case .MEM_IMM8_SCALED4_PRE: + if m != .PRE_INDEX { return false } + case .MEM_IMM8_SCALED4_POST: + if m != .POST_INDEX { return false } + case .MEM_IMM12_OFFSET, .MEM_IMM8_OFFSET, .MEM_IMM8_SCALED4: if m != .OFFSET { return false } if has_index { return false } case .MEM_REG_OFFSET, .MEM_DOUBLEREG: @@ -256,14 +268,14 @@ mem_mode_matches :: #force_inline proc "contextless" (inst: ^Instruction, form: @(private="file") encoding_matches_inline :: #force_inline proc "contextless" (inst: ^Instruction, form: ^Encoding) -> bool { - return operand_matches_inline(&inst.ops[0], form.ops[0]) && - operand_matches_inline(&inst.ops[1], form.ops[1]) && - operand_matches_inline(&inst.ops[2], form.ops[2]) && - operand_matches_inline(&inst.ops[3], form.ops[3]) + return operand_matches_inline(&inst.ops[0], form.ops[0], form.enc[0]) && + operand_matches_inline(&inst.ops[1], form.ops[1], form.enc[1]) && + operand_matches_inline(&inst.ops[2], form.ops[2], form.enc[2]) && + operand_matches_inline(&inst.ops[3], form.ops[3], form.enc[3]) } @(private="file") -operand_matches_inline :: #force_inline proc "contextless" (op: ^Operand, ot: Operand_Type) -> bool { +operand_matches_inline :: #force_inline proc "contextless" (op: ^Operand, ot: Operand_Type, enc: Operand_Encoding) -> bool { #partial switch ot { case .NONE: return op.kind == .NONE @@ -278,16 +290,40 @@ operand_matches_inline :: #force_inline proc "contextless" (op: ^Operand, ot: Op case .SPR: return op.kind == .REGISTER && is_spr(op.reg) case .DPR: return op.kind == .REGISTER && is_dpr(op.reg) case .QPR: return op.kind == .REGISTER && is_qpr(op.reg) - case .DPR_ELEM: return op.kind == .REGISTER && is_dpr(op.reg) + case .DPR_ELEM: + if op.kind != .REGISTER || !is_dpr(op.reg) { return false } + // A by-scalar multiplier names a lane, and how far the register and + // lane numbers reach depends on how they share the field. + #partial switch enc { + case .NEON_VM_SCALAR_16: return op.has_lane && reg_hw(op.reg) < 8 && op.lane < 4 + case .NEON_VM_SCALAR_32: return op.has_lane && reg_hw(op.reg) < 16 && op.lane < 2 + case .NEON_VDUP_LANE_8: return op.has_lane && op.lane < 8 + case .NEON_VDUP_LANE_16: return op.has_lane && op.lane < 4 + case .NEON_VDUP_LANE_32: return op.has_lane && op.lane < 2 + } + return true case .QPR_ELEM: return op.kind == .REGISTER && is_qpr(op.reg) case .SPR_ELEM: return op.kind == .REGISTER && is_spr(op.reg) - case .SPR_LIST, .DPR_LIST: - return op.kind == .REG_LIST || (op.kind == .REGISTER && (is_spr(op.reg) || is_dpr(op.reg))) + case .SPR_LIST: + return op.kind == .REGISTER && is_spr(op.reg) + case .DPR_LIST: + if op.kind != .REGISTER || !is_dpr(op.reg) { return false } + // Forms whose run length is a fixed pattern bit are told apart only + // by that length -- {d0} and {d0, d1} are different instructions. + #partial switch enc { + case .NEON_VN_TABLE_1: return op.list.count == 1 + case .NEON_VN_TABLE_2: return op.list.count == 2 + case .NEON_VN_TABLE_3: return op.list.count == 3 + case .NEON_VN_TABLE_4: return op.list.count == 4 + } + return true case .IMM, .IMM_MOD, .IMM_T32_MOD, .IMM12, .IMM5, .IMM5_W, .IMM4, .IMM4_SAT, .IMM8, .IMM3, .IMM_HINT, .IMM_BARRIER, - .IMM_ENDIAN, .IMM_IFLAGS, .IMM_BANKED, .IMM_SYSM, + .IMM_IFLAGS, .IMM_BANKED, .IMM_SYSM, .IMM_COPROC, .IMM_COPROC_OP, .NEON_IMM, .IMM16_LO_HI: - return op.kind == .IMMEDIATE + // A modified immediate reaches an immediate slot as an expanded bit + // pattern or a float, so all three kinds are the same slot's shape. + return op.kind == .IMMEDIATE || op.kind == .HEX_IMMEDIATE || op.kind == .FLOAT_IMMEDIATE case .REL24, .REL24_T32, .REL20, .REL11, .REL8, .REL_LDR_LITERAL, .REL_BF: return op.kind == .RELATIVE case .COND: @@ -299,8 +335,12 @@ operand_matches_inline :: #force_inline proc "contextless" (op: ^Operand, ot: Op return op.kind == .MEMORY || op.kind == .RELATIVE case .COPROC_REG, .COPROC_NUM: return op.kind == .REGISTER || op.kind == .IMMEDIATE + case .IMM_ENDIAN: + return op.kind == .REGISTER case .PSR_FIELD: - return op.kind == .IMMEDIATE + // APSR, SPSR and the endian tokens are named registers in the syntax + // even where no field encodes them. + return op.kind == .IMMEDIATE || op.kind == .REGISTER case .VPR, .QPR_MVE: return op.kind == .REGISTER && is_qpr(op.reg) case .QPR_MVE_LIST: @@ -324,6 +364,8 @@ pack_operand_inline :: #force_inline proc( inst_idx: u16, relocs: ^[dynamic]Relocation, form: ^Encoding, + // BFI's msb is lsb + width - 1, so packing it needs a sibling operand. + inst: ^Instruction, ) -> u32 { switch enc { case .NONE, .IMPL: @@ -397,6 +439,7 @@ pack_operand_inline :: #force_inline proc( // ---- A32 immediate field placements ---- case .A32_IMM12: return u32(op.immediate) & 0xFFF case .A32_IMM_SHIFT: return (u32(op.immediate) & 0x1F) << 7 + case .A32_IMM_SHIFT_32: return (u32(op.immediate) & 0x1F) << 7 // 32 wraps to 0, which is what encodes it case .A32_SHIFT_TYPE: return (u32(op.immediate) & 0x3) << 5 case .A32_RS_SHIFT: return (u32(reg_hw(op.reg)) & 0xF) << 8 case .A32_IMM24: @@ -465,6 +508,18 @@ pack_operand_inline :: #force_inline proc( return (u32(reg_hw(op.reg)) & 0x7) << 17 case .VM_Q_MVE: return (u32(reg_hw(op.reg)) & 0x7) << 1 + case .DBG_OPTION: return u32(op.immediate) & 0xF + case .MRS_SPEC_REG: return 0 // the R bit is a fixed bit of the form + case .VFP_SPEC_REG: return (u32(reg_hw(op.reg)) & 0xF) << 16 + case .SETEND_ENDIAN: return (u32(reg_hw(op.reg)) & 1) << 9 + case .IMPL_SP: return 0 + case .MODE_IMM5: return u32(op.immediate) & 0x1F + case .RN_A32_WB: return (u32(reg_hw(op.reg)) & 0xF) << 16 + case .VM_S_PLUS1: + return 0 // only the first of the pair is encoded + case .NEON_LANE_VN_32: + n := u32(reg_hw(op.reg)) & 0x1F + return ((n >> 4) & 1) << 7 | (n & 0xF) << 16 | (u32(op.lane) & 1) << 21 case .VFP_IMM8: // Run the VFP 8-bit float encoder; the user supplies the wire-format // 32-bit float bit pattern (for F32). The encoder finds the abcdefgh. @@ -489,20 +544,58 @@ pack_operand_inline :: #force_inline proc( case .NEON_OP_BIT: return (u32(op.immediate) & 1) << 5 // ---- VFP/NEON register lists (LDM/STM/PUSH/POP for FP regs) ------------ - case .VFP_S_LIST, .VFP_D_LIST: - return u32(op.immediate) & 0xFF + case .NEON_D_LIST_1, .NEON_D_LIST_2, .NEON_D_LIST_3, .NEON_D_LIST_4, .NEON_D_LIST_2X, .NEON_D_LIST_3X, .NEON_D_LIST_4X, .NEON_D_LIST_ALL: + // Only Vd; the count lives in the form's type field. + n := u32(reg_hw(op.reg)) & 0x1F + return ((n >> 4) & 1) << 22 | (n & 0xF) << 12 + case .NEON_D_LIST_ALL_2, .NEON_D_LIST_ALL_3, .NEON_D_LIST_ALL_4: + // Same, plus the spacing, which bit 5 carries. + n := u32(reg_hw(op.reg)) & 0x1F + return ((n >> 4) & 1) << 22 | (n & 0xF) << 12 | (op.list.stride > 1 ? u32(1) : 0) << 5 + case .NEON_LANE_D_8, .NEON_LANE_D_16, .NEON_LANE_D_32, .NEON_LANE_D_8_2, .NEON_LANE_D_16_2, .NEON_LANE_D_32_2, .NEON_LANE_D_8_3, .NEON_LANE_D_16_3, .NEON_LANE_D_32_3, .NEON_LANE_D_8_4, .NEON_LANE_D_16_4, .NEON_LANE_D_32_4: + n := u32(reg_hw(op.reg)) & 0x1F + shift, mask, _ := neon_lane_shape(enc) + return ((n >> 4) & 1) << 22 | (n & 0xF) << 12 | (u32(op.lane) & mask) << shift + case .NEON_VDUP_LANE_8, .NEON_VDUP_LANE_16, .NEON_VDUP_LANE_32: + n := u32(reg_hw(op.reg)) & 0x1F + shift: u32 = enc == .NEON_VDUP_LANE_8 ? 1 : enc == .NEON_VDUP_LANE_16 ? 2 : 3 + // The marker bit below the index is a fixed bit of the form. + return ((n >> 4) & 1) << 5 | (n & 0xF) | (u32(op.lane) << shift) << 16 + case .NEON_VM_SCALAR_16: + n := u32(reg_hw(op.reg)) & 0x7 + idx := u32(op.lane) & 0x3 + return n | ((idx >> 1) & 1) << 5 | (idx & 1) << 3 + case .NEON_VM_SCALAR_32: + return (u32(reg_hw(op.reg)) & 0xF) | (u32(op.lane) & 1) << 5 + case .NEON_VN_TABLE_1, .NEON_VN_TABLE_2, .NEON_VN_TABLE_3, .NEON_VN_TABLE_4: + // The run length is already a fixed bit of the form; only Vn is ours. + n := u32(reg_hw(op.reg)) & 0x1F + return ((n >> 4) & 1) << 7 | (n & 0xF) << 16 + case .VFP_S_LIST: + n := u32(reg_hw(op.reg)) & 0x1F + return ((n >> 1) & 0xF) << 12 | (n & 1) << 22 | (u32(op.list.count) & 0xFF) + case .VFP_D_LIST: + n := u32(reg_hw(op.reg)) & 0x1F + return ((n >> 4) & 1) << 22 | (n & 0xF) << 12 | ((u32(op.list.count) * 2) & 0xFF) // ---- Memory addressing composites -------------------------------------- + case .MEM_IMM8_SCALED4, .MEM_IMM8_SCALED4_PRE, .MEM_IMM8_SCALED4_POST: + m := op.mem + base := (u32(reg_hw(m.base)) & 0xF) << 16 + u_bit: u32 = (m.disp > 0 || (m.disp == 0 && m.sign >= 0)) ? 1 : 0 + return base | (u_bit << 23) | ((u32(abs_i32(m.disp)) / 4) & 0xFF) case .MEM_IMM12_OFFSET: m := op.mem base := (u32(reg_hw(m.base)) & 0xF) << 16 - u_bit: u32 = m.disp >= 0 ? 1 : 0 + u_bit: u32 = (m.disp > 0 || (m.disp == 0 && m.sign >= 0)) ? 1 : 0 disp := u32(abs_i32(m.disp)) & 0xFFF return base | (u_bit << 23) | disp - case .MEM_IMM8_OFFSET: + case .RT2_A32_PAIR: + return 0 + case .MEM_IMM8_PRE_INDEX, .MEM_IMM8_POST_INDEX, .MEM_IMM8_OFFSET: m := op.mem base := (u32(reg_hw(m.base)) & 0xF) << 16 - u_bit: u32 = m.disp >= 0 ? 1 : 0 + u_bit: u32 = (m.disp > 0 || (m.disp == 0 && m.sign >= 0)) ? 1 : 0 disp := u32(abs_i32(m.disp)) & 0xFF return base | (u_bit << 23) | ((disp >> 4) & 0xF) << 8 | (disp & 0xF) case .MEM_REG_OFFSET: @@ -516,14 +609,14 @@ pack_operand_inline :: #force_inline proc( // P=1, W=1 in bits 24/21 to select pre-index addressing mode. m := op.mem base := (u32(reg_hw(m.base)) & 0xF) << 16 - u_bit: u32 = m.disp >= 0 ? 1 : 0 + u_bit: u32 = (m.disp > 0 || (m.disp == 0 && m.sign >= 0)) ? 1 : 0 disp := u32(abs_i32(m.disp)) & 0xFFF return base | (u_bit << 23) | disp case .MEM_POST_INDEX: // Same layout as MEM_IMM12_OFFSET; form bits select P=0 in bit 24. m := op.mem base := (u32(reg_hw(m.base)) & 0xF) << 16 - u_bit: u32 = m.disp >= 0 ? 1 : 0 + u_bit: u32 = (m.disp > 0 || (m.disp == 0 && m.sign >= 0)) ? 1 : 0 disp := u32(abs_i32(m.disp)) & 0xFFF return base | (u_bit << 23) | disp case .MEM_LITERAL: @@ -537,7 +630,9 @@ pack_operand_inline :: #force_inline proc( return ((u32(reg_hw(m.base)) & 0xF) << 16) | (u32(reg_hw(m.index)) & 0xF) // ---- Coprocessor ------------------------------------------------------- - case .COPROC_NUM_FIELD: return (u32(op.immediate) & 0xF) << 8 + case .COPROC_NUM_FIELD: return (u32(reg_hw(op.reg)) & 0xF) << 8 + case .COPROC_CRD_FIELD: return (u32(reg_hw(op.reg)) & 0xF) << 12 + case .COPROC_OPC1_MCR: return (u32(op.immediate) & 0x7) << 21 case .COPROC_OPC1_FIELD: return (u32(op.immediate) & 0xF) << 20 case .COPROC_OPC2_FIELD: return (u32(op.immediate) & 0x7) << 5 case .COPROC_CRN_FIELD: return (u32(reg_hw(op.reg)) & 0xF) << 16 @@ -607,9 +702,30 @@ pack_operand_inline :: #force_inline proc( case .IT_MASK: return u32(op.immediate) & 0xFF case .CPS_IFLAGS: return u32(op.immediate) & 0x1FF case .HINT_FIELD: return u32(op.immediate) & 0xFF - case .SAT_IMM5, .SAT_IMM5_T32: + case .NEON_SHLL_8, .NEON_SHLL_16, .NEON_SHLL_32: + return 0 // the amount is the form's element size; no field carries it + case .NEON_ROT_2: + return (op.immediate == 270 ? u32(1) : 0) << 24 + case .NEON_ROT_4: + return ((u32(op.immediate) / 90) & 3) << 20 + case .NEON_ROT_4_HI: + return ((u32(op.immediate) / 90) & 3) << 23 + case .VFP_FBITS: + // sx is a fixed bit of the form, so the width comes from its pattern. + width: u32 = ((form.bits >> 7) & 1) != 0 ? 32 : 16 + imm := width - (u32(op.immediate) & 0x3F) + return ((imm >> 1) & 0xF) | (imm & 1) << 5 + case .SAT_IMM5, .SAT_IMM5_T32, .BFX_WIDTH: + return ((u32(op.immediate) - 1) & 0x1F) << 16 + case .SAT_IMM5_U, .SAT_IMM5_U_T32: return (u32(op.immediate) & 0x1F) << 16 - case .BFI_MSB: return (u32(op.immediate) & 0x1F) << 16 + case .BFI_MSB: + // msb = lsb + width - 1; the lsb rides in whichever slot carries it. + lsb: u32 = 0 + for e, k in form.enc { + if e == .BFI_LSB || e == .BFI_LSB_T32 { lsb = u32(inst.ops[k].immediate); break } + } + return ((lsb + u32(op.immediate) - 1) & 0x1F) << 16 case .BFI_LSB, .BFI_LSB_T32: return (u32(op.immediate) & 0x1F) << 7 case .NEON_SHIFT_IMM6: return (u32(op.immediate) & 0x3F) << 16 @@ -839,3 +955,36 @@ write_u16_le :: #force_inline proc "contextless" (code: []u8, offset: u32, word: read_u16_le :: #force_inline proc "contextless" (code: []u8, offset: u32) -> u16 { return u16(code[offset+0]) | (u16(code[offset+1]) << 8) } + +// The lane field's position and the list length for a NEON single-lane +// load/store. The lane sits just above the alignment bits, and how far above +// follows the element size: bits 7:5 for .8, 7:6 for .16, bit 7 for .32. +@(private="file", require_results) +neon_lane_shape :: #force_inline proc "contextless" (e: Operand_Encoding) -> (shift, mask: u32, count: u8) { + #partial switch e { + case .NEON_LANE_D_8: return 5, 0x7, 1 + case .NEON_LANE_D_16: return 6, 0x3, 1 + case .NEON_LANE_D_32: return 7, 0x1, 1 + case .NEON_LANE_D_8_2: return 5, 0x7, 2 + case .NEON_LANE_D_16_2: return 6, 0x3, 2 + case .NEON_LANE_D_32_2: return 7, 0x1, 2 + case .NEON_LANE_D_8_3: return 5, 0x7, 3 + case .NEON_LANE_D_16_3: return 6, 0x3, 3 + case .NEON_LANE_D_32_3: return 7, 0x1, 3 + case .NEON_LANE_D_8_4: return 5, 0x7, 4 + case .NEON_LANE_D_16_4: return 6, 0x3, 4 + case: return 7, 0x1, 4 + } +} + +// LDM/STM come in a writeback form and a plain one that differ only in bit 21, +// so the operand shapes cannot tell them apart. +@(private="file", require_results) +writeback_matches :: #force_inline proc "contextless" (inst: ^Instruction, f: ^Encoding) -> bool { + for e in f.enc { + if e == .A32_REG_LIST || e == .RN_A32_WB || e == .IMPL_SP { + return ((f.bits >> 21) & 1 != 0) == inst.writeback + } + } + return true +} diff --git a/core/rexcode/isa/arm32/encoding_types.odin b/core/rexcode/isa/arm32/encoding_types.odin index 671389265..baa6d7319 100644 --- a/core/rexcode/isa/arm32/encoding_types.odin +++ b/core/rexcode/isa/arm32/encoding_types.odin @@ -156,7 +156,9 @@ Encoding_Flags :: bit_field u8 { writes_pc: bool | 1, thumb32: bool | 1, // T32 32-bit form (vs 16-bit). Ignored for A32. deprecated: bool | 1, - _: u8 | 1, + // VSEL and friends are unconditional words that still name a condition, + // in bits 21:20 rather than 31:28, and spell it on the mnemonic. + cond_in_21: bool | 1, } // ---- Operand types ---------------------------------------------------------- @@ -282,6 +284,7 @@ Operand_Encoding :: enum u8 { // ---- Immediate field placements (A32) ---- A32_IMM12, // bits 11-0 (LDR/STR offset) A32_IMM_SHIFT, // bits 11-7 (data-proc shift_imm) + A32_IMM_SHIFT_32, // same field, but a zero means 32 (LSR/ASR) A32_SHIFT_TYPE, // bits 6-5 A32_RS_SHIFT, // bits 11-8 (RSR uses Rs register) A32_IMM24, // bits 23-0 (B/BL/SVC) @@ -321,7 +324,16 @@ Operand_Encoding :: enum u8 { // MVE 3-bit Q registers (Q0..Q7): Qn at bits 19:17, Qm at bits 3:1. VN_Q_MVE, VM_Q_MVE, - VFP_IMM8, // VFP immediate (VMOV.F32/F64 #imm) + VFP_IMM8, + VM_S_PLUS1, // the second S register of a consecutive pair + DBG_OPTION, // DBG's option, bits 3:0 -- not the wider hint field + MRS_SPEC_REG, // APSR or SPSR, by the R bit + VFP_SPEC_REG, // VMRS/VMSR system register, bits 19:16 + SETEND_ENDIAN, // LE or BE, by the E bit + IMPL_SP, // an SP the syntax names but no field encodes + MODE_IMM5, // processor mode, bits 4:0 (SRS) + RN_A32_WB, // base register whose writeback rides in bit 21 + NEON_LANE_VN_32, // Vn:N with the 32-bit lane index in bit 21 // VFP immediate (VMOV.F32/F64 #imm) NEON_IMM8_ABCDEFGH, // bits 18-16 (abc) + bits 3-0 (defgh) NEON_CMODE, // bits 11-8 (cmode for VMOV/VMVN immediate) NEON_OP_BIT, // bit 5 (op for VMOV immediate variant) @@ -330,9 +342,60 @@ Operand_Encoding :: enum u8 { VFP_S_LIST, // VLDM/VSTM single-prec list (8-bit count, start in Vd_S) VFP_D_LIST, // VLDM/VSTM double-prec list (8-bit count, start in Vd_D) + // VTBL/VTBX read their table from a run of one to four D registers + // starting at Vn. Which run length applies is the `len` field, which is + // a fixed pattern bit of each form rather than something the operand + // encodes -- so the length rides in the encoding, the way the NEON + // structure-list lengths already do, and the encoder emits only Vn. + NEON_VN_TABLE_1, NEON_VN_TABLE_2, NEON_VN_TABLE_3, NEON_VN_TABLE_4, + + // NEON "by scalar": the multiplier is one lane of a low D register, and + // the register number and the lane number share one four-bit field. How + // they share it depends on the element size -- 16-bit takes Vm from bits + // 2:0, so D0..D7, and the lane from M:bit3; 32-bit takes Vm from bits + // 3:0, so D0..D15, and the lane from M alone. + NEON_VM_SCALAR_16, NEON_VM_SCALAR_32, + // VDUP from a lane packs the element size and the lane index into one + // four-bit field: `xxx1` is a byte lane, `xx10` a halfword, `x100` a + // word, and the bits above the marker are the index. + NEON_VDUP_LANE_8, NEON_VDUP_LANE_16, NEON_VDUP_LANE_32, + // NEON structure load/store lists (VLD1-4 / VST1-4). Unlike VLDM's list, + // the register count is part of the form's type field at bits 11:8, so the + // encoding writes only Vd; how many registers -- and whether the run steps + // by one or by two -- comes from the form. Verified against llvm-mc. + NEON_D_LIST_1, // {d2} + NEON_D_LIST_2, // {d2, d3} + NEON_D_LIST_3, // {d2, d3, d4} + NEON_D_LIST_4, // {d2, d3, d4, d5} + NEON_D_LIST_2X, // {d2, d4} -- spaced + NEON_D_LIST_3X, // {d2, d4, d6} -- spaced + NEON_D_LIST_4X, // {d2, d4, d6, d8} -- spaced + NEON_D_LIST_ALL, // {d2[]} -- to all lanes + // The structure loads that broadcast take a list of two, three or four, + // and bit 5 spaces it -- `{d0[], d2[]}` rather than `{d0[], d1[]}`. + NEON_D_LIST_ALL_2, NEON_D_LIST_ALL_3, NEON_D_LIST_ALL_4, + // VLD1/VST1 single-lane: Vd plus the lane index, whose width and position + // follow the element size -- bits 7:5 for .8, 7:6 for .16, bit 7 for .32. + // Verified against llvm-mc. + // ..._N is how many registers the list holds: VLD2 writes `{d0[1], d1[1]}`. + NEON_LANE_D_8, NEON_LANE_D_16, NEON_LANE_D_32, + NEON_LANE_D_8_2, NEON_LANE_D_16_2, NEON_LANE_D_32_2, + NEON_LANE_D_8_3, NEON_LANE_D_16_3, NEON_LANE_D_32_3, + NEON_LANE_D_8_4, NEON_LANE_D_16_4, NEON_LANE_D_32_4, + // ---- Memory addressing composites ---- MEM_IMM12_OFFSET, // [Rn, #±imm12] - MEM_IMM8_OFFSET, // [Rn, #±imm8] (LDRH/STRH/LDRSB/STRD) + // The halfword and dual load/stores split their 8-bit offset around the + // opcode at bits 7:4, so they cannot use the 12-bit forms below. + // LDRD/STRD name a register pair, and the second is always the first plus + // one, so it occupies no bits of its own. + RT2_A32_PAIR, + MEM_IMM8_PRE_INDEX, + MEM_IMM8_POST_INDEX, + MEM_IMM8_OFFSET, + MEM_IMM8_SCALED4, // VFP load/store: imm8 in words, U at bit 23 + MEM_IMM8_SCALED4_PRE, // same, pre-indexed + MEM_IMM8_SCALED4_POST, // same, post-indexed // [Rn, #±imm8] (LDRH/STRH/LDRSB/STRD) MEM_REG_OFFSET, // [Rn, ±Rm{, shift}] MEM_PRE_INDEX, // [Rn, #imm]! / [Rn, ±Rm]! MEM_POST_INDEX, // [Rn], #imm / [Rn], ±Rm @@ -341,8 +404,10 @@ Operand_Encoding :: enum u8 { // ---- Coprocessor ---- COPROC_NUM_FIELD, // bits 11-8 in CDP/LDC/STC (cp_num) - COPROC_OPC1_FIELD, // bits 23-20 (CDP / MCR / MRC opc1) - COPROC_OPC2_FIELD, // bits 7-5 (MCR/MRC opc2) + COPROC_CRD_FIELD, // bits 15-12 -- the destination, which is not CRn + COPROC_OPC1_MCR, // bits 23-21 (MCR/MRC opc1, three bits not four) + COPROC_OPC1_FIELD, // bits 23-20 (CDP opc1) + COPROC_OPC2_FIELD, // bits 7-5 (CDP / MCR / MRC opc2) COPROC_CRN_FIELD, // bits 19-16 COPROC_CRM_FIELD, // bits 3-0 COPROC_OPC_MCRR, // bits 7-4 (MCRR/MRRC 4-bit opcode) @@ -369,10 +434,24 @@ Operand_Encoding :: enum u8 { HINT_FIELD, // hint imm // ---- Saturate ---- - SAT_IMM5, // bits 20-16: SSAT/USAT saturate-to width - SAT_IMM5_T32, // Thumb-2 saturate amount + VFP_FBITS, // VCVT fixed-point fraction bits: width - (imm4:i) + // VSHLL's widest form shifts by exactly the element size, which no field + // carries -- the size is a fixed bit of the form, so the amount is too. + NEON_SHLL_8, NEON_SHLL_16, NEON_SHLL_32, + // Complex-arithmetic rotations, named in degrees. VCADD has two, in bit + // 24; VCMLA has four, in bits 21:20. + // VCMLA names its rotation twice over: the by-element forms put it in + // bits 21:20, the vector forms in 24:23. + NEON_ROT_2, NEON_ROT_4, NEON_ROT_4_HI, + SAT_IMM5, // bits 20-16: SSAT/SSAT16 saturate-to width, less one + SAT_IMM5_T32, // Thumb-2 signed saturate amount, less one + SAT_IMM5_U, // bits 20-16: USAT/USAT16 width, which is not biased + SAT_IMM5_U_T32, // Thumb-2 unsigned saturate amount // ---- BFC/BFI/SBFX/UBFX ---- + // SBFX/UBFX hold the width less one, where BFI/BFC hold the top bit's + // position and the width is msb - lsb + 1. + BFX_WIDTH, BFI_MSB, // bits 20-16 (msb position) BFI_LSB, // bits 11-7 (lsb position; also shift_imm slot) BFI_LSB_T32, // Thumb-2 BFI lsb (different layout) @@ -397,17 +476,42 @@ Operand_Encoding :: enum u8 { // ---- Encoding struct ------------------------------------------------------- +// The data type an A32 mnemonic carries as a suffix: `vadd.i32`, `vcvt.s32.f32`, +// `vstrb.8`. Unlike A64 -- where the arrangement belongs to each operand +// (`add v0.4s, v1.4s, v2.4s`) -- in A32 it belongs to the INSTRUCTION, which is +// why it lives here and on Instruction rather than on Operand. +// +// It is not decoration: NEON reuses one operand shape across every element +// width, so `vadd.i8` and `vadd.f32` are both DPR,DPR,DPR and the type is the +// only thing that separates their encodings. Without it the encoder can only +// ever reach the first form of each shape. +Data_Type :: enum u8 { + NONE, + S8, S16, S32, S64, // signed integer + U8, U16, U32, U64, // unsigned integer + I8, I16, I32, I64, // sign-agnostic integer + F16, F32, F64, // floating point + P8, P16, // polynomial + BF16, // bfloat16 + SZ8, SZ16, SZ32, SZ64, // bare element size (`vmov.32`, `vstrb.8`) +} + +// Two slots because the convert family names both ends: `vcvt.s32.f32`. +// Everything else leaves dt[1] as .NONE. +Data_Types :: [2]Data_Type + Encoding :: struct #packed { mnemonic: Mnemonic, // 2 - ops: [4]Operand_Type, // 4 - enc: [4]Operand_Encoding, // 4 + ops: [6]Operand_Type, // 6 + enc: [6]Operand_Encoding, // 6 bits: u32, // 4 -- static field pattern mask: u32, // 4 -- which bits are static feature: Feature, // 1 mode: Mode, // 1 flags: Encoding_Flags, // 1 + dt: Data_Types, // 2 } -#assert(size_of(Encoding) == 21) +#assert(size_of(Encoding) == 27) // ---- Length introspection -------------------------------------------------- // diff --git a/core/rexcode/isa/arm32/instructions.odin b/core/rexcode/isa/arm32/instructions.odin index 1c343d583..b0d6b66b8 100644 --- a/core/rexcode/isa/arm32/instructions.odin +++ b/core/rexcode/isa/arm32/instructions.odin @@ -20,24 +20,54 @@ Instruction_Flags :: bit_field u8 { _: u8 | 6, } -Instruction :: struct #packed { - ops: [4]Operand `fmt:"v,operand_count"`, // 4 * 18 = 68 +// Sized and aligned to a cache line -- see the note in arm64/instructions.odin. +// The payload is 48 bytes; padding out to 64 and aligning is worth ~21% on +// decode, because decode writes whole Instructions and unaligned stores are +// expensive enough to outweigh writing more bytes. +Instruction :: struct #align(64) { + // Six, because the coprocessor forms need six: MCR, MRC and CDP are + // written `mcr p15, #0, r0, c0, c0, #0`, and dropping the last two + // operands does not merely print short -- an opc2 that is not zero + // encodes as zero, which is the wrong instruction. Six operands cannot + // fit alongside the rest in 64 bytes (Operand is 11, and Memory cannot + // go below 8), so this straddles two cache lines rather than one. + ops: [6]Operand `fmt:"v,operand_count"`, // 6 * 11 = 66 mnemonic: Mnemonic, // 2 - cond: u8, // 0..15 (AL=14) - operand_count: u8, // 0..4 - flags: Instruction_Flags, // 1 - mode: Mode, // 1 (A32 or T32) - length: u8, // 2 or 4 bytes + // cond, operand_count, mode, length and the two flag bits share one + // 16-bit word -- together they need 13 bits, and spending six bytes on + // them was what pushed Instruction over 48. `using` keeps inst.cond, + // inst.operand_count, inst.mode, inst.length, inst.sets_flags and + // inst.wide reading and writing exactly as they did as plain fields. + using _: bit_field u16 { + cond: u8 | 4, // 0..15 (AL = 14) + operand_count: u8 | 3, // 0..6 + mode: Mode | 1, // A32 / T32 + length: u8 | 3, // 2 or 4 bytes on the wire + sets_flags: bool | 1, // S bit (writes APSR.NZCV) + wide: bool | 1, // force the T32 wide form when both exist + // LDM/STM write the updated base back when this is set, which the + // syntax shows as a `!` after the base register. + writeback: bool | 1, + // 2 bits spare + }, // Form-id hint: when non-zero, this is (1 + the index into // ENCODING_TABLE[mnemonic]) of the form the decoder produced. The encoder - // uses it as a tie-breaker for shape-ambiguous entries (NEON size variants - // share an operand shape but live in distinct entries with different fixed - // bits). User-constructed instructions leave it at 0; the encoder then - // falls back to first-shape-match. Stored as u16 over the two padding bytes. + // uses it as a tie-breaker for the shape-ambiguous entries the data type + // does not separate on its own -- register lists, LDM/STM addressing + // modes. User-constructed instructions leave it at 0 and take the + // first shape match. form_id: u16, - _: [7]u8, + // The `.i32` / `.s32.f32` suffix. Zero (.NONE) means "unspecified": the + // encoder then takes the first form of the matching shape, which is what + // every instruction did before this field existed. Set it and the encoder + // picks the encoding for that type. + dt: Data_Types, + // Spare, and free: the operands leave the tail of the second cache line + // unused either way. New fields land here without changing the layout. + _: [54]u8, } -#assert(size_of(Instruction) == 88) +#assert(size_of(Instruction) == 128) +#assert(align_of(Instruction) == 64) // ============================================================================= // Builders @@ -52,57 +82,57 @@ inst_none :: #force_inline proc "contextless" (m: Mnemonic, mode: Mode = .A32) - @(require_results) inst_r :: #force_inline proc "contextless" (m: Mnemonic, r: Register, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 1, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(r), {}, {}, {}}} + ops = {op_reg(r), {}, {}, {}, {}, {}}} } @(require_results) inst_i :: #force_inline proc "contextless" (m: Mnemonic, v: i64, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 1, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_imm(v), {}, {}, {}}} + ops = {op_imm(v), {}, {}, {}, {}, {}}} } // 2-operand @(require_results) inst_r_r :: #force_inline proc "contextless" (m: Mnemonic, rd, rm: Register, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_reg(rm), {}, {}}} + ops = {op_reg(rd), op_reg(rm), {}, {}, {}, {}}} } @(require_results) inst_r_i :: #force_inline proc "contextless" (m: Mnemonic, rd: Register, v: i64, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_imm(v), {}, {}}} + ops = {op_reg(rd), op_imm(v), {}, {}, {}, {}}} } // 3-operand data-proc (ADD/SUB/AND/etc.) @(require_results) inst_r_r_r :: #force_inline proc "contextless" (m: Mnemonic, rd, rn, rm: Register, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_reg(rn), op_reg(rm), {}}} + ops = {op_reg(rd), op_reg(rn), op_reg(rm), {}, {}, {}}} } @(require_results) inst_r_r_i :: #force_inline proc "contextless" (m: Mnemonic, rd, rn: Register, v: i64, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_reg(rn), op_imm(v), {}}} + ops = {op_reg(rd), op_reg(rn), op_imm(v), {}, {}, {}}} } @(require_results) inst_r_r_r_shifted :: #force_inline proc "contextless" ( m: Mnemonic, rd, rn, rm: Register, st: Shift_Type, amt: u8, mode: Mode = .A32, ) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_reg(rn), op_reg_shifted(rm, st, amt), {}}} + ops = {op_reg(rd), op_reg(rn), op_reg_shifted(rm, st, amt), {}, {}, {}}} } // 4-operand MLA / MLS / SMLAL etc. @(require_results) inst_r_r_r_r :: #force_inline proc "contextless" (m: Mnemonic, rd, rn, rm, ra: Register, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 4, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_reg(rn), op_reg(rm), op_reg(ra)}} + ops = {op_reg(rd), op_reg(rn), op_reg(rm), op_reg(ra), {}, {}}} } // Memory load/store @(require_results) inst_load :: #force_inline proc "contextless" (m: Mnemonic, rd: Register, mm: Memory, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(rd), op_mem(mm), {}, {}}} + ops = {op_reg(rd), op_mem(mm), {}, {}, {}, {}}} } @(require_results) inst_store :: #force_inline proc "contextless" (m: Mnemonic, rd: Register, mm: Memory, mode: Mode = .A32) -> Instruction { @@ -113,14 +143,14 @@ inst_store :: #force_inline proc "contextless" (m: Mnemonic, rd: Register, mm: M @(require_results) inst_block :: #force_inline proc "contextless" (m: Mnemonic, base: Register, mask: u16, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_reg(base), op_reg_list(mask), {}, {}}} + ops = {op_reg(base), op_reg_list(mask), {}, {}, {}, {}}} } // Branches with label @(require_results) inst_branch :: #force_inline proc "contextless" (m: Mnemonic, label_id: u32, mode: Mode = .A32) -> Instruction { return Instruction{mnemonic = m, operand_count = 1, length = mode == .A32 ? 4 : 4, mode = mode, cond = 14, - ops = {op_label(label_id), {}, {}, {}}} + ops = {op_label(label_id), {}, {}, {}, {}, {}}} } // Set condition code on any builder @@ -135,6 +165,6 @@ inst_set_cond :: #force_inline proc "contextless" (inst: Instruction, cond: u8) @(require_results) inst_set_flags :: #force_inline proc "contextless" (inst: Instruction) -> Instruction { out := inst - out.flags.sets_flags = true + out.sets_flags = true return out } diff --git a/core/rexcode/isa/arm32/mnemonic_builders.odin b/core/rexcode/isa/arm32/mnemonic_builders.odin index 1d53fc79e..49197bc1b 100644 --- a/core/rexcode/isa/arm32/mnemonic_builders.odin +++ b/core/rexcode/isa/arm32/mnemonic_builders.odin @@ -26,2690 +26,2606 @@ package rexcode_arm32 // Individual Typed Builder Procedures // ============================================================================= -inst_and_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_and_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_and_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_and_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_and_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_and_r_r_immm(dst, src, imm)) } -emit_and_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_and_r_r_rsh(dst, src, src2, shift, amount)) } -emit_and_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_and_r_r_rsr(dst, src, src2, shift, rs)) } -emit_and_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_and_rlo_rlo(dst, src)) } -inst_eor_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_eor_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_eor_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_eor_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_eor_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_eor_r_r_immm(dst, src, imm)) } -emit_eor_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_eor_r_r_rsh(dst, src, src2, shift, amount)) } -emit_eor_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_eor_r_r_rsr(dst, src, src2, shift, rs)) } -emit_eor_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_eor_rlo_rlo(dst, src)) } -inst_sub_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_sub_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_sub_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_sub_rlo_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_sub_rlo_imm8 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -emit_sub_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sub_r_r_immm(dst, src, imm)) } -emit_sub_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_sub_r_r_rsh(dst, src, src2, shift, amount)) } -emit_sub_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_sub_r_r_rsr(dst, src, src2, shift, rs)) } -emit_sub_rlo_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_rlo_rlo_rlo(dst, src, src2)) } -emit_sub_rlo_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_sub_rlo_imm8(dst, imm)) } -inst_rsb_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_rsb_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .RSB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_rsb_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .RSB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -emit_rsb_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rsb_r_r_immm(dst, src, imm)) } -emit_rsb_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_rsb_r_r_rsh(dst, src, src2, shift, amount)) } -emit_rsb_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_rsb_r_r_rsr(dst, src, src2, shift, rs)) } -inst_add_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_add_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_add_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_add_rlo_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_add_rlo_imm8 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_add_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_add_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_add_r_r_immm(dst, src, imm)) } -emit_add_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_add_r_r_rsh(dst, src, src2, shift, amount)) } -emit_add_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_add_r_r_rsr(dst, src, src2, shift, rs)) } -emit_add_rlo_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_rlo_rlo_rlo(dst, src, src2)) } -emit_add_rlo_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_add_rlo_imm8(dst, imm)) } -emit_add_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_add_r_r(dst, src)) } -inst_adc_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_adc_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_adc_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_adc_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_adc_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_adc_r_r_immm(dst, src, imm)) } -emit_adc_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_adc_r_r_rsh(dst, src, src2, shift, amount)) } -emit_adc_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_adc_r_r_rsr(dst, src, src2, shift, rs)) } -emit_adc_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_adc_rlo_rlo(dst, src)) } -inst_sbc_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_sbc_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_sbc_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_sbc_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sbc_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sbc_r_r_immm(dst, src, imm)) } -emit_sbc_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_sbc_r_r_rsh(dst, src, src2, shift, amount)) } -emit_sbc_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_sbc_r_r_rsr(dst, src, src2, shift, rs)) } -emit_sbc_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sbc_rlo_rlo(dst, src)) } -inst_rsc_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_rsc_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .RSC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_rsc_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .RSC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -emit_rsc_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rsc_r_r_immm(dst, src, imm)) } -emit_rsc_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_rsc_r_r_rsh(dst, src, src2, shift, amount)) } -emit_rsc_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_rsc_r_r_rsr(dst, src, src2, shift, rs)) } -inst_tst_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_tst_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}}} } -inst_tst_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}}} } -inst_tst_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_tst_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_tst_r_immm(dst, imm)) } -emit_tst_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_tst_r_rsh(dst, src, shift, amount)) } -emit_tst_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_tst_r_rsr(dst, src, shift, rs)) } -emit_tst_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tst_rlo_rlo(dst, src)) } -inst_teq_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .TEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_teq_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .TEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}}} } -inst_teq_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .TEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}}} } -emit_teq_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_teq_r_immm(dst, imm)) } -emit_teq_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_teq_r_rsh(dst, src, shift, amount)) } -emit_teq_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_teq_r_rsr(dst, src, shift, rs)) } -inst_cmp_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_cmp_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}}} } -inst_cmp_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}}} } -inst_cmp_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_cmp_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmp_r_immm(dst, imm)) } -emit_cmp_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_cmp_r_rsh(dst, src, shift, amount)) } -emit_cmp_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_cmp_r_rsr(dst, src, shift, rs)) } -emit_cmp_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmp_rlo_rlo(dst, src)) } -inst_cmn_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_cmn_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}}} } -inst_cmn_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}}} } -inst_cmn_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_cmn_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmn_r_immm(dst, imm)) } -emit_cmn_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_cmn_r_rsh(dst, src, shift, amount)) } -emit_cmn_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_cmn_r_rsr(dst, src, shift, rs)) } -emit_cmn_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmn_rlo_rlo(dst, src)) } -inst_orr_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_orr_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_orr_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_orr_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_orr_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_orr_r_r_immm(dst, src, imm)) } -emit_orr_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_orr_r_r_rsh(dst, src, src2, shift, amount)) } -emit_orr_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_orr_r_r_rsr(dst, src, src2, shift, rs)) } -emit_orr_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_orr_rlo_rlo(dst, src)) } -inst_mov_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_mov_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}}} } -inst_mov_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}}} } -inst_mov_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_mov_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mov_r_immm(dst, imm)) } -emit_mov_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_mov_r_rsh(dst, src, shift, amount)) } -emit_mov_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_mov_r_rsr(dst, src, shift, rs)) } -emit_mov_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_r_r(dst, src)) } -inst_bic_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_bic_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -inst_bic_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}}} } -inst_bic_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_bic_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_bic_r_r_immm(dst, src, imm)) } -emit_bic_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_bic_r_r_rsh(dst, src, src2, shift, amount)) } -emit_bic_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_bic_r_r_rsr(dst, src, src2, shift, rs)) } -emit_bic_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bic_rlo_rlo(dst, src)) } -inst_mvn_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_mvn_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}}} } -inst_mvn_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}}} } -inst_mvn_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_mvn_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvn_r_immm(dst, imm)) } -emit_mvn_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_mvn_r_rsh(dst, src, shift, amount)) } -emit_mvn_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_mvn_r_rsr(dst, src, shift, rs)) } -emit_mvn_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_rlo_rlo(dst, src)) } -inst_lsl_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_lsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_lsl_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_lsl_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsl_r_r_imm5(dst, src, imm)) } -emit_lsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsl_r_r_r(dst, src, src2)) } -emit_lsl_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_lsl_rlo_rlo(dst, src)) } -inst_lsr_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_lsr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_lsr_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_lsr_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsr_r_r_imm5(dst, src, imm)) } -emit_lsr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsr_r_r_r(dst, src, src2)) } -emit_lsr_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_lsr_rlo_rlo(dst, src)) } -inst_asr_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_asr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_asr_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_asr_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_asr_r_r_imm5(dst, src, imm)) } -emit_asr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_asr_r_r_r(dst, src, src2)) } -emit_asr_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_asr_rlo_rlo(dst, src)) } -inst_ror_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ROR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_ror_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ROR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_ror_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ROR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_ror_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ror_r_r_imm5(dst, src, imm)) } -emit_ror_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ror_r_r_r(dst, src, src2)) } -emit_ror_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ror_rlo_rlo(dst, src)) } -inst_rrx_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RRX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_rrx_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rrx_r_r(dst, src)) } -inst_adr_rlo_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .ADR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_rel_offset(offset), {}, {}}} } -emit_adr_rlo_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_adr_rlo_rel(dst, offset)) } -inst_neg_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_neg_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_rlo_rlo(dst, src)) } -inst_movw_r_imm16 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVW, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -emit_movw_r_imm16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movw_r_imm16(dst, imm)) } -inst_movt_r_imm16 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -emit_movt_r_imm16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movt_r_imm16(dst, imm)) } -inst_bfc_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .BFC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_imm(imm2), {}}} } -emit_bfc_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_bfc_r_imm5_imm5w(dst, imm, imm2)) } -inst_bfi_r_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .BFI, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), op_imm(imm2)}} } -emit_bfi_r_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_bfi_r_r_imm5_imm5w(dst, src, imm, imm2)) } -inst_sbfx_r_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SBFX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), op_imm(imm2)}} } -emit_sbfx_r_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sbfx_r_r_imm5_imm5w(dst, src, imm, imm2)) } -inst_ubfx_r_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UBFX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), op_imm(imm2)}} } -emit_ubfx_r_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_ubfx_r_r_imm5_imm5w(dst, src, imm, imm2)) } -inst_sxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtb_r_r(dst, src)) } -inst_sxtb16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTB16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sxtb16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtb16_r_r(dst, src)) } -inst_sxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxth_r_r(dst, src)) } -inst_uxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_uxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtb_r_r(dst, src)) } -inst_uxtb16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTB16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_uxtb16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtb16_r_r(dst, src)) } -inst_uxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_uxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxth_r_r(dst, src)) } -inst_sxtab_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SXTAB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sxtab_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sxtab_r_r_r(dst, src, src2)) } -inst_sxtab16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SXTAB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sxtab16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sxtab16_r_r_r(dst, src, src2)) } -inst_sxtah_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SXTAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sxtah_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sxtah_r_r_r(dst, src, src2)) } -inst_uxtab_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UXTAB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uxtab_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uxtab_r_r_r(dst, src, src2)) } -inst_uxtab16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UXTAB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uxtab16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uxtab16_r_r_r(dst, src, src2)) } -inst_uxtah_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UXTAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uxtah_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uxtah_r_r_r(dst, src, src2)) } -inst_clz_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_clz_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_r_r(dst, src)) } -inst_rbit_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RBIT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_rbit_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_r_r(dst, src)) } -inst_rev_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_rev_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev_r_r(dst, src)) } -inst_rev16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_rev16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_r_r(dst, src)) } -inst_revsh_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REVSH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_revsh_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_revsh_r_r(dst, src)) } -inst_sel_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SEL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sel_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sel_r_r_r(dst, src, src2)) } -inst_pkhbt_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .PKHBT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -emit_pkhbt_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_pkhbt_r_r_rsh(dst, src, src2, shift, amount)) } -inst_pkhtb_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .PKHTB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}}} } -emit_pkhtb_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_pkhtb_r_r_rsh(dst, src, src2, shift, amount)) } -inst_usad8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USAD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_usad8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usad8_r_r_r(dst, src, src2)) } -inst_usada8_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .USADA8, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_usada8_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_usada8_r_r_r_r(dst, src, src2, src3)) } -inst_ssat_r_imm4s_rsh :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .SSAT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg_shifted(src, shift, amount), {}}} } -emit_ssat_r_imm4s_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_ssat_r_imm4s_rsh(dst, imm, src, shift, amount)) } -inst_usat_r_imm4s_rsh :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .USAT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg_shifted(src, shift, amount), {}}} } -emit_usat_r_imm4s_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_usat_r_imm4s_rsh(dst, imm, src, shift, amount)) } -inst_ssat16_r_imm4s_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .SSAT16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), {}}} } -emit_ssat16_r_imm4s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ssat16_r_imm4s_r(dst, imm, src)) } -inst_usat16_r_imm4s_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .USAT16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), {}}} } -emit_usat16_r_imm4s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_usat16_r_imm4s_r(dst, imm, src)) } -inst_qadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qadd_r_r_r(dst, src, src2)) } -inst_qsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsub_r_r_r(dst, src, src2)) } -inst_qdadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QDADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qdadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qdadd_r_r_r(dst, src, src2)) } -inst_qdsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QDSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qdsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qdsub_r_r_r(dst, src, src2)) } -inst_sadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sadd8_r_r_r(dst, src, src2)) } -inst_sadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sadd16_r_r_r(dst, src, src2)) } -inst_sasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sasx_r_r_r(dst, src, src2)) } -inst_ssax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_ssax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssax_r_r_r(dst, src, src2)) } -inst_ssub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_ssub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssub8_r_r_r(dst, src, src2)) } -inst_ssub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_ssub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssub16_r_r_r(dst, src, src2)) } -inst_uadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uadd8_r_r_r(dst, src, src2)) } -inst_uadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uadd16_r_r_r(dst, src, src2)) } -inst_uasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uasx_r_r_r(dst, src, src2)) } -inst_usax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_usax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usax_r_r_r(dst, src, src2)) } -inst_usub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_usub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usub8_r_r_r(dst, src, src2)) } -inst_usub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_usub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usub16_r_r_r(dst, src, src2)) } -inst_qadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qadd8_r_r_r(dst, src, src2)) } -inst_qadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qadd16_r_r_r(dst, src, src2)) } -inst_qasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qasx_r_r_r(dst, src, src2)) } -inst_qsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsax_r_r_r(dst, src, src2)) } -inst_qsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsub8_r_r_r(dst, src, src2)) } -inst_qsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_qsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsub16_r_r_r(dst, src, src2)) } -inst_uqadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uqadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd8_r_r_r(dst, src, src2)) } -inst_uqadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uqadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd16_r_r_r(dst, src, src2)) } -inst_uqasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uqasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqasx_r_r_r(dst, src, src2)) } -inst_uqsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uqsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsax_r_r_r(dst, src, src2)) } -inst_uqsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uqsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub8_r_r_r(dst, src, src2)) } -inst_uqsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uqsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub16_r_r_r(dst, src, src2)) } -inst_shadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_shadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd8_r_r_r(dst, src, src2)) } -inst_shadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_shadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd16_r_r_r(dst, src, src2)) } -inst_shasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_shasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shasx_r_r_r(dst, src, src2)) } -inst_shsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_shsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsax_r_r_r(dst, src, src2)) } -inst_shsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_shsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub8_r_r_r(dst, src, src2)) } -inst_shsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_shsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub16_r_r_r(dst, src, src2)) } -inst_uhadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uhadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd8_r_r_r(dst, src, src2)) } -inst_uhadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uhadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd16_r_r_r(dst, src, src2)) } -inst_uhasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uhasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhasx_r_r_r(dst, src, src2)) } -inst_uhsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uhsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsax_r_r_r(dst, src, src2)) } -inst_uhsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uhsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub8_r_r_r(dst, src, src2)) } -inst_uhsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_uhsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub16_r_r_r(dst, src, src2)) } -inst_smuad_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUAD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smuad_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smuad_r_r_r(dst, src, src2)) } -inst_smuadx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUADX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smuadx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smuadx_r_r_r(dst, src, src2)) } -inst_smusd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUSD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smusd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smusd_r_r_r(dst, src, src2)) } -inst_smusdx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUSDX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smusdx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smusdx_r_r_r(dst, src, src2)) } -inst_smlad_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlad_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlad_r_r_r_r(dst, src, src2, src3)) } -inst_smladx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLADX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smladx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smladx_r_r_r_r(dst, src, src2, src3)) } -inst_smlsd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlsd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsd_r_r_r_r(dst, src, src2, src3)) } -inst_smlsdx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSDX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlsdx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsdx_r_r_r_r(dst, src, src2, src3)) } -inst_smlald_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlald_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlald_r_r_r_r(dst, src, src2, src3)) } -inst_smlaldx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALDX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlaldx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlaldx_r_r_r_r(dst, src, src2, src3)) } -inst_smlsld_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSLD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlsld_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsld_r_r_r_r(dst, src, src2, src3)) } -inst_smlsldx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSLDX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlsldx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsldx_r_r_r_r(dst, src, src2, src3)) } -inst_smmul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smmul_r_r_r(dst, src, src2)) } -inst_smmulr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMMULR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smmulr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smmulr_r_r_r(dst, src, src2)) } -inst_smmla_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smmla_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmla_r_r_r_r(dst, src, src2, src3)) } -inst_smmlar_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLAR, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smmlar_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmlar_r_r_r_r(dst, src, src2, src3)) } -inst_smmls_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLS, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smmls_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmls_r_r_r_r(dst, src, src2, src3)) } -inst_smmlsr_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLSR, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smmlsr_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmlsr_r_r_r_r(dst, src, src2, src3)) } -inst_mul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_mul_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_mul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mul_r_r_r(dst, src, src2)) } -emit_mul_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mul_rlo_rlo(dst, src)) } -inst_mla_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_mla_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_mla_r_r_r_r(dst, src, src2, src3)) } -inst_mls_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_mls_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_mls_r_r_r_r(dst, src, src2, src3)) } -inst_umull_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .UMULL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_umull_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umull_r_r_r_r(dst, src, src2, src3)) } -inst_umlal_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .UMLAL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_umlal_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umlal_r_r_r_r(dst, src, src2, src3)) } -inst_smull_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMULL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smull_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smull_r_r_r_r(dst, src, src2, src3)) } -inst_smlal_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlal_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlal_r_r_r_r(dst, src, src2, src3)) } -inst_umaal_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .UMAAL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_umaal_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umaal_r_r_r_r(dst, src, src2, src3)) } -inst_smlabb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLABB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlabb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlabb_r_r_r_r(dst, src, src2, src3)) } -inst_smlabt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLABT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlabt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlabt_r_r_r_r(dst, src, src2, src3)) } -inst_smlatb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLATB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlatb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlatb_r_r_r_r(dst, src, src2, src3)) } -inst_smlatt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLATT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlatt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlatt_r_r_r_r(dst, src, src2, src3)) } -inst_smlawb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAWB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlawb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlawb_r_r_r_r(dst, src, src2, src3)) } -inst_smlawt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAWT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlawt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlawt_r_r_r_r(dst, src, src2, src3)) } -inst_smulbb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULBB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smulbb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulbb_r_r_r(dst, src, src2)) } -inst_smulbt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULBT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smulbt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulbt_r_r_r(dst, src, src2)) } -inst_smultb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULTB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smultb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smultb_r_r_r(dst, src, src2)) } -inst_smultt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULTT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smultt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smultt_r_r_r(dst, src, src2)) } -inst_smulwb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULWB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smulwb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulwb_r_r_r(dst, src, src2)) } -inst_smulwt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULWT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_smulwt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulwt_r_r_r(dst, src, src2)) } -inst_smlalbb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALBB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlalbb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlalbb_r_r_r_r(dst, src, src2, src3)) } -inst_smlalbt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALBT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlalbt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlalbt_r_r_r_r(dst, src, src2, src3)) } -inst_smlaltb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALTB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlaltb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlaltb_r_r_r_r(dst, src, src2, src3)) } -inst_smlaltt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALTT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_smlaltt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlaltt_r_r_r_r(dst, src, src2, src3)) } -inst_sdiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SDIV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sdiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdiv_r_r_r(dst, src, src2)) } -inst_udiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UDIV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_udiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udiv_r_r_r(dst, src, src2)) } -inst_b_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .B, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}}} } -inst_b_rel_cond :: #force_inline proc "contextless" (offset: i64, imm: i64) -> Instruction { return Instruction{mnemonic = .B, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_rel_offset(offset), op_imm(imm), {}, {}}} } -emit_b_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_b_rel(offset)) } -emit_b_rel_cond :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, imm: i64) { append(instructions, inst_b_rel_cond(offset, imm)) } -inst_bl_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .BL, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}}} } -emit_bl_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_bl_rel(offset)) } -inst_bx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BX, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_bx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_bx_r(dst)) } -inst_blx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BLX, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -inst_blx_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .BLX, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}}} } -emit_blx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blx_r(dst)) } -emit_blx_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_blx_rel(offset)) } -inst_bxj_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BXJ, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_bxj_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_bxj_r(dst)) } -inst_cbz_rlo_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .CBZ, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_rel_offset(offset), {}, {}}} } -emit_cbz_rlo_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_cbz_rlo_rel(dst, offset)) } -inst_cbnz_rlo_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .CBNZ, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_rel_offset(offset), {}, {}}} } -emit_cbnz_rlo_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_cbnz_rlo_rel(dst, offset)) } -inst_tbb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TBB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_tbb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tbb_r_r(dst, src)) } -inst_tbh_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TBH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_tbh_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tbh_r_r(dst, src)) } -inst_msr_psr_immm :: #force_inline proc "contextless" (imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MSR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), op_imm(imm2), {}, {}}} } -inst_msr_psr_r :: #force_inline proc "contextless" (imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .MSR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), {}, {}}} } -emit_msr_psr_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) { append(instructions, inst_msr_psr_immm(imm, imm2)) } -emit_msr_psr_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register) { append(instructions, inst_msr_psr_r(imm, src)) } -inst_mrs_r_psr :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MRS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -emit_mrs_r_psr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mrs_r_psr(dst, imm)) } -inst_cps_ifl :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .CPS, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_cps_ifl :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_cps_ifl(imm)) } -inst_setend_end :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SETEND, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_setend_end :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_setend_end(imm)) } -inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .NOP, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_nop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_nop_none()) } -inst_yield_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .YIELD, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_yield_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_yield_none()) } -inst_wfe_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .WFE, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_wfe_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfe_none()) } -inst_wfi_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .WFI, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_wfi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfi_none()) } -inst_sev_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SEV, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_sev_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sev_none()) } -inst_sevl_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SEVL, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_sevl_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sevl_none()) } -inst_dbg_hint :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DBG, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_dbg_hint :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dbg_hint(imm)) } -inst_hint_hint :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HINT, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_hint_hint :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hint_hint(imm)) } -inst_dmb_barr :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DMB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_dmb_barr :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dmb_barr(imm)) } -inst_dsb_barr :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DSB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_dsb_barr :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dsb_barr(imm)) } -inst_isb_barr :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .ISB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_isb_barr :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_isb_barr(imm)) } -inst_clrex_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .CLREX, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_clrex_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clrex_none()) } -inst_pld_mem :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return Instruction{mnemonic = .PLD, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_mem(dst), {}, {}, {}}} } -emit_pld_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_pld_mem(dst)) } -inst_pldw_mem :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return Instruction{mnemonic = .PLDW, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_mem(dst), {}, {}, {}}} } -emit_pldw_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_pldw_mem(dst)) } -inst_pli_mem :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return Instruction{mnemonic = .PLI, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_mem(dst), {}, {}, {}}} } -emit_pli_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_pli_mem(dst)) } -inst_hlt_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HLT, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_hlt_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hlt_imm(imm)) } -inst_dcps1_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPS1, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_dcps1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcps1_none()) } -inst_dcps2_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPS2, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_dcps2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcps2_none()) } -inst_dcps3_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPS3, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_dcps3_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcps3_none()) } -inst_eret_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .ERET, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_eret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eret_none()) } -inst_esb_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .ESB, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_esb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_esb_none()) } -inst_psb_csync_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .PSB_CSYNC, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_psb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_psb_csync_none()) } -inst_tsb_csync_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .TSB_CSYNC, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_tsb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tsb_csync_none()) } -inst_csdb_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .CSDB, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_csdb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_csdb_none()) } -inst_sb_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SB, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_sb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sb_none()) } -inst_setpan_hint :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SETPAN, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_setpan_hint :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_setpan_hint(imm)) } -inst_svc_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SVC, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_svc_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_svc_imm(imm)) } -inst_bkpt_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .BKPT, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_bkpt_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_bkpt_imm(imm)) } -inst_hvc_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HVC, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_hvc_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hvc_imm(imm)) } -inst_smc_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SMC, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_smc_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_smc_imm(imm)) } -inst_udf_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .UDF, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_udf_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_udf_imm(imm)) } -inst_ldr_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldr_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldr_r_mem(dst, src)) } -inst_str_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_str_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_str_r_mem(dst, src)) } -inst_ldrb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrb_r_mem(dst, src)) } -inst_strb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_strb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strb_r_mem(dst, src)) } -inst_ldrh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrh_r_mem(dst, src)) } -inst_strh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_strh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strh_r_mem(dst, src)) } -inst_ldrsb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrsb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsb_r_mem(dst, src)) } -inst_ldrsh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrsh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsh_r_mem(dst, src)) } -inst_ldrd_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -inst_ldrd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDRD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_ldrd_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrd_r_mem(dst, src)) } -emit_ldrd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldrd_r_r_mem(dst, src, src2)) } -inst_strd_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -inst_strd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STRD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_strd_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strd_r_mem(dst, src)) } -emit_strd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strd_r_r_mem(dst, src, src2)) } -inst_ldrt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrt_r_mem(dst, src)) } -inst_strt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_strt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strt_r_mem(dst, src)) } -inst_ldrbt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRBT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrbt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrbt_r_mem(dst, src)) } -inst_strbt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRBT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_strbt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strbt_r_mem(dst, src)) } -inst_ldrht_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRHT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrht_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrht_r_mem(dst, src)) } -inst_strht_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRHT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_strht_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strht_r_mem(dst, src)) } -inst_ldrsbt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSBT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrsbt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsbt_r_mem(dst, src)) } -inst_ldrsht_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSHT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrsht_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsht_r_mem(dst, src)) } -inst_lda_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_lda_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_lda_r_mem(dst, src)) } -inst_stl_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_stl_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_stl_r_mem(dst, src)) } -inst_ldab_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldab_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldab_r_mem(dst, src)) } -inst_stlb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STLB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_stlb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_stlb_r_mem(dst, src)) } -inst_ldah_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldah_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldah_r_mem(dst, src)) } -inst_stlh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STLH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_stlh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_stlh_r_mem(dst, src)) } -inst_ldrex_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrex_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrex_r_mem(dst, src)) } -inst_strex_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_strex_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strex_r_r_mem(dst, src, src2)) } -inst_ldrexb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREXB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrexb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrexb_r_mem(dst, src)) } -inst_strexb_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREXB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_strexb_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strexb_r_r_mem(dst, src, src2)) } -inst_ldrexh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREXH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldrexh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrexh_r_mem(dst, src)) } -inst_strexh_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREXH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_strexh_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strexh_r_r_mem(dst, src, src2)) } -inst_ldrexd_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREXD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -inst_ldrexd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDREXD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_ldrexd_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrexd_r_mem(dst, src)) } -emit_ldrexd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldrexd_r_r_mem(dst, src, src2)) } -inst_strexd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREXD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -inst_strexd_r_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Memory) -> Instruction { return Instruction{mnemonic = .STREXD, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_mem(src3)}} } -emit_strexd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strexd_r_r_mem(dst, src, src2)) } -emit_strexd_r_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Memory) { append(instructions, inst_strexd_r_r_r_mem(dst, src, src2, src3)) } -inst_ldaex_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldaex_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaex_r_mem(dst, src)) } -inst_stlex_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_stlex_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlex_r_r_mem(dst, src, src2)) } -inst_ldaexb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEXB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldaexb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaexb_r_mem(dst, src)) } -inst_stlexb_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEXB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_stlexb_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlexb_r_r_mem(dst, src, src2)) } -inst_ldaexh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEXH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldaexh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaexh_r_mem(dst, src)) } -inst_stlexh_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEXH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_stlexh_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlexh_r_r_mem(dst, src, src2)) } -inst_ldaexd_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEXD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_ldaexd_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaexd_r_mem(dst, src)) } -inst_stlexd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEXD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_stlexd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlexd_r_r_mem(dst, src, src2)) } -inst_ldm_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .LDM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}}} } -emit_ldm_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_ldm_r_list(dst, regs)) } -inst_stm_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .STM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}}} } -emit_stm_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_stm_r_list(dst, regs)) } -inst_push_list :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .PUSH, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}}} } -emit_push_list :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_push_list(regs)) } -inst_pop_list :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .POP, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}}} } -emit_pop_list :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_pop_list(regs)) } -inst_swp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SWP, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_swp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_swp_r_r_r(dst, src, src2)) } -inst_swpb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SWPB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_swpb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_swpb_r_r_r(dst, src, src2)) } -inst_rfe_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .RFE, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_rfe_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_rfe_r(dst)) } -inst_srs_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SRS, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_srs_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_srs_imm(imm)) } -inst_cdp_cpn_cpop_crd_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CDP, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_cdp_cpn_cpop_crd_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_cdp_cpn_cpop_crd_crd(dst, imm, src, src2)) } -inst_cdp2_cpn_cpop_crd_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CDP2, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_cdp2_cpn_cpop_crd_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_cdp2_cpn_cpop_crd_crd(dst, imm, src, src2)) } -inst_mcr_cpn_cpop_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MCR, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mcr_cpn_cpop_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mcr_cpn_cpop_r_crd(dst, imm, src, src2)) } -inst_mcr2_cpn_cpop_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MCR2, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mcr2_cpn_cpop_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mcr2_cpn_cpop_r_crd(dst, imm, src, src2)) } -inst_mrc_cpn_cpop_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MRC, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mrc_cpn_cpop_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mrc_cpn_cpop_r_crd(dst, imm, src, src2)) } -inst_mrc2_cpn_cpop_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MRC2, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mrc2_cpn_cpop_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mrc2_cpn_cpop_r_crd(dst, imm, src, src2)) } -inst_mcrr_cpn_cpop_r_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MCRR, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mcrr_cpn_cpop_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mcrr_cpn_cpop_r_r(dst, imm, src, src2)) } -inst_mcrr2_cpn_cpop_r_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MCRR2, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mcrr2_cpn_cpop_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mcrr2_cpn_cpop_r_r(dst, imm, src, src2)) } -inst_mrrc_cpn_cpop_r_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MRRC, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mrrc_cpn_cpop_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mrrc_cpn_cpop_r_r(dst, imm, src, src2)) } -inst_mrrc2_cpn_cpop_r_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MRRC2, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2)}} } -emit_mrrc2_cpn_cpop_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register) { append(instructions, inst_mrrc2_cpn_cpop_r_r(dst, imm, src, src2)) } -inst_ldc_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_ldc_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldc_cpn_crd_mem(dst, src, src2)) } -inst_ldc2_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDC2, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_ldc2_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldc2_cpn_crd_mem(dst, src, src2)) } -inst_stc_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_stc_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stc_cpn_crd_mem(dst, src, src2)) } -inst_stc2_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STC2, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}}} } -emit_stc2_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stc2_cpn_crd_mem(dst, src, src2)) } -inst_crc32b_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32B, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_crc32b_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32b_r_r_r(dst, src, src2)) } -inst_crc32h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32H, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_crc32h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32h_r_r_r(dst, src, src2)) } -inst_crc32w_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32W, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_crc32w_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32w_r_r_r(dst, src, src2)) } -inst_crc32cb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32CB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_crc32cb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cb_r_r_r(dst, src, src2)) } -inst_crc32ch_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32CH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_crc32ch_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32ch_r_r_r(dst, src, src2)) } -inst_crc32cw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32CW, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_crc32cw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cw_r_r_r(dst, src, src2)) } -inst_vadd_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vadd_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vadd_s_s_s(dst, src, src2)) } -inst_vsub_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vsub_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsub_s_s_s(dst, src, src2)) } -inst_vmul_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmul_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmul_s_s_s(dst, src, src2)) } -inst_vdiv_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VDIV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vdiv_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vdiv_s_s_s(dst, src, src2)) } -inst_vmla_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmla_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmla_s_s_s(dst, src, src2)) } -inst_vmls_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmls_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmls_s_s_s(dst, src, src2)) } -inst_vnmul_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VNMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vnmul_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vnmul_s_s_s(dst, src, src2)) } -inst_vnmla_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VNMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vnmla_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vnmla_s_s_s(dst, src, src2)) } -inst_vnmls_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VNMLS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vnmls_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vnmls_s_s_s(dst, src, src2)) } -inst_vfma_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfma_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfma_s_s_s(dst, src, src2)) } -inst_vfms_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfms_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfms_s_s_s(dst, src, src2)) } -inst_vfnma_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFNMA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfnma_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfnma_s_s_s(dst, src, src2)) } -inst_vfnms_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFNMS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfnms_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfnms_s_s_s(dst, src, src2)) } -inst_vabs_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VABS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vabs_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vabs_s_s(dst, src)) } -inst_vneg_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VNEG, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vneg_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vneg_s_s(dst, src)) } -inst_vsqrt_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VSQRT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vsqrt_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vsqrt_s_s(dst, src)) } -inst_vcmp_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -inst_vcmp_s :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VCMP, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_vcmp_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcmp_s_s(dst, src)) } -emit_vcmp_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vcmp_s(dst)) } -inst_vcmpe_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCMPE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -inst_vcmpe_s :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VCMPE, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_vcmpe_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcmpe_s_s(dst, src)) } -emit_vcmpe_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vcmpe_s(dst)) } -inst_vcvt_d_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvt_d_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvt_d_s(dst, src)) } -inst_vcvtb_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvtb_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtb_s_s(dst, src)) } -inst_vcvtt_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvtt_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtt_s_s(dst, src)) } -inst_vcvta_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvta_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvta_s_s(dst, src)) } -inst_vcvtn_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvtn_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtn_s_s(dst, src)) } -inst_vcvtp_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvtp_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtp_s_s(dst, src)) } -inst_vcvtm_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvtm_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtm_s_s(dst, src)) } -inst_vcvtr_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvtr_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtr_s_s(dst, src)) } -inst_vmov_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -inst_vmov_s_imm8 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -inst_vmov_r_r_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_vmov_r_r_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -inst_vmov_r_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_dpr_lane(src, lane), {}, {}}} } -inst_vmov_dlane_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_reg(src), {}, {}}} } -emit_vmov_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmov_s_s(dst, src)) } -emit_vmov_s_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vmov_s_imm8(dst, imm)) } -emit_vmov_r_r_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmov_r_r_d(dst, src, src2)) } -emit_vmov_r_r_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmov_r_r_s_s(dst, src, src2, src3)) } -emit_vmov_r_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, lane: u8) { append(instructions, inst_vmov_r_dlane(dst, src, lane)) } -emit_vmov_dlane_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register) { append(instructions, inst_vmov_dlane_r(dst, lane, src)) } -inst_vmrs_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VMRS, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_vmrs_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vmrs_r(dst)) } -inst_vmsr_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VMSR, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_vmsr_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vmsr_r(dst)) } -inst_vldr_s_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vldr_s_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldr_s_mem(dst, src)) } -inst_vstr_s_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vstr_s_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstr_s_mem(dst, src)) } -inst_vldm_r_slist :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .VLDM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}}} } -emit_vldm_r_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_vldm_r_slist(dst, regs)) } -inst_vstm_r_slist :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .VSTM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}}} } -emit_vstm_r_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_vstm_r_slist(dst, regs)) } -inst_vpush_slist :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .VPUSH, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}}} } -emit_vpush_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_vpush_slist(regs)) } -inst_vpop_slist :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .VPOP, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}}} } -emit_vpop_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_vpop_slist(regs)) } -inst_vsel_s_s_s_cond :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSEL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vsel_s_s_s_cond :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vsel_s_s_s_cond(dst, src, src2, imm)) } -inst_vmaxnm_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMAXNM, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmaxnm_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmaxnm_s_s_s(dst, src, src2)) } -inst_vminnm_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMINNM, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vminnm_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vminnm_s_s_s(dst, src, src2)) } -inst_vrinta_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrinta_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrinta_s_s(dst, src)) } -inst_vrintn_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrintn_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintn_s_s(dst, src)) } -inst_vrintp_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrintp_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintp_s_s(dst, src)) } -inst_vrintm_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrintm_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintm_s_s(dst, src)) } -inst_vrintr_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrintr_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintr_s_s(dst, src)) } -inst_vrintz_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTZ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrintz_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintz_s_s(dst, src)) } -inst_vrintx_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrintx_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintx_s_s(dst, src)) } -inst_vaddl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vaddl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddl_q_d_d(dst, src, src2)) } -inst_vaddw_q_q_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDW, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vaddw_q_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddw_q_q_d(dst, src, src2)) } -inst_vsubl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUBL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vsubl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsubl_q_d_d(dst, src, src2)) } -inst_vsubw_q_q_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUBW, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vsubw_q_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsubw_q_q_d(dst, src, src2)) } -inst_vhadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VHADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vhadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vhadd_d_d_d(dst, src, src2)) } -inst_vhsub_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VHSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vhsub_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vhsub_d_d_d(dst, src, src2)) } -inst_vrhadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRHADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vrhadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrhadd_d_d_d(dst, src, src2)) } -inst_vqadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqadd_d_d_d(dst, src, src2)) } -inst_vqsub_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqsub_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqsub_d_d_d(dst, src, src2)) } -inst_vmull_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMULL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmull_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmull_q_d_d(dst, src, src2)) } -inst_vmlal_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlal_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlal_q_d_d(dst, src, src2)) } -inst_vmlsl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsl_q_d_d(dst, src, src2)) } -inst_vqdmull_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMULL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmull_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmull_q_d_d(dst, src, src2)) } -inst_vqdmlal_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmlal_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlal_q_d_d(dst, src, src2)) } -inst_vqdmlsl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmlsl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlsl_q_d_d(dst, src, src2)) } -inst_vqdmulh_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMULH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmulh_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmulh_d_d_d(dst, src, src2)) } -inst_vqrdmulh_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMULH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmulh_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmulh_d_d_d(dst, src, src2)) } -inst_vqdmulh_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMULH_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqdmulh_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmulh_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vqrdmulh_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQRDMULH_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqrdmulh_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqrdmulh_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vqrdmlah_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmlah_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlah_d_d_d(dst, src, src2)) } -inst_vqrdmlsh_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmlsh_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsh_d_d_d(dst, src, src2)) } -inst_vaba_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vaba_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaba_d_d_d(dst, src, src2)) } -inst_vabal_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vabal_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabal_q_d_d(dst, src, src2)) } -inst_vabd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vabd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabd_d_d_d(dst, src, src2)) } -inst_vabdl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABDL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vabdl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabdl_q_d_d(dst, src, src2)) } -inst_vand_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VAND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vand_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vand_d_d_d(dst, src, src2)) } -inst_vbic_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vbic_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbic_d_d_d(dst, src, src2)) } -inst_vorr_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vorr_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vorr_d_d_d(dst, src, src2)) } -inst_vorn_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VORN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vorn_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vorn_d_d_d(dst, src, src2)) } -inst_veor_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VEOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_veor_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_veor_d_d_d(dst, src, src2)) } -inst_vbsl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vbsl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbsl_d_d_d(dst, src, src2)) } -inst_vbit_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBIT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vbit_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbit_d_d_d(dst, src, src2)) } -inst_vbif_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBIF, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vbif_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbif_d_d_d(dst, src, src2)) } -inst_vmvn_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -inst_vmvn_d_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VMVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}}} } -emit_vmvn_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmvn_d_d(dst, src)) } -emit_vmvn_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vmvn_d_imm(dst, imm)) } -inst_vmovn_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmovn_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovn_d_q(dst, src)) } -inst_vqmovn_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqmovn_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovn_d_q(dst, src)) } -inst_vqmovun_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVUN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqmovun_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovun_d_q(dst, src)) } -inst_vmovl_q_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmovl_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovl_q_d(dst, src)) } -inst_vtst_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VTST, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vtst_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vtst_d_d_d(dst, src, src2)) } -inst_vceq_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCEQ, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vceq_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vceq_d_d_d(dst, src, src2)) } -inst_vcge_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCGE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vcge_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcge_d_d_d(dst, src, src2)) } -inst_vcgt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCGT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vcgt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcgt_d_d_d(dst, src, src2)) } -inst_vcle_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCLE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vcle_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcle_d_d_d(dst, src, src2)) } -inst_vclt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCLT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vclt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vclt_d_d_d(dst, src, src2)) } -inst_vacge_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACGE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vacge_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vacge_d_d_d(dst, src, src2)) } -inst_vacgt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACGT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vacgt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vacgt_d_d_d(dst, src, src2)) } -inst_vacle_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACLE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vacle_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vacle_d_d_d(dst, src, src2)) } -inst_vaclt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACLT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vaclt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaclt_d_d_d(dst, src, src2)) } -inst_vmax_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmax_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmax_d_d_d(dst, src, src2)) } -inst_vmin_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMIN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmin_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmin_d_d_d(dst, src, src2)) } -inst_vpmax_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPMAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vpmax_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpmax_d_d_d(dst, src, src2)) } -inst_vpmin_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPMIN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vpmin_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpmin_d_d_d(dst, src, src2)) } -inst_vpadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vpadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpadd_d_d_d(dst, src, src2)) } -inst_vpaddl_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VPADDL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vpaddl_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vpaddl_d_d(dst, src)) } -inst_vpadal_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VPADAL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vpadal_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vpadal_d_d(dst, src)) } -inst_vrecpe_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRECPE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrecpe_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrecpe_d_d(dst, src)) } -inst_vrecps_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRECPS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vrecps_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrecps_d_d_d(dst, src, src2)) } -inst_vrsqrte_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRSQRTE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrsqrte_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrsqrte_d_d(dst, src)) } -inst_vrsqrts_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRSQRTS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vrsqrts_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrsqrts_d_d_d(dst, src, src2)) } -inst_vshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vshl_d_d_d(dst, src, src2)) } -inst_vshr_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshr_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshr_d_d_imm(dst, src, imm)) } -inst_vsra_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSRA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vsra_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vsra_d_d_imm(dst, src, imm)) } -inst_vrshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vrshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrshl_d_d_d(dst, src, src2)) } -inst_vrshr_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vrshr_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshr_d_d_imm(dst, src, imm)) } -inst_vrsra_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSRA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vrsra_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrsra_d_d_imm(dst, src, imm)) } -inst_vsli_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSLI, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vsli_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vsli_d_d_imm(dst, src, imm)) } -inst_vsri_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSRI, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vsri_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vsri_d_d_imm(dst, src, imm)) } -inst_vqshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_vqshl_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqshl_d_d_d(dst, src, src2)) } -emit_vqshl_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshl_d_d_imm(dst, src, imm)) } -inst_vqshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrn_d_q_imm(dst, src, imm)) } -inst_vqshrun_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRUN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshrun_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrun_d_q_imm(dst, src, imm)) } -inst_vqrshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrshl_d_d_d(dst, src, src2)) } -inst_vqrshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqrshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrn_d_q_imm(dst, src, imm)) } -inst_vqrshrun_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRUN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqrshrun_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrun_d_q_imm(dst, src, imm)) } -inst_vshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshrn_d_q_imm(dst, src, imm)) } -inst_vrshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vrshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshrn_d_q_imm(dst, src, imm)) } -inst_vshll_q_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -inst_vshll_q_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VSHLL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vshll_q_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshll_q_d_imm(dst, src, imm)) } -emit_vshll_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vshll_q_d(dst, src)) } -inst_vcls_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcls_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcls_d_d(dst, src)) } -inst_vclz_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLZ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vclz_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vclz_d_d(dst, src)) } -inst_vcnt_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCNT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcnt_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcnt_d_d(dst, src)) } -inst_vpadd_f_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPADD_F, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vpadd_f_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpadd_f_d_d_d(dst, src, src2)) } -inst_vrecpe_f_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRECPE_F, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrecpe_f_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrecpe_f_d_d(dst, src)) } -inst_vrsqrte_f_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRSQRTE_F, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrsqrte_f_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrsqrte_f_d_d(dst, src)) } -inst_vrev16_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VREV16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrev16_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrev16_d_d(dst, src)) } -inst_vrev32_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VREV32, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrev32_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrev32_d_d(dst, src)) } -inst_vrev64_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VREV64, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vrev64_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrev64_d_d(dst, src)) } -inst_vext_d_d_d_imm4 :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VEXT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vext_d_d_d_imm4 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vext_d_d_d_imm4(dst, src, src2, imm)) } -inst_vtbl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VTBL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_vtbl_d_dlist_d :: #force_inline proc "contextless" (dst: Register, regs: u16, src: Register) -> Instruction { return Instruction{mnemonic = .VTBL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), op_reg(src), {}}} } -emit_vtbl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vtbl_d_d_d(dst, src, src2)) } -emit_vtbl_d_dlist_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16, src: Register) { append(instructions, inst_vtbl_d_dlist_d(dst, regs, src)) } -inst_vtbx_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VTBX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -inst_vtbx_d_dlist_d :: #force_inline proc "contextless" (dst: Register, regs: u16, src: Register) -> Instruction { return Instruction{mnemonic = .VTBX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), op_reg(src), {}}} } -emit_vtbx_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vtbx_d_d_d(dst, src, src2)) } -emit_vtbx_d_dlist_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16, src: Register) { append(instructions, inst_vtbx_d_dlist_d(dst, regs, src)) } -inst_vtrn_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VTRN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vtrn_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vtrn_d_d(dst, src)) } -inst_vuzp_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VUZP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vuzp_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vuzp_d_d(dst, src)) } -inst_vzip_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VZIP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vzip_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vzip_d_d(dst, src)) } -inst_vdup_d_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VDUP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -inst_vdup_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VDUP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_dpr_lane(src, lane), {}, {}}} } -emit_vdup_d_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vdup_d_r(dst, src)) } -emit_vdup_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, lane: u8) { append(instructions, inst_vdup_d_dlane(dst, src, lane)) } -inst_vswp_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VSWP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vswp_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vswp_d_d(dst, src)) } -inst_vmov_lane_dlane_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_reg(src), {}, {}}} } -emit_vmov_lane_dlane_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register) { append(instructions, inst_vmov_lane_dlane_r(dst, lane, src)) } -inst_vld1_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -inst_vld1_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}}} } -emit_vld1_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld1_dlist_mem(regs, src)) } -emit_vld1_dlane_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Memory) { append(instructions, inst_vld1_dlane_mem(dst, lane, src)) } -inst_vld2_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD2, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld2_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld2_dlist_mem(regs, src)) } -inst_vld3_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD3, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld3_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld3_dlist_mem(regs, src)) } -inst_vld4_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD4, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld4_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld4_dlist_mem(regs, src)) } -inst_vst1_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -inst_vst1_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VST1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}}} } -emit_vst1_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst1_dlist_mem(regs, src)) } -emit_vst1_dlane_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Memory) { append(instructions, inst_vst1_dlane_mem(dst, lane, src)) } -inst_vst2_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST2, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst2_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst2_dlist_mem(regs, src)) } -inst_vst3_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST3, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst3_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst3_dlist_mem(regs, src)) } -inst_vst4_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST4, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst4_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst4_dlist_mem(regs, src)) } -inst_aese_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_aese_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aese_q_q(dst, src)) } -inst_aesd_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_aesd_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesd_q_q(dst, src)) } -inst_aesmc_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESMC, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_aesmc_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesmc_q_q(dst, src)) } -inst_aesimc_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESIMC, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_aesimc_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesimc_q_q(dst, src)) } -inst_sha1h_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA1H, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sha1h_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1h_q_q(dst, src)) } -inst_sha1su0_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU0, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha1su0_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1su0_q_q_q(dst, src, src2)) } -inst_sha1su1_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sha1su1_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1su1_q_q(dst, src)) } -inst_sha1c_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1C, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha1c_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1c_q_q_q(dst, src, src2)) } -inst_sha1m_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1M, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha1m_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1m_q_q_q(dst, src, src2)) } -inst_sha1p_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1P, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha1p_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1p_q_q_q(dst, src, src2)) } -inst_sha256h_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha256h_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h_q_q_q(dst, src, src2)) } -inst_sha256h2_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H2, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha256h2_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h2_q_q_q(dst, src, src2)) } -inst_sha256su0_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU0, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_sha256su0_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha256su0_q_q(dst, src)) } -inst_sha256su1_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU1, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_sha256su1_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256su1_q_q_q(dst, src, src2)) } -inst_vjcvt_s_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VJCVT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vjcvt_s_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vjcvt_s_d(dst, src)) } -inst_vsdot_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vsdot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsdot_d_d_d(dst, src, src2)) } -inst_vudot_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VUDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vudot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vudot_d_d_d(dst, src, src2)) } -inst_vsdot_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VSDOT_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vsdot_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vsdot_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vudot_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VUDOT_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vudot_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vudot_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vcvt_bf16_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVT_BF16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcvt_bf16_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvt_bf16_d_q(dst, src)) } -inst_vdot_bf16_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VDOT_BF16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vdot_bf16_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vdot_bf16_d_d_d(dst, src, src2)) } -inst_vfma_bf16_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMA_BF16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfma_bf16_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfma_bf16_q_q_q(dst, src, src2)) } -inst_vmmla_bf16_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMMLA_BF16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmmla_bf16_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmmla_bf16_q_q_q(dst, src, src2)) } -inst_vfmal_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfmal_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfmal_d_d_d(dst, src, src2)) } -inst_vfmsl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vfmsl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfmsl_d_d_d(dst, src, src2)) } -inst_vcmla_d_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCMLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vcmla_d_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vcmla_d_d_d_imm(dst, src, src2, imm)) } -inst_vcadd_d_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCADD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vcadd_d_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vcadd_d_d_d_imm(dst, src, src2, imm)) } -inst_vcmla_lane_d_d_dlane_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .VCMLA_LANE, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), op_imm(imm)}} } -emit_vcmla_lane_d_d_dlane_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8, imm: i64) { append(instructions, inst_vcmla_lane_d_d_dlane_imm(dst, src, src2, lane, imm)) } -inst_vsmmla_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSMMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vsmmla_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsmmla_q_q_q(dst, src, src2)) } -inst_vummla_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VUMMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -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), {}}} } -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)) } -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), {}}} } -emit_vusdot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vusdot_d_d_d(dst, src, src2)) } -inst_vsudot_lane_q_q_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VSUDOT_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vsudot_lane_q_q_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vsudot_lane_q_q_dlane(dst, src, src2, lane)) } -inst_vusdot_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VUSDOT_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vusdot_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vusdot_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vmul_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMUL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vmul_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmul_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vmla_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLA_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vmla_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmla_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vmls_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLS_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vmls_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmls_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vmull_lane_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMULL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vmull_lane_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmull_lane_q_d_dlane(dst, src, src2, lane)) } -inst_vmlal_lane_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLAL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vmlal_lane_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmlal_lane_q_d_dlane(dst, src, src2, lane)) } -inst_vmlsl_lane_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLSL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vmlsl_lane_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmlsl_lane_q_d_dlane(dst, src, src2, lane)) } -inst_vqdmull_lane_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMULL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqdmull_lane_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmull_lane_q_d_dlane(dst, src, src2, lane)) } -inst_vqdmlal_lane_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMLAL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqdmlal_lane_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmlal_lane_q_d_dlane(dst, src, src2, lane)) } -inst_vqdmlsl_lane_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMLSL_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqdmlsl_lane_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmlsl_lane_q_d_dlane(dst, src, src2, lane)) } -inst_vfma_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VFMA_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vfma_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vfma_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vfms_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VFMS_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vfms_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vfms_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vqrdmlah_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQRDMLAH_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqrdmlah_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqrdmlah_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vqrdmlsh_lane_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQRDMLSH_LANE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}}} } -emit_vqrdmlsh_lane_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqrdmlsh_lane_d_d_dlane(dst, src, src2, lane)) } -inst_vqabs_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQABS, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqabs_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqabs_q_q(dst, src)) } -inst_vqneg_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQNEG, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqneg_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqneg_q_q(dst, src)) } -inst_vmovx_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVX, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmovx_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovx_s_s(dst, src)) } -inst_vins_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VINS, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vins_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vins_s_s(dst, src)) } -inst_vldrb_gather_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRB_GATHER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vldrb_gather_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrb_gather_q_mem_q(dst, src, src2)) } -inst_vldrh_gather_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRH_GATHER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vldrh_gather_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrh_gather_q_mem_q(dst, src, src2)) } -inst_vldrw_gather_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRW_GATHER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vldrw_gather_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrw_gather_q_mem_q(dst, src, src2)) } -inst_vldrd_gather_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRD_GATHER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vldrd_gather_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrd_gather_q_mem_q(dst, src, src2)) } -inst_vstrb_scatter_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRB_SCATTER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vstrb_scatter_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrb_scatter_q_mem_q(dst, src, src2)) } -inst_vstrh_scatter_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRH_SCATTER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vstrh_scatter_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrh_scatter_q_mem_q(dst, src, src2)) } -inst_vstrw_scatter_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRW_SCATTER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vstrw_scatter_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrw_scatter_q_mem_q(dst, src, src2)) } -inst_vstrd_scatter_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRD_SCATTER, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}}} } -emit_vstrd_scatter_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrd_scatter_q_mem_q(dst, src, src2)) } -inst_vceq_z_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCEQ_Z, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vceq_z_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vceq_z_d_d(dst, src)) } -inst_vcge_z_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCGE_Z, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcge_z_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcge_z_d_d(dst, src)) } -inst_vcgt_z_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCGT_Z, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcgt_z_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcgt_z_d_d(dst, src)) } -inst_vcle_z_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLE_Z, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vcle_z_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcle_z_d_d(dst, src)) } -inst_vclt_z_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLT_Z, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vclt_z_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vclt_z_d_d(dst, src)) } -inst_vld2r_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD2R, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld2r_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld2r_dlist_mem(regs, src)) } -inst_vld3r_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD3R, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld3r_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld3r_dlist_mem(regs, src)) } -inst_vld4r_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD4R, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld4r_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld4r_dlist_mem(regs, src)) } -inst_vld1_lane_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}}} } -emit_vld1_lane_dlane_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Memory) { append(instructions, inst_vld1_lane_dlane_mem(dst, lane, src)) } -inst_vld2_lane_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD2_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld2_lane_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld2_lane_dlist_mem(regs, src)) } -inst_vld3_lane_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD3_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld3_lane_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld3_lane_dlist_mem(regs, src)) } -inst_vld4_lane_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD4_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld4_lane_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld4_lane_dlist_mem(regs, src)) } -inst_vst1_lane_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VST1_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}}} } -emit_vst1_lane_dlane_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Memory) { append(instructions, inst_vst1_lane_dlane_mem(dst, lane, src)) } -inst_vst2_lane_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST2_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst2_lane_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst2_lane_dlist_mem(regs, src)) } -inst_vst3_lane_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST3_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst3_lane_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst3_lane_dlist_mem(regs, src)) } -inst_vst4_lane_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST4_LANE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst4_lane_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst4_lane_dlist_mem(regs, src)) } -inst_vcvt_fixed_s_s_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCVT_FIXED, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vcvt_fixed_s_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vcvt_fixed_s_s_imm(dst, src, imm)) } -inst_it_cond_imm4 :: #force_inline proc "contextless" (imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .IT, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_imm(imm), op_imm(imm2), {}, {}}} } -emit_it_cond_imm4 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) { append(instructions, inst_it_cond_imm4(imm, imm2)) } -inst_tt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_tt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tt_r_r(dst, src)) } -inst_ttt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TTT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_ttt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ttt_r_r(dst, src)) } -inst_tta_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TTA, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_tta_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tta_r_r(dst, src)) } -inst_ttat_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TTAT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_ttat_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ttat_r_r(dst, src)) } -inst_sg_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SG, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_sg_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sg_none()) } -inst_bxns_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BXNS, operand_count = 1, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), {}, {}, {}}} } -emit_bxns_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_bxns_r(dst)) } -inst_blxns_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BLXNS, operand_count = 1, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), {}, {}, {}}} } -emit_blxns_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blxns_r(dst)) } -inst_pac_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .PAC, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_pac_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pac_none()) } -inst_pacbti_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .PACBTI, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_pacbti_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacbti_none()) } -inst_aut_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .AUT, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_aut_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_aut_none()) } -inst_autg_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .AUTG, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_autg_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_autg_r_r_r(dst, src, src2)) } -inst_bti_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .BTI, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_bti_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_none()) } -inst_wls_r_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .WLS, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_rel_offset(offset), {}, {}}} } -emit_wls_r_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_wls_r_rel(dst, offset)) } -inst_wlstp_r_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .WLSTP, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_rel_offset(offset), {}, {}}} } -emit_wlstp_r_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_wlstp_r_rel(dst, offset)) } -inst_dls_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .DLS, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_dls_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dls_r(dst)) } -inst_dlstp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .DLSTP, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_dlstp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dlstp_r(dst)) } -inst_le_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .LE, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}}} } -emit_le_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_le_rel(offset)) } -inst_letp_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .LETP, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}}} } -emit_letp_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_letp_rel(offset)) } -inst_lctp_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .LCTP, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_lctp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lctp_none()) } -inst_bf_rel_rel :: #force_inline proc "contextless" (offset: i64, offset2: i64) -> Instruction { return Instruction{mnemonic = .BF, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_rel_offset(offset2), {}, {}}} } -emit_bf_rel_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, offset2: i64) { append(instructions, inst_bf_rel_rel(offset, offset2)) } -inst_bfi_br_rel_r :: #force_inline proc "contextless" (offset: i64, src: Register) -> Instruction { return Instruction{mnemonic = .BFI_BR, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_reg(src), {}, {}}} } -emit_bfi_br_rel_r :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, src: Register) { append(instructions, inst_bfi_br_rel_r(offset, src)) } -inst_bfl_rel_rel :: #force_inline proc "contextless" (offset: i64, offset2: i64) -> Instruction { return Instruction{mnemonic = .BFL, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_rel_offset(offset2), {}, {}}} } -emit_bfl_rel_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, offset2: i64) { append(instructions, inst_bfl_rel_rel(offset, offset2)) } -inst_bflx_rel_r :: #force_inline proc "contextless" (offset: i64, src: Register) -> Instruction { return Instruction{mnemonic = .BFLX, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_reg(src), {}, {}}} } -emit_bflx_rel_r :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, src: Register) { append(instructions, inst_bflx_rel_r(offset, src)) } -inst_bfcsel_rel_rel_imm4 :: #force_inline proc "contextless" (offset: i64, offset2: i64, imm: i64) -> Instruction { return Instruction{mnemonic = .BFCSEL, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_rel_offset(offset2), op_imm(imm), {}}} } -emit_bfcsel_rel_rel_imm4 :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, offset2: i64, imm: i64) { append(instructions, inst_bfcsel_rel_rel_imm4(offset, offset2, imm)) } -inst_cx1_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}}} } -emit_cx1_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1_cp_r_imm(imm, src, imm2)) } -inst_cx1a_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1A, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}}} } -emit_cx1a_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1a_cp_r_imm(imm, src, imm2)) } -inst_cx1d_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1D, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}}} } -emit_cx1d_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1d_cp_r_imm(imm, src, imm2)) } -inst_cx1da_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1DA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}}} } -emit_cx1da_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1da_cp_r_imm(imm, src, imm2)) } -inst_cx2_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2)}} } -emit_cx2_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2_cp_r_r_imm(imm, src, src2, imm2)) } -inst_cx2a_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2)}} } -emit_cx2a_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2a_cp_r_r_imm(imm, src, src2, imm2)) } -inst_cx2d_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2D, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2)}} } -emit_cx2d_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2d_cp_r_r_imm(imm, src, src2, imm2)) } -inst_cx2da_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2DA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2)}} } -emit_cx2da_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2da_cp_r_r_imm(imm, src, src2, imm2)) } -inst_cx3_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_cx3_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3_cp_r_r_r(imm, src, src2, src3)) } -inst_cx3a_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_cx3a_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3a_cp_r_r_r(imm, src, src2, src3)) } -inst_cx3d_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3D, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_cx3d_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3d_cp_r_r_r(imm, src, src2, src3)) } -inst_cx3da_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3DA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_cx3da_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3da_cp_r_r_r(imm, src, src2, src3)) } -inst_vcx1_cp_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX1, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}}} } -emit_vcx1_cp_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_vcx1_cp_s_imm(imm, src, imm2)) } -inst_vcx1a_cp_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX1A, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}}} } -emit_vcx1a_cp_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_vcx1a_cp_s_imm(imm, src, imm2)) } -inst_vcx2_cp_s_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX2, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2)}} } -emit_vcx2_cp_s_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_vcx2_cp_s_s_imm(imm, src, src2, imm2)) } -inst_vcx2a_cp_s_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX2A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2)}} } -emit_vcx2a_cp_s_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_vcx2a_cp_s_s_imm(imm, src, src2, imm2)) } -inst_vcx3_cp_s_s_s :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VCX3, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vcx3_cp_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_vcx3_cp_s_s_s(imm, src, src2, src3)) } -inst_vcx3a_cp_s_s_s :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VCX3A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vcx3a_cp_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_vcx3a_cp_s_s_s(imm, src, src2, src3)) } -inst_vpt_vpt_cond_q_q :: #force_inline proc "contextless" (imm: i64, imm2: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPT, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_imm(imm2), op_reg(src), op_reg(src2)}} } -emit_vpt_vpt_cond_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, src: Register, src2: Register) { append(instructions, inst_vpt_vpt_cond_q_q(imm, imm2, src, src2)) } -inst_vpst_vpt :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .VPST, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}}} } -emit_vpst_vpt :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_vpst_vpt(imm)) } -inst_vpsel_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPSEL, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vpsel_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpsel_q_q_q(dst, src, src2)) } -inst_vpnot_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .VPNOT, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}}} } -emit_vpnot_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vpnot_none()) } -inst_vctp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VCTP, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}}} } -emit_vctp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vctp_r(dst)) } -inst_vaddv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VADDV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vaddv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vaddv_r_q(dst, src)) } -inst_vaddva_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VADDVA, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vaddva_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vaddva_r_q(dst, src)) } -inst_vaddlv_r_r_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDLV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vaddlv_r_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddlv_r_r_q(dst, src, src2)) } -inst_vaddlva_r_r_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDLVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vaddlva_r_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddlva_r_r_q(dst, src, src2)) } -inst_vmaxv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmaxv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxv_r_q(dst, src)) } -inst_vmaxav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmaxav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxav_r_q(dst, src)) } -inst_vminv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vminv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminv_r_q(dst, src)) } -inst_vminav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vminav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminav_r_q(dst, src)) } -inst_vmaxnmv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXNMV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmaxnmv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxnmv_r_q(dst, src)) } -inst_vmaxnmav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXNMAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmaxnmav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxnmav_r_q(dst, src)) } -inst_vminnmv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINNMV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vminnmv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminnmv_r_q(dst, src)) } -inst_vminnmav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINNMAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vminnmav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminnmav_r_q(dst, src)) } -inst_vabav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vabav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabav_r_q_q(dst, src, src2)) } -inst_vmladav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmladav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladav_r_q_q(dst, src, src2)) } -inst_vmladava_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmladava_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladava_r_q_q(dst, src, src2)) } -inst_vmladavx_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAVX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmladavx_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladavx_r_q_q(dst, src, src2)) } -inst_vmladavax_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAVAX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmladavax_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladavax_r_q_q(dst, src, src2)) } -inst_vmlaldav_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAV, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlaldav_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldav_r_r_q_q(dst, src, src2, src3)) } -inst_vmlaldava_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAVA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlaldava_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldava_r_r_q_q(dst, src, src2, src3)) } -inst_vmlaldavx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAVX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlaldavx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldavx_r_r_q_q(dst, src, src2, src3)) } -inst_vmlaldavax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAVAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlaldavax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldavax_r_r_q_q(dst, src, src2, src3)) } -inst_vmlsdav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsdav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdav_r_q_q(dst, src, src2)) } -inst_vmlsdava_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsdava_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdava_r_q_q(dst, src, src2)) } -inst_vmlsdavx_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAVX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsdavx_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdavx_r_q_q(dst, src, src2)) } -inst_vmlsdavax_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAVAX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsdavax_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdavax_r_q_q(dst, src, src2)) } -inst_vmlsldav_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAV, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlsldav_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldav_r_r_q_q(dst, src, src2, src3)) } -inst_vmlsldava_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAVA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlsldava_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldava_r_r_q_q(dst, src, src2, src3)) } -inst_vmlsldavx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAVX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlsldavx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldavx_r_r_q_q(dst, src, src2, src3)) } -inst_vmlsldavax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAVAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vmlsldavax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldavax_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlaldavh_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVH, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlaldavh_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavh_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlaldavha_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVHA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlaldavha_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavha_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlaldavhx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVHX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlaldavhx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavhx_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlaldavhax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVHAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlaldavhax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavhax_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlsldavh_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVH, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlsldavh_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavh_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlsldavha_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVHA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlsldavha_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavha_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlsldavhx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVHX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlsldavhx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavhx_r_r_q_q(dst, src, src2, src3)) } -inst_vrmlsldavhax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVHAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3)}} } -emit_vrmlsldavhax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavhax_r_r_q_q(dst, src, src2, src3)) } -inst_vmlav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlav_r_q_q(dst, src, src2)) } -inst_vmlava_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLAVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlava_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlava_r_q_q(dst, src, src2)) } -inst_vmlsv_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsv_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsv_r_q_q(dst, src, src2)) } -inst_vmlsva_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlsva_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsva_r_q_q(dst, src, src2)) } -inst_vcmul_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCMUL, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vcmul_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcmul_q_q_q(dst, src, src2)) } -inst_vhcadd_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VHCADD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vhcadd_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vhcadd_q_q_q(dst, src, src2)) } -inst_vbrsr_q_q_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBRSR, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vbrsr_q_q_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbrsr_q_q_r(dst, src, src2)) } -inst_vshlc_q_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLC, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshlc_q_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshlc_q_r_imm5(dst, src, imm)) } -inst_vddup_q_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VDDUP, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vddup_q_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vddup_q_r_imm(dst, src, imm)) } -inst_vidup_q_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VIDUP, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vidup_q_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vidup_q_r_imm(dst, src, imm)) } -inst_vdwdup_q_r_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VDWDUP, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vdwdup_q_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vdwdup_q_r_r_imm(dst, src, src2, imm)) } -inst_viwdup_q_r_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VIWDUP, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_viwdup_q_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_viwdup_q_r_r_imm(dst, src, src2, imm)) } -inst_vmovnb_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVNB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmovnb_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovnb_q_q(dst, src)) } -inst_vmovnt_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVNT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vmovnt_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovnt_q_q(dst, src)) } -inst_vqmovnb_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVNB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqmovnb_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovnb_q_q(dst, src)) } -inst_vqmovnt_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVNT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqmovnt_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovnt_q_q(dst, src)) } -inst_vqmovunb_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVUNB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqmovunb_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovunb_q_q(dst, src)) } -inst_vqmovunt_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVUNT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}}} } -emit_vqmovunt_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovunt_q_q(dst, src)) } -inst_vshllb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLLB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshllb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshllb_q_q_imm5(dst, src, imm)) } -inst_vshllt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLLT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshllt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshllt_q_q_imm5(dst, src, imm)) } -inst_vmullb_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMULLB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmullb_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmullb_q_q_q(dst, src, src2)) } -inst_vmullt_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMULLT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmullt_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmullt_q_q_q(dst, src, src2)) } -inst_vmlalb_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLALB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlalb_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlalb_q_q_q(dst, src, src2)) } -inst_vmlalt_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLALT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlalt_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlalt_q_q_q(dst, src, src2)) } -inst_vmlslb_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSLB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlslb_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlslb_q_q_q(dst, src, src2)) } -inst_vmlslt_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSLT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vmlslt_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlslt_q_q_q(dst, src, src2)) } -inst_vshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshrnb_q_q_imm5(dst, src, imm)) } -inst_vshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshrnt_q_q_imm5(dst, src, imm)) } -inst_vrshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vrshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshrnb_q_q_imm5(dst, src, imm)) } -inst_vrshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vrshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshrnt_q_q_imm5(dst, src, imm)) } -inst_vqshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrnb_q_q_imm5(dst, src, imm)) } -inst_vqshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrnt_q_q_imm5(dst, src, imm)) } -inst_vqrshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqrshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrnb_q_q_imm5(dst, src, imm)) } -inst_vqrshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqrshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrnt_q_q_imm5(dst, src, imm)) } -inst_vqshrunb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRUNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshrunb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrunb_q_q_imm5(dst, src, imm)) } -inst_vqshrunt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRUNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqshrunt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrunt_q_q_imm5(dst, src, imm)) } -inst_vqrshrunb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRUNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqrshrunb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrunb_q_q_imm5(dst, src, imm)) } -inst_vqrshrunt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRUNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}}} } -emit_vqrshrunt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrunt_q_q_imm5(dst, src, imm)) } -inst_vmov_q_r_qlane_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV_Q_R, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_qpr_lane(dst, lane), op_reg(src), {}, {}}} } -emit_vmov_q_r_qlane_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register) { append(instructions, inst_vmov_q_r_qlane_r(dst, lane, src)) } -inst_vmov_r_q_r_qlane :: #force_inline proc "contextless" (dst: Register, src: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMOV_R_Q, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_qpr_lane(src, lane), {}, {}}} } -emit_vmov_r_q_r_qlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, lane: u8) { append(instructions, inst_vmov_r_q_r_qlane(dst, src, lane)) } -inst_vmov_2gpr_q_qlane_qlane_r_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register, lane2: u8, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMOV_2GPR_Q, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_qpr_lane(dst, lane), op_qpr_lane(src, lane2), op_reg(src2), op_reg(src3)}} } -emit_vmov_2gpr_q_qlane_qlane_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register, lane2: u8, src2: Register, src3: Register) { append(instructions, inst_vmov_2gpr_q_qlane_qlane_r_r(dst, lane, src, lane2, src2, src3)) } -inst_vqdmladh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLADH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmladh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmladh_q_q_q(dst, src, src2)) } -inst_vqdmladhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLADHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmladhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmladhx_q_q_q(dst, src, src2)) } -inst_vqdmlsdh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLSDH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmlsdh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlsdh_q_q_q(dst, src, src2)) } -inst_vqdmlsdhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLSDHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqdmlsdhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlsdhx_q_q_q(dst, src, src2)) } -inst_vqrdmladh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLADH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmladh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmladh_q_q_q(dst, src, src2)) } -inst_vqrdmladhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLADHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmladhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmladhx_q_q_q(dst, src, src2)) } -inst_vqrdmlsdh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSDH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmlsdh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsdh_q_q_q(dst, src, src2)) } -inst_vqrdmlsdhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSDHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}}} } -emit_vqrdmlsdhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsdhx_q_q_q(dst, src, src2)) } -inst_vhcadd_sat_q_q_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VHCADD_SAT, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vhcadd_sat_q_q_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vhcadd_sat_q_q_q_imm(dst, src, src2, imm)) } -inst_vcmla_mve_q_q_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCMLA_MVE, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm)}} } -emit_vcmla_mve_q_q_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vcmla_mve_q_q_q_imm(dst, src, src2, imm)) } -inst_vldrb_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vldrb_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrb_q_mem(dst, src)) } -inst_vldrh_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vldrh_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrh_q_mem(dst, src)) } -inst_vldrw_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRW, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vldrw_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrw_q_mem(dst, src)) } -inst_vldrd_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRD, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vldrd_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrd_q_mem(dst, src)) } -inst_vstrb_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vstrb_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrb_q_mem(dst, src)) } -inst_vstrh_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vstrh_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrh_q_mem(dst, src)) } -inst_vstrw_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRW, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vstrw_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrw_q_mem(dst, src)) } -inst_vstrd_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRD, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}}} } -emit_vstrd_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrd_q_mem(dst, src)) } -inst_vld20_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD20, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld20_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld20_qlist_mem(regs, src)) } -inst_vld21_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD21, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld21_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld21_qlist_mem(regs, src)) } -inst_vld40_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD40, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld40_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld40_qlist_mem(regs, src)) } -inst_vld41_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD41, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld41_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld41_qlist_mem(regs, src)) } -inst_vld42_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD42, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld42_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld42_qlist_mem(regs, src)) } -inst_vld43_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD43, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vld43_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld43_qlist_mem(regs, src)) } -inst_vst20_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST20, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst20_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst20_qlist_mem(regs, src)) } -inst_vst21_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST21, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst21_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst21_qlist_mem(regs, src)) } -inst_vst40_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST40, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst40_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst40_qlist_mem(regs, src)) } -inst_vst41_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST41, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst41_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst41_qlist_mem(regs, src)) } -inst_vst42_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST42, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst42_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst42_qlist_mem(regs, src)) } -inst_vst43_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST43, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}}} } -emit_vst43_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst43_qlist_mem(regs, src)) } +inst_and_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_and_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_and_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_and_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_and_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_and_r_r_immm(dst, src, imm)) } +emit_and_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_and_r_r_rsh(dst, src, src2, shift, amount)) } +emit_and_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_and_r_r_rsr(dst, src, src2, shift, rs)) } +emit_and_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_and_rlo_rlo(dst, src)) } +inst_eor_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_eor_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_eor_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_eor_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_eor_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_eor_r_r_immm(dst, src, imm)) } +emit_eor_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_eor_r_r_rsh(dst, src, src2, shift, amount)) } +emit_eor_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_eor_r_r_rsr(dst, src, src2, shift, rs)) } +emit_eor_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_eor_rlo_rlo(dst, src)) } +inst_sub_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_sub_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_sub_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_sub_rlo_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_sub_rlo_imm8 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_sub_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sub_r_r_immm(dst, src, imm)) } +emit_sub_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_sub_r_r_rsh(dst, src, src2, shift, amount)) } +emit_sub_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_sub_r_r_rsr(dst, src, src2, shift, rs)) } +emit_sub_rlo_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_rlo_rlo_rlo(dst, src, src2)) } +emit_sub_rlo_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_sub_rlo_imm8(dst, imm)) } +inst_rsb_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_rsb_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .RSB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_rsb_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .RSB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +emit_rsb_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rsb_r_r_immm(dst, src, imm)) } +emit_rsb_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_rsb_r_r_rsh(dst, src, src2, shift, amount)) } +emit_rsb_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_rsb_r_r_rsr(dst, src, src2, shift, rs)) } +inst_add_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_add_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_add_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_add_rlo_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_add_rlo_imm8 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_add_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_add_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_add_r_r_immm(dst, src, imm)) } +emit_add_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_add_r_r_rsh(dst, src, src2, shift, amount)) } +emit_add_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_add_r_r_rsr(dst, src, src2, shift, rs)) } +emit_add_rlo_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_rlo_rlo_rlo(dst, src, src2)) } +emit_add_rlo_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_add_rlo_imm8(dst, imm)) } +emit_add_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_add_r_r(dst, src)) } +inst_adc_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_adc_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_adc_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_adc_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADC, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_adc_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_adc_r_r_immm(dst, src, imm)) } +emit_adc_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_adc_r_r_rsh(dst, src, src2, shift, amount)) } +emit_adc_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_adc_r_r_rsr(dst, src, src2, shift, rs)) } +emit_adc_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_adc_rlo_rlo(dst, src)) } +inst_sbc_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_sbc_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_sbc_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_sbc_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SBC, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sbc_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sbc_r_r_immm(dst, src, imm)) } +emit_sbc_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_sbc_r_r_rsh(dst, src, src2, shift, amount)) } +emit_sbc_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_sbc_r_r_rsr(dst, src, src2, shift, rs)) } +emit_sbc_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sbc_rlo_rlo(dst, src)) } +inst_rsc_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_rsc_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .RSC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_rsc_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .RSC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +emit_rsc_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rsc_r_r_immm(dst, src, imm)) } +emit_rsc_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_rsc_r_r_rsh(dst, src, src2, shift, amount)) } +emit_rsc_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_rsc_r_r_rsr(dst, src, src2, shift, rs)) } +inst_tst_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_tst_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}, {}, {}}} } +inst_tst_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}, {}, {}}} } +inst_tst_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_tst_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_tst_r_immm(dst, imm)) } +emit_tst_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_tst_r_rsh(dst, src, shift, amount)) } +emit_tst_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_tst_r_rsr(dst, src, shift, rs)) } +emit_tst_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tst_rlo_rlo(dst, src)) } +inst_teq_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .TEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_teq_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .TEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}, {}, {}}} } +inst_teq_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .TEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}, {}, {}}} } +emit_teq_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_teq_r_immm(dst, imm)) } +emit_teq_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_teq_r_rsh(dst, src, shift, amount)) } +emit_teq_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_teq_r_rsr(dst, src, shift, rs)) } +inst_cmp_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_cmp_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}, {}, {}}} } +inst_cmp_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}, {}, {}}} } +inst_cmp_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_cmp_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmp_r_immm(dst, imm)) } +emit_cmp_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_cmp_r_rsh(dst, src, shift, amount)) } +emit_cmp_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_cmp_r_rsr(dst, src, shift, rs)) } +emit_cmp_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmp_rlo_rlo(dst, src)) } +inst_cmn_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_cmn_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}, {}, {}}} } +inst_cmn_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}, {}, {}}} } +inst_cmn_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_cmn_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmn_r_immm(dst, imm)) } +emit_cmn_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_cmn_r_rsh(dst, src, shift, amount)) } +emit_cmn_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_cmn_r_rsr(dst, src, shift, rs)) } +emit_cmn_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmn_rlo_rlo(dst, src)) } +inst_orr_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_orr_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_orr_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_orr_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_orr_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_orr_r_r_immm(dst, src, imm)) } +emit_orr_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_orr_r_r_rsh(dst, src, src2, shift, amount)) } +emit_orr_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_orr_r_r_rsr(dst, src, src2, shift, rs)) } +emit_orr_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_orr_rlo_rlo(dst, src)) } +inst_mov_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_mov_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}, {}, {}}} } +inst_mov_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}, {}, {}}} } +inst_mov_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_mov_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mov_r_immm(dst, imm)) } +emit_mov_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_mov_r_rsh(dst, src, shift, amount)) } +emit_mov_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_mov_r_rsr(dst, src, shift, rs)) } +emit_mov_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_r_r(dst, src)) } +inst_bic_r_r_immm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_bic_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +inst_bic_r_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, u8(reg_hw(rs))), {}, {}, {}}} } +inst_bic_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_bic_r_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_bic_r_r_immm(dst, src, imm)) } +emit_bic_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_bic_r_r_rsh(dst, src, src2, shift, amount)) } +emit_bic_r_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_bic_r_r_rsr(dst, src, src2, shift, rs)) } +emit_bic_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bic_rlo_rlo(dst, src)) } +inst_mvn_r_immm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_mvn_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, amount), {}, {}, {}, {}}} } +inst_mvn_r_rsr :: #force_inline proc "contextless" (dst: Register, src: Register, shift: Shift_Type, rs: Register) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_shifted(src, shift, u8(reg_hw(rs))), {}, {}, {}, {}}} } +inst_mvn_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_mvn_r_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvn_r_immm(dst, imm)) } +emit_mvn_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_mvn_r_rsh(dst, src, shift, amount)) } +emit_mvn_r_rsr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, shift: Shift_Type, rs: Register) { append(instructions, inst_mvn_r_rsr(dst, src, shift, rs)) } +emit_mvn_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_rlo_rlo(dst, src)) } +inst_lsl_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_lsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_lsl_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_lsl_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsl_r_r_imm5(dst, src, imm)) } +emit_lsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsl_r_r_r(dst, src, src2)) } +emit_lsl_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_lsl_rlo_rlo(dst, src)) } +inst_lsr_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_lsr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_lsr_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_lsr_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsr_r_r_imm5(dst, src, imm)) } +emit_lsr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsr_r_r_r(dst, src, src2)) } +emit_lsr_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_lsr_rlo_rlo(dst, src)) } +inst_asr_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_asr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_asr_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_asr_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_asr_r_r_imm5(dst, src, imm)) } +emit_asr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_asr_r_r_r(dst, src, src2)) } +emit_asr_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_asr_rlo_rlo(dst, src)) } +inst_ror_r_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .ROR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +inst_ror_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ROR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_ror_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ROR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_ror_r_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ror_r_r_imm5(dst, src, imm)) } +emit_ror_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ror_r_r_r(dst, src, src2)) } +emit_ror_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ror_rlo_rlo(dst, src)) } +inst_rrx_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RRX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_rrx_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rrx_r_r(dst, src)) } +inst_adr_rlo_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .ADR, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_rel_offset(offset), {}, {}, {}, {}}} } +emit_adr_rlo_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_adr_rlo_rel(dst, offset)) } +inst_neg_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_neg_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_rlo_rlo(dst, src)) } +inst_movw_r_imm16 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVW, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_movw_r_imm16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movw_r_imm16(dst, imm)) } +inst_movt_r_imm16 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_movt_r_imm16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movt_r_imm16(dst, imm)) } +inst_bfc_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .BFC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_imm(imm2), {}, {}, {}}} } +emit_bfc_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_bfc_r_imm5_imm5w(dst, imm, imm2)) } +inst_bfi_r_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .BFI, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), op_imm(imm2), {}, {}}} } +emit_bfi_r_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_bfi_r_r_imm5_imm5w(dst, src, imm, imm2)) } +inst_sbfx_r_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SBFX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), op_imm(imm2), {}, {}}} } +emit_sbfx_r_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sbfx_r_r_imm5_imm5w(dst, src, imm, imm2)) } +inst_ubfx_r_r_imm5_imm5w :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UBFX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), op_imm(imm2), {}, {}}} } +emit_ubfx_r_r_imm5_imm5w :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_ubfx_r_r_imm5_imm5w(dst, src, imm, imm2)) } +inst_sxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtb_r_r(dst, src)) } +inst_sxtb16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTB16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sxtb16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtb16_r_r(dst, src)) } +inst_sxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxth_r_r(dst, src)) } +inst_uxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_uxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtb_r_r(dst, src)) } +inst_uxtb16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTB16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_uxtb16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtb16_r_r(dst, src)) } +inst_uxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_uxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxth_r_r(dst, src)) } +inst_sxtab_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SXTAB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sxtab_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sxtab_r_r_r(dst, src, src2)) } +inst_sxtab16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SXTAB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sxtab16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sxtab16_r_r_r(dst, src, src2)) } +inst_sxtah_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SXTAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sxtah_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sxtah_r_r_r(dst, src, src2)) } +inst_uxtab_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UXTAB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uxtab_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uxtab_r_r_r(dst, src, src2)) } +inst_uxtab16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UXTAB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uxtab16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uxtab16_r_r_r(dst, src, src2)) } +inst_uxtah_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UXTAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uxtah_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uxtah_r_r_r(dst, src, src2)) } +inst_clz_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_clz_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_r_r(dst, src)) } +inst_rbit_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RBIT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_rbit_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_r_r(dst, src)) } +inst_rev_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_rev_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev_r_r(dst, src)) } +inst_rev16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_rev16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_r_r(dst, src)) } +inst_revsh_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REVSH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_revsh_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_revsh_r_r(dst, src)) } +inst_sel_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SEL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sel_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sel_r_r_r(dst, src, src2)) } +inst_pkhbt_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .PKHBT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +emit_pkhbt_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_pkhbt_r_r_rsh(dst, src, src2, shift, amount)) } +inst_pkhtb_r_r_rsh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .PKHTB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg_shifted(src2, shift, amount), {}, {}, {}}} } +emit_pkhtb_r_r_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_pkhtb_r_r_rsh(dst, src, src2, shift, amount)) } +inst_usad8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USAD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_usad8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usad8_r_r_r(dst, src, src2)) } +inst_usada8_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .USADA8, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_usada8_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_usada8_r_r_r_r(dst, src, src2, src3)) } +inst_ssat_r_imm4s_rsh :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .SSAT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg_shifted(src, shift, amount), {}, {}, {}}} } +emit_ssat_r_imm4s_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_ssat_r_imm4s_rsh(dst, imm, src, shift, amount)) } +inst_usat_r_imm4s_rsh :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) -> Instruction { return Instruction{mnemonic = .USAT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg_shifted(src, shift, amount), {}, {}, {}}} } +emit_usat_r_imm4s_rsh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, shift: Shift_Type, amount: u8) { append(instructions, inst_usat_r_imm4s_rsh(dst, imm, src, shift, amount)) } +inst_ssat16_r_imm4s_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .SSAT16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), {}, {}, {}}} } +emit_ssat16_r_imm4s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ssat16_r_imm4s_r(dst, imm, src)) } +inst_usat16_r_imm4s_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .USAT16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), {}, {}, {}}} } +emit_usat16_r_imm4s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_usat16_r_imm4s_r(dst, imm, src)) } +inst_qadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qadd_r_r_r(dst, src, src2)) } +inst_qsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsub_r_r_r(dst, src, src2)) } +inst_qdadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QDADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qdadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qdadd_r_r_r(dst, src, src2)) } +inst_qdsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QDSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qdsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qdsub_r_r_r(dst, src, src2)) } +inst_sadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sadd8_r_r_r(dst, src, src2)) } +inst_sadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sadd16_r_r_r(dst, src, src2)) } +inst_sasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sasx_r_r_r(dst, src, src2)) } +inst_ssax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_ssax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssax_r_r_r(dst, src, src2)) } +inst_ssub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_ssub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssub8_r_r_r(dst, src, src2)) } +inst_ssub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_ssub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssub16_r_r_r(dst, src, src2)) } +inst_uadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uadd8_r_r_r(dst, src, src2)) } +inst_uadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uadd16_r_r_r(dst, src, src2)) } +inst_uasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uasx_r_r_r(dst, src, src2)) } +inst_usax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_usax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usax_r_r_r(dst, src, src2)) } +inst_usub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_usub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usub8_r_r_r(dst, src, src2)) } +inst_usub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_usub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usub16_r_r_r(dst, src, src2)) } +inst_qadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qadd8_r_r_r(dst, src, src2)) } +inst_qadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qadd16_r_r_r(dst, src, src2)) } +inst_qasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qasx_r_r_r(dst, src, src2)) } +inst_qsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsax_r_r_r(dst, src, src2)) } +inst_qsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsub8_r_r_r(dst, src, src2)) } +inst_qsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .QSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_qsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_qsub16_r_r_r(dst, src, src2)) } +inst_uqadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uqadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd8_r_r_r(dst, src, src2)) } +inst_uqadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uqadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd16_r_r_r(dst, src, src2)) } +inst_uqasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uqasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqasx_r_r_r(dst, src, src2)) } +inst_uqsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uqsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsax_r_r_r(dst, src, src2)) } +inst_uqsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uqsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub8_r_r_r(dst, src, src2)) } +inst_uqsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uqsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub16_r_r_r(dst, src, src2)) } +inst_shadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_shadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd8_r_r_r(dst, src, src2)) } +inst_shadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_shadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd16_r_r_r(dst, src, src2)) } +inst_shasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_shasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shasx_r_r_r(dst, src, src2)) } +inst_shsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_shsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsax_r_r_r(dst, src, src2)) } +inst_shsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_shsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub8_r_r_r(dst, src, src2)) } +inst_shsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_shsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub16_r_r_r(dst, src, src2)) } +inst_uhadd8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uhadd8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd8_r_r_r(dst, src, src2)) } +inst_uhadd16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uhadd16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd16_r_r_r(dst, src, src2)) } +inst_uhasx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHASX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uhasx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhasx_r_r_r(dst, src, src2)) } +inst_uhsax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uhsax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsax_r_r_r(dst, src, src2)) } +inst_uhsub8_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB8, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uhsub8_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub8_r_r_r(dst, src, src2)) } +inst_uhsub16_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB16, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_uhsub16_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub16_r_r_r(dst, src, src2)) } +inst_smuad_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUAD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smuad_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smuad_r_r_r(dst, src, src2)) } +inst_smuadx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUADX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smuadx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smuadx_r_r_r(dst, src, src2)) } +inst_smusd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUSD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smusd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smusd_r_r_r(dst, src, src2)) } +inst_smusdx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMUSDX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smusdx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smusdx_r_r_r(dst, src, src2)) } +inst_smlad_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlad_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlad_r_r_r_r(dst, src, src2, src3)) } +inst_smladx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLADX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smladx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smladx_r_r_r_r(dst, src, src2, src3)) } +inst_smlsd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlsd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsd_r_r_r_r(dst, src, src2, src3)) } +inst_smlsdx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSDX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlsdx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsdx_r_r_r_r(dst, src, src2, src3)) } +inst_smlald_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlald_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlald_r_r_r_r(dst, src, src2, src3)) } +inst_smlaldx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALDX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlaldx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlaldx_r_r_r_r(dst, src, src2, src3)) } +inst_smlsld_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSLD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlsld_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsld_r_r_r_r(dst, src, src2, src3)) } +inst_smlsldx_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLSLDX, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlsldx_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlsldx_r_r_r_r(dst, src, src2, src3)) } +inst_smmul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smmul_r_r_r(dst, src, src2)) } +inst_smmulr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMMULR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smmulr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smmulr_r_r_r(dst, src, src2)) } +inst_smmla_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smmla_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmla_r_r_r_r(dst, src, src2, src3)) } +inst_smmlar_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLAR, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smmlar_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmlar_r_r_r_r(dst, src, src2, src3)) } +inst_smmls_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLS, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smmls_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmls_r_r_r_r(dst, src, src2, src3)) } +inst_smmlsr_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMMLSR, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smmlsr_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smmlsr_r_r_r_r(dst, src, src2, src3)) } +inst_mul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_mul_rlo_rlo :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_mul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mul_r_r_r(dst, src, src2)) } +emit_mul_rlo_rlo :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mul_rlo_rlo(dst, src)) } +inst_mla_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_mla_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_mla_r_r_r_r(dst, src, src2, src3)) } +inst_mls_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_mls_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_mls_r_r_r_r(dst, src, src2, src3)) } +inst_umull_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .UMULL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_umull_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umull_r_r_r_r(dst, src, src2, src3)) } +inst_umlal_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .UMLAL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_umlal_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umlal_r_r_r_r(dst, src, src2, src3)) } +inst_smull_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMULL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smull_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smull_r_r_r_r(dst, src, src2, src3)) } +inst_smlal_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlal_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlal_r_r_r_r(dst, src, src2, src3)) } +inst_umaal_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .UMAAL, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_umaal_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umaal_r_r_r_r(dst, src, src2, src3)) } +inst_smlabb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLABB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlabb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlabb_r_r_r_r(dst, src, src2, src3)) } +inst_smlabt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLABT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlabt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlabt_r_r_r_r(dst, src, src2, src3)) } +inst_smlatb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLATB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlatb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlatb_r_r_r_r(dst, src, src2, src3)) } +inst_smlatt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLATT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlatt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlatt_r_r_r_r(dst, src, src2, src3)) } +inst_smlawb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAWB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlawb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlawb_r_r_r_r(dst, src, src2, src3)) } +inst_smlawt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLAWT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlawt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlawt_r_r_r_r(dst, src, src2, src3)) } +inst_smulbb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULBB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smulbb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulbb_r_r_r(dst, src, src2)) } +inst_smulbt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULBT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smulbt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulbt_r_r_r(dst, src, src2)) } +inst_smultb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULTB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smultb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smultb_r_r_r(dst, src, src2)) } +inst_smultt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULTT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smultt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smultt_r_r_r(dst, src, src2)) } +inst_smulwb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULWB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smulwb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulwb_r_r_r(dst, src, src2)) } +inst_smulwt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULWT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_smulwt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulwt_r_r_r(dst, src, src2)) } +inst_smlalbb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALBB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlalbb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlalbb_r_r_r_r(dst, src, src2, src3)) } +inst_smlalbt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALBT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlalbt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlalbt_r_r_r_r(dst, src, src2, src3)) } +inst_smlaltb_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALTB, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlaltb_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlaltb_r_r_r_r(dst, src, src2, src3)) } +inst_smlaltt_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SMLALTT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_smlaltt_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smlaltt_r_r_r_r(dst, src, src2, src3)) } +inst_sdiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SDIV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sdiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdiv_r_r_r(dst, src, src2)) } +inst_udiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UDIV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_udiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udiv_r_r_r(dst, src, src2)) } +inst_b_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .B, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}, {}, {}}} } +inst_b_rel_cond :: #force_inline proc "contextless" (offset: i64, imm: i64) -> Instruction { return Instruction{mnemonic = .B, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_rel_offset(offset), op_imm(imm), {}, {}, {}, {}}} } +emit_b_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_b_rel(offset)) } +emit_b_rel_cond :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, imm: i64) { append(instructions, inst_b_rel_cond(offset, imm)) } +inst_bl_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .BL, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}, {}, {}}} } +emit_bl_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_bl_rel(offset)) } +inst_bx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BX, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_bx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_bx_r(dst)) } +inst_blx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BLX, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +inst_blx_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .BLX, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}, {}, {}}} } +emit_blx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blx_r(dst)) } +emit_blx_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_blx_rel(offset)) } +inst_bxj_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BXJ, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_bxj_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_bxj_r(dst)) } +inst_cbz_rlo_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .CBZ, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_rel_offset(offset), {}, {}, {}, {}}} } +emit_cbz_rlo_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_cbz_rlo_rel(dst, offset)) } +inst_cbnz_rlo_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .CBNZ, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), op_rel_offset(offset), {}, {}, {}, {}}} } +emit_cbnz_rlo_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_cbnz_rlo_rel(dst, offset)) } +inst_tbb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TBB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_tbb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tbb_r_r(dst, src)) } +inst_tbh_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TBH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_tbh_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tbh_r_r(dst, src)) } +inst_msr_psr_immm :: #force_inline proc "contextless" (imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MSR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), op_imm(imm2), {}, {}, {}, {}}} } +inst_msr_psr_r :: #force_inline proc "contextless" (imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .MSR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), {}, {}, {}, {}}} } +emit_msr_psr_immm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) { append(instructions, inst_msr_psr_immm(imm, imm2)) } +emit_msr_psr_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register) { append(instructions, inst_msr_psr_r(imm, src)) } +inst_mrs_r_psr :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MRS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_mrs_r_psr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mrs_r_psr(dst, imm)) } +inst_cps_ifl :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .CPS, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_cps_ifl :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_cps_ifl(imm)) } +inst_setend_end :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SETEND, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_setend_end :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_setend_end(imm)) } +inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .NOP, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_nop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_nop_none()) } +inst_yield_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .YIELD, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_yield_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_yield_none()) } +inst_wfe_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .WFE, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_wfe_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfe_none()) } +inst_wfi_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .WFI, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_wfi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfi_none()) } +inst_sev_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SEV, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_sev_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sev_none()) } +inst_sevl_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SEVL, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_sevl_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sevl_none()) } +inst_dbg_hint :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DBG, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_dbg_hint :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dbg_hint(imm)) } +inst_hint_hint :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HINT, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_hint_hint :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hint_hint(imm)) } +inst_dmb_barr :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DMB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_dmb_barr :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dmb_barr(imm)) } +inst_dsb_barr :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DSB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_dsb_barr :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dsb_barr(imm)) } +inst_isb_barr :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .ISB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_isb_barr :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_isb_barr(imm)) } +inst_clrex_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .CLREX, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_clrex_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clrex_none()) } +inst_pld_mem :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return Instruction{mnemonic = .PLD, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_mem(dst), {}, {}, {}, {}, {}}} } +emit_pld_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_pld_mem(dst)) } +inst_pldw_mem :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return Instruction{mnemonic = .PLDW, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_mem(dst), {}, {}, {}, {}, {}}} } +emit_pldw_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_pldw_mem(dst)) } +inst_pli_mem :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return Instruction{mnemonic = .PLI, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_mem(dst), {}, {}, {}, {}, {}}} } +emit_pli_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_pli_mem(dst)) } +inst_hlt_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HLT, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_hlt_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hlt_imm(imm)) } +inst_dcps1_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPS1, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_dcps1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcps1_none()) } +inst_dcps2_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPS2, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_dcps2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcps2_none()) } +inst_dcps3_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPS3, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_dcps3_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcps3_none()) } +inst_eret_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .ERET, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_eret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eret_none()) } +inst_esb_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .ESB, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_esb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_esb_none()) } +inst_psb_csync_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .PSB_CSYNC, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_psb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_psb_csync_none()) } +inst_tsb_csync_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .TSB_CSYNC, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_tsb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tsb_csync_none()) } +inst_csdb_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .CSDB, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_csdb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_csdb_none()) } +inst_sb_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SB, operand_count = 0, mode = .A32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_sb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sb_none()) } +inst_setpan_hint :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SETPAN, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_setpan_hint :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_setpan_hint(imm)) } +inst_svc_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SVC, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_svc_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_svc_imm(imm)) } +inst_bkpt_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .BKPT, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_bkpt_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_bkpt_imm(imm)) } +inst_hvc_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HVC, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_hvc_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hvc_imm(imm)) } +inst_smc_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SMC, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_smc_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_smc_imm(imm)) } +inst_udf_imm :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .UDF, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_udf_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_udf_imm(imm)) } +inst_ldr_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldr_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldr_r_mem(dst, src)) } +inst_str_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_str_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_str_r_mem(dst, src)) } +inst_ldrb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrb_r_mem(dst, src)) } +inst_strb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_strb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strb_r_mem(dst, src)) } +inst_ldrh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrh_r_mem(dst, src)) } +inst_strh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_strh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strh_r_mem(dst, src)) } +inst_ldrsb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrsb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsb_r_mem(dst, src)) } +inst_ldrsh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrsh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsh_r_mem(dst, src)) } +inst_ldrd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDRD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_ldrd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldrd_r_r_mem(dst, src, src2)) } +inst_strd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STRD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_strd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strd_r_r_mem(dst, src, src2)) } +inst_ldrt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrt_r_mem(dst, src)) } +inst_strt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_strt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strt_r_mem(dst, src)) } +inst_ldrbt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRBT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrbt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrbt_r_mem(dst, src)) } +inst_strbt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRBT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_strbt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strbt_r_mem(dst, src)) } +inst_ldrht_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRHT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrht_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrht_r_mem(dst, src)) } +inst_strht_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STRHT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_strht_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_strht_r_mem(dst, src)) } +inst_ldrsbt_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSBT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrsbt_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsbt_r_mem(dst, src)) } +inst_ldrsht_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDRSHT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrsht_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrsht_r_mem(dst, src)) } +inst_lda_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_lda_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_lda_r_mem(dst, src)) } +inst_stl_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_stl_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_stl_r_mem(dst, src)) } +inst_ldab_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldab_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldab_r_mem(dst, src)) } +inst_stlb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STLB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_stlb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_stlb_r_mem(dst, src)) } +inst_ldah_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldah_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldah_r_mem(dst, src)) } +inst_stlh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .STLH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_stlh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_stlh_r_mem(dst, src)) } +inst_ldrex_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrex_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrex_r_mem(dst, src)) } +inst_strex_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_strex_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strex_r_r_mem(dst, src, src2)) } +inst_ldrexb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREXB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrexb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrexb_r_mem(dst, src)) } +inst_strexb_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREXB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_strexb_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strexb_r_r_mem(dst, src, src2)) } +inst_ldrexh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREXH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldrexh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrexh_r_mem(dst, src)) } +inst_strexh_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREXH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_strexh_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strexh_r_r_mem(dst, src, src2)) } +inst_ldrexd_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDREXD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_ldrexd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDREXD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_ldrexd_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldrexd_r_mem(dst, src)) } +emit_ldrexd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldrexd_r_r_mem(dst, src, src2)) } +inst_strexd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STREXD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +inst_strexd_r_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Memory) -> Instruction { return Instruction{mnemonic = .STREXD, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_mem(src3), {}, {}}} } +emit_strexd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_strexd_r_r_mem(dst, src, src2)) } +emit_strexd_r_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Memory) { append(instructions, inst_strexd_r_r_r_mem(dst, src, src2, src3)) } +inst_ldaex_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldaex_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaex_r_mem(dst, src)) } +inst_stlex_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stlex_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlex_r_r_mem(dst, src, src2)) } +inst_ldaexb_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEXB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldaexb_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaexb_r_mem(dst, src)) } +inst_stlexb_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEXB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stlexb_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlexb_r_r_mem(dst, src, src2)) } +inst_ldaexh_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEXH, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldaexh_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaexh_r_mem(dst, src)) } +inst_stlexh_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEXH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stlexh_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlexh_r_r_mem(dst, src, src2)) } +inst_ldaexd_r_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .LDAEXD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_ldaexd_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_ldaexd_r_mem(dst, src)) } +inst_stlexd_r_r_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STLEXD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stlexd_r_r_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stlexd_r_r_mem(dst, src, src2)) } +inst_ldm_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .LDM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_ldm_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_ldm_r_list(dst, regs)) } +inst_stm_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .STM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_stm_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_stm_r_list(dst, regs)) } +inst_ldmib_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .LDMIB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_ldmib_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_ldmib_r_list(dst, regs)) } +inst_ldmda_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .LDMDA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_ldmda_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_ldmda_r_list(dst, regs)) } +inst_ldmdb_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .LDMDB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_ldmdb_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_ldmdb_r_list(dst, regs)) } +inst_stmib_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .STMIB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_stmib_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_stmib_r_list(dst, regs)) } +inst_stmda_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .STMDA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_stmda_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_stmda_r_list(dst, regs)) } +inst_stmdb_r_list :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .STMDB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_stmdb_r_list :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_stmdb_r_list(dst, regs)) } +inst_push_list :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .PUSH, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}, {}, {}}} } +emit_push_list :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_push_list(regs)) } +inst_pop_list :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .POP, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}, {}, {}}} } +emit_pop_list :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_pop_list(regs)) } +inst_swp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SWP, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_swp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_swp_r_r_r(dst, src, src2)) } +inst_swpb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SWPB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_swpb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_swpb_r_r_r(dst, src, src2)) } +inst_rfeda_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .RFEDA, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_rfeda_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_rfeda_r(dst)) } +inst_rfedb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .RFEDB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_rfedb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_rfedb_r(dst)) } +inst_rfeia_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .RFEIA, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_rfeia_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_rfeia_r(dst)) } +inst_rfeib_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .RFEIB, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_rfeib_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_rfeib_r(dst)) } +inst_srsda_r_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSDA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_srsda_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_srsda_r_imm(dst, imm)) } +inst_srsdb_r_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSDB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_srsdb_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_srsdb_r_imm(dst, imm)) } +inst_srsia_r_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSIA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_srsia_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_srsia_r_imm(dst, imm)) } +inst_srsib_r_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSIB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_srsib_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_srsib_r_imm(dst, imm)) } +inst_cdp_cpn_cpop_crd_crd_crd_cpop :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CDP, operand_count = 6, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), op_imm(imm2)}} } +emit_cdp_cpn_cpop_crd_crd_crd_cpop :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) { append(instructions, inst_cdp_cpn_cpop_crd_crd_crd_cpop(dst, imm, src, src2, src3, imm2)) } +inst_cdp2_cpn_cpop_crd_crd_crd_cpop :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CDP2, operand_count = 6, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), op_imm(imm2)}} } +emit_cdp2_cpn_cpop_crd_crd_crd_cpop :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) { append(instructions, inst_cdp2_cpn_cpop_crd_crd_crd_cpop(dst, imm, src, src2, src3, imm2)) } +inst_mcr_cpn_cpop_r_crd_crd_cpop :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .MCR, operand_count = 6, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), op_imm(imm2)}} } +emit_mcr_cpn_cpop_r_crd_crd_cpop :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) { append(instructions, inst_mcr_cpn_cpop_r_crd_crd_cpop(dst, imm, src, src2, src3, imm2)) } +inst_mcr2_cpn_cpop_r_crd_crd_cpop :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .MCR2, operand_count = 6, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), op_imm(imm2)}} } +emit_mcr2_cpn_cpop_r_crd_crd_cpop :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) { append(instructions, inst_mcr2_cpn_cpop_r_crd_crd_cpop(dst, imm, src, src2, src3, imm2)) } +inst_mrc_cpn_cpop_r_crd_crd_cpop :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .MRC, operand_count = 6, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), op_imm(imm2)}} } +emit_mrc_cpn_cpop_r_crd_crd_cpop :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) { append(instructions, inst_mrc_cpn_cpop_r_crd_crd_cpop(dst, imm, src, src2, src3, imm2)) } +inst_mrc2_cpn_cpop_r_crd_crd_cpop :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .MRC2, operand_count = 6, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), op_imm(imm2)}} } +emit_mrc2_cpn_cpop_r_crd_crd_cpop :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register, imm2: i64) { append(instructions, inst_mrc2_cpn_cpop_r_crd_crd_cpop(dst, imm, src, src2, src3, imm2)) } +inst_mcrr_cpn_cpop_r_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MCRR, operand_count = 5, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}}} } +emit_mcrr_cpn_cpop_r_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_mcrr_cpn_cpop_r_r_crd(dst, imm, src, src2, src3)) } +inst_mcrr2_cpn_cpop_r_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MCRR2, operand_count = 5, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}}} } +emit_mcrr2_cpn_cpop_r_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_mcrr2_cpn_cpop_r_r_crd(dst, imm, src, src2, src3)) } +inst_mrrc_cpn_cpop_r_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MRRC, operand_count = 5, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}}} } +emit_mrrc_cpn_cpop_r_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_mrrc_cpn_cpop_r_r_crd(dst, imm, src, src2, src3)) } +inst_mrrc2_cpn_cpop_r_r_crd :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .MRRC2, operand_count = 5, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}}} } +emit_mrrc2_cpn_cpop_r_r_crd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_mrrc2_cpn_cpop_r_r_crd(dst, imm, src, src2, src3)) } +inst_ldc_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_ldc_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldc_cpn_crd_mem(dst, src, src2)) } +inst_ldc2_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDC2, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_ldc2_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldc2_cpn_crd_mem(dst, src, src2)) } +inst_stc_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stc_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stc_cpn_crd_mem(dst, src, src2)) } +inst_stc2_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STC2, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stc2_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stc2_cpn_crd_mem(dst, src, src2)) } +inst_ldcl_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDCL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_ldcl_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldcl_cpn_crd_mem(dst, src, src2)) } +inst_ldc2l_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .LDC2L, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_ldc2l_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_ldc2l_cpn_crd_mem(dst, src, src2)) } +inst_stcl_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STCL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stcl_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stcl_cpn_crd_mem(dst, src, src2)) } +inst_stc2l_cpn_crd_mem :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Memory) -> Instruction { return Instruction{mnemonic = .STC2L, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_mem(src2), {}, {}, {}}} } +emit_stc2l_cpn_crd_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Memory) { append(instructions, inst_stc2l_cpn_crd_mem(dst, src, src2)) } +inst_crc32b_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32B, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_crc32b_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32b_r_r_r(dst, src, src2)) } +inst_crc32h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32H, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_crc32h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32h_r_r_r(dst, src, src2)) } +inst_crc32w_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32W, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_crc32w_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32w_r_r_r(dst, src, src2)) } +inst_crc32cb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32CB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_crc32cb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cb_r_r_r(dst, src, src2)) } +inst_crc32ch_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32CH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_crc32ch_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32ch_r_r_r(dst, src, src2)) } +inst_crc32cw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CRC32CW, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_crc32cw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cw_r_r_r(dst, src, src2)) } +inst_vadd_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vadd_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vadd_s_s_s(dst, src, src2)) } +inst_vsub_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vsub_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsub_s_s_s(dst, src, src2)) } +inst_vmul_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmul_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vmul_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmul_s_s_s(dst, src, src2)) } +emit_vmul_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmul_d_d_dlane(dst, src, src2, lane)) } +inst_vdiv_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VDIV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vdiv_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vdiv_s_s_s(dst, src, src2)) } +inst_vmla_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmla_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vmla_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmla_s_s_s(dst, src, src2)) } +emit_vmla_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmla_d_d_dlane(dst, src, src2, lane)) } +inst_vmls_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmls_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vmls_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmls_s_s_s(dst, src, src2)) } +emit_vmls_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmls_d_d_dlane(dst, src, src2, lane)) } +inst_vnmul_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VNMUL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vnmul_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vnmul_s_s_s(dst, src, src2)) } +inst_vnmla_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VNMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vnmla_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vnmla_s_s_s(dst, src, src2)) } +inst_vnmls_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VNMLS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vnmls_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vnmls_s_s_s(dst, src, src2)) } +inst_vfma_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfma_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfma_s_s_s(dst, src, src2)) } +inst_vfms_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfms_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfms_s_s_s(dst, src, src2)) } +inst_vfnma_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFNMA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfnma_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfnma_s_s_s(dst, src, src2)) } +inst_vfnms_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFNMS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfnms_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfnms_s_s_s(dst, src, src2)) } +inst_vfmab_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMAB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfmab_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfmab_q_q_q(dst, src, src2)) } +inst_vfmat_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMAT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfmat_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfmat_q_q_q(dst, src, src2)) } +inst_vabs_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VABS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vabs_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vabs_s_s(dst, src)) } +inst_vneg_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VNEG, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vneg_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vneg_s_s(dst, src)) } +inst_vsqrt_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VSQRT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vsqrt_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vsqrt_s_s(dst, src)) } +inst_vcmp_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCMP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +inst_vcmp_s :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VCMP, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_vcmp_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcmp_s_s(dst, src)) } +emit_vcmp_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vcmp_s(dst)) } +inst_vcmpe_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCMPE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +inst_vcmpe_s :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VCMPE, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_vcmpe_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcmpe_s_s(dst, src)) } +emit_vcmpe_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vcmpe_s(dst)) } +inst_vcvt_d_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +inst_vcvt_s_s_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCVT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vcvt_d_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvt_d_s(dst, src)) } +emit_vcvt_s_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vcvt_s_s_imm(dst, src, imm)) } +inst_vcvtb_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvtb_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtb_s_s(dst, src)) } +inst_vcvtt_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvtt_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtt_s_s(dst, src)) } +inst_vcvta_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvta_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvta_s_s(dst, src)) } +inst_vcvtn_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvtn_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtn_s_s(dst, src)) } +inst_vcvtp_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvtp_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtp_s_s(dst, src)) } +inst_vcvtm_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvtm_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtm_s_s(dst, src)) } +inst_vcvtr_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCVTR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcvtr_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcvtr_s_s(dst, src)) } +inst_vmov_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +inst_vmov_s_imm8 :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_vmov_r_r_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmov_r_r_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +inst_vmov_r_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_dpr_lane(src, lane), {}, {}, {}, {}}} } +inst_vmov_qlane_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_qpr_lane(dst, lane), op_reg(src), {}, {}, {}, {}}} } +inst_vmov_qlane_qlane_r_r :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Register, lane2: u8, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMOV, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_qpr_lane(dst, lane), op_qpr_lane(src, lane2), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmov_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmov_s_s(dst, src)) } +emit_vmov_s_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vmov_s_imm8(dst, imm)) } +emit_vmov_r_r_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmov_r_r_d(dst, src, src2)) } +emit_vmov_r_r_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmov_r_r_s_s(dst, src, src2, src3)) } +emit_vmov_r_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, lane: u8) { append(instructions, inst_vmov_r_dlane(dst, src, lane)) } +emit_vmov_qlane_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register) { append(instructions, inst_vmov_qlane_r(dst, lane, src)) } +emit_vmov_qlane_qlane_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Register, lane2: u8, src2: Register, src3: Register) { append(instructions, inst_vmov_qlane_qlane_r_r(dst, lane, src, lane2, src2, src3)) } +inst_vmrs_r_psr :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VMRS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_vmrs_r_psr :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vmrs_r_psr(dst, imm)) } +inst_vmsr_psr_r :: #force_inline proc "contextless" (imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .VMSR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), {}, {}, {}, {}}} } +emit_vmsr_psr_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register) { append(instructions, inst_vmsr_psr_r(imm, src)) } +inst_vldr_s_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_vldr_s_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldr_s_mem(dst, src)) } +inst_vstr_s_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +emit_vstr_s_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstr_s_mem(dst, src)) } +inst_vldmia_r_slist :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .VLDMIA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_vldmia_r_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_vldmia_r_slist(dst, regs)) } +inst_vldmdb_r_slist :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .VLDMDB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_vldmdb_r_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_vldmdb_r_slist(dst, regs)) } +inst_vstmia_r_slist :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .VSTMIA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_vstmia_r_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_vstmia_r_slist(dst, regs)) } +inst_vstmdb_r_slist :: #force_inline proc "contextless" (dst: Register, regs: u16) -> Instruction { return Instruction{mnemonic = .VSTMDB, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), {}, {}, {}, {}}} } +emit_vstmdb_r_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16) { append(instructions, inst_vstmdb_r_slist(dst, regs)) } +inst_vpush_slist :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .VPUSH, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}, {}, {}}} } +emit_vpush_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_vpush_slist(regs)) } +inst_vpop_slist :: #force_inline proc "contextless" (regs: u16) -> Instruction { return Instruction{mnemonic = .VPOP, operand_count = 1, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), {}, {}, {}, {}, {}}} } +emit_vpop_slist :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16) { append(instructions, inst_vpop_slist(regs)) } +inst_vsel_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSEL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vsel_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsel_s_s_s(dst, src, src2)) } +inst_vmaxnm_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMAXNM, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmaxnm_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmaxnm_s_s_s(dst, src, src2)) } +inst_vminnm_s_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMINNM, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vminnm_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vminnm_s_s_s(dst, src, src2)) } +inst_vrinta_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTA, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrinta_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrinta_s_s(dst, src)) } +inst_vrintn_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrintn_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintn_s_s(dst, src)) } +inst_vrintp_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrintp_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintp_s_s(dst, src)) } +inst_vrintm_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTM, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrintm_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintm_s_s(dst, src)) } +inst_vrintr_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrintr_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintr_s_s(dst, src)) } +inst_vrintz_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTZ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrintz_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintz_s_s(dst, src)) } +inst_vrintx_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRINTX, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrintx_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrintx_s_s(dst, src)) } +inst_vaddl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vaddl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddl_q_d_d(dst, src, src2)) } +inst_vaddw_q_q_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDW, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vaddw_q_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddw_q_q_d(dst, src, src2)) } +inst_vsubl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUBL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vsubl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsubl_q_d_d(dst, src, src2)) } +inst_vsubw_q_q_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSUBW, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vsubw_q_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsubw_q_q_d(dst, src, src2)) } +inst_vhadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VHADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vhadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vhadd_d_d_d(dst, src, src2)) } +inst_vhsub_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VHSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vhsub_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vhsub_d_d_d(dst, src, src2)) } +inst_vrhadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRHADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vrhadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrhadd_d_d_d(dst, src, src2)) } +inst_vqadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqadd_d_d_d(dst, src, src2)) } +inst_vqsub_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQSUB, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqsub_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqsub_d_d_d(dst, src, src2)) } +inst_vmull_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMULL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmull_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMULL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vmull_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmull_q_d_d(dst, src, src2)) } +emit_vmull_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmull_q_d_dlane(dst, src, src2, lane)) } +inst_vmlal_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmlal_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vmlal_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlal_q_d_d(dst, src, src2)) } +emit_vmlal_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmlal_q_d_dlane(dst, src, src2, lane)) } +inst_vmlsl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vmlsl_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VMLSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vmlsl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsl_q_d_d(dst, src, src2)) } +emit_vmlsl_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vmlsl_q_d_dlane(dst, src, src2, lane)) } +inst_vqdmull_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMULL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqdmull_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMULL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqdmull_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmull_q_d_d(dst, src, src2)) } +emit_vqdmull_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmull_q_d_dlane(dst, src, src2, lane)) } +inst_vqdmlal_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqdmlal_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMLAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqdmlal_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlal_q_d_d(dst, src, src2)) } +emit_vqdmlal_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmlal_q_d_dlane(dst, src, src2, lane)) } +inst_vqdmlsl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqdmlsl_q_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMLSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqdmlsl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlsl_q_d_d(dst, src, src2)) } +emit_vqdmlsl_q_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmlsl_q_d_dlane(dst, src, src2, lane)) } +inst_vqdmulh_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMULH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqdmulh_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQDMULH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqdmulh_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmulh_d_d_d(dst, src, src2)) } +emit_vqdmulh_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqdmulh_d_d_dlane(dst, src, src2, lane)) } +inst_vqrdmulh_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMULH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqrdmulh_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQRDMULH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqrdmulh_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmulh_d_d_d(dst, src, src2)) } +emit_vqrdmulh_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqrdmulh_d_d_dlane(dst, src, src2, lane)) } +inst_vqrdmlah_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqrdmlah_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQRDMLAH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqrdmlah_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlah_d_d_d(dst, src, src2)) } +emit_vqrdmlah_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqrdmlah_d_d_dlane(dst, src, src2, lane)) } +inst_vqrdmlsh_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqrdmlsh_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VQRDMLSH, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vqrdmlsh_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsh_d_d_d(dst, src, src2)) } +emit_vqrdmlsh_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vqrdmlsh_d_d_dlane(dst, src, src2, lane)) } +inst_vaba_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vaba_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaba_d_d_d(dst, src, src2)) } +inst_vabal_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vabal_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabal_q_d_d(dst, src, src2)) } +inst_vabd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vabd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabd_d_d_d(dst, src, src2)) } +inst_vabdl_q_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABDL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vabdl_q_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabdl_q_d_d(dst, src, src2)) } +inst_vand_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VAND, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vand_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vand_d_d_d(dst, src, src2)) } +inst_vbic_d_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VBIC, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_vbic_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBIC, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vbic_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vbic_d_imm(dst, imm)) } +emit_vbic_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbic_d_d_d(dst, src, src2)) } +inst_vorr_d_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VORR, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +inst_vorr_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VORR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vorr_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vorr_d_imm(dst, imm)) } +emit_vorr_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vorr_d_d_d(dst, src, src2)) } +inst_vorn_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VORN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vorn_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vorn_d_d_d(dst, src, src2)) } +inst_veor_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VEOR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_veor_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_veor_d_d_d(dst, src, src2)) } +inst_vbsl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vbsl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbsl_d_d_d(dst, src, src2)) } +inst_vbit_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBIT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vbit_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbit_d_d_d(dst, src, src2)) } +inst_vbif_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBIF, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vbif_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbif_d_d_d(dst, src, src2)) } +inst_vmvn_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +inst_vmvn_d_imm :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VMVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_imm(imm), {}, {}, {}, {}}} } +emit_vmvn_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmvn_d_d(dst, src)) } +emit_vmvn_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_vmvn_d_imm(dst, imm)) } +inst_vmovn_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmovn_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovn_d_q(dst, src)) } +inst_vqmovn_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqmovn_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovn_d_q(dst, src)) } +inst_vqmovun_d_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVUN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqmovun_d_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovun_d_q(dst, src)) } +inst_vmovl_q_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmovl_q_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovl_q_d(dst, src)) } +inst_vtst_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VTST, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vtst_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vtst_d_d_d(dst, src, src2)) } +inst_vceq_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCEQ, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vceq_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCEQ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vceq_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vceq_d_d_d(dst, src, src2)) } +emit_vceq_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vceq_d_d(dst, src)) } +inst_vcge_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCGE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vcge_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCGE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcge_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcge_d_d_d(dst, src, src2)) } +emit_vcge_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcge_d_d(dst, src)) } +inst_vcgt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCGT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vcgt_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCGT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcgt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcgt_d_d_d(dst, src, src2)) } +emit_vcgt_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcgt_d_d(dst, src)) } +inst_vcle_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCLE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vcle_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcle_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcle_d_d_d(dst, src, src2)) } +emit_vcle_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcle_d_d(dst, src)) } +inst_vclt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCLT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vclt_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vclt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vclt_d_d_d(dst, src, src2)) } +emit_vclt_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vclt_d_d(dst, src)) } +inst_vacge_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACGE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vacge_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vacge_d_d_d(dst, src, src2)) } +inst_vacgt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACGT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vacgt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vacgt_d_d_d(dst, src, src2)) } +inst_vacle_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACLE, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vacle_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vacle_d_d_d(dst, src, src2)) } +inst_vaclt_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VACLT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vaclt_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaclt_d_d_d(dst, src, src2)) } +inst_vmax_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmax_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmax_d_d_d(dst, src, src2)) } +inst_vmin_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMIN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmin_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmin_d_d_d(dst, src, src2)) } +inst_vpmax_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPMAX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vpmax_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpmax_d_d_d(dst, src, src2)) } +inst_vpmin_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPMIN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vpmin_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpmin_d_d_d(dst, src, src2)) } +inst_vpadd_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPADD, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vpadd_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpadd_d_d_d(dst, src, src2)) } +inst_vpaddl_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VPADDL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vpaddl_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vpaddl_d_d(dst, src)) } +inst_vpadal_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VPADAL, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vpadal_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vpadal_d_d(dst, src)) } +inst_vrecpe_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRECPE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrecpe_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrecpe_d_d(dst, src)) } +inst_vrecps_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRECPS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vrecps_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrecps_d_d_d(dst, src, src2)) } +inst_vrsqrte_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VRSQRTE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrsqrte_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrsqrte_d_d(dst, src)) } +inst_vrsqrts_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRSQRTS, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vrsqrts_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrsqrts_d_d_d(dst, src, src2)) } +inst_vshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vshl_d_d_d(dst, src, src2)) } +inst_vshr_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshr_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshr_d_d_imm(dst, src, imm)) } +inst_vsra_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSRA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vsra_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vsra_d_d_imm(dst, src, imm)) } +inst_vrshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VRSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vrshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vrshl_d_d_d(dst, src, src2)) } +inst_vrshr_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHR, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vrshr_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshr_d_d_imm(dst, src, imm)) } +inst_vrsra_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSRA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vrsra_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrsra_d_d_imm(dst, src, imm)) } +inst_vsli_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSLI, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vsli_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vsli_d_d_imm(dst, src, imm)) } +inst_vsri_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSRI, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vsri_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vsri_d_d_imm(dst, src, imm)) } +inst_vqshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vqshl_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqshl_d_d_d(dst, src, src2)) } +emit_vqshl_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshl_d_d_imm(dst, src, imm)) } +inst_vqshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrn_d_q_imm(dst, src, imm)) } +inst_vqshrun_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRUN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshrun_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrun_d_q_imm(dst, src, imm)) } +inst_vqrshl_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRSHL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqrshl_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrshl_d_d_d(dst, src, src2)) } +inst_vqrshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqrshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrn_d_q_imm(dst, src, imm)) } +inst_vqrshrun_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRUN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqrshrun_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrun_d_q_imm(dst, src, imm)) } +inst_vshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshrn_d_q_imm(dst, src, imm)) } +inst_vrshrn_d_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHRN, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vrshrn_d_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshrn_d_q_imm(dst, src, imm)) } +inst_vshll_q_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshll_q_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshll_q_d_imm(dst, src, imm)) } +inst_vcls_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLS, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcls_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcls_d_d(dst, src)) } +inst_vclz_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCLZ, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vclz_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vclz_d_d(dst, src)) } +inst_vcnt_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VCNT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vcnt_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vcnt_d_d(dst, src)) } +inst_vrev16_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VREV16, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrev16_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrev16_d_d(dst, src)) } +inst_vrev32_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VREV32, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrev32_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrev32_d_d(dst, src)) } +inst_vrev64_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VREV64, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vrev64_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vrev64_d_d(dst, src)) } +inst_vext_d_d_d_imm4 :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VEXT, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm), {}, {}}} } +emit_vext_d_d_d_imm4 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vext_d_d_d_imm4(dst, src, src2, imm)) } +inst_vtbl_d_dlist_d :: #force_inline proc "contextless" (dst: Register, regs: u16, src: Register) -> Instruction { return Instruction{mnemonic = .VTBL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), op_reg(src), {}, {}, {}}} } +emit_vtbl_d_dlist_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16, src: Register) { append(instructions, inst_vtbl_d_dlist_d(dst, regs, src)) } +inst_vtbx_d_dlist_d :: #force_inline proc "contextless" (dst: Register, regs: u16, src: Register) -> Instruction { return Instruction{mnemonic = .VTBX, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg_list(regs), op_reg(src), {}, {}, {}}} } +emit_vtbx_d_dlist_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, regs: u16, src: Register) { append(instructions, inst_vtbx_d_dlist_d(dst, regs, src)) } +inst_vtrn_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VTRN, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vtrn_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vtrn_d_d(dst, src)) } +inst_vuzp_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VUZP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vuzp_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vuzp_d_d(dst, src)) } +inst_vzip_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VZIP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vzip_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vzip_d_d(dst, src)) } +inst_vdup_d_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VDUP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +inst_vdup_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VDUP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_dpr_lane(src, lane), {}, {}, {}, {}}} } +emit_vdup_d_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vdup_d_r(dst, src)) } +emit_vdup_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, lane: u8) { append(instructions, inst_vdup_d_dlane(dst, src, lane)) } +inst_vswp_d_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VSWP, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vswp_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vswp_d_d(dst, src)) } +inst_vld1_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +inst_vld1_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}, {}, {}}} } +emit_vld1_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld1_dlist_mem(regs, src)) } +emit_vld1_dlane_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Memory) { append(instructions, inst_vld1_dlane_mem(dst, lane, src)) } +inst_vld2_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD2, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld2_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld2_dlist_mem(regs, src)) } +inst_vld3_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD3, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld3_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld3_dlist_mem(regs, src)) } +inst_vld4_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD4, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld4_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld4_dlist_mem(regs, src)) } +inst_vst1_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +inst_vst1_dlane_mem :: #force_inline proc "contextless" (dst: Register, lane: u8, src: Memory) -> Instruction { return Instruction{mnemonic = .VST1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_dpr_lane(dst, lane), op_mem(src), {}, {}, {}, {}}} } +emit_vst1_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst1_dlist_mem(regs, src)) } +emit_vst1_dlane_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, lane: u8, src: Memory) { append(instructions, inst_vst1_dlane_mem(dst, lane, src)) } +inst_vst2_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST2, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst2_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst2_dlist_mem(regs, src)) } +inst_vst3_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST3, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst3_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst3_dlist_mem(regs, src)) } +inst_vst4_dlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST4, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst4_dlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst4_dlist_mem(regs, src)) } +inst_aese_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESE, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_aese_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aese_q_q(dst, src)) } +inst_aesd_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESD, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_aesd_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesd_q_q(dst, src)) } +inst_aesmc_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESMC, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_aesmc_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesmc_q_q(dst, src)) } +inst_aesimc_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESIMC, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_aesimc_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesimc_q_q(dst, src)) } +inst_sha1h_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA1H, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sha1h_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1h_q_q(dst, src)) } +inst_sha1su0_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU0, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha1su0_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1su0_q_q_q(dst, src, src2)) } +inst_sha1su1_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU1, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sha1su1_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1su1_q_q(dst, src)) } +inst_sha1c_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1C, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha1c_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1c_q_q_q(dst, src, src2)) } +inst_sha1m_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1M, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha1m_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1m_q_q_q(dst, src, src2)) } +inst_sha1p_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1P, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha1p_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1p_q_q_q(dst, src, src2)) } +inst_sha256h_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha256h_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h_q_q_q(dst, src, src2)) } +inst_sha256h2_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H2, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha256h2_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h2_q_q_q(dst, src, src2)) } +inst_sha256su0_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU0, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_sha256su0_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha256su0_q_q(dst, src)) } +inst_sha256su1_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU1, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_sha256su1_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256su1_q_q_q(dst, src, src2)) } +inst_vjcvt_s_d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VJCVT, operand_count = 2, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vjcvt_s_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vjcvt_s_d(dst, src)) } +inst_vsdot_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vsdot_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VSDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vsdot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsdot_d_d_d(dst, src, src2)) } +emit_vsdot_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vsdot_d_d_dlane(dst, src, src2, lane)) } +inst_vudot_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VUDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vudot_d_d_dlane :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8) -> Instruction { return Instruction{mnemonic = .VUDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), {}, {}, {}}} } +emit_vudot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vudot_d_d_d(dst, src, src2)) } +emit_vudot_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vudot_d_d_dlane(dst, src, src2, lane)) } +inst_vdot_d_d_d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VDOT, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vdot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vdot_d_d_d(dst, src, src2)) } +inst_vmmla_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmmla_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmmla_q_q_q(dst, src, src2)) } +inst_vfmal_d_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMAL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfmal_d_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfmal_d_s_s(dst, src, src2)) } +inst_vfmsl_d_s_s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VFMSL, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vfmsl_d_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vfmsl_d_s_s(dst, src, src2)) } +inst_vcmla_d_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCMLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm), {}, {}}} } +inst_vcmla_d_d_dlane_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, lane: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .VCMLA, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_dpr_lane(src2, lane), op_imm(imm), {}, {}}} } +emit_vcmla_d_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vcmla_d_d_d_imm(dst, src, src2, imm)) } +emit_vcmla_d_d_dlane_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8, imm: i64) { append(instructions, inst_vcmla_d_d_dlane_imm(dst, src, src2, lane, imm)) } +inst_vcadd_d_d_d_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VCADD, operand_count = 4, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm), {}, {}}} } +emit_vcadd_d_d_d_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vcadd_d_d_d_imm(dst, src, src2, imm)) } +inst_vsmmla_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VSMMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vsmmla_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vsmmla_q_q_q(dst, src, src2)) } +inst_vummla_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VUMMLA, operand_count = 3, mode = .A32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +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_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_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), {}, {}, {}}} } +emit_vusdot_d_d_d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vusdot_d_d_d(dst, src, src2)) } +emit_vusdot_d_d_dlane :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, lane: u8) { append(instructions, inst_vusdot_d_d_dlane(dst, src, src2, lane)) } +inst_vqabs_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQABS, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqabs_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqabs_q_q(dst, src)) } +inst_vqneg_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQNEG, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqneg_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqneg_q_q(dst, src)) } +inst_vmovx_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVX, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmovx_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovx_s_s(dst, src)) } +inst_vins_s_s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VINS, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vins_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vins_s_s(dst, src)) } +inst_it_cond_imm4 :: #force_inline proc "contextless" (imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .IT, operand_count = 2, mode = .T32, cond = 14, length = 2, ops = {op_imm(imm), op_imm(imm2), {}, {}, {}, {}}} } +emit_it_cond_imm4 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) { append(instructions, inst_it_cond_imm4(imm, imm2)) } +inst_tt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_tt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tt_r_r(dst, src)) } +inst_ttt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TTT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_ttt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ttt_r_r(dst, src)) } +inst_tta_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TTA, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_tta_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_tta_r_r(dst, src)) } +inst_ttat_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .TTAT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_ttat_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ttat_r_r(dst, src)) } +inst_sg_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SG, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_sg_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sg_none()) } +inst_bxns_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BXNS, operand_count = 1, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_bxns_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_bxns_r(dst)) } +inst_blxns_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .BLXNS, operand_count = 1, mode = .T32, cond = 14, length = 2, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_blxns_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blxns_r(dst)) } +inst_pac_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .PAC, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_pac_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pac_none()) } +inst_pacbti_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .PACBTI, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_pacbti_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacbti_none()) } +inst_aut_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .AUT, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_aut_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_aut_none()) } +inst_autg_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .AUTG, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_autg_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_autg_r_r_r(dst, src, src2)) } +inst_bti_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .BTI, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_bti_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_none()) } +inst_wls_r_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .WLS, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_rel_offset(offset), {}, {}, {}, {}}} } +emit_wls_r_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_wls_r_rel(dst, offset)) } +inst_wlstp_r_rel :: #force_inline proc "contextless" (dst: Register, offset: i64) -> Instruction { return Instruction{mnemonic = .WLSTP, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_rel_offset(offset), {}, {}, {}, {}}} } +emit_wlstp_r_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, offset: i64) { append(instructions, inst_wlstp_r_rel(dst, offset)) } +inst_dls_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .DLS, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_dls_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dls_r(dst)) } +inst_dlstp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .DLSTP, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_dlstp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dlstp_r(dst)) } +inst_le_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .LE, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}, {}, {}}} } +emit_le_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_le_rel(offset)) } +inst_letp_rel :: #force_inline proc "contextless" (offset: i64) -> Instruction { return Instruction{mnemonic = .LETP, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), {}, {}, {}, {}, {}}} } +emit_letp_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64) { append(instructions, inst_letp_rel(offset)) } +inst_lctp_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .LCTP, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_lctp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lctp_none()) } +inst_bf_rel_rel :: #force_inline proc "contextless" (offset: i64, offset2: i64) -> Instruction { return Instruction{mnemonic = .BF, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_rel_offset(offset2), {}, {}, {}, {}}} } +emit_bf_rel_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, offset2: i64) { append(instructions, inst_bf_rel_rel(offset, offset2)) } +inst_bfx_rel_r :: #force_inline proc "contextless" (offset: i64, src: Register) -> Instruction { return Instruction{mnemonic = .BFX, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_reg(src), {}, {}, {}, {}}} } +emit_bfx_rel_r :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, src: Register) { append(instructions, inst_bfx_rel_r(offset, src)) } +inst_bfl_rel_rel :: #force_inline proc "contextless" (offset: i64, offset2: i64) -> Instruction { return Instruction{mnemonic = .BFL, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_rel_offset(offset2), {}, {}, {}, {}}} } +emit_bfl_rel_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, offset2: i64) { append(instructions, inst_bfl_rel_rel(offset, offset2)) } +inst_bflx_rel_r :: #force_inline proc "contextless" (offset: i64, src: Register) -> Instruction { return Instruction{mnemonic = .BFLX, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_reg(src), {}, {}, {}, {}}} } +emit_bflx_rel_r :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, src: Register) { append(instructions, inst_bflx_rel_r(offset, src)) } +inst_bfcsel_rel_rel_imm4 :: #force_inline proc "contextless" (offset: i64, offset2: i64, imm: i64) -> Instruction { return Instruction{mnemonic = .BFCSEL, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_rel_offset(offset), op_rel_offset(offset2), op_imm(imm), {}, {}, {}}} } +emit_bfcsel_rel_rel_imm4 :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i64, offset2: i64, imm: i64) { append(instructions, inst_bfcsel_rel_rel_imm4(offset, offset2, imm)) } +inst_cx1_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}, {}, {}}} } +emit_cx1_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1_cp_r_imm(imm, src, imm2)) } +inst_cx1a_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1A, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}, {}, {}}} } +emit_cx1a_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1a_cp_r_imm(imm, src, imm2)) } +inst_cx1d_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1D, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}, {}, {}}} } +emit_cx1d_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1d_cp_r_imm(imm, src, imm2)) } +inst_cx1da_cp_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX1DA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}, {}, {}}} } +emit_cx1da_cp_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_cx1da_cp_r_imm(imm, src, imm2)) } +inst_cx2_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2), {}, {}}} } +emit_cx2_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2_cp_r_r_imm(imm, src, src2, imm2)) } +inst_cx2a_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2), {}, {}}} } +emit_cx2a_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2a_cp_r_r_imm(imm, src, src2, imm2)) } +inst_cx2d_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2D, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2), {}, {}}} } +emit_cx2d_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2d_cp_r_r_imm(imm, src, src2, imm2)) } +inst_cx2da_cp_r_r_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .CX2DA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2), {}, {}}} } +emit_cx2da_cp_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_cx2da_cp_r_r_imm(imm, src, src2, imm2)) } +inst_cx3_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_cx3_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3_cp_r_r_r(imm, src, src2, src3)) } +inst_cx3a_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_cx3a_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3a_cp_r_r_r(imm, src, src2, src3)) } +inst_cx3d_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3D, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_cx3d_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3d_cp_r_r_r(imm, src, src2, src3)) } +inst_cx3da_cp_r_r_r :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .CX3DA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_cx3da_cp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_cx3da_cp_r_r_r(imm, src, src2, src3)) } +inst_vcx1_cp_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX1, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}, {}, {}}} } +emit_vcx1_cp_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_vcx1_cp_s_imm(imm, src, imm2)) } +inst_vcx1a_cp_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX1A, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_imm(imm2), {}, {}, {}}} } +emit_vcx1a_cp_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, imm2: i64) { append(instructions, inst_vcx1a_cp_s_imm(imm, src, imm2)) } +inst_vcx2_cp_s_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX2, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2), {}, {}}} } +emit_vcx2_cp_s_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_vcx2_cp_s_s_imm(imm, src, src2, imm2)) } +inst_vcx2a_cp_s_s_imm :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .VCX2A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_imm(imm2), {}, {}}} } +emit_vcx2a_cp_s_s_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, imm2: i64) { append(instructions, inst_vcx2a_cp_s_s_imm(imm, src, src2, imm2)) } +inst_vcx3_cp_s_s_s :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VCX3, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vcx3_cp_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_vcx3_cp_s_s_s(imm, src, src2, src3)) } +inst_vcx3a_cp_s_s_s :: #force_inline proc "contextless" (imm: i64, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VCX3A, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vcx3a_cp_s_s_s :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register, src2: Register, src3: Register) { append(instructions, inst_vcx3a_cp_s_s_s(imm, src, src2, src3)) } +inst_vpt_vpt_cond_q_q :: #force_inline proc "contextless" (imm: i64, imm2: i64, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPT, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), op_imm(imm2), op_reg(src), op_reg(src2), {}, {}}} } +emit_vpt_vpt_cond_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64, src: Register, src2: Register) { append(instructions, inst_vpt_vpt_cond_q_q(imm, imm2, src, src2)) } +inst_vpst_vpt :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .VPST, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_imm(imm), {}, {}, {}, {}, {}}} } +emit_vpst_vpt :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_vpst_vpt(imm)) } +inst_vpsel_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VPSEL, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vpsel_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vpsel_q_q_q(dst, src, src2)) } +inst_vpnot_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .VPNOT, operand_count = 0, mode = .T32, cond = 14, length = 4, ops = {{}, {}, {}, {}, {}, {}}} } +emit_vpnot_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vpnot_none()) } +inst_vctp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return Instruction{mnemonic = .VCTP, operand_count = 1, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), {}, {}, {}, {}, {}}} } +emit_vctp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_vctp_r(dst)) } +inst_vaddv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VADDV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vaddv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vaddv_r_q(dst, src)) } +inst_vaddva_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VADDVA, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vaddva_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vaddva_r_q(dst, src)) } +inst_vaddlv_r_r_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDLV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vaddlv_r_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddlv_r_r_q(dst, src, src2)) } +inst_vaddlva_r_r_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VADDLVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vaddlva_r_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vaddlva_r_r_q(dst, src, src2)) } +inst_vmaxv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmaxv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxv_r_q(dst, src)) } +inst_vmaxav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmaxav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxav_r_q(dst, src)) } +inst_vminv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vminv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminv_r_q(dst, src)) } +inst_vminav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vminav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminav_r_q(dst, src)) } +inst_vmaxnmv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXNMV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmaxnmv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxnmv_r_q(dst, src)) } +inst_vmaxnmav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMAXNMAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmaxnmav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmaxnmav_r_q(dst, src)) } +inst_vminnmv_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINNMV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vminnmv_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminnmv_r_q(dst, src)) } +inst_vminnmav_r_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMINNMAV, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vminnmav_r_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vminnmav_r_q(dst, src)) } +inst_vabav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VABAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vabav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vabav_r_q_q(dst, src, src2)) } +inst_vmladav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmladav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladav_r_q_q(dst, src, src2)) } +inst_vmladava_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmladava_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladava_r_q_q(dst, src, src2)) } +inst_vmladavx_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAVX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmladavx_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladavx_r_q_q(dst, src, src2)) } +inst_vmladavax_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLADAVAX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmladavax_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmladavax_r_q_q(dst, src, src2)) } +inst_vmlaldav_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAV, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlaldav_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldav_r_r_q_q(dst, src, src2, src3)) } +inst_vmlaldava_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAVA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlaldava_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldava_r_r_q_q(dst, src, src2, src3)) } +inst_vmlaldavx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAVX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlaldavx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldavx_r_r_q_q(dst, src, src2, src3)) } +inst_vmlaldavax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLALDAVAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlaldavax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlaldavax_r_r_q_q(dst, src, src2, src3)) } +inst_vmlsdav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlsdav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdav_r_q_q(dst, src, src2)) } +inst_vmlsdava_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlsdava_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdava_r_q_q(dst, src, src2)) } +inst_vmlsdavx_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAVX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlsdavx_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdavx_r_q_q(dst, src, src2)) } +inst_vmlsdavax_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSDAVAX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlsdavax_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsdavax_r_q_q(dst, src, src2)) } +inst_vmlsldav_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAV, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlsldav_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldav_r_r_q_q(dst, src, src2, src3)) } +inst_vmlsldava_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAVA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlsldava_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldava_r_r_q_q(dst, src, src2, src3)) } +inst_vmlsldavx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAVX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlsldavx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldavx_r_r_q_q(dst, src, src2, src3)) } +inst_vmlsldavax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VMLSLDAVAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vmlsldavax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vmlsldavax_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlaldavh_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVH, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlaldavh_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavh_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlaldavha_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVHA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlaldavha_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavha_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlaldavhx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVHX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlaldavhx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavhx_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlaldavhax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLALDAVHAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlaldavhax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlaldavhax_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlsldavh_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVH, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlsldavh_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavh_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlsldavha_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVHA, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlsldavha_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavha_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlsldavhx_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVHX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlsldavhx_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavhx_r_r_q_q(dst, src, src2, src3)) } +inst_vrmlsldavhax_r_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .VRMLSLDAVHAX, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_reg(src3), {}, {}}} } +emit_vrmlsldavhax_r_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_vrmlsldavhax_r_r_q_q(dst, src, src2, src3)) } +inst_vmlav_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLAV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlav_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlav_r_q_q(dst, src, src2)) } +inst_vmlava_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLAVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlava_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlava_r_q_q(dst, src, src2)) } +inst_vmlsv_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSV, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlsv_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsv_r_q_q(dst, src, src2)) } +inst_vmlsva_r_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSVA, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlsva_r_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlsva_r_q_q(dst, src, src2)) } +inst_vcmul_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VCMUL, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vcmul_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vcmul_q_q_q(dst, src, src2)) } +inst_vhcadd_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VHCADD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +inst_vhcadd_q_q_q_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VHCADD, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm), {}, {}}} } +emit_vhcadd_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vhcadd_q_q_q(dst, src, src2)) } +emit_vhcadd_q_q_q_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vhcadd_q_q_q_imm(dst, src, src2, imm)) } +inst_vbrsr_q_q_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VBRSR, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vbrsr_q_q_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vbrsr_q_q_r(dst, src, src2)) } +inst_vshlc_q_r_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLC, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshlc_q_r_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshlc_q_r_imm5(dst, src, imm)) } +inst_vddup_q_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VDDUP, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vddup_q_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vddup_q_r_imm(dst, src, imm)) } +inst_vidup_q_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VIDUP, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vidup_q_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vidup_q_r_imm(dst, src, imm)) } +inst_vdwdup_q_r_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VDWDUP, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm), {}, {}}} } +emit_vdwdup_q_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_vdwdup_q_r_r_imm(dst, src, src2, imm)) } +inst_viwdup_q_r_r_imm :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VIWDUP, operand_count = 4, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm), {}, {}}} } +emit_viwdup_q_r_r_imm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_viwdup_q_r_r_imm(dst, src, src2, imm)) } +inst_vmovnb_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVNB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmovnb_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovnb_q_q(dst, src)) } +inst_vmovnt_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VMOVNT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vmovnt_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vmovnt_q_q(dst, src)) } +inst_vqmovnb_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVNB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqmovnb_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovnb_q_q(dst, src)) } +inst_vqmovnt_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVNT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqmovnt_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovnt_q_q(dst, src)) } +inst_vqmovunb_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVUNB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqmovunb_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovunb_q_q(dst, src)) } +inst_vqmovunt_q_q :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .VQMOVUNT, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), {}, {}, {}, {}}} } +emit_vqmovunt_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_vqmovunt_q_q(dst, src)) } +inst_vshllb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLLB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshllb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshllb_q_q_imm5(dst, src, imm)) } +inst_vshllt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHLLT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshllt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshllt_q_q_imm5(dst, src, imm)) } +inst_vmullb_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMULLB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmullb_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmullb_q_q_q(dst, src, src2)) } +inst_vmullt_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMULLT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmullt_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmullt_q_q_q(dst, src, src2)) } +inst_vmlalb_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLALB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlalb_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlalb_q_q_q(dst, src, src2)) } +inst_vmlalt_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLALT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlalt_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlalt_q_q_q(dst, src, src2)) } +inst_vmlslb_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSLB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlslb_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlslb_q_q_q(dst, src, src2)) } +inst_vmlslt_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VMLSLT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vmlslt_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vmlslt_q_q_q(dst, src, src2)) } +inst_vshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshrnb_q_q_imm5(dst, src, imm)) } +inst_vshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vshrnt_q_q_imm5(dst, src, imm)) } +inst_vrshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vrshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshrnb_q_q_imm5(dst, src, imm)) } +inst_vrshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VRSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vrshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vrshrnt_q_q_imm5(dst, src, imm)) } +inst_vqshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrnb_q_q_imm5(dst, src, imm)) } +inst_vqshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrnt_q_q_imm5(dst, src, imm)) } +inst_vqrshrnb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqrshrnb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrnb_q_q_imm5(dst, src, imm)) } +inst_vqrshrnt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqrshrnt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrnt_q_q_imm5(dst, src, imm)) } +inst_vqshrunb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRUNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshrunb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrunb_q_q_imm5(dst, src, imm)) } +inst_vqshrunt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQSHRUNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqshrunt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqshrunt_q_q_imm5(dst, src, imm)) } +inst_vqrshrunb_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRUNB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqrshrunb_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrunb_q_q_imm5(dst, src, imm)) } +inst_vqrshrunt_q_q_imm5 :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .VQRSHRUNT, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm), {}, {}, {}}} } +emit_vqrshrunt_q_q_imm5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_vqrshrunt_q_q_imm5(dst, src, imm)) } +inst_vqdmladh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLADH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqdmladh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmladh_q_q_q(dst, src, src2)) } +inst_vqdmladhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLADHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqdmladhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmladhx_q_q_q(dst, src, src2)) } +inst_vqdmlsdh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLSDH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqdmlsdh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlsdh_q_q_q(dst, src, src2)) } +inst_vqdmlsdhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQDMLSDHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqdmlsdhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqdmlsdhx_q_q_q(dst, src, src2)) } +inst_vqrdmladh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLADH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqrdmladh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmladh_q_q_q(dst, src, src2)) } +inst_vqrdmladhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLADHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqrdmladhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmladhx_q_q_q(dst, src, src2)) } +inst_vqrdmlsdh_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSDH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqrdmlsdh_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsdh_q_q_q(dst, src, src2)) } +inst_vqrdmlsdhx_q_q_q :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .VQRDMLSDHX, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), {}, {}, {}}} } +emit_vqrdmlsdhx_q_q_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_vqrdmlsdhx_q_q_q(dst, src, src2)) } +inst_vldrb_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vldrb_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vldrb_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrb_q_mem(dst, src)) } +emit_vldrb_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrb_q_mem_q(dst, src, src2)) } +inst_vldrh_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vldrh_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vldrh_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrh_q_mem(dst, src)) } +emit_vldrh_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrh_q_mem_q(dst, src, src2)) } +inst_vldrw_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRW, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vldrw_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRW, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vldrw_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrw_q_mem(dst, src)) } +emit_vldrw_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrw_q_mem_q(dst, src, src2)) } +inst_vldrd_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VLDRD, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vldrd_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VLDRD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vldrd_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vldrd_q_mem(dst, src)) } +emit_vldrd_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vldrd_q_mem_q(dst, src, src2)) } +inst_vstrb_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRB, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vstrb_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRB, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vstrb_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrb_q_mem(dst, src)) } +emit_vstrb_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrb_q_mem_q(dst, src, src2)) } +inst_vstrh_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRH, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vstrh_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRH, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vstrh_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrh_q_mem(dst, src)) } +emit_vstrh_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrh_q_mem_q(dst, src, src2)) } +inst_vstrw_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRW, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vstrw_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRW, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vstrw_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrw_q_mem(dst, src)) } +emit_vstrw_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrw_q_mem_q(dst, src, src2)) } +inst_vstrd_q_mem :: #force_inline proc "contextless" (dst: Register, src: Memory) -> Instruction { return Instruction{mnemonic = .VSTRD, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), {}, {}, {}, {}}} } +inst_vstrd_q_mem_q :: #force_inline proc "contextless" (dst: Register, src: Memory, src2: Register) -> Instruction { return Instruction{mnemonic = .VSTRD, operand_count = 3, mode = .T32, cond = 14, length = 4, ops = {op_reg(dst), op_mem(src), op_reg(src2), {}, {}, {}}} } +emit_vstrd_q_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory) { append(instructions, inst_vstrd_q_mem(dst, src)) } +emit_vstrd_q_mem_q :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Memory, src2: Register) { append(instructions, inst_vstrd_q_mem_q(dst, src, src2)) } +inst_vld20_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD20, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld20_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld20_qlist_mem(regs, src)) } +inst_vld21_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD21, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld21_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld21_qlist_mem(regs, src)) } +inst_vld40_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD40, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld40_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld40_qlist_mem(regs, src)) } +inst_vld41_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD41, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld41_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld41_qlist_mem(regs, src)) } +inst_vld42_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD42, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld42_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld42_qlist_mem(regs, src)) } +inst_vld43_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VLD43, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vld43_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vld43_qlist_mem(regs, src)) } +inst_vst20_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST20, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst20_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst20_qlist_mem(regs, src)) } +inst_vst21_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST21, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst21_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst21_qlist_mem(regs, src)) } +inst_vst40_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST40, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst40_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst40_qlist_mem(regs, src)) } +inst_vst41_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST41, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst41_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst41_qlist_mem(regs, src)) } +inst_vst42_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST42, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst42_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst42_qlist_mem(regs, src)) } +inst_vst43_qlist_mem :: #force_inline proc "contextless" (regs: u16, src: Memory) -> Instruction { return Instruction{mnemonic = .VST43, operand_count = 2, mode = .T32, cond = 14, length = 4, ops = {op_reg_list(regs), op_mem(src), {}, {}, {}, {}}} } +emit_vst43_qlist_mem :: #force_inline proc(instructions: ^[dynamic]Instruction, regs: u16, src: Memory) { append(instructions, inst_vst43_qlist_mem(regs, src)) } // ============================================================================= // Overload Groups // ============================================================================= -inst_and :: proc{ inst_and_r_r_immm, inst_and_r_r_rsh, inst_and_r_r_rsr, inst_and_rlo_rlo } -emit_and :: proc{ emit_and_r_r_immm, emit_and_r_r_rsh, emit_and_r_r_rsr, emit_and_rlo_rlo } -inst_eor :: proc{ inst_eor_r_r_immm, inst_eor_r_r_rsh, inst_eor_r_r_rsr, inst_eor_rlo_rlo } -emit_eor :: proc{ emit_eor_r_r_immm, emit_eor_r_r_rsh, emit_eor_r_r_rsr, emit_eor_rlo_rlo } -inst_sub :: proc{ inst_sub_r_r_immm, inst_sub_r_r_rsh, inst_sub_r_r_rsr, inst_sub_rlo_rlo_rlo, inst_sub_rlo_imm8 } -emit_sub :: proc{ emit_sub_r_r_immm, emit_sub_r_r_rsh, emit_sub_r_r_rsr, emit_sub_rlo_rlo_rlo, emit_sub_rlo_imm8 } -inst_rsb :: proc{ inst_rsb_r_r_immm, inst_rsb_r_r_rsh, inst_rsb_r_r_rsr } -emit_rsb :: proc{ emit_rsb_r_r_immm, emit_rsb_r_r_rsh, emit_rsb_r_r_rsr } -inst_add :: proc{ inst_add_r_r_immm, inst_add_r_r_rsh, inst_add_r_r_rsr, inst_add_rlo_rlo_rlo, inst_add_rlo_imm8, inst_add_r_r } -emit_add :: proc{ emit_add_r_r_immm, emit_add_r_r_rsh, emit_add_r_r_rsr, emit_add_rlo_rlo_rlo, emit_add_rlo_imm8, emit_add_r_r } -inst_adc :: proc{ inst_adc_r_r_immm, inst_adc_r_r_rsh, inst_adc_r_r_rsr, inst_adc_rlo_rlo } -emit_adc :: proc{ emit_adc_r_r_immm, emit_adc_r_r_rsh, emit_adc_r_r_rsr, emit_adc_rlo_rlo } -inst_sbc :: proc{ inst_sbc_r_r_immm, inst_sbc_r_r_rsh, inst_sbc_r_r_rsr, inst_sbc_rlo_rlo } -emit_sbc :: proc{ emit_sbc_r_r_immm, emit_sbc_r_r_rsh, emit_sbc_r_r_rsr, emit_sbc_rlo_rlo } -inst_rsc :: proc{ inst_rsc_r_r_immm, inst_rsc_r_r_rsh, inst_rsc_r_r_rsr } -emit_rsc :: proc{ emit_rsc_r_r_immm, emit_rsc_r_r_rsh, emit_rsc_r_r_rsr } -inst_tst :: proc{ inst_tst_r_immm, inst_tst_r_rsh, inst_tst_r_rsr, inst_tst_rlo_rlo } -emit_tst :: proc{ emit_tst_r_immm, emit_tst_r_rsh, emit_tst_r_rsr, emit_tst_rlo_rlo } -inst_teq :: proc{ inst_teq_r_immm, inst_teq_r_rsh, inst_teq_r_rsr } -emit_teq :: proc{ emit_teq_r_immm, emit_teq_r_rsh, emit_teq_r_rsr } -inst_cmp :: proc{ inst_cmp_r_immm, inst_cmp_r_rsh, inst_cmp_r_rsr, inst_cmp_rlo_rlo } -emit_cmp :: proc{ emit_cmp_r_immm, emit_cmp_r_rsh, emit_cmp_r_rsr, emit_cmp_rlo_rlo } -inst_cmn :: proc{ inst_cmn_r_immm, inst_cmn_r_rsh, inst_cmn_r_rsr, inst_cmn_rlo_rlo } -emit_cmn :: proc{ emit_cmn_r_immm, emit_cmn_r_rsh, emit_cmn_r_rsr, emit_cmn_rlo_rlo } -inst_orr :: proc{ inst_orr_r_r_immm, inst_orr_r_r_rsh, inst_orr_r_r_rsr, inst_orr_rlo_rlo } -emit_orr :: proc{ emit_orr_r_r_immm, emit_orr_r_r_rsh, emit_orr_r_r_rsr, emit_orr_rlo_rlo } -inst_mov :: proc{ inst_mov_r_immm, inst_mov_r_rsh, inst_mov_r_rsr, inst_mov_r_r } -emit_mov :: proc{ emit_mov_r_immm, emit_mov_r_rsh, emit_mov_r_rsr, emit_mov_r_r } -inst_bic :: proc{ inst_bic_r_r_immm, inst_bic_r_r_rsh, inst_bic_r_r_rsr, inst_bic_rlo_rlo } -emit_bic :: proc{ emit_bic_r_r_immm, emit_bic_r_r_rsh, emit_bic_r_r_rsr, emit_bic_rlo_rlo } -inst_mvn :: proc{ inst_mvn_r_immm, inst_mvn_r_rsh, inst_mvn_r_rsr, inst_mvn_rlo_rlo } -emit_mvn :: proc{ emit_mvn_r_immm, emit_mvn_r_rsh, emit_mvn_r_rsr, emit_mvn_rlo_rlo } -inst_lsl :: proc{ inst_lsl_r_r_imm5, inst_lsl_r_r_r, inst_lsl_rlo_rlo } -emit_lsl :: proc{ emit_lsl_r_r_imm5, emit_lsl_r_r_r, emit_lsl_rlo_rlo } -inst_lsr :: proc{ inst_lsr_r_r_imm5, inst_lsr_r_r_r, inst_lsr_rlo_rlo } -emit_lsr :: proc{ emit_lsr_r_r_imm5, emit_lsr_r_r_r, emit_lsr_rlo_rlo } -inst_asr :: proc{ inst_asr_r_r_imm5, inst_asr_r_r_r, inst_asr_rlo_rlo } -emit_asr :: proc{ emit_asr_r_r_imm5, emit_asr_r_r_r, emit_asr_rlo_rlo } -inst_ror :: proc{ inst_ror_r_r_imm5, inst_ror_r_r_r, inst_ror_rlo_rlo } -emit_ror :: proc{ emit_ror_r_r_imm5, emit_ror_r_r_r, emit_ror_rlo_rlo } -inst_rrx :: inst_rrx_r_r -emit_rrx :: emit_rrx_r_r -inst_adr :: inst_adr_rlo_rel -emit_adr :: emit_adr_rlo_rel -inst_neg :: inst_neg_rlo_rlo -emit_neg :: emit_neg_rlo_rlo -inst_movw :: inst_movw_r_imm16 -emit_movw :: emit_movw_r_imm16 -inst_movt :: inst_movt_r_imm16 -emit_movt :: emit_movt_r_imm16 -inst_bfc :: inst_bfc_r_imm5_imm5w -emit_bfc :: emit_bfc_r_imm5_imm5w -inst_bfi :: inst_bfi_r_r_imm5_imm5w -emit_bfi :: emit_bfi_r_r_imm5_imm5w -inst_sbfx :: inst_sbfx_r_r_imm5_imm5w -emit_sbfx :: emit_sbfx_r_r_imm5_imm5w -inst_ubfx :: inst_ubfx_r_r_imm5_imm5w -emit_ubfx :: emit_ubfx_r_r_imm5_imm5w -inst_sxtb :: inst_sxtb_r_r -emit_sxtb :: emit_sxtb_r_r -inst_sxtb16 :: inst_sxtb16_r_r -emit_sxtb16 :: emit_sxtb16_r_r -inst_sxth :: inst_sxth_r_r -emit_sxth :: emit_sxth_r_r -inst_uxtb :: inst_uxtb_r_r -emit_uxtb :: emit_uxtb_r_r -inst_uxtb16 :: inst_uxtb16_r_r -emit_uxtb16 :: emit_uxtb16_r_r -inst_uxth :: inst_uxth_r_r -emit_uxth :: emit_uxth_r_r -inst_sxtab :: inst_sxtab_r_r_r -emit_sxtab :: emit_sxtab_r_r_r -inst_sxtab16 :: inst_sxtab16_r_r_r -emit_sxtab16 :: emit_sxtab16_r_r_r -inst_sxtah :: inst_sxtah_r_r_r -emit_sxtah :: emit_sxtah_r_r_r -inst_uxtab :: inst_uxtab_r_r_r -emit_uxtab :: emit_uxtab_r_r_r -inst_uxtab16 :: inst_uxtab16_r_r_r -emit_uxtab16 :: emit_uxtab16_r_r_r -inst_uxtah :: inst_uxtah_r_r_r -emit_uxtah :: emit_uxtah_r_r_r -inst_clz :: inst_clz_r_r -emit_clz :: emit_clz_r_r -inst_rbit :: inst_rbit_r_r -emit_rbit :: emit_rbit_r_r -inst_rev :: inst_rev_r_r -emit_rev :: emit_rev_r_r -inst_rev16 :: inst_rev16_r_r -emit_rev16 :: emit_rev16_r_r -inst_revsh :: inst_revsh_r_r -emit_revsh :: emit_revsh_r_r -inst_sel :: inst_sel_r_r_r -emit_sel :: emit_sel_r_r_r -inst_pkhbt :: inst_pkhbt_r_r_rsh -emit_pkhbt :: emit_pkhbt_r_r_rsh -inst_pkhtb :: inst_pkhtb_r_r_rsh -emit_pkhtb :: emit_pkhtb_r_r_rsh -inst_usad8 :: inst_usad8_r_r_r -emit_usad8 :: emit_usad8_r_r_r -inst_usada8 :: inst_usada8_r_r_r_r -emit_usada8 :: emit_usada8_r_r_r_r -inst_ssat :: inst_ssat_r_imm4s_rsh -emit_ssat :: emit_ssat_r_imm4s_rsh -inst_usat :: inst_usat_r_imm4s_rsh -emit_usat :: emit_usat_r_imm4s_rsh -inst_ssat16 :: inst_ssat16_r_imm4s_r -emit_ssat16 :: emit_ssat16_r_imm4s_r -inst_usat16 :: inst_usat16_r_imm4s_r -emit_usat16 :: emit_usat16_r_imm4s_r -inst_qadd :: inst_qadd_r_r_r -emit_qadd :: emit_qadd_r_r_r -inst_qsub :: inst_qsub_r_r_r -emit_qsub :: emit_qsub_r_r_r -inst_qdadd :: inst_qdadd_r_r_r -emit_qdadd :: emit_qdadd_r_r_r -inst_qdsub :: inst_qdsub_r_r_r -emit_qdsub :: emit_qdsub_r_r_r -inst_sadd8 :: inst_sadd8_r_r_r -emit_sadd8 :: emit_sadd8_r_r_r -inst_sadd16 :: inst_sadd16_r_r_r -emit_sadd16 :: emit_sadd16_r_r_r -inst_sasx :: inst_sasx_r_r_r -emit_sasx :: emit_sasx_r_r_r -inst_ssax :: inst_ssax_r_r_r -emit_ssax :: emit_ssax_r_r_r -inst_ssub8 :: inst_ssub8_r_r_r -emit_ssub8 :: emit_ssub8_r_r_r -inst_ssub16 :: inst_ssub16_r_r_r -emit_ssub16 :: emit_ssub16_r_r_r -inst_uadd8 :: inst_uadd8_r_r_r -emit_uadd8 :: emit_uadd8_r_r_r -inst_uadd16 :: inst_uadd16_r_r_r -emit_uadd16 :: emit_uadd16_r_r_r -inst_uasx :: inst_uasx_r_r_r -emit_uasx :: emit_uasx_r_r_r -inst_usax :: inst_usax_r_r_r -emit_usax :: emit_usax_r_r_r -inst_usub8 :: inst_usub8_r_r_r -emit_usub8 :: emit_usub8_r_r_r -inst_usub16 :: inst_usub16_r_r_r -emit_usub16 :: emit_usub16_r_r_r -inst_qadd8 :: inst_qadd8_r_r_r -emit_qadd8 :: emit_qadd8_r_r_r -inst_qadd16 :: inst_qadd16_r_r_r -emit_qadd16 :: emit_qadd16_r_r_r -inst_qasx :: inst_qasx_r_r_r -emit_qasx :: emit_qasx_r_r_r -inst_qsax :: inst_qsax_r_r_r -emit_qsax :: emit_qsax_r_r_r -inst_qsub8 :: inst_qsub8_r_r_r -emit_qsub8 :: emit_qsub8_r_r_r -inst_qsub16 :: inst_qsub16_r_r_r -emit_qsub16 :: emit_qsub16_r_r_r -inst_uqadd8 :: inst_uqadd8_r_r_r -emit_uqadd8 :: emit_uqadd8_r_r_r -inst_uqadd16 :: inst_uqadd16_r_r_r -emit_uqadd16 :: emit_uqadd16_r_r_r -inst_uqasx :: inst_uqasx_r_r_r -emit_uqasx :: emit_uqasx_r_r_r -inst_uqsax :: inst_uqsax_r_r_r -emit_uqsax :: emit_uqsax_r_r_r -inst_uqsub8 :: inst_uqsub8_r_r_r -emit_uqsub8 :: emit_uqsub8_r_r_r -inst_uqsub16 :: inst_uqsub16_r_r_r -emit_uqsub16 :: emit_uqsub16_r_r_r -inst_shadd8 :: inst_shadd8_r_r_r -emit_shadd8 :: emit_shadd8_r_r_r -inst_shadd16 :: inst_shadd16_r_r_r -emit_shadd16 :: emit_shadd16_r_r_r -inst_shasx :: inst_shasx_r_r_r -emit_shasx :: emit_shasx_r_r_r -inst_shsax :: inst_shsax_r_r_r -emit_shsax :: emit_shsax_r_r_r -inst_shsub8 :: inst_shsub8_r_r_r -emit_shsub8 :: emit_shsub8_r_r_r -inst_shsub16 :: inst_shsub16_r_r_r -emit_shsub16 :: emit_shsub16_r_r_r -inst_uhadd8 :: inst_uhadd8_r_r_r -emit_uhadd8 :: emit_uhadd8_r_r_r -inst_uhadd16 :: inst_uhadd16_r_r_r -emit_uhadd16 :: emit_uhadd16_r_r_r -inst_uhasx :: inst_uhasx_r_r_r -emit_uhasx :: emit_uhasx_r_r_r -inst_uhsax :: inst_uhsax_r_r_r -emit_uhsax :: emit_uhsax_r_r_r -inst_uhsub8 :: inst_uhsub8_r_r_r -emit_uhsub8 :: emit_uhsub8_r_r_r -inst_uhsub16 :: inst_uhsub16_r_r_r -emit_uhsub16 :: emit_uhsub16_r_r_r -inst_smuad :: inst_smuad_r_r_r -emit_smuad :: emit_smuad_r_r_r -inst_smuadx :: inst_smuadx_r_r_r -emit_smuadx :: emit_smuadx_r_r_r -inst_smusd :: inst_smusd_r_r_r -emit_smusd :: emit_smusd_r_r_r -inst_smusdx :: inst_smusdx_r_r_r -emit_smusdx :: emit_smusdx_r_r_r -inst_smlad :: inst_smlad_r_r_r_r -emit_smlad :: emit_smlad_r_r_r_r -inst_smladx :: inst_smladx_r_r_r_r -emit_smladx :: emit_smladx_r_r_r_r -inst_smlsd :: inst_smlsd_r_r_r_r -emit_smlsd :: emit_smlsd_r_r_r_r -inst_smlsdx :: inst_smlsdx_r_r_r_r -emit_smlsdx :: emit_smlsdx_r_r_r_r -inst_smlald :: inst_smlald_r_r_r_r -emit_smlald :: emit_smlald_r_r_r_r -inst_smlaldx :: inst_smlaldx_r_r_r_r -emit_smlaldx :: emit_smlaldx_r_r_r_r -inst_smlsld :: inst_smlsld_r_r_r_r -emit_smlsld :: emit_smlsld_r_r_r_r -inst_smlsldx :: inst_smlsldx_r_r_r_r -emit_smlsldx :: emit_smlsldx_r_r_r_r -inst_smmul :: inst_smmul_r_r_r -emit_smmul :: emit_smmul_r_r_r -inst_smmulr :: inst_smmulr_r_r_r -emit_smmulr :: emit_smmulr_r_r_r -inst_smmla :: inst_smmla_r_r_r_r -emit_smmla :: emit_smmla_r_r_r_r -inst_smmlar :: inst_smmlar_r_r_r_r -emit_smmlar :: emit_smmlar_r_r_r_r -inst_smmls :: inst_smmls_r_r_r_r -emit_smmls :: emit_smmls_r_r_r_r -inst_smmlsr :: inst_smmlsr_r_r_r_r -emit_smmlsr :: emit_smmlsr_r_r_r_r -inst_mul :: proc{ inst_mul_r_r_r, inst_mul_rlo_rlo } -emit_mul :: proc{ emit_mul_r_r_r, emit_mul_rlo_rlo } -inst_mla :: inst_mla_r_r_r_r -emit_mla :: emit_mla_r_r_r_r -inst_mls :: inst_mls_r_r_r_r -emit_mls :: emit_mls_r_r_r_r -inst_umull :: inst_umull_r_r_r_r -emit_umull :: emit_umull_r_r_r_r -inst_umlal :: inst_umlal_r_r_r_r -emit_umlal :: emit_umlal_r_r_r_r -inst_smull :: inst_smull_r_r_r_r -emit_smull :: emit_smull_r_r_r_r -inst_smlal :: inst_smlal_r_r_r_r -emit_smlal :: emit_smlal_r_r_r_r -inst_umaal :: inst_umaal_r_r_r_r -emit_umaal :: emit_umaal_r_r_r_r -inst_smlabb :: inst_smlabb_r_r_r_r -emit_smlabb :: emit_smlabb_r_r_r_r -inst_smlabt :: inst_smlabt_r_r_r_r -emit_smlabt :: emit_smlabt_r_r_r_r -inst_smlatb :: inst_smlatb_r_r_r_r -emit_smlatb :: emit_smlatb_r_r_r_r -inst_smlatt :: inst_smlatt_r_r_r_r -emit_smlatt :: emit_smlatt_r_r_r_r -inst_smlawb :: inst_smlawb_r_r_r_r -emit_smlawb :: emit_smlawb_r_r_r_r -inst_smlawt :: inst_smlawt_r_r_r_r -emit_smlawt :: emit_smlawt_r_r_r_r -inst_smulbb :: inst_smulbb_r_r_r -emit_smulbb :: emit_smulbb_r_r_r -inst_smulbt :: inst_smulbt_r_r_r -emit_smulbt :: emit_smulbt_r_r_r -inst_smultb :: inst_smultb_r_r_r -emit_smultb :: emit_smultb_r_r_r -inst_smultt :: inst_smultt_r_r_r -emit_smultt :: emit_smultt_r_r_r -inst_smulwb :: inst_smulwb_r_r_r -emit_smulwb :: emit_smulwb_r_r_r -inst_smulwt :: inst_smulwt_r_r_r -emit_smulwt :: emit_smulwt_r_r_r -inst_smlalbb :: inst_smlalbb_r_r_r_r -emit_smlalbb :: emit_smlalbb_r_r_r_r -inst_smlalbt :: inst_smlalbt_r_r_r_r -emit_smlalbt :: emit_smlalbt_r_r_r_r -inst_smlaltb :: inst_smlaltb_r_r_r_r -emit_smlaltb :: emit_smlaltb_r_r_r_r -inst_smlaltt :: inst_smlaltt_r_r_r_r -emit_smlaltt :: emit_smlaltt_r_r_r_r -inst_sdiv :: inst_sdiv_r_r_r -emit_sdiv :: emit_sdiv_r_r_r -inst_udiv :: inst_udiv_r_r_r -emit_udiv :: emit_udiv_r_r_r -inst_b :: proc{ inst_b_rel, inst_b_rel_cond } -emit_b :: proc{ emit_b_rel, emit_b_rel_cond } -inst_bl :: inst_bl_rel -emit_bl :: emit_bl_rel -inst_bx :: inst_bx_r -emit_bx :: emit_bx_r -inst_blx :: proc{ inst_blx_r, inst_blx_rel } -emit_blx :: proc{ emit_blx_r, emit_blx_rel } -inst_bxj :: inst_bxj_r -emit_bxj :: emit_bxj_r -inst_cbz :: inst_cbz_rlo_rel -emit_cbz :: emit_cbz_rlo_rel -inst_cbnz :: inst_cbnz_rlo_rel -emit_cbnz :: emit_cbnz_rlo_rel -inst_tbb :: inst_tbb_r_r -emit_tbb :: emit_tbb_r_r -inst_tbh :: inst_tbh_r_r -emit_tbh :: emit_tbh_r_r -inst_msr :: proc{ inst_msr_psr_immm, inst_msr_psr_r } -emit_msr :: proc{ emit_msr_psr_immm, emit_msr_psr_r } -inst_mrs :: inst_mrs_r_psr -emit_mrs :: emit_mrs_r_psr -inst_cps :: inst_cps_ifl -emit_cps :: emit_cps_ifl -inst_setend :: inst_setend_end -emit_setend :: emit_setend_end -inst_nop :: inst_nop_none -emit_nop :: emit_nop_none -inst_yield :: inst_yield_none -emit_yield :: emit_yield_none -inst_wfe :: inst_wfe_none -emit_wfe :: emit_wfe_none -inst_wfi :: inst_wfi_none -emit_wfi :: emit_wfi_none -inst_sev :: inst_sev_none -emit_sev :: emit_sev_none -inst_sevl :: inst_sevl_none -emit_sevl :: emit_sevl_none -inst_dbg :: inst_dbg_hint -emit_dbg :: emit_dbg_hint -inst_hint :: inst_hint_hint -emit_hint :: emit_hint_hint -inst_dmb :: inst_dmb_barr -emit_dmb :: emit_dmb_barr -inst_dsb :: inst_dsb_barr -emit_dsb :: emit_dsb_barr -inst_isb :: inst_isb_barr -emit_isb :: emit_isb_barr -inst_clrex :: inst_clrex_none -emit_clrex :: emit_clrex_none -inst_pld :: inst_pld_mem -emit_pld :: emit_pld_mem -inst_pldw :: inst_pldw_mem -emit_pldw :: emit_pldw_mem -inst_pli :: inst_pli_mem -emit_pli :: emit_pli_mem -inst_hlt :: inst_hlt_imm -emit_hlt :: emit_hlt_imm -inst_dcps1 :: inst_dcps1_none -emit_dcps1 :: emit_dcps1_none -inst_dcps2 :: inst_dcps2_none -emit_dcps2 :: emit_dcps2_none -inst_dcps3 :: inst_dcps3_none -emit_dcps3 :: emit_dcps3_none -inst_eret :: inst_eret_none -emit_eret :: emit_eret_none -inst_esb :: inst_esb_none -emit_esb :: emit_esb_none -inst_psb_csync :: inst_psb_csync_none -emit_psb_csync :: emit_psb_csync_none -inst_tsb_csync :: inst_tsb_csync_none -emit_tsb_csync :: emit_tsb_csync_none -inst_csdb :: inst_csdb_none -emit_csdb :: emit_csdb_none -inst_sb :: inst_sb_none -emit_sb :: emit_sb_none -inst_setpan :: inst_setpan_hint -emit_setpan :: emit_setpan_hint -inst_svc :: inst_svc_imm -emit_svc :: emit_svc_imm -inst_bkpt :: inst_bkpt_imm -emit_bkpt :: emit_bkpt_imm -inst_hvc :: inst_hvc_imm -emit_hvc :: emit_hvc_imm -inst_smc :: inst_smc_imm -emit_smc :: emit_smc_imm -inst_udf :: inst_udf_imm -emit_udf :: emit_udf_imm -inst_ldr :: inst_ldr_r_mem -emit_ldr :: emit_ldr_r_mem -inst_str :: inst_str_r_mem -emit_str :: emit_str_r_mem -inst_ldrb :: inst_ldrb_r_mem -emit_ldrb :: emit_ldrb_r_mem -inst_strb :: inst_strb_r_mem -emit_strb :: emit_strb_r_mem -inst_ldrh :: inst_ldrh_r_mem -emit_ldrh :: emit_ldrh_r_mem -inst_strh :: inst_strh_r_mem -emit_strh :: emit_strh_r_mem -inst_ldrsb :: inst_ldrsb_r_mem -emit_ldrsb :: emit_ldrsb_r_mem -inst_ldrsh :: inst_ldrsh_r_mem -emit_ldrsh :: emit_ldrsh_r_mem -inst_ldrd :: proc{ inst_ldrd_r_mem, inst_ldrd_r_r_mem } -emit_ldrd :: proc{ emit_ldrd_r_mem, emit_ldrd_r_r_mem } -inst_strd :: proc{ inst_strd_r_mem, inst_strd_r_r_mem } -emit_strd :: proc{ emit_strd_r_mem, emit_strd_r_r_mem } -inst_ldrt :: inst_ldrt_r_mem -emit_ldrt :: emit_ldrt_r_mem -inst_strt :: inst_strt_r_mem -emit_strt :: emit_strt_r_mem -inst_ldrbt :: inst_ldrbt_r_mem -emit_ldrbt :: emit_ldrbt_r_mem -inst_strbt :: inst_strbt_r_mem -emit_strbt :: emit_strbt_r_mem -inst_ldrht :: inst_ldrht_r_mem -emit_ldrht :: emit_ldrht_r_mem -inst_strht :: inst_strht_r_mem -emit_strht :: emit_strht_r_mem -inst_ldrsbt :: inst_ldrsbt_r_mem -emit_ldrsbt :: emit_ldrsbt_r_mem -inst_ldrsht :: inst_ldrsht_r_mem -emit_ldrsht :: emit_ldrsht_r_mem -inst_lda :: inst_lda_r_mem -emit_lda :: emit_lda_r_mem -inst_stl :: inst_stl_r_mem -emit_stl :: emit_stl_r_mem -inst_ldab :: inst_ldab_r_mem -emit_ldab :: emit_ldab_r_mem -inst_stlb :: inst_stlb_r_mem -emit_stlb :: emit_stlb_r_mem -inst_ldah :: inst_ldah_r_mem -emit_ldah :: emit_ldah_r_mem -inst_stlh :: inst_stlh_r_mem -emit_stlh :: emit_stlh_r_mem -inst_ldrex :: inst_ldrex_r_mem -emit_ldrex :: emit_ldrex_r_mem -inst_strex :: inst_strex_r_r_mem -emit_strex :: emit_strex_r_r_mem -inst_ldrexb :: inst_ldrexb_r_mem -emit_ldrexb :: emit_ldrexb_r_mem -inst_strexb :: inst_strexb_r_r_mem -emit_strexb :: emit_strexb_r_r_mem -inst_ldrexh :: inst_ldrexh_r_mem -emit_ldrexh :: emit_ldrexh_r_mem -inst_strexh :: inst_strexh_r_r_mem -emit_strexh :: emit_strexh_r_r_mem -inst_ldrexd :: proc{ inst_ldrexd_r_mem, inst_ldrexd_r_r_mem } -emit_ldrexd :: proc{ emit_ldrexd_r_mem, emit_ldrexd_r_r_mem } -inst_strexd :: proc{ inst_strexd_r_r_mem, inst_strexd_r_r_r_mem } -emit_strexd :: proc{ emit_strexd_r_r_mem, emit_strexd_r_r_r_mem } -inst_ldaex :: inst_ldaex_r_mem -emit_ldaex :: emit_ldaex_r_mem -inst_stlex :: inst_stlex_r_r_mem -emit_stlex :: emit_stlex_r_r_mem -inst_ldaexb :: inst_ldaexb_r_mem -emit_ldaexb :: emit_ldaexb_r_mem -inst_stlexb :: inst_stlexb_r_r_mem -emit_stlexb :: emit_stlexb_r_r_mem -inst_ldaexh :: inst_ldaexh_r_mem -emit_ldaexh :: emit_ldaexh_r_mem -inst_stlexh :: inst_stlexh_r_r_mem -emit_stlexh :: emit_stlexh_r_r_mem -inst_ldaexd :: inst_ldaexd_r_mem -emit_ldaexd :: emit_ldaexd_r_mem -inst_stlexd :: inst_stlexd_r_r_mem -emit_stlexd :: emit_stlexd_r_r_mem -inst_ldm :: inst_ldm_r_list -emit_ldm :: emit_ldm_r_list -inst_stm :: inst_stm_r_list -emit_stm :: emit_stm_r_list -inst_push :: inst_push_list -emit_push :: emit_push_list -inst_pop :: inst_pop_list -emit_pop :: emit_pop_list -inst_swp :: inst_swp_r_r_r -emit_swp :: emit_swp_r_r_r -inst_swpb :: inst_swpb_r_r_r -emit_swpb :: emit_swpb_r_r_r -inst_rfe :: inst_rfe_r -emit_rfe :: emit_rfe_r -inst_srs :: inst_srs_imm -emit_srs :: emit_srs_imm -inst_cdp :: inst_cdp_cpn_cpop_crd_crd -emit_cdp :: emit_cdp_cpn_cpop_crd_crd -inst_cdp2 :: inst_cdp2_cpn_cpop_crd_crd -emit_cdp2 :: emit_cdp2_cpn_cpop_crd_crd -inst_mcr :: inst_mcr_cpn_cpop_r_crd -emit_mcr :: emit_mcr_cpn_cpop_r_crd -inst_mcr2 :: inst_mcr2_cpn_cpop_r_crd -emit_mcr2 :: emit_mcr2_cpn_cpop_r_crd -inst_mrc :: inst_mrc_cpn_cpop_r_crd -emit_mrc :: emit_mrc_cpn_cpop_r_crd -inst_mrc2 :: inst_mrc2_cpn_cpop_r_crd -emit_mrc2 :: emit_mrc2_cpn_cpop_r_crd -inst_mcrr :: inst_mcrr_cpn_cpop_r_r -emit_mcrr :: emit_mcrr_cpn_cpop_r_r -inst_mcrr2 :: inst_mcrr2_cpn_cpop_r_r -emit_mcrr2 :: emit_mcrr2_cpn_cpop_r_r -inst_mrrc :: inst_mrrc_cpn_cpop_r_r -emit_mrrc :: emit_mrrc_cpn_cpop_r_r -inst_mrrc2 :: inst_mrrc2_cpn_cpop_r_r -emit_mrrc2 :: emit_mrrc2_cpn_cpop_r_r -inst_ldc :: inst_ldc_cpn_crd_mem -emit_ldc :: emit_ldc_cpn_crd_mem -inst_ldc2 :: inst_ldc2_cpn_crd_mem -emit_ldc2 :: emit_ldc2_cpn_crd_mem -inst_stc :: inst_stc_cpn_crd_mem -emit_stc :: emit_stc_cpn_crd_mem -inst_stc2 :: inst_stc2_cpn_crd_mem -emit_stc2 :: emit_stc2_cpn_crd_mem -inst_crc32b :: inst_crc32b_r_r_r -emit_crc32b :: emit_crc32b_r_r_r -inst_crc32h :: inst_crc32h_r_r_r -emit_crc32h :: emit_crc32h_r_r_r -inst_crc32w :: inst_crc32w_r_r_r -emit_crc32w :: emit_crc32w_r_r_r -inst_crc32cb :: inst_crc32cb_r_r_r -emit_crc32cb :: emit_crc32cb_r_r_r -inst_crc32ch :: inst_crc32ch_r_r_r -emit_crc32ch :: emit_crc32ch_r_r_r -inst_crc32cw :: inst_crc32cw_r_r_r -emit_crc32cw :: emit_crc32cw_r_r_r -inst_vadd :: inst_vadd_s_s_s -emit_vadd :: emit_vadd_s_s_s -inst_vsub :: inst_vsub_s_s_s -emit_vsub :: emit_vsub_s_s_s -inst_vmul :: inst_vmul_s_s_s -emit_vmul :: emit_vmul_s_s_s -inst_vdiv :: inst_vdiv_s_s_s -emit_vdiv :: emit_vdiv_s_s_s -inst_vmla :: inst_vmla_s_s_s -emit_vmla :: emit_vmla_s_s_s -inst_vmls :: inst_vmls_s_s_s -emit_vmls :: emit_vmls_s_s_s -inst_vnmul :: inst_vnmul_s_s_s -emit_vnmul :: emit_vnmul_s_s_s -inst_vnmla :: inst_vnmla_s_s_s -emit_vnmla :: emit_vnmla_s_s_s -inst_vnmls :: inst_vnmls_s_s_s -emit_vnmls :: emit_vnmls_s_s_s -inst_vfma :: inst_vfma_s_s_s -emit_vfma :: emit_vfma_s_s_s -inst_vfms :: inst_vfms_s_s_s -emit_vfms :: emit_vfms_s_s_s -inst_vfnma :: inst_vfnma_s_s_s -emit_vfnma :: emit_vfnma_s_s_s -inst_vfnms :: inst_vfnms_s_s_s -emit_vfnms :: emit_vfnms_s_s_s -inst_vabs :: inst_vabs_s_s -emit_vabs :: emit_vabs_s_s -inst_vneg :: inst_vneg_s_s -emit_vneg :: emit_vneg_s_s -inst_vsqrt :: inst_vsqrt_s_s -emit_vsqrt :: emit_vsqrt_s_s -inst_vcmp :: proc{ inst_vcmp_s_s, inst_vcmp_s } -emit_vcmp :: proc{ emit_vcmp_s_s, emit_vcmp_s } -inst_vcmpe :: proc{ inst_vcmpe_s_s, inst_vcmpe_s } -emit_vcmpe :: proc{ emit_vcmpe_s_s, emit_vcmpe_s } -inst_vcvt :: inst_vcvt_d_s -emit_vcvt :: emit_vcvt_d_s -inst_vcvtb :: inst_vcvtb_s_s -emit_vcvtb :: emit_vcvtb_s_s -inst_vcvtt :: inst_vcvtt_s_s -emit_vcvtt :: emit_vcvtt_s_s -inst_vcvta :: inst_vcvta_s_s -emit_vcvta :: emit_vcvta_s_s -inst_vcvtn :: inst_vcvtn_s_s -emit_vcvtn :: emit_vcvtn_s_s -inst_vcvtp :: inst_vcvtp_s_s -emit_vcvtp :: emit_vcvtp_s_s -inst_vcvtm :: inst_vcvtm_s_s -emit_vcvtm :: emit_vcvtm_s_s -inst_vcvtr :: inst_vcvtr_s_s -emit_vcvtr :: emit_vcvtr_s_s -inst_vmov :: proc{ inst_vmov_s_s, inst_vmov_s_imm8, inst_vmov_r_r_d, inst_vmov_r_r_s_s, inst_vmov_r_dlane, inst_vmov_dlane_r } -emit_vmov :: proc{ emit_vmov_s_s, emit_vmov_s_imm8, emit_vmov_r_r_d, emit_vmov_r_r_s_s, emit_vmov_r_dlane, emit_vmov_dlane_r } -inst_vmrs :: inst_vmrs_r -emit_vmrs :: emit_vmrs_r -inst_vmsr :: inst_vmsr_r -emit_vmsr :: emit_vmsr_r -inst_vldr :: inst_vldr_s_mem -emit_vldr :: emit_vldr_s_mem -inst_vstr :: inst_vstr_s_mem -emit_vstr :: emit_vstr_s_mem -inst_vldm :: inst_vldm_r_slist -emit_vldm :: emit_vldm_r_slist -inst_vstm :: inst_vstm_r_slist -emit_vstm :: emit_vstm_r_slist -inst_vpush :: inst_vpush_slist -emit_vpush :: emit_vpush_slist -inst_vpop :: inst_vpop_slist -emit_vpop :: emit_vpop_slist -inst_vsel :: inst_vsel_s_s_s_cond -emit_vsel :: emit_vsel_s_s_s_cond -inst_vmaxnm :: inst_vmaxnm_s_s_s -emit_vmaxnm :: emit_vmaxnm_s_s_s -inst_vminnm :: inst_vminnm_s_s_s -emit_vminnm :: emit_vminnm_s_s_s -inst_vrinta :: inst_vrinta_s_s -emit_vrinta :: emit_vrinta_s_s -inst_vrintn :: inst_vrintn_s_s -emit_vrintn :: emit_vrintn_s_s -inst_vrintp :: inst_vrintp_s_s -emit_vrintp :: emit_vrintp_s_s -inst_vrintm :: inst_vrintm_s_s -emit_vrintm :: emit_vrintm_s_s -inst_vrintr :: inst_vrintr_s_s -emit_vrintr :: emit_vrintr_s_s -inst_vrintz :: inst_vrintz_s_s -emit_vrintz :: emit_vrintz_s_s -inst_vrintx :: inst_vrintx_s_s -emit_vrintx :: emit_vrintx_s_s -inst_vaddl :: inst_vaddl_q_d_d -emit_vaddl :: emit_vaddl_q_d_d -inst_vaddw :: inst_vaddw_q_q_d -emit_vaddw :: emit_vaddw_q_q_d -inst_vsubl :: inst_vsubl_q_d_d -emit_vsubl :: emit_vsubl_q_d_d -inst_vsubw :: inst_vsubw_q_q_d -emit_vsubw :: emit_vsubw_q_q_d -inst_vhadd :: inst_vhadd_d_d_d -emit_vhadd :: emit_vhadd_d_d_d -inst_vhsub :: inst_vhsub_d_d_d -emit_vhsub :: emit_vhsub_d_d_d -inst_vrhadd :: inst_vrhadd_d_d_d -emit_vrhadd :: emit_vrhadd_d_d_d -inst_vqadd :: inst_vqadd_d_d_d -emit_vqadd :: emit_vqadd_d_d_d -inst_vqsub :: inst_vqsub_d_d_d -emit_vqsub :: emit_vqsub_d_d_d -inst_vmull :: inst_vmull_q_d_d -emit_vmull :: emit_vmull_q_d_d -inst_vmlal :: inst_vmlal_q_d_d -emit_vmlal :: emit_vmlal_q_d_d -inst_vmlsl :: inst_vmlsl_q_d_d -emit_vmlsl :: emit_vmlsl_q_d_d -inst_vqdmull :: inst_vqdmull_q_d_d -emit_vqdmull :: emit_vqdmull_q_d_d -inst_vqdmlal :: inst_vqdmlal_q_d_d -emit_vqdmlal :: emit_vqdmlal_q_d_d -inst_vqdmlsl :: inst_vqdmlsl_q_d_d -emit_vqdmlsl :: emit_vqdmlsl_q_d_d -inst_vqdmulh :: inst_vqdmulh_d_d_d -emit_vqdmulh :: emit_vqdmulh_d_d_d -inst_vqrdmulh :: inst_vqrdmulh_d_d_d -emit_vqrdmulh :: emit_vqrdmulh_d_d_d -inst_vqdmulh_lane :: inst_vqdmulh_lane_d_d_dlane -emit_vqdmulh_lane :: emit_vqdmulh_lane_d_d_dlane -inst_vqrdmulh_lane :: inst_vqrdmulh_lane_d_d_dlane -emit_vqrdmulh_lane :: emit_vqrdmulh_lane_d_d_dlane -inst_vqrdmlah :: inst_vqrdmlah_d_d_d -emit_vqrdmlah :: emit_vqrdmlah_d_d_d -inst_vqrdmlsh :: inst_vqrdmlsh_d_d_d -emit_vqrdmlsh :: emit_vqrdmlsh_d_d_d -inst_vaba :: inst_vaba_d_d_d -emit_vaba :: emit_vaba_d_d_d -inst_vabal :: inst_vabal_q_d_d -emit_vabal :: emit_vabal_q_d_d -inst_vabd :: inst_vabd_d_d_d -emit_vabd :: emit_vabd_d_d_d -inst_vabdl :: inst_vabdl_q_d_d -emit_vabdl :: emit_vabdl_q_d_d -inst_vand :: inst_vand_d_d_d -emit_vand :: emit_vand_d_d_d -inst_vbic :: inst_vbic_d_d_d -emit_vbic :: emit_vbic_d_d_d -inst_vorr :: inst_vorr_d_d_d -emit_vorr :: emit_vorr_d_d_d -inst_vorn :: inst_vorn_d_d_d -emit_vorn :: emit_vorn_d_d_d -inst_veor :: inst_veor_d_d_d -emit_veor :: emit_veor_d_d_d -inst_vbsl :: inst_vbsl_d_d_d -emit_vbsl :: emit_vbsl_d_d_d -inst_vbit :: inst_vbit_d_d_d -emit_vbit :: emit_vbit_d_d_d -inst_vbif :: inst_vbif_d_d_d -emit_vbif :: emit_vbif_d_d_d -inst_vmvn :: proc{ inst_vmvn_d_d, inst_vmvn_d_imm } -emit_vmvn :: proc{ emit_vmvn_d_d, emit_vmvn_d_imm } -inst_vmovn :: inst_vmovn_d_q -emit_vmovn :: emit_vmovn_d_q -inst_vqmovn :: inst_vqmovn_d_q -emit_vqmovn :: emit_vqmovn_d_q -inst_vqmovun :: inst_vqmovun_d_q -emit_vqmovun :: emit_vqmovun_d_q -inst_vmovl :: inst_vmovl_q_d -emit_vmovl :: emit_vmovl_q_d -inst_vtst :: inst_vtst_d_d_d -emit_vtst :: emit_vtst_d_d_d -inst_vceq :: inst_vceq_d_d_d -emit_vceq :: emit_vceq_d_d_d -inst_vcge :: inst_vcge_d_d_d -emit_vcge :: emit_vcge_d_d_d -inst_vcgt :: inst_vcgt_d_d_d -emit_vcgt :: emit_vcgt_d_d_d -inst_vcle :: inst_vcle_d_d_d -emit_vcle :: emit_vcle_d_d_d -inst_vclt :: inst_vclt_d_d_d -emit_vclt :: emit_vclt_d_d_d -inst_vacge :: inst_vacge_d_d_d -emit_vacge :: emit_vacge_d_d_d -inst_vacgt :: inst_vacgt_d_d_d -emit_vacgt :: emit_vacgt_d_d_d -inst_vacle :: inst_vacle_d_d_d -emit_vacle :: emit_vacle_d_d_d -inst_vaclt :: inst_vaclt_d_d_d -emit_vaclt :: emit_vaclt_d_d_d -inst_vmax :: inst_vmax_d_d_d -emit_vmax :: emit_vmax_d_d_d -inst_vmin :: inst_vmin_d_d_d -emit_vmin :: emit_vmin_d_d_d -inst_vpmax :: inst_vpmax_d_d_d -emit_vpmax :: emit_vpmax_d_d_d -inst_vpmin :: inst_vpmin_d_d_d -emit_vpmin :: emit_vpmin_d_d_d -inst_vpadd :: inst_vpadd_d_d_d -emit_vpadd :: emit_vpadd_d_d_d -inst_vpaddl :: inst_vpaddl_d_d -emit_vpaddl :: emit_vpaddl_d_d -inst_vpadal :: inst_vpadal_d_d -emit_vpadal :: emit_vpadal_d_d -inst_vrecpe :: inst_vrecpe_d_d -emit_vrecpe :: emit_vrecpe_d_d -inst_vrecps :: inst_vrecps_d_d_d -emit_vrecps :: emit_vrecps_d_d_d -inst_vrsqrte :: inst_vrsqrte_d_d -emit_vrsqrte :: emit_vrsqrte_d_d -inst_vrsqrts :: inst_vrsqrts_d_d_d -emit_vrsqrts :: emit_vrsqrts_d_d_d -inst_vshl :: inst_vshl_d_d_d -emit_vshl :: emit_vshl_d_d_d -inst_vshr :: inst_vshr_d_d_imm -emit_vshr :: emit_vshr_d_d_imm -inst_vsra :: inst_vsra_d_d_imm -emit_vsra :: emit_vsra_d_d_imm -inst_vrshl :: inst_vrshl_d_d_d -emit_vrshl :: emit_vrshl_d_d_d -inst_vrshr :: inst_vrshr_d_d_imm -emit_vrshr :: emit_vrshr_d_d_imm -inst_vrsra :: inst_vrsra_d_d_imm -emit_vrsra :: emit_vrsra_d_d_imm -inst_vsli :: inst_vsli_d_d_imm -emit_vsli :: emit_vsli_d_d_imm -inst_vsri :: inst_vsri_d_d_imm -emit_vsri :: emit_vsri_d_d_imm -inst_vqshl :: proc{ inst_vqshl_d_d_d, inst_vqshl_d_d_imm } -emit_vqshl :: proc{ emit_vqshl_d_d_d, emit_vqshl_d_d_imm } -inst_vqshrn :: inst_vqshrn_d_q_imm -emit_vqshrn :: emit_vqshrn_d_q_imm -inst_vqshrun :: inst_vqshrun_d_q_imm -emit_vqshrun :: emit_vqshrun_d_q_imm -inst_vqrshl :: inst_vqrshl_d_d_d -emit_vqrshl :: emit_vqrshl_d_d_d -inst_vqrshrn :: inst_vqrshrn_d_q_imm -emit_vqrshrn :: emit_vqrshrn_d_q_imm -inst_vqrshrun :: inst_vqrshrun_d_q_imm -emit_vqrshrun :: emit_vqrshrun_d_q_imm -inst_vshrn :: inst_vshrn_d_q_imm -emit_vshrn :: emit_vshrn_d_q_imm -inst_vrshrn :: inst_vrshrn_d_q_imm -emit_vrshrn :: emit_vrshrn_d_q_imm -inst_vshll :: proc{ inst_vshll_q_d_imm, inst_vshll_q_d } -emit_vshll :: proc{ emit_vshll_q_d_imm, emit_vshll_q_d } -inst_vcls :: inst_vcls_d_d -emit_vcls :: emit_vcls_d_d -inst_vclz :: inst_vclz_d_d -emit_vclz :: emit_vclz_d_d -inst_vcnt :: inst_vcnt_d_d -emit_vcnt :: emit_vcnt_d_d -inst_vpadd_f :: inst_vpadd_f_d_d_d -emit_vpadd_f :: emit_vpadd_f_d_d_d -inst_vrecpe_f :: inst_vrecpe_f_d_d -emit_vrecpe_f :: emit_vrecpe_f_d_d -inst_vrsqrte_f :: inst_vrsqrte_f_d_d -emit_vrsqrte_f :: emit_vrsqrte_f_d_d -inst_vrev16 :: inst_vrev16_d_d -emit_vrev16 :: emit_vrev16_d_d -inst_vrev32 :: inst_vrev32_d_d -emit_vrev32 :: emit_vrev32_d_d -inst_vrev64 :: inst_vrev64_d_d -emit_vrev64 :: emit_vrev64_d_d -inst_vext :: inst_vext_d_d_d_imm4 -emit_vext :: emit_vext_d_d_d_imm4 -inst_vtbl :: proc{ inst_vtbl_d_d_d, inst_vtbl_d_dlist_d } -emit_vtbl :: proc{ emit_vtbl_d_d_d, emit_vtbl_d_dlist_d } -inst_vtbx :: proc{ inst_vtbx_d_d_d, inst_vtbx_d_dlist_d } -emit_vtbx :: proc{ emit_vtbx_d_d_d, emit_vtbx_d_dlist_d } -inst_vtrn :: inst_vtrn_d_d -emit_vtrn :: emit_vtrn_d_d -inst_vuzp :: inst_vuzp_d_d -emit_vuzp :: emit_vuzp_d_d -inst_vzip :: inst_vzip_d_d -emit_vzip :: emit_vzip_d_d -inst_vdup :: proc{ inst_vdup_d_r, inst_vdup_d_dlane } -emit_vdup :: proc{ emit_vdup_d_r, emit_vdup_d_dlane } -inst_vswp :: inst_vswp_d_d -emit_vswp :: emit_vswp_d_d -inst_vmov_lane :: inst_vmov_lane_dlane_r -emit_vmov_lane :: emit_vmov_lane_dlane_r -inst_vld1 :: proc{ inst_vld1_dlist_mem, inst_vld1_dlane_mem } -emit_vld1 :: proc{ emit_vld1_dlist_mem, emit_vld1_dlane_mem } -inst_vld2 :: inst_vld2_dlist_mem -emit_vld2 :: emit_vld2_dlist_mem -inst_vld3 :: inst_vld3_dlist_mem -emit_vld3 :: emit_vld3_dlist_mem -inst_vld4 :: inst_vld4_dlist_mem -emit_vld4 :: emit_vld4_dlist_mem -inst_vst1 :: proc{ inst_vst1_dlist_mem, inst_vst1_dlane_mem } -emit_vst1 :: proc{ emit_vst1_dlist_mem, emit_vst1_dlane_mem } -inst_vst2 :: inst_vst2_dlist_mem -emit_vst2 :: emit_vst2_dlist_mem -inst_vst3 :: inst_vst3_dlist_mem -emit_vst3 :: emit_vst3_dlist_mem -inst_vst4 :: inst_vst4_dlist_mem -emit_vst4 :: emit_vst4_dlist_mem -inst_aese :: inst_aese_q_q -emit_aese :: emit_aese_q_q -inst_aesd :: inst_aesd_q_q -emit_aesd :: emit_aesd_q_q -inst_aesmc :: inst_aesmc_q_q -emit_aesmc :: emit_aesmc_q_q -inst_aesimc :: inst_aesimc_q_q -emit_aesimc :: emit_aesimc_q_q -inst_sha1h :: inst_sha1h_q_q -emit_sha1h :: emit_sha1h_q_q -inst_sha1su0 :: inst_sha1su0_q_q_q -emit_sha1su0 :: emit_sha1su0_q_q_q -inst_sha1su1 :: inst_sha1su1_q_q -emit_sha1su1 :: emit_sha1su1_q_q -inst_sha1c :: inst_sha1c_q_q_q -emit_sha1c :: emit_sha1c_q_q_q -inst_sha1m :: inst_sha1m_q_q_q -emit_sha1m :: emit_sha1m_q_q_q -inst_sha1p :: inst_sha1p_q_q_q -emit_sha1p :: emit_sha1p_q_q_q -inst_sha256h :: inst_sha256h_q_q_q -emit_sha256h :: emit_sha256h_q_q_q -inst_sha256h2 :: inst_sha256h2_q_q_q -emit_sha256h2 :: emit_sha256h2_q_q_q -inst_sha256su0 :: inst_sha256su0_q_q -emit_sha256su0 :: emit_sha256su0_q_q -inst_sha256su1 :: inst_sha256su1_q_q_q -emit_sha256su1 :: emit_sha256su1_q_q_q -inst_vjcvt :: inst_vjcvt_s_d -emit_vjcvt :: emit_vjcvt_s_d -inst_vsdot :: inst_vsdot_d_d_d -emit_vsdot :: emit_vsdot_d_d_d -inst_vudot :: inst_vudot_d_d_d -emit_vudot :: emit_vudot_d_d_d -inst_vsdot_lane :: inst_vsdot_lane_d_d_dlane -emit_vsdot_lane :: emit_vsdot_lane_d_d_dlane -inst_vudot_lane :: inst_vudot_lane_d_d_dlane -emit_vudot_lane :: emit_vudot_lane_d_d_dlane -inst_vcvt_bf16 :: inst_vcvt_bf16_d_q -emit_vcvt_bf16 :: emit_vcvt_bf16_d_q -inst_vdot_bf16 :: inst_vdot_bf16_d_d_d -emit_vdot_bf16 :: emit_vdot_bf16_d_d_d -inst_vfma_bf16 :: inst_vfma_bf16_q_q_q -emit_vfma_bf16 :: emit_vfma_bf16_q_q_q -inst_vmmla_bf16 :: inst_vmmla_bf16_q_q_q -emit_vmmla_bf16 :: emit_vmmla_bf16_q_q_q -inst_vfmal :: inst_vfmal_d_d_d -emit_vfmal :: emit_vfmal_d_d_d -inst_vfmsl :: inst_vfmsl_d_d_d -emit_vfmsl :: emit_vfmsl_d_d_d -inst_vcmla :: inst_vcmla_d_d_d_imm -emit_vcmla :: emit_vcmla_d_d_d_imm -inst_vcadd :: inst_vcadd_d_d_d_imm -emit_vcadd :: emit_vcadd_d_d_d_imm -inst_vcmla_lane :: inst_vcmla_lane_d_d_dlane_imm -emit_vcmla_lane :: emit_vcmla_lane_d_d_dlane_imm -inst_vsmmla :: inst_vsmmla_q_q_q -emit_vsmmla :: emit_vsmmla_q_q_q -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 :: inst_vsudot_q_q_q -emit_vsudot :: emit_vsudot_q_q_q -inst_vusdot :: inst_vusdot_d_d_d -emit_vusdot :: emit_vusdot_d_d_d -inst_vsudot_lane :: inst_vsudot_lane_q_q_dlane -emit_vsudot_lane :: emit_vsudot_lane_q_q_dlane -inst_vusdot_lane :: inst_vusdot_lane_d_d_dlane -emit_vusdot_lane :: emit_vusdot_lane_d_d_dlane -inst_vmul_lane :: inst_vmul_lane_d_d_dlane -emit_vmul_lane :: emit_vmul_lane_d_d_dlane -inst_vmla_lane :: inst_vmla_lane_d_d_dlane -emit_vmla_lane :: emit_vmla_lane_d_d_dlane -inst_vmls_lane :: inst_vmls_lane_d_d_dlane -emit_vmls_lane :: emit_vmls_lane_d_d_dlane -inst_vmull_lane :: inst_vmull_lane_q_d_dlane -emit_vmull_lane :: emit_vmull_lane_q_d_dlane -inst_vmlal_lane :: inst_vmlal_lane_q_d_dlane -emit_vmlal_lane :: emit_vmlal_lane_q_d_dlane -inst_vmlsl_lane :: inst_vmlsl_lane_q_d_dlane -emit_vmlsl_lane :: emit_vmlsl_lane_q_d_dlane -inst_vqdmull_lane :: inst_vqdmull_lane_q_d_dlane -emit_vqdmull_lane :: emit_vqdmull_lane_q_d_dlane -inst_vqdmlal_lane :: inst_vqdmlal_lane_q_d_dlane -emit_vqdmlal_lane :: emit_vqdmlal_lane_q_d_dlane -inst_vqdmlsl_lane :: inst_vqdmlsl_lane_q_d_dlane -emit_vqdmlsl_lane :: emit_vqdmlsl_lane_q_d_dlane -inst_vfma_lane :: inst_vfma_lane_d_d_dlane -emit_vfma_lane :: emit_vfma_lane_d_d_dlane -inst_vfms_lane :: inst_vfms_lane_d_d_dlane -emit_vfms_lane :: emit_vfms_lane_d_d_dlane -inst_vqrdmlah_lane :: inst_vqrdmlah_lane_d_d_dlane -emit_vqrdmlah_lane :: emit_vqrdmlah_lane_d_d_dlane -inst_vqrdmlsh_lane :: inst_vqrdmlsh_lane_d_d_dlane -emit_vqrdmlsh_lane :: emit_vqrdmlsh_lane_d_d_dlane -inst_vqabs :: inst_vqabs_q_q -emit_vqabs :: emit_vqabs_q_q -inst_vqneg :: inst_vqneg_q_q -emit_vqneg :: emit_vqneg_q_q -inst_vmovx :: inst_vmovx_s_s -emit_vmovx :: emit_vmovx_s_s -inst_vins :: inst_vins_s_s -emit_vins :: emit_vins_s_s -inst_vldrb_gather :: inst_vldrb_gather_q_mem_q -emit_vldrb_gather :: emit_vldrb_gather_q_mem_q -inst_vldrh_gather :: inst_vldrh_gather_q_mem_q -emit_vldrh_gather :: emit_vldrh_gather_q_mem_q -inst_vldrw_gather :: inst_vldrw_gather_q_mem_q -emit_vldrw_gather :: emit_vldrw_gather_q_mem_q -inst_vldrd_gather :: inst_vldrd_gather_q_mem_q -emit_vldrd_gather :: emit_vldrd_gather_q_mem_q -inst_vstrb_scatter :: inst_vstrb_scatter_q_mem_q -emit_vstrb_scatter :: emit_vstrb_scatter_q_mem_q -inst_vstrh_scatter :: inst_vstrh_scatter_q_mem_q -emit_vstrh_scatter :: emit_vstrh_scatter_q_mem_q -inst_vstrw_scatter :: inst_vstrw_scatter_q_mem_q -emit_vstrw_scatter :: emit_vstrw_scatter_q_mem_q -inst_vstrd_scatter :: inst_vstrd_scatter_q_mem_q -emit_vstrd_scatter :: emit_vstrd_scatter_q_mem_q -inst_vceq_z :: inst_vceq_z_d_d -emit_vceq_z :: emit_vceq_z_d_d -inst_vcge_z :: inst_vcge_z_d_d -emit_vcge_z :: emit_vcge_z_d_d -inst_vcgt_z :: inst_vcgt_z_d_d -emit_vcgt_z :: emit_vcgt_z_d_d -inst_vcle_z :: inst_vcle_z_d_d -emit_vcle_z :: emit_vcle_z_d_d -inst_vclt_z :: inst_vclt_z_d_d -emit_vclt_z :: emit_vclt_z_d_d -inst_vld2r :: inst_vld2r_dlist_mem -emit_vld2r :: emit_vld2r_dlist_mem -inst_vld3r :: inst_vld3r_dlist_mem -emit_vld3r :: emit_vld3r_dlist_mem -inst_vld4r :: inst_vld4r_dlist_mem -emit_vld4r :: emit_vld4r_dlist_mem -inst_vld1_lane :: inst_vld1_lane_dlane_mem -emit_vld1_lane :: emit_vld1_lane_dlane_mem -inst_vld2_lane :: inst_vld2_lane_dlist_mem -emit_vld2_lane :: emit_vld2_lane_dlist_mem -inst_vld3_lane :: inst_vld3_lane_dlist_mem -emit_vld3_lane :: emit_vld3_lane_dlist_mem -inst_vld4_lane :: inst_vld4_lane_dlist_mem -emit_vld4_lane :: emit_vld4_lane_dlist_mem -inst_vst1_lane :: inst_vst1_lane_dlane_mem -emit_vst1_lane :: emit_vst1_lane_dlane_mem -inst_vst2_lane :: inst_vst2_lane_dlist_mem -emit_vst2_lane :: emit_vst2_lane_dlist_mem -inst_vst3_lane :: inst_vst3_lane_dlist_mem -emit_vst3_lane :: emit_vst3_lane_dlist_mem -inst_vst4_lane :: inst_vst4_lane_dlist_mem -emit_vst4_lane :: emit_vst4_lane_dlist_mem -inst_vcvt_fixed :: inst_vcvt_fixed_s_s_imm -emit_vcvt_fixed :: emit_vcvt_fixed_s_s_imm -inst_it :: inst_it_cond_imm4 -emit_it :: emit_it_cond_imm4 -inst_tt :: inst_tt_r_r -emit_tt :: emit_tt_r_r -inst_ttt :: inst_ttt_r_r -emit_ttt :: emit_ttt_r_r -inst_tta :: inst_tta_r_r -emit_tta :: emit_tta_r_r -inst_ttat :: inst_ttat_r_r -emit_ttat :: emit_ttat_r_r -inst_sg :: inst_sg_none -emit_sg :: emit_sg_none -inst_bxns :: inst_bxns_r -emit_bxns :: emit_bxns_r -inst_blxns :: inst_blxns_r -emit_blxns :: emit_blxns_r -inst_pac :: inst_pac_none -emit_pac :: emit_pac_none -inst_pacbti :: inst_pacbti_none -emit_pacbti :: emit_pacbti_none -inst_aut :: inst_aut_none -emit_aut :: emit_aut_none -inst_autg :: inst_autg_r_r_r -emit_autg :: emit_autg_r_r_r -inst_bti :: inst_bti_none -emit_bti :: emit_bti_none -inst_wls :: inst_wls_r_rel -emit_wls :: emit_wls_r_rel -inst_wlstp :: inst_wlstp_r_rel -emit_wlstp :: emit_wlstp_r_rel -inst_dls :: inst_dls_r -emit_dls :: emit_dls_r -inst_dlstp :: inst_dlstp_r -emit_dlstp :: emit_dlstp_r -inst_le :: inst_le_rel -emit_le :: emit_le_rel -inst_letp :: inst_letp_rel -emit_letp :: emit_letp_rel -inst_lctp :: inst_lctp_none -emit_lctp :: emit_lctp_none -inst_bf :: inst_bf_rel_rel -emit_bf :: emit_bf_rel_rel -inst_bfi_br :: inst_bfi_br_rel_r -emit_bfi_br :: emit_bfi_br_rel_r -inst_bfl :: inst_bfl_rel_rel -emit_bfl :: emit_bfl_rel_rel -inst_bflx :: inst_bflx_rel_r -emit_bflx :: emit_bflx_rel_r -inst_bfcsel :: inst_bfcsel_rel_rel_imm4 -emit_bfcsel :: emit_bfcsel_rel_rel_imm4 -inst_cx1 :: inst_cx1_cp_r_imm -emit_cx1 :: emit_cx1_cp_r_imm -inst_cx1a :: inst_cx1a_cp_r_imm -emit_cx1a :: emit_cx1a_cp_r_imm -inst_cx1d :: inst_cx1d_cp_r_imm -emit_cx1d :: emit_cx1d_cp_r_imm -inst_cx1da :: inst_cx1da_cp_r_imm -emit_cx1da :: emit_cx1da_cp_r_imm -inst_cx2 :: inst_cx2_cp_r_r_imm -emit_cx2 :: emit_cx2_cp_r_r_imm -inst_cx2a :: inst_cx2a_cp_r_r_imm -emit_cx2a :: emit_cx2a_cp_r_r_imm -inst_cx2d :: inst_cx2d_cp_r_r_imm -emit_cx2d :: emit_cx2d_cp_r_r_imm -inst_cx2da :: inst_cx2da_cp_r_r_imm -emit_cx2da :: emit_cx2da_cp_r_r_imm -inst_cx3 :: inst_cx3_cp_r_r_r -emit_cx3 :: emit_cx3_cp_r_r_r -inst_cx3a :: inst_cx3a_cp_r_r_r -emit_cx3a :: emit_cx3a_cp_r_r_r -inst_cx3d :: inst_cx3d_cp_r_r_r -emit_cx3d :: emit_cx3d_cp_r_r_r -inst_cx3da :: inst_cx3da_cp_r_r_r -emit_cx3da :: emit_cx3da_cp_r_r_r -inst_vcx1 :: inst_vcx1_cp_s_imm -emit_vcx1 :: emit_vcx1_cp_s_imm -inst_vcx1a :: inst_vcx1a_cp_s_imm -emit_vcx1a :: emit_vcx1a_cp_s_imm -inst_vcx2 :: inst_vcx2_cp_s_s_imm -emit_vcx2 :: emit_vcx2_cp_s_s_imm -inst_vcx2a :: inst_vcx2a_cp_s_s_imm -emit_vcx2a :: emit_vcx2a_cp_s_s_imm -inst_vcx3 :: inst_vcx3_cp_s_s_s -emit_vcx3 :: emit_vcx3_cp_s_s_s -inst_vcx3a :: inst_vcx3a_cp_s_s_s -emit_vcx3a :: emit_vcx3a_cp_s_s_s -inst_vpt :: inst_vpt_vpt_cond_q_q -emit_vpt :: emit_vpt_vpt_cond_q_q -inst_vpst :: inst_vpst_vpt -emit_vpst :: emit_vpst_vpt -inst_vpsel :: inst_vpsel_q_q_q -emit_vpsel :: emit_vpsel_q_q_q -inst_vpnot :: inst_vpnot_none -emit_vpnot :: emit_vpnot_none -inst_vctp :: inst_vctp_r -emit_vctp :: emit_vctp_r -inst_vaddv :: inst_vaddv_r_q -emit_vaddv :: emit_vaddv_r_q -inst_vaddva :: inst_vaddva_r_q -emit_vaddva :: emit_vaddva_r_q -inst_vaddlv :: inst_vaddlv_r_r_q -emit_vaddlv :: emit_vaddlv_r_r_q -inst_vaddlva :: inst_vaddlva_r_r_q -emit_vaddlva :: emit_vaddlva_r_r_q -inst_vmaxv :: inst_vmaxv_r_q -emit_vmaxv :: emit_vmaxv_r_q -inst_vmaxav :: inst_vmaxav_r_q -emit_vmaxav :: emit_vmaxav_r_q -inst_vminv :: inst_vminv_r_q -emit_vminv :: emit_vminv_r_q -inst_vminav :: inst_vminav_r_q -emit_vminav :: emit_vminav_r_q -inst_vmaxnmv :: inst_vmaxnmv_r_q -emit_vmaxnmv :: emit_vmaxnmv_r_q -inst_vmaxnmav :: inst_vmaxnmav_r_q -emit_vmaxnmav :: emit_vmaxnmav_r_q -inst_vminnmv :: inst_vminnmv_r_q -emit_vminnmv :: emit_vminnmv_r_q -inst_vminnmav :: inst_vminnmav_r_q -emit_vminnmav :: emit_vminnmav_r_q -inst_vabav :: inst_vabav_r_q_q -emit_vabav :: emit_vabav_r_q_q -inst_vmladav :: inst_vmladav_r_q_q -emit_vmladav :: emit_vmladav_r_q_q -inst_vmladava :: inst_vmladava_r_q_q -emit_vmladava :: emit_vmladava_r_q_q -inst_vmladavx :: inst_vmladavx_r_q_q -emit_vmladavx :: emit_vmladavx_r_q_q -inst_vmladavax :: inst_vmladavax_r_q_q -emit_vmladavax :: emit_vmladavax_r_q_q -inst_vmlaldav :: inst_vmlaldav_r_r_q_q -emit_vmlaldav :: emit_vmlaldav_r_r_q_q -inst_vmlaldava :: inst_vmlaldava_r_r_q_q -emit_vmlaldava :: emit_vmlaldava_r_r_q_q -inst_vmlaldavx :: inst_vmlaldavx_r_r_q_q -emit_vmlaldavx :: emit_vmlaldavx_r_r_q_q -inst_vmlaldavax :: inst_vmlaldavax_r_r_q_q -emit_vmlaldavax :: emit_vmlaldavax_r_r_q_q -inst_vmlsdav :: inst_vmlsdav_r_q_q -emit_vmlsdav :: emit_vmlsdav_r_q_q -inst_vmlsdava :: inst_vmlsdava_r_q_q -emit_vmlsdava :: emit_vmlsdava_r_q_q -inst_vmlsdavx :: inst_vmlsdavx_r_q_q -emit_vmlsdavx :: emit_vmlsdavx_r_q_q -inst_vmlsdavax :: inst_vmlsdavax_r_q_q -emit_vmlsdavax :: emit_vmlsdavax_r_q_q -inst_vmlsldav :: inst_vmlsldav_r_r_q_q -emit_vmlsldav :: emit_vmlsldav_r_r_q_q -inst_vmlsldava :: inst_vmlsldava_r_r_q_q -emit_vmlsldava :: emit_vmlsldava_r_r_q_q -inst_vmlsldavx :: inst_vmlsldavx_r_r_q_q -emit_vmlsldavx :: emit_vmlsldavx_r_r_q_q -inst_vmlsldavax :: inst_vmlsldavax_r_r_q_q -emit_vmlsldavax :: emit_vmlsldavax_r_r_q_q -inst_vrmlaldavh :: inst_vrmlaldavh_r_r_q_q -emit_vrmlaldavh :: emit_vrmlaldavh_r_r_q_q -inst_vrmlaldavha :: inst_vrmlaldavha_r_r_q_q -emit_vrmlaldavha :: emit_vrmlaldavha_r_r_q_q -inst_vrmlaldavhx :: inst_vrmlaldavhx_r_r_q_q -emit_vrmlaldavhx :: emit_vrmlaldavhx_r_r_q_q -inst_vrmlaldavhax :: inst_vrmlaldavhax_r_r_q_q -emit_vrmlaldavhax :: emit_vrmlaldavhax_r_r_q_q -inst_vrmlsldavh :: inst_vrmlsldavh_r_r_q_q -emit_vrmlsldavh :: emit_vrmlsldavh_r_r_q_q -inst_vrmlsldavha :: inst_vrmlsldavha_r_r_q_q -emit_vrmlsldavha :: emit_vrmlsldavha_r_r_q_q -inst_vrmlsldavhx :: inst_vrmlsldavhx_r_r_q_q -emit_vrmlsldavhx :: emit_vrmlsldavhx_r_r_q_q -inst_vrmlsldavhax :: inst_vrmlsldavhax_r_r_q_q -emit_vrmlsldavhax :: emit_vrmlsldavhax_r_r_q_q -inst_vmlav :: inst_vmlav_r_q_q -emit_vmlav :: emit_vmlav_r_q_q -inst_vmlava :: inst_vmlava_r_q_q -emit_vmlava :: emit_vmlava_r_q_q -inst_vmlsv :: inst_vmlsv_r_q_q -emit_vmlsv :: emit_vmlsv_r_q_q -inst_vmlsva :: inst_vmlsva_r_q_q -emit_vmlsva :: emit_vmlsva_r_q_q -inst_vcmul :: inst_vcmul_q_q_q -emit_vcmul :: emit_vcmul_q_q_q -inst_vhcadd :: inst_vhcadd_q_q_q -emit_vhcadd :: emit_vhcadd_q_q_q -inst_vbrsr :: inst_vbrsr_q_q_r -emit_vbrsr :: emit_vbrsr_q_q_r -inst_vshlc :: inst_vshlc_q_r_imm5 -emit_vshlc :: emit_vshlc_q_r_imm5 -inst_vddup :: inst_vddup_q_r_imm -emit_vddup :: emit_vddup_q_r_imm -inst_vidup :: inst_vidup_q_r_imm -emit_vidup :: emit_vidup_q_r_imm -inst_vdwdup :: inst_vdwdup_q_r_r_imm -emit_vdwdup :: emit_vdwdup_q_r_r_imm -inst_viwdup :: inst_viwdup_q_r_r_imm -emit_viwdup :: emit_viwdup_q_r_r_imm -inst_vmovnb :: inst_vmovnb_q_q -emit_vmovnb :: emit_vmovnb_q_q -inst_vmovnt :: inst_vmovnt_q_q -emit_vmovnt :: emit_vmovnt_q_q -inst_vqmovnb :: inst_vqmovnb_q_q -emit_vqmovnb :: emit_vqmovnb_q_q -inst_vqmovnt :: inst_vqmovnt_q_q -emit_vqmovnt :: emit_vqmovnt_q_q -inst_vqmovunb :: inst_vqmovunb_q_q -emit_vqmovunb :: emit_vqmovunb_q_q -inst_vqmovunt :: inst_vqmovunt_q_q -emit_vqmovunt :: emit_vqmovunt_q_q -inst_vshllb :: inst_vshllb_q_q_imm5 -emit_vshllb :: emit_vshllb_q_q_imm5 -inst_vshllt :: inst_vshllt_q_q_imm5 -emit_vshllt :: emit_vshllt_q_q_imm5 -inst_vmullb :: inst_vmullb_q_q_q -emit_vmullb :: emit_vmullb_q_q_q -inst_vmullt :: inst_vmullt_q_q_q -emit_vmullt :: emit_vmullt_q_q_q -inst_vmlalb :: inst_vmlalb_q_q_q -emit_vmlalb :: emit_vmlalb_q_q_q -inst_vmlalt :: inst_vmlalt_q_q_q -emit_vmlalt :: emit_vmlalt_q_q_q -inst_vmlslb :: inst_vmlslb_q_q_q -emit_vmlslb :: emit_vmlslb_q_q_q -inst_vmlslt :: inst_vmlslt_q_q_q -emit_vmlslt :: emit_vmlslt_q_q_q -inst_vshrnb :: inst_vshrnb_q_q_imm5 -emit_vshrnb :: emit_vshrnb_q_q_imm5 -inst_vshrnt :: inst_vshrnt_q_q_imm5 -emit_vshrnt :: emit_vshrnt_q_q_imm5 -inst_vrshrnb :: inst_vrshrnb_q_q_imm5 -emit_vrshrnb :: emit_vrshrnb_q_q_imm5 -inst_vrshrnt :: inst_vrshrnt_q_q_imm5 -emit_vrshrnt :: emit_vrshrnt_q_q_imm5 -inst_vqshrnb :: inst_vqshrnb_q_q_imm5 -emit_vqshrnb :: emit_vqshrnb_q_q_imm5 -inst_vqshrnt :: inst_vqshrnt_q_q_imm5 -emit_vqshrnt :: emit_vqshrnt_q_q_imm5 -inst_vqrshrnb :: inst_vqrshrnb_q_q_imm5 -emit_vqrshrnb :: emit_vqrshrnb_q_q_imm5 -inst_vqrshrnt :: inst_vqrshrnt_q_q_imm5 -emit_vqrshrnt :: emit_vqrshrnt_q_q_imm5 -inst_vqshrunb :: inst_vqshrunb_q_q_imm5 -emit_vqshrunb :: emit_vqshrunb_q_q_imm5 -inst_vqshrunt :: inst_vqshrunt_q_q_imm5 -emit_vqshrunt :: emit_vqshrunt_q_q_imm5 -inst_vqrshrunb :: inst_vqrshrunb_q_q_imm5 -emit_vqrshrunb :: emit_vqrshrunb_q_q_imm5 -inst_vqrshrunt :: inst_vqrshrunt_q_q_imm5 -emit_vqrshrunt :: emit_vqrshrunt_q_q_imm5 -inst_vmov_q_r :: inst_vmov_q_r_qlane_r -emit_vmov_q_r :: emit_vmov_q_r_qlane_r -inst_vmov_r_q :: inst_vmov_r_q_r_qlane -emit_vmov_r_q :: emit_vmov_r_q_r_qlane -inst_vmov_2gpr_q :: inst_vmov_2gpr_q_qlane_qlane_r_r -emit_vmov_2gpr_q :: emit_vmov_2gpr_q_qlane_qlane_r_r -inst_vqdmladh :: inst_vqdmladh_q_q_q -emit_vqdmladh :: emit_vqdmladh_q_q_q -inst_vqdmladhx :: inst_vqdmladhx_q_q_q -emit_vqdmladhx :: emit_vqdmladhx_q_q_q -inst_vqdmlsdh :: inst_vqdmlsdh_q_q_q -emit_vqdmlsdh :: emit_vqdmlsdh_q_q_q -inst_vqdmlsdhx :: inst_vqdmlsdhx_q_q_q -emit_vqdmlsdhx :: emit_vqdmlsdhx_q_q_q -inst_vqrdmladh :: inst_vqrdmladh_q_q_q -emit_vqrdmladh :: emit_vqrdmladh_q_q_q -inst_vqrdmladhx :: inst_vqrdmladhx_q_q_q -emit_vqrdmladhx :: emit_vqrdmladhx_q_q_q -inst_vqrdmlsdh :: inst_vqrdmlsdh_q_q_q -emit_vqrdmlsdh :: emit_vqrdmlsdh_q_q_q -inst_vqrdmlsdhx :: inst_vqrdmlsdhx_q_q_q -emit_vqrdmlsdhx :: emit_vqrdmlsdhx_q_q_q -inst_vhcadd_sat :: inst_vhcadd_sat_q_q_q_imm -emit_vhcadd_sat :: emit_vhcadd_sat_q_q_q_imm -inst_vcmla_mve :: inst_vcmla_mve_q_q_q_imm -emit_vcmla_mve :: emit_vcmla_mve_q_q_q_imm -inst_vldrb :: inst_vldrb_q_mem -emit_vldrb :: emit_vldrb_q_mem -inst_vldrh :: inst_vldrh_q_mem -emit_vldrh :: emit_vldrh_q_mem -inst_vldrw :: inst_vldrw_q_mem -emit_vldrw :: emit_vldrw_q_mem -inst_vldrd :: inst_vldrd_q_mem -emit_vldrd :: emit_vldrd_q_mem -inst_vstrb :: inst_vstrb_q_mem -emit_vstrb :: emit_vstrb_q_mem -inst_vstrh :: inst_vstrh_q_mem -emit_vstrh :: emit_vstrh_q_mem -inst_vstrw :: inst_vstrw_q_mem -emit_vstrw :: emit_vstrw_q_mem -inst_vstrd :: inst_vstrd_q_mem -emit_vstrd :: emit_vstrd_q_mem -inst_vld20 :: inst_vld20_qlist_mem -emit_vld20 :: emit_vld20_qlist_mem -inst_vld21 :: inst_vld21_qlist_mem -emit_vld21 :: emit_vld21_qlist_mem -inst_vld40 :: inst_vld40_qlist_mem -emit_vld40 :: emit_vld40_qlist_mem -inst_vld41 :: inst_vld41_qlist_mem -emit_vld41 :: emit_vld41_qlist_mem -inst_vld42 :: inst_vld42_qlist_mem -emit_vld42 :: emit_vld42_qlist_mem -inst_vld43 :: inst_vld43_qlist_mem -emit_vld43 :: emit_vld43_qlist_mem -inst_vst20 :: inst_vst20_qlist_mem -emit_vst20 :: emit_vst20_qlist_mem -inst_vst21 :: inst_vst21_qlist_mem -emit_vst21 :: emit_vst21_qlist_mem -inst_vst40 :: inst_vst40_qlist_mem -emit_vst40 :: emit_vst40_qlist_mem -inst_vst41 :: inst_vst41_qlist_mem -emit_vst41 :: emit_vst41_qlist_mem -inst_vst42 :: inst_vst42_qlist_mem -emit_vst42 :: emit_vst42_qlist_mem -inst_vst43 :: inst_vst43_qlist_mem -emit_vst43 :: emit_vst43_qlist_mem +inst_and :: proc{ inst_and_r_r_immm, inst_and_r_r_rsh, inst_and_r_r_rsr, inst_and_rlo_rlo } +emit_and :: proc{ emit_and_r_r_immm, emit_and_r_r_rsh, emit_and_r_r_rsr, emit_and_rlo_rlo } +inst_eor :: proc{ inst_eor_r_r_immm, inst_eor_r_r_rsh, inst_eor_r_r_rsr, inst_eor_rlo_rlo } +emit_eor :: proc{ emit_eor_r_r_immm, emit_eor_r_r_rsh, emit_eor_r_r_rsr, emit_eor_rlo_rlo } +inst_sub :: proc{ inst_sub_r_r_immm, inst_sub_r_r_rsh, inst_sub_r_r_rsr, inst_sub_rlo_rlo_rlo, inst_sub_rlo_imm8 } +emit_sub :: proc{ emit_sub_r_r_immm, emit_sub_r_r_rsh, emit_sub_r_r_rsr, emit_sub_rlo_rlo_rlo, emit_sub_rlo_imm8 } +inst_rsb :: proc{ inst_rsb_r_r_immm, inst_rsb_r_r_rsh, inst_rsb_r_r_rsr } +emit_rsb :: proc{ emit_rsb_r_r_immm, emit_rsb_r_r_rsh, emit_rsb_r_r_rsr } +inst_add :: proc{ inst_add_r_r_immm, inst_add_r_r_rsh, inst_add_r_r_rsr, inst_add_rlo_rlo_rlo, inst_add_rlo_imm8, inst_add_r_r } +emit_add :: proc{ emit_add_r_r_immm, emit_add_r_r_rsh, emit_add_r_r_rsr, emit_add_rlo_rlo_rlo, emit_add_rlo_imm8, emit_add_r_r } +inst_adc :: proc{ inst_adc_r_r_immm, inst_adc_r_r_rsh, inst_adc_r_r_rsr, inst_adc_rlo_rlo } +emit_adc :: proc{ emit_adc_r_r_immm, emit_adc_r_r_rsh, emit_adc_r_r_rsr, emit_adc_rlo_rlo } +inst_sbc :: proc{ inst_sbc_r_r_immm, inst_sbc_r_r_rsh, inst_sbc_r_r_rsr, inst_sbc_rlo_rlo } +emit_sbc :: proc{ emit_sbc_r_r_immm, emit_sbc_r_r_rsh, emit_sbc_r_r_rsr, emit_sbc_rlo_rlo } +inst_rsc :: proc{ inst_rsc_r_r_immm, inst_rsc_r_r_rsh, inst_rsc_r_r_rsr } +emit_rsc :: proc{ emit_rsc_r_r_immm, emit_rsc_r_r_rsh, emit_rsc_r_r_rsr } +inst_tst :: proc{ inst_tst_r_immm, inst_tst_r_rsh, inst_tst_r_rsr, inst_tst_rlo_rlo } +emit_tst :: proc{ emit_tst_r_immm, emit_tst_r_rsh, emit_tst_r_rsr, emit_tst_rlo_rlo } +inst_teq :: proc{ inst_teq_r_immm, inst_teq_r_rsh, inst_teq_r_rsr } +emit_teq :: proc{ emit_teq_r_immm, emit_teq_r_rsh, emit_teq_r_rsr } +inst_cmp :: proc{ inst_cmp_r_immm, inst_cmp_r_rsh, inst_cmp_r_rsr, inst_cmp_rlo_rlo } +emit_cmp :: proc{ emit_cmp_r_immm, emit_cmp_r_rsh, emit_cmp_r_rsr, emit_cmp_rlo_rlo } +inst_cmn :: proc{ inst_cmn_r_immm, inst_cmn_r_rsh, inst_cmn_r_rsr, inst_cmn_rlo_rlo } +emit_cmn :: proc{ emit_cmn_r_immm, emit_cmn_r_rsh, emit_cmn_r_rsr, emit_cmn_rlo_rlo } +inst_orr :: proc{ inst_orr_r_r_immm, inst_orr_r_r_rsh, inst_orr_r_r_rsr, inst_orr_rlo_rlo } +emit_orr :: proc{ emit_orr_r_r_immm, emit_orr_r_r_rsh, emit_orr_r_r_rsr, emit_orr_rlo_rlo } +inst_mov :: proc{ inst_mov_r_immm, inst_mov_r_rsh, inst_mov_r_rsr, inst_mov_r_r } +emit_mov :: proc{ emit_mov_r_immm, emit_mov_r_rsh, emit_mov_r_rsr, emit_mov_r_r } +inst_bic :: proc{ inst_bic_r_r_immm, inst_bic_r_r_rsh, inst_bic_r_r_rsr, inst_bic_rlo_rlo } +emit_bic :: proc{ emit_bic_r_r_immm, emit_bic_r_r_rsh, emit_bic_r_r_rsr, emit_bic_rlo_rlo } +inst_mvn :: proc{ inst_mvn_r_immm, inst_mvn_r_rsh, inst_mvn_r_rsr, inst_mvn_rlo_rlo } +emit_mvn :: proc{ emit_mvn_r_immm, emit_mvn_r_rsh, emit_mvn_r_rsr, emit_mvn_rlo_rlo } +inst_lsl :: proc{ inst_lsl_r_r_imm5, inst_lsl_r_r_r, inst_lsl_rlo_rlo } +emit_lsl :: proc{ emit_lsl_r_r_imm5, emit_lsl_r_r_r, emit_lsl_rlo_rlo } +inst_lsr :: proc{ inst_lsr_r_r_imm5, inst_lsr_r_r_r, inst_lsr_rlo_rlo } +emit_lsr :: proc{ emit_lsr_r_r_imm5, emit_lsr_r_r_r, emit_lsr_rlo_rlo } +inst_asr :: proc{ inst_asr_r_r_imm5, inst_asr_r_r_r, inst_asr_rlo_rlo } +emit_asr :: proc{ emit_asr_r_r_imm5, emit_asr_r_r_r, emit_asr_rlo_rlo } +inst_ror :: proc{ inst_ror_r_r_imm5, inst_ror_r_r_r, inst_ror_rlo_rlo } +emit_ror :: proc{ emit_ror_r_r_imm5, emit_ror_r_r_r, emit_ror_rlo_rlo } +inst_rrx :: inst_rrx_r_r +emit_rrx :: emit_rrx_r_r +inst_adr :: inst_adr_rlo_rel +emit_adr :: emit_adr_rlo_rel +inst_neg :: inst_neg_rlo_rlo +emit_neg :: emit_neg_rlo_rlo +inst_movw :: inst_movw_r_imm16 +emit_movw :: emit_movw_r_imm16 +inst_movt :: inst_movt_r_imm16 +emit_movt :: emit_movt_r_imm16 +inst_bfc :: inst_bfc_r_imm5_imm5w +emit_bfc :: emit_bfc_r_imm5_imm5w +inst_bfi :: inst_bfi_r_r_imm5_imm5w +emit_bfi :: emit_bfi_r_r_imm5_imm5w +inst_sbfx :: inst_sbfx_r_r_imm5_imm5w +emit_sbfx :: emit_sbfx_r_r_imm5_imm5w +inst_ubfx :: inst_ubfx_r_r_imm5_imm5w +emit_ubfx :: emit_ubfx_r_r_imm5_imm5w +inst_sxtb :: inst_sxtb_r_r +emit_sxtb :: emit_sxtb_r_r +inst_sxtb16 :: inst_sxtb16_r_r +emit_sxtb16 :: emit_sxtb16_r_r +inst_sxth :: inst_sxth_r_r +emit_sxth :: emit_sxth_r_r +inst_uxtb :: inst_uxtb_r_r +emit_uxtb :: emit_uxtb_r_r +inst_uxtb16 :: inst_uxtb16_r_r +emit_uxtb16 :: emit_uxtb16_r_r +inst_uxth :: inst_uxth_r_r +emit_uxth :: emit_uxth_r_r +inst_sxtab :: inst_sxtab_r_r_r +emit_sxtab :: emit_sxtab_r_r_r +inst_sxtab16 :: inst_sxtab16_r_r_r +emit_sxtab16 :: emit_sxtab16_r_r_r +inst_sxtah :: inst_sxtah_r_r_r +emit_sxtah :: emit_sxtah_r_r_r +inst_uxtab :: inst_uxtab_r_r_r +emit_uxtab :: emit_uxtab_r_r_r +inst_uxtab16 :: inst_uxtab16_r_r_r +emit_uxtab16 :: emit_uxtab16_r_r_r +inst_uxtah :: inst_uxtah_r_r_r +emit_uxtah :: emit_uxtah_r_r_r +inst_clz :: inst_clz_r_r +emit_clz :: emit_clz_r_r +inst_rbit :: inst_rbit_r_r +emit_rbit :: emit_rbit_r_r +inst_rev :: inst_rev_r_r +emit_rev :: emit_rev_r_r +inst_rev16 :: inst_rev16_r_r +emit_rev16 :: emit_rev16_r_r +inst_revsh :: inst_revsh_r_r +emit_revsh :: emit_revsh_r_r +inst_sel :: inst_sel_r_r_r +emit_sel :: emit_sel_r_r_r +inst_pkhbt :: inst_pkhbt_r_r_rsh +emit_pkhbt :: emit_pkhbt_r_r_rsh +inst_pkhtb :: inst_pkhtb_r_r_rsh +emit_pkhtb :: emit_pkhtb_r_r_rsh +inst_usad8 :: inst_usad8_r_r_r +emit_usad8 :: emit_usad8_r_r_r +inst_usada8 :: inst_usada8_r_r_r_r +emit_usada8 :: emit_usada8_r_r_r_r +inst_ssat :: inst_ssat_r_imm4s_rsh +emit_ssat :: emit_ssat_r_imm4s_rsh +inst_usat :: inst_usat_r_imm4s_rsh +emit_usat :: emit_usat_r_imm4s_rsh +inst_ssat16 :: inst_ssat16_r_imm4s_r +emit_ssat16 :: emit_ssat16_r_imm4s_r +inst_usat16 :: inst_usat16_r_imm4s_r +emit_usat16 :: emit_usat16_r_imm4s_r +inst_qadd :: inst_qadd_r_r_r +emit_qadd :: emit_qadd_r_r_r +inst_qsub :: inst_qsub_r_r_r +emit_qsub :: emit_qsub_r_r_r +inst_qdadd :: inst_qdadd_r_r_r +emit_qdadd :: emit_qdadd_r_r_r +inst_qdsub :: inst_qdsub_r_r_r +emit_qdsub :: emit_qdsub_r_r_r +inst_sadd8 :: inst_sadd8_r_r_r +emit_sadd8 :: emit_sadd8_r_r_r +inst_sadd16 :: inst_sadd16_r_r_r +emit_sadd16 :: emit_sadd16_r_r_r +inst_sasx :: inst_sasx_r_r_r +emit_sasx :: emit_sasx_r_r_r +inst_ssax :: inst_ssax_r_r_r +emit_ssax :: emit_ssax_r_r_r +inst_ssub8 :: inst_ssub8_r_r_r +emit_ssub8 :: emit_ssub8_r_r_r +inst_ssub16 :: inst_ssub16_r_r_r +emit_ssub16 :: emit_ssub16_r_r_r +inst_uadd8 :: inst_uadd8_r_r_r +emit_uadd8 :: emit_uadd8_r_r_r +inst_uadd16 :: inst_uadd16_r_r_r +emit_uadd16 :: emit_uadd16_r_r_r +inst_uasx :: inst_uasx_r_r_r +emit_uasx :: emit_uasx_r_r_r +inst_usax :: inst_usax_r_r_r +emit_usax :: emit_usax_r_r_r +inst_usub8 :: inst_usub8_r_r_r +emit_usub8 :: emit_usub8_r_r_r +inst_usub16 :: inst_usub16_r_r_r +emit_usub16 :: emit_usub16_r_r_r +inst_qadd8 :: inst_qadd8_r_r_r +emit_qadd8 :: emit_qadd8_r_r_r +inst_qadd16 :: inst_qadd16_r_r_r +emit_qadd16 :: emit_qadd16_r_r_r +inst_qasx :: inst_qasx_r_r_r +emit_qasx :: emit_qasx_r_r_r +inst_qsax :: inst_qsax_r_r_r +emit_qsax :: emit_qsax_r_r_r +inst_qsub8 :: inst_qsub8_r_r_r +emit_qsub8 :: emit_qsub8_r_r_r +inst_qsub16 :: inst_qsub16_r_r_r +emit_qsub16 :: emit_qsub16_r_r_r +inst_uqadd8 :: inst_uqadd8_r_r_r +emit_uqadd8 :: emit_uqadd8_r_r_r +inst_uqadd16 :: inst_uqadd16_r_r_r +emit_uqadd16 :: emit_uqadd16_r_r_r +inst_uqasx :: inst_uqasx_r_r_r +emit_uqasx :: emit_uqasx_r_r_r +inst_uqsax :: inst_uqsax_r_r_r +emit_uqsax :: emit_uqsax_r_r_r +inst_uqsub8 :: inst_uqsub8_r_r_r +emit_uqsub8 :: emit_uqsub8_r_r_r +inst_uqsub16 :: inst_uqsub16_r_r_r +emit_uqsub16 :: emit_uqsub16_r_r_r +inst_shadd8 :: inst_shadd8_r_r_r +emit_shadd8 :: emit_shadd8_r_r_r +inst_shadd16 :: inst_shadd16_r_r_r +emit_shadd16 :: emit_shadd16_r_r_r +inst_shasx :: inst_shasx_r_r_r +emit_shasx :: emit_shasx_r_r_r +inst_shsax :: inst_shsax_r_r_r +emit_shsax :: emit_shsax_r_r_r +inst_shsub8 :: inst_shsub8_r_r_r +emit_shsub8 :: emit_shsub8_r_r_r +inst_shsub16 :: inst_shsub16_r_r_r +emit_shsub16 :: emit_shsub16_r_r_r +inst_uhadd8 :: inst_uhadd8_r_r_r +emit_uhadd8 :: emit_uhadd8_r_r_r +inst_uhadd16 :: inst_uhadd16_r_r_r +emit_uhadd16 :: emit_uhadd16_r_r_r +inst_uhasx :: inst_uhasx_r_r_r +emit_uhasx :: emit_uhasx_r_r_r +inst_uhsax :: inst_uhsax_r_r_r +emit_uhsax :: emit_uhsax_r_r_r +inst_uhsub8 :: inst_uhsub8_r_r_r +emit_uhsub8 :: emit_uhsub8_r_r_r +inst_uhsub16 :: inst_uhsub16_r_r_r +emit_uhsub16 :: emit_uhsub16_r_r_r +inst_smuad :: inst_smuad_r_r_r +emit_smuad :: emit_smuad_r_r_r +inst_smuadx :: inst_smuadx_r_r_r +emit_smuadx :: emit_smuadx_r_r_r +inst_smusd :: inst_smusd_r_r_r +emit_smusd :: emit_smusd_r_r_r +inst_smusdx :: inst_smusdx_r_r_r +emit_smusdx :: emit_smusdx_r_r_r +inst_smlad :: inst_smlad_r_r_r_r +emit_smlad :: emit_smlad_r_r_r_r +inst_smladx :: inst_smladx_r_r_r_r +emit_smladx :: emit_smladx_r_r_r_r +inst_smlsd :: inst_smlsd_r_r_r_r +emit_smlsd :: emit_smlsd_r_r_r_r +inst_smlsdx :: inst_smlsdx_r_r_r_r +emit_smlsdx :: emit_smlsdx_r_r_r_r +inst_smlald :: inst_smlald_r_r_r_r +emit_smlald :: emit_smlald_r_r_r_r +inst_smlaldx :: inst_smlaldx_r_r_r_r +emit_smlaldx :: emit_smlaldx_r_r_r_r +inst_smlsld :: inst_smlsld_r_r_r_r +emit_smlsld :: emit_smlsld_r_r_r_r +inst_smlsldx :: inst_smlsldx_r_r_r_r +emit_smlsldx :: emit_smlsldx_r_r_r_r +inst_smmul :: inst_smmul_r_r_r +emit_smmul :: emit_smmul_r_r_r +inst_smmulr :: inst_smmulr_r_r_r +emit_smmulr :: emit_smmulr_r_r_r +inst_smmla :: inst_smmla_r_r_r_r +emit_smmla :: emit_smmla_r_r_r_r +inst_smmlar :: inst_smmlar_r_r_r_r +emit_smmlar :: emit_smmlar_r_r_r_r +inst_smmls :: inst_smmls_r_r_r_r +emit_smmls :: emit_smmls_r_r_r_r +inst_smmlsr :: inst_smmlsr_r_r_r_r +emit_smmlsr :: emit_smmlsr_r_r_r_r +inst_mul :: proc{ inst_mul_r_r_r, inst_mul_rlo_rlo } +emit_mul :: proc{ emit_mul_r_r_r, emit_mul_rlo_rlo } +inst_mla :: inst_mla_r_r_r_r +emit_mla :: emit_mla_r_r_r_r +inst_mls :: inst_mls_r_r_r_r +emit_mls :: emit_mls_r_r_r_r +inst_umull :: inst_umull_r_r_r_r +emit_umull :: emit_umull_r_r_r_r +inst_umlal :: inst_umlal_r_r_r_r +emit_umlal :: emit_umlal_r_r_r_r +inst_smull :: inst_smull_r_r_r_r +emit_smull :: emit_smull_r_r_r_r +inst_smlal :: inst_smlal_r_r_r_r +emit_smlal :: emit_smlal_r_r_r_r +inst_umaal :: inst_umaal_r_r_r_r +emit_umaal :: emit_umaal_r_r_r_r +inst_smlabb :: inst_smlabb_r_r_r_r +emit_smlabb :: emit_smlabb_r_r_r_r +inst_smlabt :: inst_smlabt_r_r_r_r +emit_smlabt :: emit_smlabt_r_r_r_r +inst_smlatb :: inst_smlatb_r_r_r_r +emit_smlatb :: emit_smlatb_r_r_r_r +inst_smlatt :: inst_smlatt_r_r_r_r +emit_smlatt :: emit_smlatt_r_r_r_r +inst_smlawb :: inst_smlawb_r_r_r_r +emit_smlawb :: emit_smlawb_r_r_r_r +inst_smlawt :: inst_smlawt_r_r_r_r +emit_smlawt :: emit_smlawt_r_r_r_r +inst_smulbb :: inst_smulbb_r_r_r +emit_smulbb :: emit_smulbb_r_r_r +inst_smulbt :: inst_smulbt_r_r_r +emit_smulbt :: emit_smulbt_r_r_r +inst_smultb :: inst_smultb_r_r_r +emit_smultb :: emit_smultb_r_r_r +inst_smultt :: inst_smultt_r_r_r +emit_smultt :: emit_smultt_r_r_r +inst_smulwb :: inst_smulwb_r_r_r +emit_smulwb :: emit_smulwb_r_r_r +inst_smulwt :: inst_smulwt_r_r_r +emit_smulwt :: emit_smulwt_r_r_r +inst_smlalbb :: inst_smlalbb_r_r_r_r +emit_smlalbb :: emit_smlalbb_r_r_r_r +inst_smlalbt :: inst_smlalbt_r_r_r_r +emit_smlalbt :: emit_smlalbt_r_r_r_r +inst_smlaltb :: inst_smlaltb_r_r_r_r +emit_smlaltb :: emit_smlaltb_r_r_r_r +inst_smlaltt :: inst_smlaltt_r_r_r_r +emit_smlaltt :: emit_smlaltt_r_r_r_r +inst_sdiv :: inst_sdiv_r_r_r +emit_sdiv :: emit_sdiv_r_r_r +inst_udiv :: inst_udiv_r_r_r +emit_udiv :: emit_udiv_r_r_r +inst_b :: proc{ inst_b_rel, inst_b_rel_cond } +emit_b :: proc{ emit_b_rel, emit_b_rel_cond } +inst_bl :: inst_bl_rel +emit_bl :: emit_bl_rel +inst_bx :: inst_bx_r +emit_bx :: emit_bx_r +inst_blx :: proc{ inst_blx_r, inst_blx_rel } +emit_blx :: proc{ emit_blx_r, emit_blx_rel } +inst_bxj :: inst_bxj_r +emit_bxj :: emit_bxj_r +inst_cbz :: inst_cbz_rlo_rel +emit_cbz :: emit_cbz_rlo_rel +inst_cbnz :: inst_cbnz_rlo_rel +emit_cbnz :: emit_cbnz_rlo_rel +inst_tbb :: inst_tbb_r_r +emit_tbb :: emit_tbb_r_r +inst_tbh :: inst_tbh_r_r +emit_tbh :: emit_tbh_r_r +inst_msr :: proc{ inst_msr_psr_immm, inst_msr_psr_r } +emit_msr :: proc{ emit_msr_psr_immm, emit_msr_psr_r } +inst_mrs :: inst_mrs_r_psr +emit_mrs :: emit_mrs_r_psr +inst_cps :: inst_cps_ifl +emit_cps :: emit_cps_ifl +inst_setend :: inst_setend_end +emit_setend :: emit_setend_end +inst_nop :: inst_nop_none +emit_nop :: emit_nop_none +inst_yield :: inst_yield_none +emit_yield :: emit_yield_none +inst_wfe :: inst_wfe_none +emit_wfe :: emit_wfe_none +inst_wfi :: inst_wfi_none +emit_wfi :: emit_wfi_none +inst_sev :: inst_sev_none +emit_sev :: emit_sev_none +inst_sevl :: inst_sevl_none +emit_sevl :: emit_sevl_none +inst_dbg :: inst_dbg_hint +emit_dbg :: emit_dbg_hint +inst_hint :: inst_hint_hint +emit_hint :: emit_hint_hint +inst_dmb :: inst_dmb_barr +emit_dmb :: emit_dmb_barr +inst_dsb :: inst_dsb_barr +emit_dsb :: emit_dsb_barr +inst_isb :: inst_isb_barr +emit_isb :: emit_isb_barr +inst_clrex :: inst_clrex_none +emit_clrex :: emit_clrex_none +inst_pld :: inst_pld_mem +emit_pld :: emit_pld_mem +inst_pldw :: inst_pldw_mem +emit_pldw :: emit_pldw_mem +inst_pli :: inst_pli_mem +emit_pli :: emit_pli_mem +inst_hlt :: inst_hlt_imm +emit_hlt :: emit_hlt_imm +inst_dcps1 :: inst_dcps1_none +emit_dcps1 :: emit_dcps1_none +inst_dcps2 :: inst_dcps2_none +emit_dcps2 :: emit_dcps2_none +inst_dcps3 :: inst_dcps3_none +emit_dcps3 :: emit_dcps3_none +inst_eret :: inst_eret_none +emit_eret :: emit_eret_none +inst_esb :: inst_esb_none +emit_esb :: emit_esb_none +inst_psb_csync :: inst_psb_csync_none +emit_psb_csync :: emit_psb_csync_none +inst_tsb_csync :: inst_tsb_csync_none +emit_tsb_csync :: emit_tsb_csync_none +inst_csdb :: inst_csdb_none +emit_csdb :: emit_csdb_none +inst_sb :: inst_sb_none +emit_sb :: emit_sb_none +inst_setpan :: inst_setpan_hint +emit_setpan :: emit_setpan_hint +inst_svc :: inst_svc_imm +emit_svc :: emit_svc_imm +inst_bkpt :: inst_bkpt_imm +emit_bkpt :: emit_bkpt_imm +inst_hvc :: inst_hvc_imm +emit_hvc :: emit_hvc_imm +inst_smc :: inst_smc_imm +emit_smc :: emit_smc_imm +inst_udf :: inst_udf_imm +emit_udf :: emit_udf_imm +inst_ldr :: inst_ldr_r_mem +emit_ldr :: emit_ldr_r_mem +inst_str :: inst_str_r_mem +emit_str :: emit_str_r_mem +inst_ldrb :: inst_ldrb_r_mem +emit_ldrb :: emit_ldrb_r_mem +inst_strb :: inst_strb_r_mem +emit_strb :: emit_strb_r_mem +inst_ldrh :: inst_ldrh_r_mem +emit_ldrh :: emit_ldrh_r_mem +inst_strh :: inst_strh_r_mem +emit_strh :: emit_strh_r_mem +inst_ldrsb :: inst_ldrsb_r_mem +emit_ldrsb :: emit_ldrsb_r_mem +inst_ldrsh :: inst_ldrsh_r_mem +emit_ldrsh :: emit_ldrsh_r_mem +inst_ldrd :: inst_ldrd_r_r_mem +emit_ldrd :: emit_ldrd_r_r_mem +inst_strd :: inst_strd_r_r_mem +emit_strd :: emit_strd_r_r_mem +inst_ldrt :: inst_ldrt_r_mem +emit_ldrt :: emit_ldrt_r_mem +inst_strt :: inst_strt_r_mem +emit_strt :: emit_strt_r_mem +inst_ldrbt :: inst_ldrbt_r_mem +emit_ldrbt :: emit_ldrbt_r_mem +inst_strbt :: inst_strbt_r_mem +emit_strbt :: emit_strbt_r_mem +inst_ldrht :: inst_ldrht_r_mem +emit_ldrht :: emit_ldrht_r_mem +inst_strht :: inst_strht_r_mem +emit_strht :: emit_strht_r_mem +inst_ldrsbt :: inst_ldrsbt_r_mem +emit_ldrsbt :: emit_ldrsbt_r_mem +inst_ldrsht :: inst_ldrsht_r_mem +emit_ldrsht :: emit_ldrsht_r_mem +inst_lda :: inst_lda_r_mem +emit_lda :: emit_lda_r_mem +inst_stl :: inst_stl_r_mem +emit_stl :: emit_stl_r_mem +inst_ldab :: inst_ldab_r_mem +emit_ldab :: emit_ldab_r_mem +inst_stlb :: inst_stlb_r_mem +emit_stlb :: emit_stlb_r_mem +inst_ldah :: inst_ldah_r_mem +emit_ldah :: emit_ldah_r_mem +inst_stlh :: inst_stlh_r_mem +emit_stlh :: emit_stlh_r_mem +inst_ldrex :: inst_ldrex_r_mem +emit_ldrex :: emit_ldrex_r_mem +inst_strex :: inst_strex_r_r_mem +emit_strex :: emit_strex_r_r_mem +inst_ldrexb :: inst_ldrexb_r_mem +emit_ldrexb :: emit_ldrexb_r_mem +inst_strexb :: inst_strexb_r_r_mem +emit_strexb :: emit_strexb_r_r_mem +inst_ldrexh :: inst_ldrexh_r_mem +emit_ldrexh :: emit_ldrexh_r_mem +inst_strexh :: inst_strexh_r_r_mem +emit_strexh :: emit_strexh_r_r_mem +inst_ldrexd :: proc{ inst_ldrexd_r_mem, inst_ldrexd_r_r_mem } +emit_ldrexd :: proc{ emit_ldrexd_r_mem, emit_ldrexd_r_r_mem } +inst_strexd :: proc{ inst_strexd_r_r_mem, inst_strexd_r_r_r_mem } +emit_strexd :: proc{ emit_strexd_r_r_mem, emit_strexd_r_r_r_mem } +inst_ldaex :: inst_ldaex_r_mem +emit_ldaex :: emit_ldaex_r_mem +inst_stlex :: inst_stlex_r_r_mem +emit_stlex :: emit_stlex_r_r_mem +inst_ldaexb :: inst_ldaexb_r_mem +emit_ldaexb :: emit_ldaexb_r_mem +inst_stlexb :: inst_stlexb_r_r_mem +emit_stlexb :: emit_stlexb_r_r_mem +inst_ldaexh :: inst_ldaexh_r_mem +emit_ldaexh :: emit_ldaexh_r_mem +inst_stlexh :: inst_stlexh_r_r_mem +emit_stlexh :: emit_stlexh_r_r_mem +inst_ldaexd :: inst_ldaexd_r_mem +emit_ldaexd :: emit_ldaexd_r_mem +inst_stlexd :: inst_stlexd_r_r_mem +emit_stlexd :: emit_stlexd_r_r_mem +inst_ldm :: inst_ldm_r_list +emit_ldm :: emit_ldm_r_list +inst_stm :: inst_stm_r_list +emit_stm :: emit_stm_r_list +inst_ldmib :: inst_ldmib_r_list +emit_ldmib :: emit_ldmib_r_list +inst_ldmda :: inst_ldmda_r_list +emit_ldmda :: emit_ldmda_r_list +inst_ldmdb :: inst_ldmdb_r_list +emit_ldmdb :: emit_ldmdb_r_list +inst_stmib :: inst_stmib_r_list +emit_stmib :: emit_stmib_r_list +inst_stmda :: inst_stmda_r_list +emit_stmda :: emit_stmda_r_list +inst_stmdb :: inst_stmdb_r_list +emit_stmdb :: emit_stmdb_r_list +inst_push :: inst_push_list +emit_push :: emit_push_list +inst_pop :: inst_pop_list +emit_pop :: emit_pop_list +inst_swp :: inst_swp_r_r_r +emit_swp :: emit_swp_r_r_r +inst_swpb :: inst_swpb_r_r_r +emit_swpb :: emit_swpb_r_r_r +inst_rfeda :: inst_rfeda_r +emit_rfeda :: emit_rfeda_r +inst_rfedb :: inst_rfedb_r +emit_rfedb :: emit_rfedb_r +inst_rfeia :: inst_rfeia_r +emit_rfeia :: emit_rfeia_r +inst_rfeib :: inst_rfeib_r +emit_rfeib :: emit_rfeib_r +inst_srsda :: inst_srsda_r_imm +emit_srsda :: emit_srsda_r_imm +inst_srsdb :: inst_srsdb_r_imm +emit_srsdb :: emit_srsdb_r_imm +inst_srsia :: inst_srsia_r_imm +emit_srsia :: emit_srsia_r_imm +inst_srsib :: inst_srsib_r_imm +emit_srsib :: emit_srsib_r_imm +inst_cdp :: inst_cdp_cpn_cpop_crd_crd_crd_cpop +emit_cdp :: emit_cdp_cpn_cpop_crd_crd_crd_cpop +inst_cdp2 :: inst_cdp2_cpn_cpop_crd_crd_crd_cpop +emit_cdp2 :: emit_cdp2_cpn_cpop_crd_crd_crd_cpop +inst_mcr :: inst_mcr_cpn_cpop_r_crd_crd_cpop +emit_mcr :: emit_mcr_cpn_cpop_r_crd_crd_cpop +inst_mcr2 :: inst_mcr2_cpn_cpop_r_crd_crd_cpop +emit_mcr2 :: emit_mcr2_cpn_cpop_r_crd_crd_cpop +inst_mrc :: inst_mrc_cpn_cpop_r_crd_crd_cpop +emit_mrc :: emit_mrc_cpn_cpop_r_crd_crd_cpop +inst_mrc2 :: inst_mrc2_cpn_cpop_r_crd_crd_cpop +emit_mrc2 :: emit_mrc2_cpn_cpop_r_crd_crd_cpop +inst_mcrr :: inst_mcrr_cpn_cpop_r_r_crd +emit_mcrr :: emit_mcrr_cpn_cpop_r_r_crd +inst_mcrr2 :: inst_mcrr2_cpn_cpop_r_r_crd +emit_mcrr2 :: emit_mcrr2_cpn_cpop_r_r_crd +inst_mrrc :: inst_mrrc_cpn_cpop_r_r_crd +emit_mrrc :: emit_mrrc_cpn_cpop_r_r_crd +inst_mrrc2 :: inst_mrrc2_cpn_cpop_r_r_crd +emit_mrrc2 :: emit_mrrc2_cpn_cpop_r_r_crd +inst_ldc :: inst_ldc_cpn_crd_mem +emit_ldc :: emit_ldc_cpn_crd_mem +inst_ldc2 :: inst_ldc2_cpn_crd_mem +emit_ldc2 :: emit_ldc2_cpn_crd_mem +inst_stc :: inst_stc_cpn_crd_mem +emit_stc :: emit_stc_cpn_crd_mem +inst_stc2 :: inst_stc2_cpn_crd_mem +emit_stc2 :: emit_stc2_cpn_crd_mem +inst_ldcl :: inst_ldcl_cpn_crd_mem +emit_ldcl :: emit_ldcl_cpn_crd_mem +inst_ldc2l :: inst_ldc2l_cpn_crd_mem +emit_ldc2l :: emit_ldc2l_cpn_crd_mem +inst_stcl :: inst_stcl_cpn_crd_mem +emit_stcl :: emit_stcl_cpn_crd_mem +inst_stc2l :: inst_stc2l_cpn_crd_mem +emit_stc2l :: emit_stc2l_cpn_crd_mem +inst_crc32b :: inst_crc32b_r_r_r +emit_crc32b :: emit_crc32b_r_r_r +inst_crc32h :: inst_crc32h_r_r_r +emit_crc32h :: emit_crc32h_r_r_r +inst_crc32w :: inst_crc32w_r_r_r +emit_crc32w :: emit_crc32w_r_r_r +inst_crc32cb :: inst_crc32cb_r_r_r +emit_crc32cb :: emit_crc32cb_r_r_r +inst_crc32ch :: inst_crc32ch_r_r_r +emit_crc32ch :: emit_crc32ch_r_r_r +inst_crc32cw :: inst_crc32cw_r_r_r +emit_crc32cw :: emit_crc32cw_r_r_r +inst_vadd :: inst_vadd_s_s_s +emit_vadd :: emit_vadd_s_s_s +inst_vsub :: inst_vsub_s_s_s +emit_vsub :: emit_vsub_s_s_s +inst_vmul :: proc{ inst_vmul_s_s_s, inst_vmul_d_d_dlane } +emit_vmul :: proc{ emit_vmul_s_s_s, emit_vmul_d_d_dlane } +inst_vdiv :: inst_vdiv_s_s_s +emit_vdiv :: emit_vdiv_s_s_s +inst_vmla :: proc{ inst_vmla_s_s_s, inst_vmla_d_d_dlane } +emit_vmla :: proc{ emit_vmla_s_s_s, emit_vmla_d_d_dlane } +inst_vmls :: proc{ inst_vmls_s_s_s, inst_vmls_d_d_dlane } +emit_vmls :: proc{ emit_vmls_s_s_s, emit_vmls_d_d_dlane } +inst_vnmul :: inst_vnmul_s_s_s +emit_vnmul :: emit_vnmul_s_s_s +inst_vnmla :: inst_vnmla_s_s_s +emit_vnmla :: emit_vnmla_s_s_s +inst_vnmls :: inst_vnmls_s_s_s +emit_vnmls :: emit_vnmls_s_s_s +inst_vfma :: inst_vfma_s_s_s +emit_vfma :: emit_vfma_s_s_s +inst_vfms :: inst_vfms_s_s_s +emit_vfms :: emit_vfms_s_s_s +inst_vfnma :: inst_vfnma_s_s_s +emit_vfnma :: emit_vfnma_s_s_s +inst_vfnms :: inst_vfnms_s_s_s +emit_vfnms :: emit_vfnms_s_s_s +inst_vfmab :: inst_vfmab_q_q_q +emit_vfmab :: emit_vfmab_q_q_q +inst_vfmat :: inst_vfmat_q_q_q +emit_vfmat :: emit_vfmat_q_q_q +inst_vabs :: inst_vabs_s_s +emit_vabs :: emit_vabs_s_s +inst_vneg :: inst_vneg_s_s +emit_vneg :: emit_vneg_s_s +inst_vsqrt :: inst_vsqrt_s_s +emit_vsqrt :: emit_vsqrt_s_s +inst_vcmp :: proc{ inst_vcmp_s_s, inst_vcmp_s } +emit_vcmp :: proc{ emit_vcmp_s_s, emit_vcmp_s } +inst_vcmpe :: proc{ inst_vcmpe_s_s, inst_vcmpe_s } +emit_vcmpe :: proc{ emit_vcmpe_s_s, emit_vcmpe_s } +inst_vcvt :: proc{ inst_vcvt_d_s, inst_vcvt_s_s_imm } +emit_vcvt :: proc{ emit_vcvt_d_s, emit_vcvt_s_s_imm } +inst_vcvtb :: inst_vcvtb_s_s +emit_vcvtb :: emit_vcvtb_s_s +inst_vcvtt :: inst_vcvtt_s_s +emit_vcvtt :: emit_vcvtt_s_s +inst_vcvta :: inst_vcvta_s_s +emit_vcvta :: emit_vcvta_s_s +inst_vcvtn :: inst_vcvtn_s_s +emit_vcvtn :: emit_vcvtn_s_s +inst_vcvtp :: inst_vcvtp_s_s +emit_vcvtp :: emit_vcvtp_s_s +inst_vcvtm :: inst_vcvtm_s_s +emit_vcvtm :: emit_vcvtm_s_s +inst_vcvtr :: inst_vcvtr_s_s +emit_vcvtr :: emit_vcvtr_s_s +inst_vmov :: proc{ inst_vmov_s_s, inst_vmov_s_imm8, inst_vmov_r_r_d, inst_vmov_r_r_s_s, inst_vmov_r_dlane, inst_vmov_qlane_r, inst_vmov_qlane_qlane_r_r } +emit_vmov :: proc{ emit_vmov_s_s, emit_vmov_s_imm8, emit_vmov_r_r_d, emit_vmov_r_r_s_s, emit_vmov_r_dlane, emit_vmov_qlane_r, emit_vmov_qlane_qlane_r_r } +inst_vmrs :: inst_vmrs_r_psr +emit_vmrs :: emit_vmrs_r_psr +inst_vmsr :: inst_vmsr_psr_r +emit_vmsr :: emit_vmsr_psr_r +inst_vldr :: inst_vldr_s_mem +emit_vldr :: emit_vldr_s_mem +inst_vstr :: inst_vstr_s_mem +emit_vstr :: emit_vstr_s_mem +inst_vldmia :: inst_vldmia_r_slist +emit_vldmia :: emit_vldmia_r_slist +inst_vldmdb :: inst_vldmdb_r_slist +emit_vldmdb :: emit_vldmdb_r_slist +inst_vstmia :: inst_vstmia_r_slist +emit_vstmia :: emit_vstmia_r_slist +inst_vstmdb :: inst_vstmdb_r_slist +emit_vstmdb :: emit_vstmdb_r_slist +inst_vpush :: inst_vpush_slist +emit_vpush :: emit_vpush_slist +inst_vpop :: inst_vpop_slist +emit_vpop :: emit_vpop_slist +inst_vsel :: inst_vsel_s_s_s +emit_vsel :: emit_vsel_s_s_s +inst_vmaxnm :: inst_vmaxnm_s_s_s +emit_vmaxnm :: emit_vmaxnm_s_s_s +inst_vminnm :: inst_vminnm_s_s_s +emit_vminnm :: emit_vminnm_s_s_s +inst_vrinta :: inst_vrinta_s_s +emit_vrinta :: emit_vrinta_s_s +inst_vrintn :: inst_vrintn_s_s +emit_vrintn :: emit_vrintn_s_s +inst_vrintp :: inst_vrintp_s_s +emit_vrintp :: emit_vrintp_s_s +inst_vrintm :: inst_vrintm_s_s +emit_vrintm :: emit_vrintm_s_s +inst_vrintr :: inst_vrintr_s_s +emit_vrintr :: emit_vrintr_s_s +inst_vrintz :: inst_vrintz_s_s +emit_vrintz :: emit_vrintz_s_s +inst_vrintx :: inst_vrintx_s_s +emit_vrintx :: emit_vrintx_s_s +inst_vaddl :: inst_vaddl_q_d_d +emit_vaddl :: emit_vaddl_q_d_d +inst_vaddw :: inst_vaddw_q_q_d +emit_vaddw :: emit_vaddw_q_q_d +inst_vsubl :: inst_vsubl_q_d_d +emit_vsubl :: emit_vsubl_q_d_d +inst_vsubw :: inst_vsubw_q_q_d +emit_vsubw :: emit_vsubw_q_q_d +inst_vhadd :: inst_vhadd_d_d_d +emit_vhadd :: emit_vhadd_d_d_d +inst_vhsub :: inst_vhsub_d_d_d +emit_vhsub :: emit_vhsub_d_d_d +inst_vrhadd :: inst_vrhadd_d_d_d +emit_vrhadd :: emit_vrhadd_d_d_d +inst_vqadd :: inst_vqadd_d_d_d +emit_vqadd :: emit_vqadd_d_d_d +inst_vqsub :: inst_vqsub_d_d_d +emit_vqsub :: emit_vqsub_d_d_d +inst_vmull :: proc{ inst_vmull_q_d_d, inst_vmull_q_d_dlane } +emit_vmull :: proc{ emit_vmull_q_d_d, emit_vmull_q_d_dlane } +inst_vmlal :: proc{ inst_vmlal_q_d_d, inst_vmlal_q_d_dlane } +emit_vmlal :: proc{ emit_vmlal_q_d_d, emit_vmlal_q_d_dlane } +inst_vmlsl :: proc{ inst_vmlsl_q_d_d, inst_vmlsl_q_d_dlane } +emit_vmlsl :: proc{ emit_vmlsl_q_d_d, emit_vmlsl_q_d_dlane } +inst_vqdmull :: proc{ inst_vqdmull_q_d_d, inst_vqdmull_q_d_dlane } +emit_vqdmull :: proc{ emit_vqdmull_q_d_d, emit_vqdmull_q_d_dlane } +inst_vqdmlal :: proc{ inst_vqdmlal_q_d_d, inst_vqdmlal_q_d_dlane } +emit_vqdmlal :: proc{ emit_vqdmlal_q_d_d, emit_vqdmlal_q_d_dlane } +inst_vqdmlsl :: proc{ inst_vqdmlsl_q_d_d, inst_vqdmlsl_q_d_dlane } +emit_vqdmlsl :: proc{ emit_vqdmlsl_q_d_d, emit_vqdmlsl_q_d_dlane } +inst_vqdmulh :: proc{ inst_vqdmulh_d_d_d, inst_vqdmulh_d_d_dlane } +emit_vqdmulh :: proc{ emit_vqdmulh_d_d_d, emit_vqdmulh_d_d_dlane } +inst_vqrdmulh :: proc{ inst_vqrdmulh_d_d_d, inst_vqrdmulh_d_d_dlane } +emit_vqrdmulh :: proc{ emit_vqrdmulh_d_d_d, emit_vqrdmulh_d_d_dlane } +inst_vqrdmlah :: proc{ inst_vqrdmlah_d_d_d, inst_vqrdmlah_d_d_dlane } +emit_vqrdmlah :: proc{ emit_vqrdmlah_d_d_d, emit_vqrdmlah_d_d_dlane } +inst_vqrdmlsh :: proc{ inst_vqrdmlsh_d_d_d, inst_vqrdmlsh_d_d_dlane } +emit_vqrdmlsh :: proc{ emit_vqrdmlsh_d_d_d, emit_vqrdmlsh_d_d_dlane } +inst_vaba :: inst_vaba_d_d_d +emit_vaba :: emit_vaba_d_d_d +inst_vabal :: inst_vabal_q_d_d +emit_vabal :: emit_vabal_q_d_d +inst_vabd :: inst_vabd_d_d_d +emit_vabd :: emit_vabd_d_d_d +inst_vabdl :: inst_vabdl_q_d_d +emit_vabdl :: emit_vabdl_q_d_d +inst_vand :: inst_vand_d_d_d +emit_vand :: emit_vand_d_d_d +inst_vbic :: proc{ inst_vbic_d_imm, inst_vbic_d_d_d } +emit_vbic :: proc{ emit_vbic_d_imm, emit_vbic_d_d_d } +inst_vorr :: proc{ inst_vorr_d_imm, inst_vorr_d_d_d } +emit_vorr :: proc{ emit_vorr_d_imm, emit_vorr_d_d_d } +inst_vorn :: inst_vorn_d_d_d +emit_vorn :: emit_vorn_d_d_d +inst_veor :: inst_veor_d_d_d +emit_veor :: emit_veor_d_d_d +inst_vbsl :: inst_vbsl_d_d_d +emit_vbsl :: emit_vbsl_d_d_d +inst_vbit :: inst_vbit_d_d_d +emit_vbit :: emit_vbit_d_d_d +inst_vbif :: inst_vbif_d_d_d +emit_vbif :: emit_vbif_d_d_d +inst_vmvn :: proc{ inst_vmvn_d_d, inst_vmvn_d_imm } +emit_vmvn :: proc{ emit_vmvn_d_d, emit_vmvn_d_imm } +inst_vmovn :: inst_vmovn_d_q +emit_vmovn :: emit_vmovn_d_q +inst_vqmovn :: inst_vqmovn_d_q +emit_vqmovn :: emit_vqmovn_d_q +inst_vqmovun :: inst_vqmovun_d_q +emit_vqmovun :: emit_vqmovun_d_q +inst_vmovl :: inst_vmovl_q_d +emit_vmovl :: emit_vmovl_q_d +inst_vtst :: inst_vtst_d_d_d +emit_vtst :: emit_vtst_d_d_d +inst_vceq :: proc{ inst_vceq_d_d_d, inst_vceq_d_d } +emit_vceq :: proc{ emit_vceq_d_d_d, emit_vceq_d_d } +inst_vcge :: proc{ inst_vcge_d_d_d, inst_vcge_d_d } +emit_vcge :: proc{ emit_vcge_d_d_d, emit_vcge_d_d } +inst_vcgt :: proc{ inst_vcgt_d_d_d, inst_vcgt_d_d } +emit_vcgt :: proc{ emit_vcgt_d_d_d, emit_vcgt_d_d } +inst_vcle :: proc{ inst_vcle_d_d_d, inst_vcle_d_d } +emit_vcle :: proc{ emit_vcle_d_d_d, emit_vcle_d_d } +inst_vclt :: proc{ inst_vclt_d_d_d, inst_vclt_d_d } +emit_vclt :: proc{ emit_vclt_d_d_d, emit_vclt_d_d } +inst_vacge :: inst_vacge_d_d_d +emit_vacge :: emit_vacge_d_d_d +inst_vacgt :: inst_vacgt_d_d_d +emit_vacgt :: emit_vacgt_d_d_d +inst_vacle :: inst_vacle_d_d_d +emit_vacle :: emit_vacle_d_d_d +inst_vaclt :: inst_vaclt_d_d_d +emit_vaclt :: emit_vaclt_d_d_d +inst_vmax :: inst_vmax_d_d_d +emit_vmax :: emit_vmax_d_d_d +inst_vmin :: inst_vmin_d_d_d +emit_vmin :: emit_vmin_d_d_d +inst_vpmax :: inst_vpmax_d_d_d +emit_vpmax :: emit_vpmax_d_d_d +inst_vpmin :: inst_vpmin_d_d_d +emit_vpmin :: emit_vpmin_d_d_d +inst_vpadd :: inst_vpadd_d_d_d +emit_vpadd :: emit_vpadd_d_d_d +inst_vpaddl :: inst_vpaddl_d_d +emit_vpaddl :: emit_vpaddl_d_d +inst_vpadal :: inst_vpadal_d_d +emit_vpadal :: emit_vpadal_d_d +inst_vrecpe :: inst_vrecpe_d_d +emit_vrecpe :: emit_vrecpe_d_d +inst_vrecps :: inst_vrecps_d_d_d +emit_vrecps :: emit_vrecps_d_d_d +inst_vrsqrte :: inst_vrsqrte_d_d +emit_vrsqrte :: emit_vrsqrte_d_d +inst_vrsqrts :: inst_vrsqrts_d_d_d +emit_vrsqrts :: emit_vrsqrts_d_d_d +inst_vshl :: inst_vshl_d_d_d +emit_vshl :: emit_vshl_d_d_d +inst_vshr :: inst_vshr_d_d_imm +emit_vshr :: emit_vshr_d_d_imm +inst_vsra :: inst_vsra_d_d_imm +emit_vsra :: emit_vsra_d_d_imm +inst_vrshl :: inst_vrshl_d_d_d +emit_vrshl :: emit_vrshl_d_d_d +inst_vrshr :: inst_vrshr_d_d_imm +emit_vrshr :: emit_vrshr_d_d_imm +inst_vrsra :: inst_vrsra_d_d_imm +emit_vrsra :: emit_vrsra_d_d_imm +inst_vsli :: inst_vsli_d_d_imm +emit_vsli :: emit_vsli_d_d_imm +inst_vsri :: inst_vsri_d_d_imm +emit_vsri :: emit_vsri_d_d_imm +inst_vqshl :: proc{ inst_vqshl_d_d_d, inst_vqshl_d_d_imm } +emit_vqshl :: proc{ emit_vqshl_d_d_d, emit_vqshl_d_d_imm } +inst_vqshrn :: inst_vqshrn_d_q_imm +emit_vqshrn :: emit_vqshrn_d_q_imm +inst_vqshrun :: inst_vqshrun_d_q_imm +emit_vqshrun :: emit_vqshrun_d_q_imm +inst_vqrshl :: inst_vqrshl_d_d_d +emit_vqrshl :: emit_vqrshl_d_d_d +inst_vqrshrn :: inst_vqrshrn_d_q_imm +emit_vqrshrn :: emit_vqrshrn_d_q_imm +inst_vqrshrun :: inst_vqrshrun_d_q_imm +emit_vqrshrun :: emit_vqrshrun_d_q_imm +inst_vshrn :: inst_vshrn_d_q_imm +emit_vshrn :: emit_vshrn_d_q_imm +inst_vrshrn :: inst_vrshrn_d_q_imm +emit_vrshrn :: emit_vrshrn_d_q_imm +inst_vshll :: inst_vshll_q_d_imm +emit_vshll :: emit_vshll_q_d_imm +inst_vcls :: inst_vcls_d_d +emit_vcls :: emit_vcls_d_d +inst_vclz :: inst_vclz_d_d +emit_vclz :: emit_vclz_d_d +inst_vcnt :: inst_vcnt_d_d +emit_vcnt :: emit_vcnt_d_d +inst_vrev16 :: inst_vrev16_d_d +emit_vrev16 :: emit_vrev16_d_d +inst_vrev32 :: inst_vrev32_d_d +emit_vrev32 :: emit_vrev32_d_d +inst_vrev64 :: inst_vrev64_d_d +emit_vrev64 :: emit_vrev64_d_d +inst_vext :: inst_vext_d_d_d_imm4 +emit_vext :: emit_vext_d_d_d_imm4 +inst_vtbl :: inst_vtbl_d_dlist_d +emit_vtbl :: emit_vtbl_d_dlist_d +inst_vtbx :: inst_vtbx_d_dlist_d +emit_vtbx :: emit_vtbx_d_dlist_d +inst_vtrn :: inst_vtrn_d_d +emit_vtrn :: emit_vtrn_d_d +inst_vuzp :: inst_vuzp_d_d +emit_vuzp :: emit_vuzp_d_d +inst_vzip :: inst_vzip_d_d +emit_vzip :: emit_vzip_d_d +inst_vdup :: proc{ inst_vdup_d_r, inst_vdup_d_dlane } +emit_vdup :: proc{ emit_vdup_d_r, emit_vdup_d_dlane } +inst_vswp :: inst_vswp_d_d +emit_vswp :: emit_vswp_d_d +inst_vld1 :: proc{ inst_vld1_dlist_mem, inst_vld1_dlane_mem } +emit_vld1 :: proc{ emit_vld1_dlist_mem, emit_vld1_dlane_mem } +inst_vld2 :: inst_vld2_dlist_mem +emit_vld2 :: emit_vld2_dlist_mem +inst_vld3 :: inst_vld3_dlist_mem +emit_vld3 :: emit_vld3_dlist_mem +inst_vld4 :: inst_vld4_dlist_mem +emit_vld4 :: emit_vld4_dlist_mem +inst_vst1 :: proc{ inst_vst1_dlist_mem, inst_vst1_dlane_mem } +emit_vst1 :: proc{ emit_vst1_dlist_mem, emit_vst1_dlane_mem } +inst_vst2 :: inst_vst2_dlist_mem +emit_vst2 :: emit_vst2_dlist_mem +inst_vst3 :: inst_vst3_dlist_mem +emit_vst3 :: emit_vst3_dlist_mem +inst_vst4 :: inst_vst4_dlist_mem +emit_vst4 :: emit_vst4_dlist_mem +inst_aese :: inst_aese_q_q +emit_aese :: emit_aese_q_q +inst_aesd :: inst_aesd_q_q +emit_aesd :: emit_aesd_q_q +inst_aesmc :: inst_aesmc_q_q +emit_aesmc :: emit_aesmc_q_q +inst_aesimc :: inst_aesimc_q_q +emit_aesimc :: emit_aesimc_q_q +inst_sha1h :: inst_sha1h_q_q +emit_sha1h :: emit_sha1h_q_q +inst_sha1su0 :: inst_sha1su0_q_q_q +emit_sha1su0 :: emit_sha1su0_q_q_q +inst_sha1su1 :: inst_sha1su1_q_q +emit_sha1su1 :: emit_sha1su1_q_q +inst_sha1c :: inst_sha1c_q_q_q +emit_sha1c :: emit_sha1c_q_q_q +inst_sha1m :: inst_sha1m_q_q_q +emit_sha1m :: emit_sha1m_q_q_q +inst_sha1p :: inst_sha1p_q_q_q +emit_sha1p :: emit_sha1p_q_q_q +inst_sha256h :: inst_sha256h_q_q_q +emit_sha256h :: emit_sha256h_q_q_q +inst_sha256h2 :: inst_sha256h2_q_q_q +emit_sha256h2 :: emit_sha256h2_q_q_q +inst_sha256su0 :: inst_sha256su0_q_q +emit_sha256su0 :: emit_sha256su0_q_q +inst_sha256su1 :: inst_sha256su1_q_q_q +emit_sha256su1 :: emit_sha256su1_q_q_q +inst_vjcvt :: inst_vjcvt_s_d +emit_vjcvt :: emit_vjcvt_s_d +inst_vsdot :: proc{ inst_vsdot_d_d_d, inst_vsdot_d_d_dlane } +emit_vsdot :: proc{ emit_vsdot_d_d_d, emit_vsdot_d_d_dlane } +inst_vudot :: proc{ inst_vudot_d_d_d, inst_vudot_d_d_dlane } +emit_vudot :: proc{ emit_vudot_d_d_d, emit_vudot_d_d_dlane } +inst_vdot :: inst_vdot_d_d_d +emit_vdot :: emit_vdot_d_d_d +inst_vmmla :: inst_vmmla_q_q_q +emit_vmmla :: emit_vmmla_q_q_q +inst_vfmal :: inst_vfmal_d_s_s +emit_vfmal :: emit_vfmal_d_s_s +inst_vfmsl :: inst_vfmsl_d_s_s +emit_vfmsl :: emit_vfmsl_d_s_s +inst_vcmla :: proc{ inst_vcmla_d_d_d_imm, inst_vcmla_d_d_dlane_imm } +emit_vcmla :: proc{ emit_vcmla_d_d_d_imm, emit_vcmla_d_d_dlane_imm } +inst_vcadd :: inst_vcadd_d_d_d_imm +emit_vcadd :: emit_vcadd_d_d_d_imm +inst_vsmmla :: inst_vsmmla_q_q_q +emit_vsmmla :: emit_vsmmla_q_q_q +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 :: 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 +emit_vqabs :: emit_vqabs_q_q +inst_vqneg :: inst_vqneg_q_q +emit_vqneg :: emit_vqneg_q_q +inst_vmovx :: inst_vmovx_s_s +emit_vmovx :: emit_vmovx_s_s +inst_vins :: inst_vins_s_s +emit_vins :: emit_vins_s_s +inst_it :: inst_it_cond_imm4 +emit_it :: emit_it_cond_imm4 +inst_tt :: inst_tt_r_r +emit_tt :: emit_tt_r_r +inst_ttt :: inst_ttt_r_r +emit_ttt :: emit_ttt_r_r +inst_tta :: inst_tta_r_r +emit_tta :: emit_tta_r_r +inst_ttat :: inst_ttat_r_r +emit_ttat :: emit_ttat_r_r +inst_sg :: inst_sg_none +emit_sg :: emit_sg_none +inst_bxns :: inst_bxns_r +emit_bxns :: emit_bxns_r +inst_blxns :: inst_blxns_r +emit_blxns :: emit_blxns_r +inst_pac :: inst_pac_none +emit_pac :: emit_pac_none +inst_pacbti :: inst_pacbti_none +emit_pacbti :: emit_pacbti_none +inst_aut :: inst_aut_none +emit_aut :: emit_aut_none +inst_autg :: inst_autg_r_r_r +emit_autg :: emit_autg_r_r_r +inst_bti :: inst_bti_none +emit_bti :: emit_bti_none +inst_wls :: inst_wls_r_rel +emit_wls :: emit_wls_r_rel +inst_wlstp :: inst_wlstp_r_rel +emit_wlstp :: emit_wlstp_r_rel +inst_dls :: inst_dls_r +emit_dls :: emit_dls_r +inst_dlstp :: inst_dlstp_r +emit_dlstp :: emit_dlstp_r +inst_le :: inst_le_rel +emit_le :: emit_le_rel +inst_letp :: inst_letp_rel +emit_letp :: emit_letp_rel +inst_lctp :: inst_lctp_none +emit_lctp :: emit_lctp_none +inst_bf :: inst_bf_rel_rel +emit_bf :: emit_bf_rel_rel +inst_bfx :: inst_bfx_rel_r +emit_bfx :: emit_bfx_rel_r +inst_bfl :: inst_bfl_rel_rel +emit_bfl :: emit_bfl_rel_rel +inst_bflx :: inst_bflx_rel_r +emit_bflx :: emit_bflx_rel_r +inst_bfcsel :: inst_bfcsel_rel_rel_imm4 +emit_bfcsel :: emit_bfcsel_rel_rel_imm4 +inst_cx1 :: inst_cx1_cp_r_imm +emit_cx1 :: emit_cx1_cp_r_imm +inst_cx1a :: inst_cx1a_cp_r_imm +emit_cx1a :: emit_cx1a_cp_r_imm +inst_cx1d :: inst_cx1d_cp_r_imm +emit_cx1d :: emit_cx1d_cp_r_imm +inst_cx1da :: inst_cx1da_cp_r_imm +emit_cx1da :: emit_cx1da_cp_r_imm +inst_cx2 :: inst_cx2_cp_r_r_imm +emit_cx2 :: emit_cx2_cp_r_r_imm +inst_cx2a :: inst_cx2a_cp_r_r_imm +emit_cx2a :: emit_cx2a_cp_r_r_imm +inst_cx2d :: inst_cx2d_cp_r_r_imm +emit_cx2d :: emit_cx2d_cp_r_r_imm +inst_cx2da :: inst_cx2da_cp_r_r_imm +emit_cx2da :: emit_cx2da_cp_r_r_imm +inst_cx3 :: inst_cx3_cp_r_r_r +emit_cx3 :: emit_cx3_cp_r_r_r +inst_cx3a :: inst_cx3a_cp_r_r_r +emit_cx3a :: emit_cx3a_cp_r_r_r +inst_cx3d :: inst_cx3d_cp_r_r_r +emit_cx3d :: emit_cx3d_cp_r_r_r +inst_cx3da :: inst_cx3da_cp_r_r_r +emit_cx3da :: emit_cx3da_cp_r_r_r +inst_vcx1 :: inst_vcx1_cp_s_imm +emit_vcx1 :: emit_vcx1_cp_s_imm +inst_vcx1a :: inst_vcx1a_cp_s_imm +emit_vcx1a :: emit_vcx1a_cp_s_imm +inst_vcx2 :: inst_vcx2_cp_s_s_imm +emit_vcx2 :: emit_vcx2_cp_s_s_imm +inst_vcx2a :: inst_vcx2a_cp_s_s_imm +emit_vcx2a :: emit_vcx2a_cp_s_s_imm +inst_vcx3 :: inst_vcx3_cp_s_s_s +emit_vcx3 :: emit_vcx3_cp_s_s_s +inst_vcx3a :: inst_vcx3a_cp_s_s_s +emit_vcx3a :: emit_vcx3a_cp_s_s_s +inst_vpt :: inst_vpt_vpt_cond_q_q +emit_vpt :: emit_vpt_vpt_cond_q_q +inst_vpst :: inst_vpst_vpt +emit_vpst :: emit_vpst_vpt +inst_vpsel :: inst_vpsel_q_q_q +emit_vpsel :: emit_vpsel_q_q_q +inst_vpnot :: inst_vpnot_none +emit_vpnot :: emit_vpnot_none +inst_vctp :: inst_vctp_r +emit_vctp :: emit_vctp_r +inst_vaddv :: inst_vaddv_r_q +emit_vaddv :: emit_vaddv_r_q +inst_vaddva :: inst_vaddva_r_q +emit_vaddva :: emit_vaddva_r_q +inst_vaddlv :: inst_vaddlv_r_r_q +emit_vaddlv :: emit_vaddlv_r_r_q +inst_vaddlva :: inst_vaddlva_r_r_q +emit_vaddlva :: emit_vaddlva_r_r_q +inst_vmaxv :: inst_vmaxv_r_q +emit_vmaxv :: emit_vmaxv_r_q +inst_vmaxav :: inst_vmaxav_r_q +emit_vmaxav :: emit_vmaxav_r_q +inst_vminv :: inst_vminv_r_q +emit_vminv :: emit_vminv_r_q +inst_vminav :: inst_vminav_r_q +emit_vminav :: emit_vminav_r_q +inst_vmaxnmv :: inst_vmaxnmv_r_q +emit_vmaxnmv :: emit_vmaxnmv_r_q +inst_vmaxnmav :: inst_vmaxnmav_r_q +emit_vmaxnmav :: emit_vmaxnmav_r_q +inst_vminnmv :: inst_vminnmv_r_q +emit_vminnmv :: emit_vminnmv_r_q +inst_vminnmav :: inst_vminnmav_r_q +emit_vminnmav :: emit_vminnmav_r_q +inst_vabav :: inst_vabav_r_q_q +emit_vabav :: emit_vabav_r_q_q +inst_vmladav :: inst_vmladav_r_q_q +emit_vmladav :: emit_vmladav_r_q_q +inst_vmladava :: inst_vmladava_r_q_q +emit_vmladava :: emit_vmladava_r_q_q +inst_vmladavx :: inst_vmladavx_r_q_q +emit_vmladavx :: emit_vmladavx_r_q_q +inst_vmladavax :: inst_vmladavax_r_q_q +emit_vmladavax :: emit_vmladavax_r_q_q +inst_vmlaldav :: inst_vmlaldav_r_r_q_q +emit_vmlaldav :: emit_vmlaldav_r_r_q_q +inst_vmlaldava :: inst_vmlaldava_r_r_q_q +emit_vmlaldava :: emit_vmlaldava_r_r_q_q +inst_vmlaldavx :: inst_vmlaldavx_r_r_q_q +emit_vmlaldavx :: emit_vmlaldavx_r_r_q_q +inst_vmlaldavax :: inst_vmlaldavax_r_r_q_q +emit_vmlaldavax :: emit_vmlaldavax_r_r_q_q +inst_vmlsdav :: inst_vmlsdav_r_q_q +emit_vmlsdav :: emit_vmlsdav_r_q_q +inst_vmlsdava :: inst_vmlsdava_r_q_q +emit_vmlsdava :: emit_vmlsdava_r_q_q +inst_vmlsdavx :: inst_vmlsdavx_r_q_q +emit_vmlsdavx :: emit_vmlsdavx_r_q_q +inst_vmlsdavax :: inst_vmlsdavax_r_q_q +emit_vmlsdavax :: emit_vmlsdavax_r_q_q +inst_vmlsldav :: inst_vmlsldav_r_r_q_q +emit_vmlsldav :: emit_vmlsldav_r_r_q_q +inst_vmlsldava :: inst_vmlsldava_r_r_q_q +emit_vmlsldava :: emit_vmlsldava_r_r_q_q +inst_vmlsldavx :: inst_vmlsldavx_r_r_q_q +emit_vmlsldavx :: emit_vmlsldavx_r_r_q_q +inst_vmlsldavax :: inst_vmlsldavax_r_r_q_q +emit_vmlsldavax :: emit_vmlsldavax_r_r_q_q +inst_vrmlaldavh :: inst_vrmlaldavh_r_r_q_q +emit_vrmlaldavh :: emit_vrmlaldavh_r_r_q_q +inst_vrmlaldavha :: inst_vrmlaldavha_r_r_q_q +emit_vrmlaldavha :: emit_vrmlaldavha_r_r_q_q +inst_vrmlaldavhx :: inst_vrmlaldavhx_r_r_q_q +emit_vrmlaldavhx :: emit_vrmlaldavhx_r_r_q_q +inst_vrmlaldavhax :: inst_vrmlaldavhax_r_r_q_q +emit_vrmlaldavhax :: emit_vrmlaldavhax_r_r_q_q +inst_vrmlsldavh :: inst_vrmlsldavh_r_r_q_q +emit_vrmlsldavh :: emit_vrmlsldavh_r_r_q_q +inst_vrmlsldavha :: inst_vrmlsldavha_r_r_q_q +emit_vrmlsldavha :: emit_vrmlsldavha_r_r_q_q +inst_vrmlsldavhx :: inst_vrmlsldavhx_r_r_q_q +emit_vrmlsldavhx :: emit_vrmlsldavhx_r_r_q_q +inst_vrmlsldavhax :: inst_vrmlsldavhax_r_r_q_q +emit_vrmlsldavhax :: emit_vrmlsldavhax_r_r_q_q +inst_vmlav :: inst_vmlav_r_q_q +emit_vmlav :: emit_vmlav_r_q_q +inst_vmlava :: inst_vmlava_r_q_q +emit_vmlava :: emit_vmlava_r_q_q +inst_vmlsv :: inst_vmlsv_r_q_q +emit_vmlsv :: emit_vmlsv_r_q_q +inst_vmlsva :: inst_vmlsva_r_q_q +emit_vmlsva :: emit_vmlsva_r_q_q +inst_vcmul :: inst_vcmul_q_q_q +emit_vcmul :: emit_vcmul_q_q_q +inst_vhcadd :: proc{ inst_vhcadd_q_q_q, inst_vhcadd_q_q_q_imm } +emit_vhcadd :: proc{ emit_vhcadd_q_q_q, emit_vhcadd_q_q_q_imm } +inst_vbrsr :: inst_vbrsr_q_q_r +emit_vbrsr :: emit_vbrsr_q_q_r +inst_vshlc :: inst_vshlc_q_r_imm5 +emit_vshlc :: emit_vshlc_q_r_imm5 +inst_vddup :: inst_vddup_q_r_imm +emit_vddup :: emit_vddup_q_r_imm +inst_vidup :: inst_vidup_q_r_imm +emit_vidup :: emit_vidup_q_r_imm +inst_vdwdup :: inst_vdwdup_q_r_r_imm +emit_vdwdup :: emit_vdwdup_q_r_r_imm +inst_viwdup :: inst_viwdup_q_r_r_imm +emit_viwdup :: emit_viwdup_q_r_r_imm +inst_vmovnb :: inst_vmovnb_q_q +emit_vmovnb :: emit_vmovnb_q_q +inst_vmovnt :: inst_vmovnt_q_q +emit_vmovnt :: emit_vmovnt_q_q +inst_vqmovnb :: inst_vqmovnb_q_q +emit_vqmovnb :: emit_vqmovnb_q_q +inst_vqmovnt :: inst_vqmovnt_q_q +emit_vqmovnt :: emit_vqmovnt_q_q +inst_vqmovunb :: inst_vqmovunb_q_q +emit_vqmovunb :: emit_vqmovunb_q_q +inst_vqmovunt :: inst_vqmovunt_q_q +emit_vqmovunt :: emit_vqmovunt_q_q +inst_vshllb :: inst_vshllb_q_q_imm5 +emit_vshllb :: emit_vshllb_q_q_imm5 +inst_vshllt :: inst_vshllt_q_q_imm5 +emit_vshllt :: emit_vshllt_q_q_imm5 +inst_vmullb :: inst_vmullb_q_q_q +emit_vmullb :: emit_vmullb_q_q_q +inst_vmullt :: inst_vmullt_q_q_q +emit_vmullt :: emit_vmullt_q_q_q +inst_vmlalb :: inst_vmlalb_q_q_q +emit_vmlalb :: emit_vmlalb_q_q_q +inst_vmlalt :: inst_vmlalt_q_q_q +emit_vmlalt :: emit_vmlalt_q_q_q +inst_vmlslb :: inst_vmlslb_q_q_q +emit_vmlslb :: emit_vmlslb_q_q_q +inst_vmlslt :: inst_vmlslt_q_q_q +emit_vmlslt :: emit_vmlslt_q_q_q +inst_vshrnb :: inst_vshrnb_q_q_imm5 +emit_vshrnb :: emit_vshrnb_q_q_imm5 +inst_vshrnt :: inst_vshrnt_q_q_imm5 +emit_vshrnt :: emit_vshrnt_q_q_imm5 +inst_vrshrnb :: inst_vrshrnb_q_q_imm5 +emit_vrshrnb :: emit_vrshrnb_q_q_imm5 +inst_vrshrnt :: inst_vrshrnt_q_q_imm5 +emit_vrshrnt :: emit_vrshrnt_q_q_imm5 +inst_vqshrnb :: inst_vqshrnb_q_q_imm5 +emit_vqshrnb :: emit_vqshrnb_q_q_imm5 +inst_vqshrnt :: inst_vqshrnt_q_q_imm5 +emit_vqshrnt :: emit_vqshrnt_q_q_imm5 +inst_vqrshrnb :: inst_vqrshrnb_q_q_imm5 +emit_vqrshrnb :: emit_vqrshrnb_q_q_imm5 +inst_vqrshrnt :: inst_vqrshrnt_q_q_imm5 +emit_vqrshrnt :: emit_vqrshrnt_q_q_imm5 +inst_vqshrunb :: inst_vqshrunb_q_q_imm5 +emit_vqshrunb :: emit_vqshrunb_q_q_imm5 +inst_vqshrunt :: inst_vqshrunt_q_q_imm5 +emit_vqshrunt :: emit_vqshrunt_q_q_imm5 +inst_vqrshrunb :: inst_vqrshrunb_q_q_imm5 +emit_vqrshrunb :: emit_vqrshrunb_q_q_imm5 +inst_vqrshrunt :: inst_vqrshrunt_q_q_imm5 +emit_vqrshrunt :: emit_vqrshrunt_q_q_imm5 +inst_vqdmladh :: inst_vqdmladh_q_q_q +emit_vqdmladh :: emit_vqdmladh_q_q_q +inst_vqdmladhx :: inst_vqdmladhx_q_q_q +emit_vqdmladhx :: emit_vqdmladhx_q_q_q +inst_vqdmlsdh :: inst_vqdmlsdh_q_q_q +emit_vqdmlsdh :: emit_vqdmlsdh_q_q_q +inst_vqdmlsdhx :: inst_vqdmlsdhx_q_q_q +emit_vqdmlsdhx :: emit_vqdmlsdhx_q_q_q +inst_vqrdmladh :: inst_vqrdmladh_q_q_q +emit_vqrdmladh :: emit_vqrdmladh_q_q_q +inst_vqrdmladhx :: inst_vqrdmladhx_q_q_q +emit_vqrdmladhx :: emit_vqrdmladhx_q_q_q +inst_vqrdmlsdh :: inst_vqrdmlsdh_q_q_q +emit_vqrdmlsdh :: emit_vqrdmlsdh_q_q_q +inst_vqrdmlsdhx :: inst_vqrdmlsdhx_q_q_q +emit_vqrdmlsdhx :: emit_vqrdmlsdhx_q_q_q +inst_vldrb :: proc{ inst_vldrb_q_mem, inst_vldrb_q_mem_q } +emit_vldrb :: proc{ emit_vldrb_q_mem, emit_vldrb_q_mem_q } +inst_vldrh :: proc{ inst_vldrh_q_mem, inst_vldrh_q_mem_q } +emit_vldrh :: proc{ emit_vldrh_q_mem, emit_vldrh_q_mem_q } +inst_vldrw :: proc{ inst_vldrw_q_mem, inst_vldrw_q_mem_q } +emit_vldrw :: proc{ emit_vldrw_q_mem, emit_vldrw_q_mem_q } +inst_vldrd :: proc{ inst_vldrd_q_mem, inst_vldrd_q_mem_q } +emit_vldrd :: proc{ emit_vldrd_q_mem, emit_vldrd_q_mem_q } +inst_vstrb :: proc{ inst_vstrb_q_mem, inst_vstrb_q_mem_q } +emit_vstrb :: proc{ emit_vstrb_q_mem, emit_vstrb_q_mem_q } +inst_vstrh :: proc{ inst_vstrh_q_mem, inst_vstrh_q_mem_q } +emit_vstrh :: proc{ emit_vstrh_q_mem, emit_vstrh_q_mem_q } +inst_vstrw :: proc{ inst_vstrw_q_mem, inst_vstrw_q_mem_q } +emit_vstrw :: proc{ emit_vstrw_q_mem, emit_vstrw_q_mem_q } +inst_vstrd :: proc{ inst_vstrd_q_mem, inst_vstrd_q_mem_q } +emit_vstrd :: proc{ emit_vstrd_q_mem, emit_vstrd_q_mem_q } +inst_vld20 :: inst_vld20_qlist_mem +emit_vld20 :: emit_vld20_qlist_mem +inst_vld21 :: inst_vld21_qlist_mem +emit_vld21 :: emit_vld21_qlist_mem +inst_vld40 :: inst_vld40_qlist_mem +emit_vld40 :: emit_vld40_qlist_mem +inst_vld41 :: inst_vld41_qlist_mem +emit_vld41 :: emit_vld41_qlist_mem +inst_vld42 :: inst_vld42_qlist_mem +emit_vld42 :: emit_vld42_qlist_mem +inst_vld43 :: inst_vld43_qlist_mem +emit_vld43 :: emit_vld43_qlist_mem +inst_vst20 :: inst_vst20_qlist_mem +emit_vst20 :: emit_vst20_qlist_mem +inst_vst21 :: inst_vst21_qlist_mem +emit_vst21 :: emit_vst21_qlist_mem +inst_vst40 :: inst_vst40_qlist_mem +emit_vst40 :: emit_vst40_qlist_mem +inst_vst41 :: inst_vst41_qlist_mem +emit_vst41 :: emit_vst41_qlist_mem +inst_vst42 :: inst_vst42_qlist_mem +emit_vst42 :: emit_vst42_qlist_mem +inst_vst43 :: inst_vst43_qlist_mem +emit_vst43 :: emit_vst43_qlist_mem diff --git a/core/rexcode/isa/arm32/mnemonics.odin b/core/rexcode/isa/arm32/mnemonics.odin index fbe1783ba..c05723de9 100644 --- a/core/rexcode/isa/arm32/mnemonics.odin +++ b/core/rexcode/isa/arm32/mnemonics.odin @@ -190,7 +190,13 @@ Mnemonic :: enum u16 { LDAEXD, STLEXD, // Block move - LDM, STM, // base mnemonic w/ IA/IB/DA/DB suffix flag + LDM, STM, // IA order (the default spelling) + // The other three increment/decrement orders are their own mnemonics -- + // that is how an assembler spells them, and it is the only way to reach + // their encodings: all four share one operand shape, so nothing else + // tells them apart. + LDMIB, LDMDA, LDMDB, + STMIB, STMDA, STMDB, // Stack convenience aliases PUSH, POP, @@ -201,8 +207,9 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- // ARMv6 / Return-from-Exception // ------------------------------------------------------------------------- - RFE, // return from exception - SRS, // store return state + // The addressing mode is part of the name, as it is for LDM and STM. + RFEDA, RFEDB, RFEIA, RFEIB, // return from exception + SRSDA, SRSDB, SRSIA, SRSIB, // store return state // ------------------------------------------------------------------------- // Coprocessor (legacy CP-space; many subsumed by VFP/NEON) @@ -211,6 +218,9 @@ Mnemonic :: enum u16 { MCR, MCR2, MRC, MRC2, MCRR, MCRR2, MRRC, MRRC2, LDC, LDC2, STC, STC2, + // The N bit asks the coprocessor for the long transfer, and the syntax + // spells that on the mnemonic. + LDCL, LDC2L, STCL, STC2L, // ------------------------------------------------------------------------- // ARMv8 AArch32 CRC32 (FEAT_CRC32) @@ -225,6 +235,9 @@ Mnemonic :: enum u16 { VADD, VSUB, VMUL, VDIV, VMLA, VMLS, VNMUL, VNMLA, VNMLS, VFMA, VFMS, VFNMA, VFNMS, + // The bfloat16 multiply-accumulates name which half of each pair they + // take, bottom or top, on the mnemonic. + VFMAB, VFMAT, VABS, VNEG, VSQRT, VCMP, VCMPE, @@ -236,7 +249,8 @@ Mnemonic :: enum u16 { VMOV, // many forms (reg-reg, reg-imm, GPR-FPR) VMRS, VMSR, // FPSCR/coprocessor access VLDR, VSTR, - VLDM, VSTM, + // The addressing mode is part of the name, as it is for LDM and STM. + VLDMIA, VLDMDB, VSTMIA, VSTMDB, VPUSH, VPOP, VSEL, // ARMv8 conditional select @@ -251,7 +265,7 @@ Mnemonic :: enum u16 { VMULL, VMLAL, VMLSL, VQDMULL,VQDMLAL,VQDMLSL, VQDMULH,VQRDMULH, - VQDMULH_LANE, VQRDMULH_LANE, // indexed variants + // indexed variants // ARMv8.1 FEAT_RDM: rounding doubling multiply-accumulate VQRDMLAH, VQRDMLSH, @@ -284,7 +298,7 @@ Mnemonic :: enum u16 { VSHLL, // shift-left long VCLS, VCLZ, VCNT, - VPADD_F, VRECPE_F, VRSQRTE_F, // (placeholders; canonical via operand types) + // (placeholders; canonical via operand types) VREV16, VREV32, VREV64, VEXT, // vector extract @@ -294,7 +308,7 @@ Mnemonic :: enum u16 { VSWP, // swap // Lane access - VMOV_LANE, // VMOV.
R, D[i] / VMOV.
D[i], R + // VMOV.
R, D[i] / VMOV.
D[i], R // Load/Store structures (NEON) VLD1, VLD2, VLD3, VLD4, @@ -310,20 +324,17 @@ Mnemonic :: enum u16 { // -- Dot Product (FEAT_DotProd) ------------------------------------------ VSDOT, VUDOT, - VSDOT_LANE, VUDOT_LANE, - // -- BF16 (FEAT_BF16) ---------------------------------------------------- - VCVT_BF16, // BF16<->F32 - VDOT_BF16, - VFMA_BF16, - VMMLA_BF16, + // BF16<->F32 + VDOT, + VMMLA, // -- FHM (FEAT_FHM) FP16 matrix mul/acc ---------------------------------- VFMAL, VFMSL, // F16 fused multiply-add long // -- ComplexNum (FEAT_FCMA) ---------------------------------------------- VCMLA, VCADD, - VCMLA_LANE, // VCMLA by indexed scalar + // VCMLA by indexed scalar // -- I8MM (FEAT_I8MM, ARMv8.6) integer matrix multiply + mixed-sign dot -- VSMMLA, // signed-signed 8x8 matrix mul @@ -331,16 +342,7 @@ Mnemonic :: enum u16 { VUSMMLA, // unsigned-signed VSUDOT, // signed-unsigned dot product VUSDOT, // unsigned-signed dot product - VSUDOT_LANE, - VUSDOT_LANE, - // -- Lane-indexed NEON multiply / MAC forms (heavily used in DSP/codec) -- - VMUL_LANE, VMLA_LANE, VMLS_LANE, - VMULL_LANE, VMLAL_LANE, VMLSL_LANE, - VQDMULL_LANE, VQDMLAL_LANE, VQDMLSL_LANE, - VFMA_LANE, VFMS_LANE, - VQRDMLAH_LANE, VQRDMLSH_LANE, - // -- MVE saturating unary ----------------------------------------------- VQABS, VQNEG, @@ -349,22 +351,14 @@ Mnemonic :: enum u16 { VINS, // insert F16 into high lane of S-reg // -- MVE gather/scatter (vector offset addressing) ---------------------- - VLDRB_GATHER, VLDRH_GATHER, VLDRW_GATHER, VLDRD_GATHER, - VSTRB_SCATTER, VSTRH_SCATTER, VSTRW_SCATTER, VSTRD_SCATTER, - // -- NEON compare-with-zero (distinct encodings from reg-vs-reg) -------- - VCEQ_Z, VCGE_Z, VCGT_Z, VCLE_Z, VCLT_Z, - // -- NEON replicate loads (broadcast one element to all lanes) ---------- - // VLD1R already covered in VLD1; these are the 2/3/4 variants. - VLD2R, VLD3R, VLD4R, + // The broadcast structure loads are VLD2/VLD3/VLD4 with an all-lanes + // list, not mnemonics of their own -- that is how they are written. // -- NEON single-element-lane load/store (lane form, not multi-vec) ----- - VLD1_LANE, VLD2_LANE, VLD3_LANE, VLD4_LANE, - VST1_LANE, VST2_LANE, VST3_LANE, VST4_LANE, - // -- VFP fixed-point conversions (with #fbits operand) ------------------ - VCVT_FIXED, // VCVT.
Sd, Sd, #fbits family + // VCVT.
Sd, Sd, #fbits family // ------------------------------------------------------------------------- // Thumb-only mnemonics (extra ones not shared with A32) @@ -411,7 +405,7 @@ Mnemonic :: enum u16 { // use a register target Rm at hw0[3:0]; BFCSEL adds a 4-bit condition at // hw0[5:2] (its else-target is the implicit fall-through). Byte-exact vs llvm-mc. BF, // branch future - BFI_BR, // branch future indirect (bfx) + BFX, // branch future indirect (bfx) BFL, // branch future and link BFLX, // branch future link and exchange BFCSEL, // branch future conditional select @@ -494,9 +488,9 @@ Mnemonic :: enum u16 { VQRSHRUNB, VQRSHRUNT, // Move between Qd-lane and GPR (MVE-specific 4-element split forms) - VMOV_Q_R, // VMOV Qd[i], Rt -- single lane to GPR - VMOV_R_Q, // VMOV Rt, Qd[i] - VMOV_2GPR_Q, // VMOV Qd[2*i], Qd[2*i+1], Rt, Rt2 -- pair + // VMOV Qd[i], Rt -- single lane to GPR + // VMOV Rt, Qd[i] + // VMOV Qd[2*i], Qd[2*i+1], Rt, Rt2 -- pair // Saturating doubling MAC reductions VQDMLADH, VQDMLADHX, @@ -505,8 +499,8 @@ Mnemonic :: enum u16 { VQRDMLSDH, VQRDMLSDHX, // Misc - VHCADD_SAT, // (rarely used) - VCMLA_MVE, // (MVE form; VCMLA already exists) + // (rarely used) + // (MVE form; VCMLA already exists) // MVE load/store (mostly reuses VLDR/VSTR but distinct forms exist): VLDRB, VLDRH, VLDRW, VLDRD, // MVE contiguous load (B/H/W/D) diff --git a/core/rexcode/isa/arm32/operands.odin b/core/rexcode/isa/arm32/operands.odin index 1442183ff..3e9f77471 100644 --- a/core/rexcode/isa/arm32/operands.odin +++ b/core/rexcode/isa/arm32/operands.odin @@ -31,6 +31,12 @@ Operand_Kind :: enum u8 { MEMORY, RELATIVE, REG_LIST, // LDM/STM/PUSH/POP bitmask (low 16 bits = R0..R15) + // A modified immediate is a bit pattern an 8-bit field expands into, and + // assemblers write it as one: in hex, or as a float when the expansion + // produced one. The value is stored expanded either way -- for the float + // it is the 32-bit pattern, which is what the encoder needs back. + HEX_IMMEDIATE, + FLOAT_IMMEDIATE, } // ---- Shift / addressing-mode helpers --------------------------------------- @@ -57,16 +63,25 @@ Index_Mode :: enum u8 { POST_INDEX = 2, // [Rn], #imm -- writeback, base = Rn pre-update } -Memory :: struct #packed { - base: Register, // GPR base register - index: Register, // GPR or .NONE for imm-only forms - shift_type: Shift_Type, - shift_amt: u8, // 0..31 immediate shift - mode: Index_Mode, - sign: i8, // +1 or -1 (U bit) - disp: i32, // immediate displacement (sign-extended) +// Packed into one word: this sits in every Operand, so its width is +// multiplied by four in every Instruction. Field syntax and composite +// literals are unchanged, so this is invisible to callers. +// +// A memory base or index is always a GPR, whose raw value never exceeds +// REG_GPR|15 = 0x100F, so 15 bits hold one losslessly (index uses +// Register(0), not a high sentinel, for "absent"). +// `disp` gets 19 bits (+/-262,143) against a worst case of 4,095 -- the imm12 +// of an A32 load -- so there is ~64x headroom. +Memory :: bit_field u64 { + base: Register | 15, // GPR base register + index: Register | 15, // GPR, or Register(0) for imm-only forms + shift_type: Shift_Type | 4, + shift_amt: u8 | 6, // 0..32 -- LSR and ASR reach 32 through a zero field + mode: Index_Mode | 2, + sign: i8 | 3, // +1 or -1 (U bit) + disp: i32 | 19, // immediate displacement (sign-extended) } -#assert(size_of(Memory) == 12) +#assert(size_of(Memory) == 8) @(require_results) mem_imm :: #force_inline proc "contextless" (base: Register, disp: i32) -> Memory { @@ -95,57 +110,96 @@ mem_reg_shift :: #force_inline proc "contextless" ( Operand :: struct #packed { using _: struct #raw_union #packed { - reg: Register, + // A register operand's shift and lane ride WITH the register instead + // of in the tail -- that is what keeps Operand at 10 bytes, and they + // only ever apply to a register anyway. `using` means op.reg, + // op.shift_type, op.shift_amt and op.lane still read and write + // exactly as they did when these were separate fields. + using _: bit_field u32 { + // Sixteen bits, not fifteen: the class nibble reaches 0x9000 for + // the endian tokens and 0x8000 for the coprocessor registers, + // and both were silently truncating. + reg: Register | 16, + shift_type: Shift_Type | 4, // GPR_SHIFTED; .LSL/0 when plain + shift_amt: u8 | 6, // 0..32, or the Rs index for RSR + lane: u8 | 5, // SIMD lane for DPR_ELEM / QPR_ELEM + // Whether `lane` means anything. Lane 0 is a real index -- `d0[0]` + // is not `d0` -- so it cannot be spelled by lane == 0. + has_lane: bool | 1, + }, mem: Memory, immediate: i64, relative: i64, // label id (pre) or signed byte offset (post) }, kind: Operand_Kind, size: u8, - shift_type: Shift_Type, // for GPR_SHIFTED operands (otherwise NONE) - shift_amt: u8, // immediate shift amount 0..31 (or Rs index for RSR) - lane: u8, // SIMD lane index for DPR_ELEM / QPR_ELEM - cond: u8, // condition code 0..15 (default = AL = 14) + // How the syntax writes this register as a list. `count` 0 means a plain + // register. NEON structure loads also come in a spaced form that steps two + // registers at a time -- `{d2, d4}` -- and a to-all-lanes form written + // `{d2[]}`. A GPR list (`{r4, lr}`) is not a run at all and stays a + // bitmask under REG_LIST. + list: List_Shape, } -#assert(size_of(Operand) == 18) + +List_Shape :: bit_field u8 { + count: u8 | 3, // 0 = not a list, else 1..4 + stride: u8 | 3, // 1 for {d2, d3}, 2 for {d2, d4} + all_lanes: bool | 1, // `{d2[]}` -- loaded to every lane +} +#assert(size_of(Operand) == 11) // ---- Operand builders ------------------------------------------------------ @(require_results) op_reg :: #force_inline proc "contextless" (r: Register) -> Operand { - return Operand{reg = r, kind = .REGISTER, size = 4, cond = 14} + return Operand{reg = r, kind = .REGISTER, size = 4} } @(require_results) op_reg_shifted :: #force_inline proc "contextless" ( r: Register, st: Shift_Type, amt: u8, ) -> Operand { - return Operand{reg = r, kind = .REGISTER, size = 4, shift_type = st, shift_amt = amt, cond = 14} + return Operand{reg = r, kind = .REGISTER, size = 4, shift_type = st, shift_amt = amt} } @(require_results) op_imm :: #force_inline proc "contextless" (v: i64, size: u8 = 4) -> Operand { - return Operand{immediate = v, kind = .IMMEDIATE, size = size, cond = 14} + return Operand{immediate = v, kind = .IMMEDIATE, size = size} +} +@(require_results) +op_hex_imm :: #force_inline proc "contextless" (v: u32) -> Operand { + return Operand{immediate = i64(v), kind = .HEX_IMMEDIATE, size = 4} +} +@(require_results) +op_float_imm :: #force_inline proc "contextless" (bits: u32) -> Operand { + return Operand{immediate = i64(bits), kind = .FLOAT_IMMEDIATE, size = 4} } @(require_results) op_mem :: #force_inline proc "contextless" (m: Memory) -> Operand { - return Operand{mem = m, kind = .MEMORY, size = 4, cond = 14} + return Operand{mem = m, kind = .MEMORY, size = 4} } @(require_results) op_label :: #force_inline proc "contextless" (label_id: u32, size: u8 = 4) -> Operand { - return Operand{relative = i64(label_id), kind = .RELATIVE, size = size, cond = 14} + return Operand{relative = i64(label_id), kind = .RELATIVE, size = size} } @(require_results) op_rel_offset :: #force_inline proc "contextless" (off: i64) -> Operand { - return Operand{relative = off, kind = .RELATIVE, size = 4, cond = 14} + return Operand{relative = off, kind = .RELATIVE, size = 4} } @(require_results) op_reg_list :: #force_inline proc "contextless" (mask: u16) -> Operand { - return Operand{immediate = i64(mask), kind = .REG_LIST, size = 2, cond = 14} + return Operand{immediate = i64(mask), kind = .REG_LIST, size = 2} +} + +// The head of a register list, written `{d1, d2, d3}` (stride 1) or +// `{d2, d4}` (stride 2). +@(require_results) +op_reg_run :: #force_inline proc "contextless" (first: Register, count: u8, stride: u8 = 1, all_lanes := false) -> Operand { + return Operand{reg = first, kind = .REGISTER, list = {count = count, stride = stride, all_lanes = all_lanes}} } @(require_results) op_dpr_lane :: #force_inline proc "contextless" (d: Register, idx: u8) -> Operand { - return Operand{reg = d, kind = .REGISTER, size = 4, lane = idx, cond = 14} + return Operand{reg = d, kind = .REGISTER, size = 4, lane = idx, has_lane = true} } @(require_results) op_qpr_lane :: #force_inline proc "contextless" (q: Register, idx: u8) -> Operand { - return Operand{reg = q, kind = .REGISTER, size = 4, lane = idx, cond = 14} + return Operand{reg = q, kind = .REGISTER, size = 4, lane = idx, has_lane = true} } diff --git a/core/rexcode/isa/arm32/printer.odin b/core/rexcode/isa/arm32/printer.odin index 375260224..760f40e1b 100644 --- a/core/rexcode/isa/arm32/printer.odin +++ b/core/rexcode/isa/arm32/printer.odin @@ -108,21 +108,28 @@ sbprint :: proc( strings.write_string(sb, " ") - // Compute the .
suffix from the matched decoder entry (if any) - // and from the operand kinds when no entry is available. + // The `.
` suffix. It is data on the instruction now, so there is + // nothing to reconstruct: read it straight off. This is also what + // makes the convert family print correctly -- `vcvt.s32.f32` names + // both ends, and the old bit-pattern inference only ever produced one. dt_suffix := "" - if i < len(inst_info) { + dt := inst.dt + if dt[0] == .NONE && i < len(inst_info) { de_idx := int(inst_info[i].decode_entry) if de_idx < len(DECODE_ENTRIES) { - dt_suffix = infer_dt_suffix(&DECODE_ENTRIES[de_idx], inst) + dt = DECODE_ENTRIES[de_idx].dt } } - if dt_suffix == "" { - dt_suffix = infer_dt_suffix_from_inst(inst) - } + // No fallback beyond this. Guessing a data type from the register + // bank produced one for every VFP instruction that does not take + // any -- `vldr.f32`, `vorn.f64` -- and those are not accepted + // syntax. If a form needs a suffix, the table is where it says so. - write_mnemonic(sb, inst.mnemonic, inst.cond, inst.flags.sets_flags, opts.uppercase) - if dt_suffix != "" { + + write_mnemonic(sb, inst.mnemonic, inst.cond, inst.sets_flags, opts.uppercase) + if dt[0] != .NONE { + write_data_type(sb, dt, opts.uppercase) + } else if dt_suffix != "" { strings.write_string(sb, dt_suffix) } @@ -131,6 +138,9 @@ sbprint :: proc( for k in 0.. 0 { strings.write_string(sb, ", ") } write_operand(sb, &inst.ops[k], inst, offset, &display, opts) + // LDM/STM write the updated base back, and the syntax marks + // that with a `!` on the base register itself. + if k == 0 && inst.writeback { strings.write_byte(sb, '!') } } } strings.write_string(sb, "\n") @@ -200,19 +210,6 @@ infer_dt_suffix :: proc(form: ^Decode_Entry, inst: ^Instruction) -> string { return "" } -@(private="file") -infer_dt_suffix_from_inst :: proc(inst: ^Instruction) -> string { - if inst.operand_count == 0 { return "" } - op0 := &inst.ops[0] - if op0.kind != .REGISTER { return "" } - switch reg_class(op0.reg) { - case REG_SPR: return ".f32" - case REG_DPR: return ".f64" - case REG_QPR: return "" // can't tell integer vs FP from operand alone - } - return "" -} - @(private="file") is_neon_class_op :: proc(form: ^Decode_Entry) -> bool { // NEON A32 unconditional class top byte is F2/F3; T32 is E2/E3 (after bit-28 swap). @@ -391,15 +388,78 @@ wprintln :: proc( // Writers // ============================================================================= +// `.i32`, `.s32.f32`, `.8`. Both slots print when the second is set. +// A shift suffix on a register operand. Three spellings, and the enum covers +// all of them: `, lsl #3` for an immediate amount, `, lsl r3` when the count +// comes from a register (Shift_Type.LSL_REG..ROR_REG keep the Rs index in +// shift_amt), and a bare `, rrx`, which takes no amount at all. +// +// SHIFT_NAMES only holds LSL..RRX, so the register-shifted variants have to be +// folded back onto it. Indexing it with the raw enum value ran off the end -- +// LSL_REG is 6 against a 5-entry table -- and crashed the printer outright. +@(private="file") +write_shift :: proc(sb: ^strings.Builder, st: Shift_Type, amt: u8) { + switch st { + case .LSL, .LSR, .ASR, .ROR: + if amt == 0 { + return + } + fmt.sbprintf(sb, ", %s #%d", SHIFT_NAMES[int(st)], amt) + case .RRX: + strings.write_string(sb, ", rrx") + case .NONE: + // no shift to print + case .LSL_REG, .LSR_REG, .ASR_REG, .ROR_REG: + fmt.sbprintf(sb, ", %s %s", SHIFT_NAMES[int(st) - int(Shift_Type.LSL_REG)], GPR_NAMES[amt & 0xF]) + } +} + +@(private="file") +write_data_type :: proc(sb: ^strings.Builder, dt: Data_Types, uppercase: bool) { + for d in dt { + if d == .NONE { continue } + strings.write_byte(sb, '.') + name := DATA_TYPE_NAMES[d] + for i in 0 ..< len(name) { + c := name[i] + if uppercase && c >= 'a' && c <= 'z' { + strings.write_byte(sb, c - 'a' + 'A') + } else { + strings.write_byte(sb, c) + } + } + } +} + +@(rodata, private="file") +DATA_TYPE_NAMES := [Data_Type]string{ + .NONE = "", + .S8 = "s8", .S16 = "s16", .S32 = "s32", .S64 = "s64", + .U8 = "u8", .U16 = "u16", .U32 = "u32", .U64 = "u64", + .I8 = "i8", .I16 = "i16", .I32 = "i32", .I64 = "i64", + .F16 = "f16", .F32 = "f32", .F64 = "f64", + .P8 = "p8", .P16 = "p16", .BF16 = "bf16", + .SZ8 = "8", .SZ16 = "16", .SZ32 = "32", .SZ64 = "64", +} + @(private="file") write_mnemonic :: proc(sb: ^strings.Builder, m: Mnemonic, cond: u8, sets_flags: bool, uppercase: bool) { name, _ := reflect.enum_name_from_value(m) - if uppercase { - strings.write_string(sb, name) - } else { - for r in name { - if r >= 'A' && r <= 'Z' { strings.write_byte(sb, u8(r - 'A' + 'a')) } - else { strings.write_rune(sb, r) } + // PSB_CSYNC / TSB_CSYNC are the only names left holding an underscore: + // assemblers write them as a mnemonic plus an operand token, `psb csync`, + // so that underscore is a space. No other mnemonic has one. + split := -1 + if len(name) > 4 && (name[:4] == "PSB_" || name[:4] == "TSB_") { + split = 3 + } + for i in 0..= 'A' && c <= 'Z' { + strings.write_byte(sb, c - 'A' + 'a') + } else { + strings.write_byte(sb, c) } } if sets_flags { @@ -441,6 +501,10 @@ write_register :: proc(sb: ^strings.Builder, r: Register, uppercase: bool = fals } case REG_COPROC: fmt.sbprintf(sb, "c%d", hw) + case REG_COPROC_NUM: + fmt.sbprintf(sb, "p%d", hw) + case REG_ENDIAN: + strings.write_string(sb, hw == 0 ? "le" : "be") case: fmt.sbprintf(sb, "?%d", hw) } @@ -459,15 +523,36 @@ write_operand :: proc( case .NONE: return case .REGISTER: - write_register(sb, op.reg) - if op.shift_type != .NONE && op.shift_type != .RRX && op.shift_amt > 0 { - fmt.sbprintf(sb, ", %s #%d", SHIFT_NAMES[int(op.shift_type)], op.shift_amt) + // A VFP/NEON list is a contiguous run written in braces, and every + // register is named -- `{d1, d2, d3}`, not a range. + if op.list.count > 0 { + strings.write_string(sb, "{") + step := u16(max(op.list.stride, 1)) + for n in 0 ..< u16(op.list.count) { + if n > 0 { strings.write_string(sb, ", ") } + write_register(sb, Register(reg_class(op.reg) | ((reg_hw(op.reg) + n * step) & 0x1F))) + // Every member of a single-lane list carries the index: + // `{d0[1], d1[1]}`. `{d0[]}` is the to-all-lanes form. + if op.list.all_lanes { + strings.write_string(sb, "[]") + } else if op.has_lane { + fmt.sbprintf(sb, "[%d]", op.lane) + } + } + strings.write_string(sb, "}") + return } - if op.lane != 0 { + write_register(sb, op.reg) + write_shift(sb, op.shift_type, op.shift_amt) + if op.has_lane { fmt.sbprintf(sb, "[%d]", op.lane) } case .IMMEDIATE: fmt.sbprintf(sb, "#%d", op.immediate) + case .HEX_IMMEDIATE: + fmt.sbprintf(sb, "#0x%x", op.immediate) + case .FLOAT_IMMEDIATE: + fmt.sbprintf(sb, "#%e", f64(transmute(f32)u32(op.immediate))) case .MEMORY: write_memory(sb, op.mem) case .RELATIVE: @@ -488,16 +573,17 @@ write_operand :: proc( write_memory :: proc(sb: ^strings.Builder, m: Memory) { strings.write_string(sb, "[") write_register(sb, m.base) - if reg_class(m.index) == REG_GPR && reg_hw(m.index) != 0 { + // An immediate-only form leaves index at Register(0), whose class is not + // REG_GPR -- so the class alone says whether there is an index. Excluding + // hw 0 as well made r0 unusable as one. + if reg_class(m.index) == REG_GPR { // Register offset switch m.mode { case .OFFSET: strings.write_string(sb, ", ") if m.sign < 0 { strings.write_string(sb, "-") } write_register(sb, m.index) - if m.shift_type != .NONE && m.shift_amt > 0 { - fmt.sbprintf(sb, ", %s #%d", SHIFT_NAMES[int(m.shift_type)], m.shift_amt) - } + write_shift(sb, m.shift_type, m.shift_amt) strings.write_string(sb, "]") case .PRE_INDEX: strings.write_string(sb, ", ") @@ -509,15 +595,22 @@ write_memory :: proc(sb: ^strings.Builder, m: Memory) { if m.sign < 0 { strings.write_string(sb, "-") } write_register(sb, m.index) } - } else if m.disp != 0 { - // Immediate offset - switch m.mode { - case .OFFSET: fmt.sbprintf(sb, ", #%d]", m.disp) - case .PRE_INDEX: fmt.sbprintf(sb, ", #%d]!", m.disp) - case .POST_INDEX: fmt.sbprintf(sb, "], #%d", m.disp) - } } else { - strings.write_string(sb, "]") + // An indexed form writes its displacement even when it is zero: the + // writeback is the point, and `[r0]` alone is the plain offset form. + // The U bit also survives a zero displacement, and an assembler needs + // to see it -- `#-0` and `#0` are different words. + neg := m.disp == 0 && m.sign < 0 ? "-" : "" + switch m.mode { + case .OFFSET: + if m.disp != 0 || m.sign < 0 { + fmt.sbprintf(sb, ", #%s%d]", neg, m.disp) + } else { + strings.write_string(sb, "]") + } + case .PRE_INDEX: fmt.sbprintf(sb, ", #%s%d]!", neg, m.disp) + case .POST_INDEX: fmt.sbprintf(sb, "], #%s%d", neg, m.disp) + } } } diff --git a/core/rexcode/isa/arm32/registers.odin b/core/rexcode/isa/arm32/registers.odin index 9bdb102c4..eb90035c6 100644 --- a/core/rexcode/isa/arm32/registers.odin +++ b/core/rexcode/isa/arm32/registers.odin @@ -35,6 +35,12 @@ REG_SREG :: u16(0x5000) REG_FPSC :: u16(0x6000) REG_BANKED :: u16(0x7000) REG_COPROC :: u16(0x8000) +// SETEND names its argument `le` or `be`. That is a bare token in the syntax, +// which is what the special-register classes above already model. +REG_ENDIAN :: u16(0x9000) +// A coprocessor number is written `p15`, not as a plain number, and it is a +// different thing from the CRn/CRm registers REG_COPROC names. +REG_COPROC_NUM :: u16(0xA000) REG_CLASS_MASK :: u16(0xF000) REG_HW_MASK :: u16(0x0FFF) @@ -160,6 +166,9 @@ SPSR :: Register(REG_SREG | 2) // values rather than expanding the Register set. // FPSCR / FPSID and friends +LE :: Register(REG_ENDIAN | 0) +BE :: Register(REG_ENDIAN | 1) + FPSID :: Register(REG_FPSC | 0) FPSCR :: Register(REG_FPSC | 1) MVFR2 :: Register(REG_FPSC | 5) diff --git a/core/rexcode/isa/arm32/tablegen/encoding_table.odin b/core/rexcode/isa/arm32/tablegen/encoding_table.odin index 030267096..4dc0e55ed 100644 --- a/core/rexcode/isa/arm32/tablegen/encoding_table.odin +++ b/core/rexcode/isa/arm32/tablegen/encoding_table.odin @@ -71,233 +71,233 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // ---------- ADD ---------- .ADD = { // ADD imm: cond 0010 0100 S Rn Rd imm12_mod - {.ADD, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02800000, 0x0FE00000, .BASE, .A32, {}}, + {.ADD, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02800000, 0x0FE00000, .BASE, .A32, {}, {}}, // ADD reg: cond 0000 0100 S Rn Rd shift_imm shift_type 0 Rm - {.ADD, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00800000, 0x0FE00010, .BASE, .A32, {}}, + {.ADD, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00800000, 0x0FE00010, .BASE, .A32, {}, {}}, // ADD rsr: cond 0000 0100 S Rn Rd Rs 0 shift_type 1 Rm - {.ADD, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00800010, 0x0FE00090, .BASE, .A32, {}}, + {.ADD, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00800010, 0x0FE00090, .BASE, .A32, {}, {}}, // ADDS variants - {.ADD, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.ADD, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.ADD, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.ADD, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.ADD, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.ADD, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 2 ADD reg (3-reg): 00011 00 Rm Rn Rd - {.ADD, {.GPR_LOW, .GPR_LOW, .GPR_LOW, .NONE}, {.RD_T16_LO, .RN_T16_LO, .RM_T16_LO, .NONE}, 0x00001800, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.ADD, {.GPR_LOW, .GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RN_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE}, 0x00001800, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 2 ADD imm3: 00011 10 imm3 Rn Rd - {.ADD, {.GPR_LOW, .GPR_LOW, .IMM3, .NONE}, {.RD_T16_LO, .RN_T16_LO, .NONE, .NONE}, 0x00001C00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.ADD, {.GPR_LOW, .GPR_LOW, .IMM3, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RN_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00001C00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 3 ADD imm8: 00110 Rd imm8 - {.ADD, {.GPR_LOW, .IMM8, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE}, 0x00003000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.ADD, {.GPR_LOW, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00003000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 5 hi-reg ADD: 010001 00 H1 H2 Rm Rd - {.ADD, {.GPR, .GPR, .NONE, .NONE}, {.RD_T16_HI, .RM_T16_HI, .NONE, .NONE}, 0x00004400, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}}, + {.ADD, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .RM_T16_HI, .NONE, .NONE, .NONE, .NONE}, 0x00004400, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 12 ADD SP+imm: 10101 Rd imm8 (ADD Rd, SP, #imm8 << 2) - {.ADD, {.GPR_LOW, .GPR, .IMM8, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE}, 0x0000A800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.ADD, {.GPR_LOW, .GPR, .IMM8, .NONE, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000A800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 13 ADD SP, #imm7: 10110000 0 imm7 - {.ADD, {.GPR, .IMM8, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000B000, 0x0000FF80, .THUMB, .T32, {cond_in_28=false}}, + {.ADD, {.GPR, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000B000, 0x0000FF80, .THUMB, .T32, {cond_in_28=false}, {}}, }, .ADC = { - {.ADC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02A00000, 0x0FE00000, .BASE, .A32, {}}, - {.ADC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00A00000, 0x0FE00010, .BASE, .A32, {}}, - {.ADC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00A00010, 0x0FE00090, .BASE, .A32, {}}, - {.ADC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02B00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.ADC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00B00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.ADC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00B00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.ADC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02A00000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.ADC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00A00000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.ADC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00A00010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.ADC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02B00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.ADC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00B00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.ADC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00B00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 ADC: 010000 0101 Rm Rd - {.ADC, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004140, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.ADC, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004140, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 ADC imm/reg (op=1010) - {.ADC, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF1400000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.ADC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEB400000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.ADC, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF1400000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.ADC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEB400000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SUB = { - {.SUB, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02400000, 0x0FE00000, .BASE, .A32, {}}, - {.SUB, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00400000, 0x0FE00010, .BASE, .A32, {}}, - {.SUB, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00400010, 0x0FE00090, .BASE, .A32, {}}, - {.SUB, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.SUB, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00500000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.SUB, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00500010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.SUB, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02400000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.SUB, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00400000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.SUB, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00400010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.SUB, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.SUB, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00500000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.SUB, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00500010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 2 SUB reg (3-reg): 00011 01 Rm Rn Rd - {.SUB, {.GPR_LOW, .GPR_LOW, .GPR_LOW, .NONE}, {.RD_T16_LO, .RN_T16_LO, .RM_T16_LO, .NONE}, 0x00001A00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.SUB, {.GPR_LOW, .GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RN_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE}, 0x00001A00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 2 SUB imm3: 00011 11 imm3 Rn Rd - {.SUB, {.GPR_LOW, .GPR_LOW, .IMM3, .NONE}, {.RD_T16_LO, .RN_T16_LO, .NONE, .NONE}, 0x00001E00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.SUB, {.GPR_LOW, .GPR_LOW, .IMM3, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RN_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00001E00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 3 SUB imm8: 00111 Rd imm8 - {.SUB, {.GPR_LOW, .IMM8, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE}, 0x00003800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.SUB, {.GPR_LOW, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00003800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 13 SUB SP, #imm7: 10110000 1 imm7 - {.SUB, {.GPR, .IMM8, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000B080, 0x0000FF80, .THUMB, .T32, {cond_in_28=false}}, + {.SUB, {.GPR, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000B080, 0x0000FF80, .THUMB, .T32, {cond_in_28=false}, {}}, }, .SBC = { - {.SBC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02C00000, 0x0FE00000, .BASE, .A32, {}}, - {.SBC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00C00000, 0x0FE00010, .BASE, .A32, {}}, - {.SBC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00C00010, 0x0FE00090, .BASE, .A32, {}}, - {.SBC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.SBC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.SBC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.SBC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02C00000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.SBC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00C00000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.SBC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00C00010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.SBC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.SBC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.SBC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 SBC: 010000 0110 Rm Rd - {.SBC, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004180, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.SBC, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004180, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 SBC imm/reg (op=1011) - {.SBC, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF1600000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.SBC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEB600000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SBC, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF1600000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.SBC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEB600000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .RSB = { - {.RSB, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {}}, - {.RSB, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00600000, 0x0FE00010, .BASE, .A32, {}}, - {.RSB, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00600010, 0x0FE00090, .BASE, .A32, {}}, - {.RSB, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.RSB, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00700000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.RSB, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00700010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.RSB, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.RSB, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00600000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.RSB, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00600010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.RSB, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.RSB, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00700000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.RSB, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00700010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T32 RSB imm/reg (op=1110) - {.RSB, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF1C00000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.RSB, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEBC00000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.RSB, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF1C00000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.RSB, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEBC00000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .RSC = { - {.RSC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {}}, - {.RSC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00E00000, 0x0FE00010, .BASE, .A32, {}}, - {.RSC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00E00010, 0x0FE00090, .BASE, .A32, {}}, - {.RSC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.RSC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00F00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.RSC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00F00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.RSC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.RSC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00E00000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.RSC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00E00010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.RSC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.RSC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00F00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.RSC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00F00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, }, .AND = { - {.AND, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {}}, - {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {}}, - {.AND, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {}}, - {.AND, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02100000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00100000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.AND, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00100010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.AND, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.AND, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.AND, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02100000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00100000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.AND, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00100010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 AND: 010000 0000 Rm Rd - {.AND, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004000, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.AND, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004000, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 AND imm12: high=11110 i 0 0000 S Rn low=0 imm3 Rd imm8 - {.AND, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF0000000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.AND, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF0100000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}}, + {.AND, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF0000000, 0xFBF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.AND, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF0100000, 0xFBF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}, {}}, // T32 AND reg: high=11101 01 0000 S Rn low=imm3 Rd imm2 type Rm - {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEA000000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEA100000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}}, + {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEA000000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.AND, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEA100000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}, {}}, }, .EOR = { - {.EOR, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02200000, 0x0FE00000, .BASE, .A32, {}}, - {.EOR, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00200000, 0x0FE00010, .BASE, .A32, {}}, - {.EOR, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00200010, 0x0FE00090, .BASE, .A32, {}}, - {.EOR, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x02300000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.EOR, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00300000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.EOR, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x00300010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.EOR, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02200000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.EOR, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00200000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.EOR, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00200010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.EOR, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x02300000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.EOR, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00300000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.EOR, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x00300010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 EOR: 010000 0001 Rm Rd - {.EOR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004040, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.EOR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004040, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 EOR imm/reg - {.EOR, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF0800000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.EOR, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEA800000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.EOR, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF0800000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.EOR, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEA800000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .ORR = { - {.ORR, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x03800000, 0x0FE00000, .BASE, .A32, {}}, - {.ORR, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01800000, 0x0FE00010, .BASE, .A32, {}}, - {.ORR, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01800010, 0x0FE00090, .BASE, .A32, {}}, - {.ORR, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x03900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.ORR, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.ORR, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.ORR, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x03800000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.ORR, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01800000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.ORR, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01800010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.ORR, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x03900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.ORR, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.ORR, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 ORR: 010000 1100 Rm Rd - {.ORR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004300, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.ORR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004300, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 ORR imm/reg (op=0010) - {.ORR, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF0400000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.ORR, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEA400000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.ORR, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF0400000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.ORR, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEA400000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .BIC = { - {.BIC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {}}, - {.BIC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01C00000, 0x0FE00010, .BASE, .A32, {}}, - {.BIC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01C00010, 0x0FE00090, .BASE, .A32, {}}, - {.BIC, {.GPR, .GPR, .IMM_MOD, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}}, - {.BIC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}}, - {.BIC, {.GPR, .GPR, .GPR_RSR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}}, + {.BIC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {}, {}}, + {.BIC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01C00000, 0x0FE00010, .BASE, .A32, {}, {}}, + {.BIC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01C00010, 0x0FE00090, .BASE, .A32, {}, {}}, + {.BIC, {.GPR, .GPR, .IMM_MOD, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {}}, + {.BIC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {}}, + {.BIC, {.GPR, .GPR, .GPR_RSR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x01D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 BIC: 010000 1110 Rm Rd - {.BIC, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004380, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.BIC, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004380, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 BIC imm/reg (op=0001) - {.BIC, {.GPR, .GPR, .IMM_T32_MOD, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE}, 0xF0200000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.BIC, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xEA200000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.BIC, {.GPR, .GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE}, 0xF0200000, 0xFBE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.BIC, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xEA200000, 0xFFE08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // MOV and MVN have Rn unused (encoded as 0). The MOV-immediate form // additionally has ARMv6T2 MOVW (low half, no shift) and MOVT (high half). .MOV = { - {.MOV, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {}}, - {.MOV, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01A00000, 0x0FEF0010, .BASE, .A32, {}}, - {.MOV, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01A00010, 0x0FEF0090, .BASE, .A32, {}}, - {.MOV, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}}, - {.MOV, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01B00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}}, - {.MOV, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01B00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}}, + {.MOV, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {}, {}}, + {.MOV, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01A00000, 0x0FEF0010, .BASE, .A32, {}, {}}, + {.MOV, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01A00010, 0x0FEF0090, .BASE, .A32, {}, {}}, + {.MOV, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {}}, + {.MOV, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01B00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}, {}}, + {.MOV, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01B00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 3 MOV imm8: 00100 Rd imm8 - {.MOV, {.GPR_LOW, .IMM8, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE}, 0x00002000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.MOV, {.GPR_LOW, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00002000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 5 hi-reg MOV: 010001 10 H1 H2 Rm Rd - {.MOV, {.GPR, .GPR, .NONE, .NONE}, {.RD_T16_HI, .RM_T16_HI, .NONE, .NONE}, 0x00004600, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}}, + {.MOV, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .RM_T16_HI, .NONE, .NONE, .NONE, .NONE}, 0x00004600, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 MOV imm12-mod (encoding T2): high=11110 i 0 0010 S 1111 low=0 imm3 Rd imm8 - {.MOV, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RD_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF04F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.MOV, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RD_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF05F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}}, + {.MOV, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF04F0000, 0xFBFF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.MOV, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF05F0000, 0xFBFF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}, {}}, // T32 MOV reg (encoding T3): high=11101 01 0010 S 1111 low=0 imm3 Rd imm2 00 Rm - {.MOV, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA4F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.MOV, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA5F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}}, + {.MOV, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA4F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.MOV, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA5F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false, sets_flags=true}, {}}, }, .MVN = { - {.MVN, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {}}, - {.MVN, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01E00000, 0x0FEF0010, .BASE, .A32, {}}, - {.MVN, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01E00010, 0x0FEF0090, .BASE, .A32, {}}, - {.MVN, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}}, - {.MVN, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01F00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}}, - {.MVN, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01F00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}}, + {.MVN, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {}, {}}, + {.MVN, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01E00000, 0x0FEF0010, .BASE, .A32, {}, {}}, + {.MVN, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01E00010, 0x0FEF0090, .BASE, .A32, {}, {}}, + {.MVN, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {}}, + {.MVN, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01F00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}, {}}, + {.MVN, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01F00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 MVN: 010000 1111 Rm Rd - {.MVN, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x000043C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.MVN, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x000043C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 MVN imm/reg (op=0011, Rn=15) - {.MVN, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RD_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF06F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.MVN, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA6F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MVN, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF06F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.MVN, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA6F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // MOVW / MOVT (ARMv6T2): 16-bit imm split as imm4(19:16) + imm12(11:0) .MOVW = { - {.MOVW, {.GPR, .IMM16_LO_HI, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0x03000000, 0x0FF00000, .V6T2, .A32, {}}, + {.MOVW, {.GPR, .IMM16_LO_HI, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x03000000, 0x0FF00000, .V6T2, .A32, {}, {}}, // T32 MOVW: high=11110 i 1 0010 0 imm4 low=0 imm3 Rd imm8 - {.MOVW, {.GPR, .IMM16_LO_HI, .NONE, .NONE}, {.RD_T32, .NONE, .NONE, .NONE}, 0xF2400000, 0xFBF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MOVW, {.GPR, .IMM16_LO_HI, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF2400000, 0xFBF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .MOVT = { - {.MOVT, {.GPR, .IMM16_LO_HI, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0x03400000, 0x0FF00000, .V6T2, .A32, {}}, + {.MOVT, {.GPR, .IMM16_LO_HI, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x03400000, 0x0FF00000, .V6T2, .A32, {}, {}}, // T32 MOVT: high=11110 i 1 0110 0 imm4 - {.MOVT, {.GPR, .IMM16_LO_HI, .NONE, .NONE}, {.RD_T32, .NONE, .NONE, .NONE}, 0xF2C00000, 0xFBF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MOVT, {.GPR, .IMM16_LO_HI, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF2C00000, 0xFBF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // Comparison-only ops: S is implicit-1, Rd is unused (encoded as 0). .TST = { - {.TST, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE}, 0x03100000, 0x0FF0F000, .BASE, .A32, {}}, - {.TST, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01100000, 0x0FF0F010, .BASE, .A32, {}}, - {.TST, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01100010, 0x0FF0F090, .BASE, .A32, {}}, + {.TST, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03100000, 0x0FF0F000, .BASE, .A32, {}, {}}, + {.TST, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01100000, 0x0FF0F010, .BASE, .A32, {}, {}}, + {.TST, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01100010, 0x0FF0F090, .BASE, .A32, {}, {}}, // T16 Format 4 TST: 010000 1000 Rm Rn - {.TST, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RN_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004200, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.TST, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RN_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004200, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 TST imm/reg (op=0000, S=1, Rd=15) - {.TST, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF0100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.TST, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE}, 0xEA100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.TST, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF0100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.TST, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .TEQ = { - {.TEQ, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE}, 0x03300000, 0x0FF0F000, .BASE, .A32, {}}, - {.TEQ, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01300000, 0x0FF0F010, .BASE, .A32, {}}, - {.TEQ, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01300010, 0x0FF0F090, .BASE, .A32, {}}, + {.TEQ, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03300000, 0x0FF0F000, .BASE, .A32, {}, {}}, + {.TEQ, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01300000, 0x0FF0F010, .BASE, .A32, {}, {}}, + {.TEQ, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01300010, 0x0FF0F090, .BASE, .A32, {}, {}}, // T32 TEQ imm/reg (op=0100, S=1, Rd=15) - {.TEQ, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF0900F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.TEQ, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE}, 0xEA900F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.TEQ, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF0900F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.TEQ, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA900F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CMP = { - {.CMP, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE}, 0x03500000, 0x0FF0F000, .BASE, .A32, {}}, - {.CMP, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01500000, 0x0FF0F010, .BASE, .A32, {}}, - {.CMP, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01500010, 0x0FF0F090, .BASE, .A32, {}}, + {.CMP, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03500000, 0x0FF0F000, .BASE, .A32, {}, {}}, + {.CMP, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01500000, 0x0FF0F010, .BASE, .A32, {}, {}}, + {.CMP, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01500010, 0x0FF0F090, .BASE, .A32, {}, {}}, // T16 Format 3 CMP imm8: 00101 Rn imm8 - {.CMP, {.GPR_LOW, .IMM8, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE}, 0x00002800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.CMP, {.GPR_LOW, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00002800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 4 CMP reg: 010000 1010 Rm Rn - {.CMP, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RN_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004280, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.CMP, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RN_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004280, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 5 hi-reg CMP: 010001 01 H1 H2 Rm Rn - {.CMP, {.GPR, .GPR, .NONE, .NONE}, {.RD_T16_HI, .RM_T16_HI, .NONE, .NONE}, 0x00004500, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}}, + {.CMP, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .RM_T16_HI, .NONE, .NONE, .NONE, .NONE}, 0x00004500, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 CMP imm/reg (op=1101, S=1, Rd=15) - {.CMP, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF1B00F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.CMP, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE}, 0xEBB00F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.CMP, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF1B00F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.CMP, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEBB00F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CMN = { - {.CMN, {.GPR, .IMM_MOD, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE}, 0x03700000, 0x0FF0F000, .BASE, .A32, {}}, - {.CMN, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01700000, 0x0FF0F010, .BASE, .A32, {}}, - {.CMN, {.GPR, .GPR_RSR, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE}, 0x01700010, 0x0FF0F090, .BASE, .A32, {}}, + {.CMN, {.GPR, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x03700000, 0x0FF0F000, .BASE, .A32, {}, {}}, + {.CMN, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01700000, 0x0FF0F010, .BASE, .A32, {}, {}}, + {.CMN, {.GPR, .GPR_RSR, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01700010, 0x0FF0F090, .BASE, .A32, {}, {}}, // T16 Format 4 CMN: 010000 1011 Rm Rn - {.CMN, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RN_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x000042C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.CMN, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RN_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x000042C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 CMN imm/reg (op=1000, S=1, Rd=15) - {.CMN, {.GPR, .IMM_T32_MOD, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE}, 0xF1100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.CMN, {.GPR, .GPR_SHIFTED, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE}, 0xEB100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.CMN, {.GPR, .IMM_T32_MOD, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .T32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0xF1100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.CMN, {.GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEB100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ========================================================================= @@ -312,105 +312,105 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // The 1001 nibble at bits 7-4 is the discriminator from data-proc reg. .MUL = { - {.MUL, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {}}, - {.MUL, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x00100090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}}, + {.MUL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {}, {}}, + {.MUL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x00100090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {}}, // T16 Format 4 MUL: 010000 1101 Rm Rd - {.MUL, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004340, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.MUL, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004340, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 MUL: high=11111011 0000 Rn low=1111 Rd 0000 Rm - {.MUL, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFB00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MUL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFB00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .MLA = { - {.MLA, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x00200090, 0x0FE000F0, .BASE, .A32, {}}, - {.MLA, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x00300090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}}, + {.MLA, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x00200090, 0x0FE000F0, .BASE, .A32, {}, {}}, + {.MLA, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x00300090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {}}, // T32 MLA: high=11111011 0000 Rn low=Ra Rd 0000 Rm - {.MLA, {.GPR, .GPR, .GPR, .GPR}, {.RD_T32, .RN_T32, .RM_T32, .RA_T32}, 0xFB000000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MLA, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .RA_T32, .NONE, .NONE}, 0xFB000000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .MLS = { - {.MLS, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x00600090, 0x0FF000F0, .V6T2, .A32, {}}, + {.MLS, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x00600090, 0x0FF000F0, .V6T2, .A32, {}, {}}, // T32 MLS: high=11111011 0000 Rn low=Ra Rd 0001 Rm - {.MLS, {.GPR, .GPR, .GPR, .GPR}, {.RD_T32, .RN_T32, .RM_T32, .RA_T32}, 0xFB000010, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MLS, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .RA_T32, .NONE, .NONE}, 0xFB000010, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UMULL = { - {.UMULL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00800090, 0x0FE000F0, .BASE, .A32, {}}, - {.UMULL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00900090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}}, + {.UMULL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00800090, 0x0FE000F0, .BASE, .A32, {}, {}}, + {.UMULL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00900090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {}}, // T32 UMULL: high=11111011 1010 Rn low=RdLo RdHi 0000 Rm - {.UMULL, {.GPR, .GPR, .GPR, .GPR}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32}, 0xFBA00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UMULL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xFBA00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UMLAL = { - {.UMLAL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00A00090, 0x0FE000F0, .BASE, .A32, {}}, - {.UMLAL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00B00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}}, + {.UMLAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00A00090, 0x0FE000F0, .BASE, .A32, {}, {}}, + {.UMLAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00B00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {}}, // T32 UMLAL: high=11111011 1110 Rn low=RdLo RdHi 0000 Rm - {.UMLAL, {.GPR, .GPR, .GPR, .GPR}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32}, 0xFBE00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UMLAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xFBE00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SMULL = { - {.SMULL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00C00090, 0x0FE000F0, .BASE, .A32, {}}, - {.SMULL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00D00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}}, + {.SMULL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00C00090, 0x0FE000F0, .BASE, .A32, {}, {}}, + {.SMULL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00D00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {}}, // T32 SMULL: high=11111011 1000 Rn low=RdLo RdHi 0000 Rm - {.SMULL, {.GPR, .GPR, .GPR, .GPR}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32}, 0xFB800000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SMULL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xFB800000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SMLAL = { - {.SMLAL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00E00090, 0x0FE000F0, .BASE, .A32, {}}, - {.SMLAL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00F00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}}, + {.SMLAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00E00090, 0x0FE000F0, .BASE, .A32, {}, {}}, + {.SMLAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00F00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {}}, // T32 SMLAL: high=11111011 1100 Rn low=RdLo RdHi 0000 Rm - {.SMLAL, {.GPR, .GPR, .GPR, .GPR}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32}, 0xFBC00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SMLAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RT_T32, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xFBC00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // (MLA/MLS/UMULL/UMLAL/SMULL/SMLAL declared earlier in MUL block region.) .UMAAL = { - {.UMAAL, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x00400090, 0x0FF000F0, .V6, .A32, {}}, + {.UMAAL, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x00400090, 0x0FF000F0, .V6, .A32, {}, {}}, }, // ARMv5TE halfword multiply (SMLAxy / SMULxy / SMLAWy / SMULWy / SMLALxy) // Encoding: cond 00010 op0 op1 Rd Rn Rs 1 y x 0 Rm // op0/op1 distinguishes family. x/y selects top/bottom halfword of Rm/Rs. - .SMLABB = { {.SMLABB, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x01000080, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLABT = { {.SMLABT, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x010000C0, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLATB = { {.SMLATB, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x010000A0, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLATT = { {.SMLATT, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x010000E0, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLAWB = { {.SMLAWB, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x01200080, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLAWT = { {.SMLAWT, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x012000C0, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMULBB = { {.SMULBB, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x01600080, 0x0FF0F0F0, .V5TE, .A32, {}} }, - .SMULBT = { {.SMULBT, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x016000C0, 0x0FF0F0F0, .V5TE, .A32, {}} }, - .SMULTB = { {.SMULTB, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x016000A0, 0x0FF0F0F0, .V5TE, .A32, {}} }, - .SMULTT = { {.SMULTT, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x016000E0, 0x0FF0F0F0, .V5TE, .A32, {}} }, - .SMULWB = { {.SMULWB, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x012000A0, 0x0FF0F0F0, .V5TE, .A32, {}} }, - .SMULWT = { {.SMULWT, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x012000E0, 0x0FF0F0F0, .V5TE, .A32, {}} }, - .SMLALBB = { {.SMLALBB, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x01400080, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLALBT = { {.SMLALBT, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x014000C0, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLALTB = { {.SMLALTB, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x014000A0, 0x0FF000F0, .V5TE, .A32, {}} }, - .SMLALTT = { {.SMLALTT, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x014000E0, 0x0FF000F0, .V5TE, .A32, {}} }, + .SMLABB = { {.SMLABB, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x01000080, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLABT = { {.SMLABT, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x010000C0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLATB = { {.SMLATB, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x010000A0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLATT = { {.SMLATT, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x010000E0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLAWB = { {.SMLAWB, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x01200080, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLAWT = { {.SMLAWT, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x012000C0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMULBB = { {.SMULBB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x01600080, 0x0FF0F0F0, .V5TE, .A32, {}, {}} }, + .SMULBT = { {.SMULBT, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x016000C0, 0x0FF0F0F0, .V5TE, .A32, {}, {}} }, + .SMULTB = { {.SMULTB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x016000A0, 0x0FF0F0F0, .V5TE, .A32, {}, {}} }, + .SMULTT = { {.SMULTT, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x016000E0, 0x0FF0F0F0, .V5TE, .A32, {}, {}} }, + .SMULWB = { {.SMULWB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x012000A0, 0x0FF0F0F0, .V5TE, .A32, {}, {}} }, + .SMULWT = { {.SMULWT, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x012000E0, 0x0FF0F0F0, .V5TE, .A32, {}, {}} }, + .SMLALBB = { {.SMLALBB, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x01400080, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLALBT = { {.SMLALBT, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x014000C0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLALTB = { {.SMLALTB, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x014000A0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, + .SMLALTT = { {.SMLALTT, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x014000E0, 0x0FF000F0, .V5TE, .A32, {}, {}} }, // ARMv6: dual multiply - .SMUAD = { {.SMUAD, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0700F010, 0x0FF0F0F0, .V6, .A32, {}} }, - .SMUADX = { {.SMUADX, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0700F030, 0x0FF0F0F0, .V6, .A32, {}} }, - .SMUSD = { {.SMUSD, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0700F050, 0x0FF0F0F0, .V6, .A32, {}} }, - .SMUSDX = { {.SMUSDX, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0700F070, 0x0FF0F0F0, .V6, .A32, {}} }, - .SMLAD = { {.SMLAD, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07000010, 0x0FF000F0, .V6, .A32, {}} }, - .SMLADX = { {.SMLADX, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07000030, 0x0FF000F0, .V6, .A32, {}} }, - .SMLSD = { {.SMLSD, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07000050, 0x0FF000F0, .V6, .A32, {}} }, - .SMLSDX = { {.SMLSDX, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07000070, 0x0FF000F0, .V6, .A32, {}} }, - .SMLALD = { {.SMLALD, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x07400010, 0x0FF000F0, .V6, .A32, {}} }, - .SMLALDX = { {.SMLALDX, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x07400030, 0x0FF000F0, .V6, .A32, {}} }, - .SMLSLD = { {.SMLSLD, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x07400050, 0x0FF000F0, .V6, .A32, {}} }, - .SMLSLDX = { {.SMLSLDX, {.GPR, .GPR, .GPR, .GPR}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32}, 0x07400070, 0x0FF000F0, .V6, .A32, {}} }, + .SMUAD = { {.SMUAD, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0700F010, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .SMUADX = { {.SMUADX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0700F030, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .SMUSD = { {.SMUSD, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0700F050, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .SMUSDX = { {.SMUSDX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0700F070, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .SMLAD = { {.SMLAD, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07000010, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLADX = { {.SMLADX, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07000030, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLSD = { {.SMLSD, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07000050, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLSDX = { {.SMLSDX, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07000070, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLALD = { {.SMLALD, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x07400010, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLALDX = { {.SMLALDX, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x07400030, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLSLD = { {.SMLSLD, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x07400050, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMLSLDX = { {.SMLSLDX, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RDLO_A32, .RDHI_A32, .RM_A32, .RS_A32, .NONE, .NONE}, 0x07400070, 0x0FF000F0, .V6, .A32, {}, {}} }, // Most-significant-word multiply (ARMv6) - .SMMUL = { {.SMMUL, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0750F010, 0x0FF0F0F0, .V6, .A32, {}} }, - .SMMULR = { {.SMMULR, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0750F030, 0x0FF0F0F0, .V6, .A32, {}} }, - .SMMLA = { {.SMMLA, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07500010, 0x0FF000F0, .V6, .A32, {}} }, - .SMMLAR = { {.SMMLAR, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07500030, 0x0FF000F0, .V6, .A32, {}} }, - .SMMLS = { {.SMMLS, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x075000D0, 0x0FF000F0, .V6, .A32, {}} }, - .SMMLSR = { {.SMMLSR, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x075000F0, 0x0FF000F0, .V6, .A32, {}} }, + .SMMUL = { {.SMMUL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0750F010, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .SMMULR = { {.SMMULR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0750F030, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .SMMLA = { {.SMMLA, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07500010, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMMLAR = { {.SMMLAR, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07500030, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMMLS = { {.SMMLS, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x075000D0, 0x0FF000F0, .V6, .A32, {}, {}} }, + .SMMLSR = { {.SMMLSR, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x075000F0, 0x0FF000F0, .V6, .A32, {}, {}} }, // ARMv7-A optional / ARMv7-R/M: integer division .SDIV = { - {.SDIV, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0710F010, 0x0FF0F0F0, .DIV, .A32, {}}, + {.SDIV, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0710F010, 0x0FF0F0F0, .DIV, .A32, {}, {}}, // T32 SDIV: high=11111011 1001 Rn low=1111 Rd 1111 Rm - {.SDIV, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFB90F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true, cond_in_28=false}}, + {.SDIV, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFB90F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UDIV = { - {.UDIV, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0730F010, 0x0FF0F0F0, .DIV, .A32, {}}, + {.UDIV, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0730F010, 0x0FF0F0F0, .DIV, .A32, {}, {}}, // T32 UDIV: high=11111011 1011 Rn low=1111 Rd 1111 Rm - {.UDIV, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFBB0F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true, cond_in_28=false}}, + {.UDIV, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFBB0F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ========================================================================= @@ -419,24 +419,24 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // ARMv5TE saturating arithmetic .QADD = { - {.QADD, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE}, 0x01000050, 0x0FF000F0, .V5TE, .A32, {}}, + {.QADD, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01000050, 0x0FF000F0, .V5TE, .A32, {}, {}}, // T32 QADD: high=11111010 1000 Rn low=1111 Rd 1000 Rm - {.QADD, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE}, 0xFA80F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QADD, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xFA80F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QSUB = { - {.QSUB, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE}, 0x01200050, 0x0FF000F0, .V5TE, .A32, {}}, + {.QSUB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01200050, 0x0FF000F0, .V5TE, .A32, {}, {}}, // T32 QSUB: bits 5:4 = 10 - {.QSUB, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE}, 0xFA80F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QSUB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xFA80F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QDADD = { - {.QDADD, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE}, 0x01400050, 0x0FF000F0, .V5TE, .A32, {}}, + {.QDADD, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01400050, 0x0FF000F0, .V5TE, .A32, {}, {}}, // T32 QDADD: bits 5:4 = 01 - {.QDADD, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE}, 0xFA80F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QDADD, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xFA80F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QDSUB = { - {.QDSUB, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE}, 0x01600050, 0x0FF000F0, .V5TE, .A32, {}}, + {.QDSUB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01600050, 0x0FF000F0, .V5TE, .A32, {}, {}}, // T32 QDSUB: bits 5:4 = 11 - {.QDSUB, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE}, 0xFA80F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QDSUB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xFA80F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 signed parallel arithmetic (8-bit and 16-bit lanes) @@ -445,191 +445,191 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // 0001 ADD16 0011 ASX 0101 SAX 0111 SUB16 // 1001 ADD8 1111 SUB8 .SADD16 = { - {.SADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06100F10, 0x0FF00FF0, .V6, .A32, {}}, + {.SADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06100F10, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SADD16: high=11111010 1001 Rn low=1111 Rd 0000 Rm - {.SADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA90F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA90F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SASX = { - {.SASX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06100F30, 0x0FF00FF0, .V6, .A32, {}}, + {.SASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06100F30, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SASX: 0xFAA0F000 - {.SASX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAA0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAA0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SSAX = { - {.SSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06100F50, 0x0FF00FF0, .V6, .A32, {}}, + {.SSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06100F50, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SSAX: 0xFAE0F000 - {.SSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAE0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAE0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SSUB16 = { - {.SSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06100F70, 0x0FF00FF0, .V6, .A32, {}}, + {.SSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06100F70, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SSUB16: 0xFAD0F000 - {.SSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAD0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAD0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SADD8 = { - {.SADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06100F90, 0x0FF00FF0, .V6, .A32, {}}, + {.SADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06100F90, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SADD8: 0xFA80F000 - {.SADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA80F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA80F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SSUB8 = { - {.SSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06100FF0, 0x0FF00FF0, .V6, .A32, {}}, + {.SSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06100FF0, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SSUB8: 0xFAC0F000 - {.SSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAC0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAC0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 saturating parallel arithmetic (op family 0110 0010) // Q* (signed saturating): T32 bits 6:4 = 001 .QADD16 = { - {.QADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06200F10, 0x0FF00FF0, .V6, .A32, {}}, - {.QADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA90F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06200F10, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.QADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA90F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QASX = { - {.QASX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06200F30, 0x0FF00FF0, .V6, .A32, {}}, - {.QASX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAA0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06200F30, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.QASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAA0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QSAX = { - {.QSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06200F50, 0x0FF00FF0, .V6, .A32, {}}, - {.QSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAE0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06200F50, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.QSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAE0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QSUB16 = { - {.QSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06200F70, 0x0FF00FF0, .V6, .A32, {}}, - {.QSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAD0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06200F70, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.QSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAD0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QADD8 = { - {.QADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06200F90, 0x0FF00FF0, .V6, .A32, {}}, - {.QADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA80F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06200F90, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.QADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA80F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .QSUB8 = { - {.QSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06200FF0, 0x0FF00FF0, .V6, .A32, {}}, - {.QSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAC0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.QSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06200FF0, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.QSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAC0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 signed halving (T32 bits 6:4 = 010) .SHADD16 = { - {.SHADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06300F10, 0x0FF00FF0, .V6, .A32, {}}, - {.SHADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA90F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SHADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06300F10, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.SHADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA90F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SHASX = { - {.SHASX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06300F30, 0x0FF00FF0, .V6, .A32, {}}, - {.SHASX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAA0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SHASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06300F30, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.SHASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAA0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SHSAX = { - {.SHSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06300F50, 0x0FF00FF0, .V6, .A32, {}}, - {.SHSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAE0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SHSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06300F50, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.SHSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAE0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SHSUB16 = { - {.SHSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06300F70, 0x0FF00FF0, .V6, .A32, {}}, - {.SHSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAD0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SHSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06300F70, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.SHSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAD0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SHADD8 = { - {.SHADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06300F90, 0x0FF00FF0, .V6, .A32, {}}, - {.SHADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA80F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SHADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06300F90, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.SHADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA80F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SHSUB8 = { - {.SHSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06300FF0, 0x0FF00FF0, .V6, .A32, {}}, - {.SHSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAC0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SHSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06300FF0, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.SHSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAC0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 unsigned parallel arithmetic (op family 0110 0101) .UADD16 = { - {.UADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06500F10, 0x0FF00FF0, .V6, .A32, {}}, + {.UADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06500F10, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 UADD16: high=11111010 1001 Rn low=1111 Rd 0100 Rm - {.UADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA90F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA90F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UASX = { - {.UASX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06500F30, 0x0FF00FF0, .V6, .A32, {}}, - {.UASX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAA0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06500F30, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAA0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .USAX = { - {.USAX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06500F50, 0x0FF00FF0, .V6, .A32, {}}, - {.USAX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAE0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.USAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06500F50, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.USAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAE0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .USUB16 = { - {.USUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06500F70, 0x0FF00FF0, .V6, .A32, {}}, - {.USUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAD0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.USUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06500F70, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.USUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAD0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UADD8 = { - {.UADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06500F90, 0x0FF00FF0, .V6, .A32, {}}, - {.UADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA80F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06500F90, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA80F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .USUB8 = { - {.USUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06500FF0, 0x0FF00FF0, .V6, .A32, {}}, - {.USUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAC0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.USUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06500FF0, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.USUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAC0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 unsigned saturating (T32 bits 6:4 = 101) .UQADD16 = { - {.UQADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06600F10, 0x0FF00FF0, .V6, .A32, {}}, - {.UQADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA90F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UQADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06600F10, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UQADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA90F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UQASX = { - {.UQASX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06600F30, 0x0FF00FF0, .V6, .A32, {}}, - {.UQASX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAA0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UQASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06600F30, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UQASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAA0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UQSAX = { - {.UQSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06600F50, 0x0FF00FF0, .V6, .A32, {}}, - {.UQSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAE0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UQSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06600F50, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UQSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAE0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UQSUB16 = { - {.UQSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06600F70, 0x0FF00FF0, .V6, .A32, {}}, - {.UQSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAD0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UQSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06600F70, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UQSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAD0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UQADD8 = { - {.UQADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06600F90, 0x0FF00FF0, .V6, .A32, {}}, - {.UQADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA80F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UQADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06600F90, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UQADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA80F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UQSUB8 = { - {.UQSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06600FF0, 0x0FF00FF0, .V6, .A32, {}}, - {.UQSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAC0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UQSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06600FF0, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UQSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAC0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 unsigned halving (T32 bits 6:4 = 110) .UHADD16 = { - {.UHADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06700F10, 0x0FF00FF0, .V6, .A32, {}}, - {.UHADD16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA90F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UHADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06700F10, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UHADD16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA90F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UHASX = { - {.UHASX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06700F30, 0x0FF00FF0, .V6, .A32, {}}, - {.UHASX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAA0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UHASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06700F30, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UHASX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAA0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UHSAX = { - {.UHSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06700F50, 0x0FF00FF0, .V6, .A32, {}}, - {.UHSAX, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAE0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UHSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06700F50, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UHSAX, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAE0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UHSUB16 = { - {.UHSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06700F70, 0x0FF00FF0, .V6, .A32, {}}, - {.UHSUB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAD0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UHSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06700F70, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UHSUB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAD0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UHADD8 = { - {.UHADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06700F90, 0x0FF00FF0, .V6, .A32, {}}, - {.UHADD8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA80F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UHADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06700F90, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UHADD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA80F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UHSUB8 = { - {.UHSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06700FF0, 0x0FF00FF0, .V6, .A32, {}}, - {.UHSUB8, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFAC0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UHSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06700FF0, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.UHSUB8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFAC0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 saturate to width .SSAT = { - {.SSAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE}, {.RD, .SAT_IMM5, .RM_A32, .NONE}, 0x06A00010, 0x0FE00030, .V6, .A32, {}}, + {.SSAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .SAT_IMM5, .RM_A32, .NONE, .NONE, .NONE}, 0x06A00010, 0x0FE00030, .V6, .A32, {}, {}}, // T32 SSAT: high=11110 0 1 1000 0 Rn low=0 imm3 Rd imm2 0 sat_imm - {.SSAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE}, {.RD_T32, .SAT_IMM5_T32, .RN_T32, .NONE}, 0xF3000000, 0xFFD08020, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SSAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .SAT_IMM5_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xF3000000, 0xFFD08020, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .USAT = { - {.USAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE}, {.RD, .SAT_IMM5, .RM_A32, .NONE}, 0x06E00010, 0x0FE00030, .V6, .A32, {}}, - {.USAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE}, {.RD_T32, .SAT_IMM5_T32, .RN_T32, .NONE}, 0xF3800000, 0xFFD08020, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.USAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .SAT_IMM5_U, .RM_A32, .NONE, .NONE, .NONE}, 0x06E00010, 0x0FE00030, .V6, .A32, {}, {}}, + {.USAT, {.GPR, .IMM4_SAT, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD_T32, .SAT_IMM5_U_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xF3800000, 0xFFD08020, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SSAT16 = { - {.SSAT16, {.GPR, .IMM4_SAT, .GPR, .NONE}, {.RD, .SAT_IMM5, .RM_A32, .NONE}, 0x06A00F30, 0x0FF00FF0, .V6, .A32, {}}, + {.SSAT16, {.GPR, .IMM4_SAT, .GPR, .NONE, .NONE, .NONE}, {.RD, .SAT_IMM5, .RM_A32, .NONE, .NONE, .NONE}, 0x06A00F30, 0x0FF00FF0, .V6, .A32, {}, {}}, // T32 SSAT16: high=11110 0 1 1001 0 Rn low=0 000 Rd 0000 sat_imm - {.SSAT16, {.GPR, .IMM4_SAT, .GPR, .NONE}, {.RD_T32, .SAT_IMM5_T32, .RN_T32, .NONE}, 0xF3200000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SSAT16, {.GPR, .IMM4_SAT, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .SAT_IMM5_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xF3200000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .USAT16 = { - {.USAT16, {.GPR, .IMM4_SAT, .GPR, .NONE}, {.RD, .SAT_IMM5, .RM_A32, .NONE}, 0x06E00F30, 0x0FF00FF0, .V6, .A32, {}}, - {.USAT16, {.GPR, .IMM4_SAT, .GPR, .NONE}, {.RD_T32, .SAT_IMM5_T32, .RN_T32, .NONE}, 0xF3A00000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.USAT16, {.GPR, .IMM4_SAT, .GPR, .NONE, .NONE, .NONE}, {.RD, .SAT_IMM5_U, .RM_A32, .NONE, .NONE, .NONE}, 0x06E00F30, 0x0FF00FF0, .V6, .A32, {}, {}}, + {.USAT16, {.GPR, .IMM4_SAT, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .SAT_IMM5_U_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xF3A00000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv6 USAD8 / USADA8 - .USAD8 = { {.USAD8, {.GPR, .GPR, .GPR, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE}, 0x0780F010, 0x0FF0F0F0, .V6, .A32, {}} }, - .USADA8 = { {.USADA8, {.GPR, .GPR, .GPR, .GPR}, {.RN_A32, .RM_A32, .RS_A32, .RD}, 0x07800010, 0x0FF000F0, .V6, .A32, {}} }, + .USAD8 = { {.USAD8, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x0780F010, 0x0FF0F0F0, .V6, .A32, {}, {}} }, + .USADA8 = { {.USADA8, {.GPR, .GPR, .GPR, .GPR, .NONE, .NONE}, {.RN_A32, .RM_A32, .RS_A32, .RD, .NONE, .NONE}, 0x07800010, 0x0FF000F0, .V6, .A32, {}, {}} }, // ========================================================================= // §4 -- Extends + bit-field + REV + CLZ + RBIT + SEL + PKHBT/TB @@ -638,130 +638,130 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // PKHBT / PKHTB (pack halfword) // PKHBT: cond 0110 1000 Rn Rd shift_imm 001 Rm // PKHTB: cond 0110 1000 Rn Rd shift_imm 101 Rm - .PKHBT = { {.PKHBT, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06800010, 0x0FF00070, .V6, .A32, {}} }, - .PKHTB = { {.PKHTB, {.GPR, .GPR, .GPR_SHIFTED, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06800050, 0x0FF00070, .V6, .A32, {}} }, + .PKHBT = { {.PKHBT, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06800010, 0x0FF00070, .V6, .A32, {}, {}} }, + .PKHTB = { {.PKHTB, {.GPR, .GPR, .GPR_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06800050, 0x0FF00070, .V6, .A32, {}, {}} }, // Sign-extend / zero-extend (with optional rotation of Rm by 0/8/16/24) // Encoding: cond 0110 1xx0 1111 Rd rotate 0 0 0111 Rm -- variant 1 (no Rn) // cond 0110 1xx0 Rn Rd rotate 0 0 0111 Rm -- variant 2 (with Rn = SXTAB/etc.) .SXTB = { - {.SXTB, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06AF0070, 0x0FFF0070, .V6, .A32, {}}, + {.SXTB, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06AF0070, 0x0FFF0070, .V6, .A32, {}, {}}, // T16 SXTB: 1011 0010 01 Rm Rd - {.SXTB, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000B240, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.SXTB, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000B240, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 SXTB (with rotate): high=11111010 0100 1111 low=1111 Rd 1 0 rot Rm - {.SXTB, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA4FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SXTB, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA4FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SXTB16 = { - {.SXTB16, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x068F0070, 0x0FFF0070, .V6, .A32, {}}, + {.SXTB16, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x068F0070, 0x0FFF0070, .V6, .A32, {}, {}}, // T32 SXTB16 - {.SXTB16, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA2FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SXTB16, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA2FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SXTH = { - {.SXTH, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06BF0070, 0x0FFF0070, .V6, .A32, {}}, + {.SXTH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06BF0070, 0x0FFF0070, .V6, .A32, {}, {}}, // T16 SXTH: 1011 0010 00 Rm Rd - {.SXTH, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000B200, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.SXTH, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000B200, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 SXTH: 0xFA0FF080 - {.SXTH, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA0FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SXTH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA0FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UXTB = { - {.UXTB, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06EF0070, 0x0FFF0070, .V6, .A32, {}}, + {.UXTB, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06EF0070, 0x0FFF0070, .V6, .A32, {}, {}}, // T16 UXTB: 1011 0010 11 Rm Rd - {.UXTB, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000B2C0, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.UXTB, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000B2C0, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 UXTB: 0xFA5FF080 - {.UXTB, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA5FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UXTB, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA5FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UXTB16 = { - {.UXTB16, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06CF0070, 0x0FFF0070, .V6, .A32, {}}, + {.UXTB16, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06CF0070, 0x0FFF0070, .V6, .A32, {}, {}}, // T32 UXTB16 - {.UXTB16, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA3FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UXTB16, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA3FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UXTH = { - {.UXTH, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06FF0070, 0x0FFF0070, .V6, .A32, {}}, + {.UXTH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06FF0070, 0x0FFF0070, .V6, .A32, {}, {}}, // T16 UXTH: 1011 0010 10 Rm Rd - {.UXTH, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000B280, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.UXTH, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000B280, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 UXTH: 0xFA1FF080 - {.UXTH, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA1FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UXTH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA1FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SXTAB = { - {.SXTAB, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06A00070, 0x0FF00070, .V6, .A32, {}}, + {.SXTAB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06A00070, 0x0FF00070, .V6, .A32, {}, {}}, // T32 SXTAB: high=11111010 0100 Rn low=1111 Rd 1 0 rot Rm - {.SXTAB, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA40F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SXTAB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA40F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SXTAB16 = { - {.SXTAB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06800070, 0x0FF00070, .V6, .A32, {}}, - {.SXTAB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA20F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SXTAB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06800070, 0x0FF00070, .V6, .A32, {}, {}}, + {.SXTAB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA20F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SXTAH = { - {.SXTAH, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06B00070, 0x0FF00070, .V6, .A32, {}}, - {.SXTAH, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA00F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SXTAH, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06B00070, 0x0FF00070, .V6, .A32, {}, {}}, + {.SXTAH, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA00F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UXTAB = { - {.UXTAB, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06E00070, 0x0FF00070, .V6, .A32, {}}, - {.UXTAB, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA50F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UXTAB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06E00070, 0x0FF00070, .V6, .A32, {}, {}}, + {.UXTAB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA50F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UXTAB16 = { - {.UXTAB16, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06C00070, 0x0FF00070, .V6, .A32, {}}, - {.UXTAB16, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA30F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UXTAB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06C00070, 0x0FF00070, .V6, .A32, {}, {}}, + {.UXTAB16, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA30F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UXTAH = { - {.UXTAH, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06F00070, 0x0FF00070, .V6, .A32, {}}, - {.UXTAH, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA10F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UXTAH, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06F00070, 0x0FF00070, .V6, .A32, {}, {}}, + {.UXTAH, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA10F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // Byte-reverse / count leading zeros / select / reverse bits .REV = { - {.REV, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06BF0F30, 0x0FFF0FF0, .V6, .A32, {}}, + {.REV, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06BF0F30, 0x0FFF0FF0, .V6, .A32, {}, {}}, // T16 REV: 1011 1010 00 Rm Rd - {.REV, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000BA00, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.REV, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000BA00, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 REV: high=11111010 1001 Rm low=1111 Rd 1000 Rm - {.REV, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA90F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.REV, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA90F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .REV16 = { - {.REV16, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06BF0FB0, 0x0FFF0FF0, .V6, .A32, {}}, + {.REV16, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06BF0FB0, 0x0FFF0FF0, .V6, .A32, {}, {}}, // T16 REV16: 1011 1010 01 Rm Rd - {.REV16, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000BA40, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.REV16, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000BA40, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 REV16: bits 5:4 = 01 - {.REV16, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA90F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.REV16, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA90F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .REVSH = { - {.REVSH, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06FF0FB0, 0x0FFF0FF0, .V6, .A32, {}}, + {.REVSH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06FF0FB0, 0x0FFF0FF0, .V6, .A32, {}, {}}, // T16 REVSH: 1011 1010 11 Rm Rd - {.REVSH, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x0000BAC0, 0x0000FFC0, .V6, .T32, {cond_in_28=false}}, + {.REVSH, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x0000BAC0, 0x0000FFC0, .V6, .T32, {cond_in_28=false}, {}}, // T32 REVSH: bits 5:4 = 11 - {.REVSH, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA90F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.REVSH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA90F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .RBIT = { - {.RBIT, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x06FF0F30, 0x0FFF0FF0, .V6T2, .A32, {}}, + {.RBIT, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x06FF0F30, 0x0FFF0FF0, .V6T2, .A32, {}, {}}, // T32 RBIT: bits 5:4 = 10 - {.RBIT, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFA90F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.RBIT, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFA90F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CLZ = { - {.CLZ, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x016F0F10, 0x0FFF0FF0, .V5T, .A32, {}}, + {.CLZ, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x016F0F10, 0x0FFF0FF0, .V5T, .A32, {}, {}}, // T32 CLZ: high=11111010 1011 Rm low=1111 Rd 1000 Rm - {.CLZ, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xFAB0F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.CLZ, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xFAB0F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, - .SEL = { {.SEL, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x06800FB0, 0x0FF00FF0, .V6, .A32, {}} }, + .SEL = { {.SEL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0x06800FB0, 0x0FF00FF0, .V6, .A32, {}, {}} }, // Bit field operations (ARMv6T2) .BFC = { - {.BFC, {.GPR, .IMM5, .IMM5_W, .NONE}, {.RD, .BFI_LSB, .BFI_MSB, .NONE}, 0x07C0001F, 0x0FE0007F, .V6T2, .A32, {}}, + {.BFC, {.GPR, .IMM5, .IMM5_W, .NONE, .NONE, .NONE}, {.RD, .BFI_LSB, .BFI_MSB, .NONE, .NONE, .NONE}, 0x07C0001F, 0x0FE0007F, .V6T2, .A32, {}, {}}, // T32 BFC: high=11110 0 1 1011 0 1111 low=0 imm3 Rd imm2 0 msb - {.BFC, {.GPR, .IMM5, .IMM5_W, .NONE}, {.RD_T32, .BFI_LSB_T32, .BFI_MSB, .NONE}, 0xF36F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.BFC, {.GPR, .IMM5, .IMM5_W, .NONE, .NONE, .NONE}, {.RD_T32, .BFI_LSB_T32, .BFI_MSB, .NONE, .NONE, .NONE}, 0xF36F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .BFI = { - {.BFI, {.GPR, .GPR, .IMM5, .IMM5_W}, {.RD, .RM_A32, .BFI_LSB, .BFI_MSB}, 0x07C00010, 0x0FE00070, .V6T2, .A32, {}}, + {.BFI, {.GPR, .GPR, .IMM5, .IMM5_W, .NONE, .NONE}, {.RD, .RM_A32, .BFI_LSB, .BFI_MSB, .NONE, .NONE}, 0x07C00010, 0x0FE00070, .V6T2, .A32, {}, {}}, // T32 BFI: high=11110 0 1 1011 0 Rn low=0 imm3 Rd imm2 0 msb - {.BFI, {.GPR, .GPR, .IMM5, .IMM5_W}, {.RD_T32, .RN_T32, .BFI_LSB_T32, .BFI_MSB}, 0xF3600000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.BFI, {.GPR, .GPR, .IMM5, .IMM5_W, .NONE, .NONE}, {.RD_T32, .RN_T32, .BFI_LSB_T32, .BFI_MSB, .NONE, .NONE}, 0xF3600000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SBFX = { - {.SBFX, {.GPR, .GPR, .IMM5, .IMM5_W}, {.RD, .RM_A32, .BFI_LSB, .BFI_MSB}, 0x07A00050, 0x0FE00070, .V6T2, .A32, {}}, + {.SBFX, {.GPR, .GPR, .IMM5, .IMM5_W, .NONE, .NONE}, {.RD, .RM_A32, .BFI_LSB, .BFX_WIDTH, .NONE, .NONE}, 0x07A00050, 0x0FE00070, .V6T2, .A32, {}, {}}, // T32 SBFX - {.SBFX, {.GPR, .GPR, .IMM5, .IMM5_W}, {.RD_T32, .RN_T32, .BFI_LSB_T32, .BFI_MSB}, 0xF3400000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SBFX, {.GPR, .GPR, .IMM5, .IMM5_W, .NONE, .NONE}, {.RD_T32, .RN_T32, .BFI_LSB_T32, .BFX_WIDTH, .NONE, .NONE}, 0xF3400000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .UBFX = { - {.UBFX, {.GPR, .GPR, .IMM5, .IMM5_W}, {.RD, .RM_A32, .BFI_LSB, .BFI_MSB}, 0x07E00050, 0x0FE00070, .V6T2, .A32, {}}, + {.UBFX, {.GPR, .GPR, .IMM5, .IMM5_W, .NONE, .NONE}, {.RD, .RM_A32, .BFI_LSB, .BFX_WIDTH, .NONE, .NONE}, 0x07E00050, 0x0FE00070, .V6T2, .A32, {}, {}}, // T32 UBFX - {.UBFX, {.GPR, .GPR, .IMM5, .IMM5_W}, {.RD_T32, .RN_T32, .BFI_LSB_T32, .BFI_MSB}, 0xF3C00000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UBFX, {.GPR, .GPR, .IMM5, .IMM5_W, .NONE, .NONE}, {.RD_T32, .RN_T32, .BFI_LSB_T32, .BFX_WIDTH, .NONE, .NONE}, 0xF3C00000, 0xFFF08000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ========================================================================= @@ -770,139 +770,139 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // B / BL: cond 101 L imm24 .B = { - {.B, {.REL24, .NONE, .NONE, .NONE}, {.BRANCH_24, .NONE, .NONE, .NONE}, 0x0A000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}}, + {.B, {.REL24, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_24, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0A000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}, {}}, // T16 Format 16 B: 1101 cond imm8 - {.B, {.REL8, .COND, .NONE, .NONE}, {.BRANCH_8_T16, .NONE, .NONE, .NONE}, 0x0000D000, 0x0000F000, .THUMB, .T32, {branch=true, cond_branch=true, writes_pc=true, cond_in_28=false}}, + {.B, {.REL8, .COND, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_8_T16, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000D000, 0x0000F000, .THUMB, .T32, {branch=true, cond_branch=true, writes_pc=true, cond_in_28=false}, {}}, // T16 Format 18 B unconditional: 11100 imm11 - {.B, {.REL11, .NONE, .NONE, .NONE}, {.BRANCH_11_T16, .NONE, .NONE, .NONE}, 0x0000E000, 0x0000F800, .THUMB, .T32, {branch=true, writes_pc=true, cond_in_28=false}}, + {.B, {.REL11, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_11_T16, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000E000, 0x0000F800, .THUMB, .T32, {branch=true, writes_pc=true, cond_in_28=false}, {}}, // T32 B: high=11110 S cond imm6 low=10 J1 0 J2 imm11 - {.B, {.REL20, .COND, .NONE, .NONE}, {.BRANCH_20_T32, .NONE, .NONE, .NONE}, 0xF0008000, 0xF800D000, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, thumb32=true, cond_in_28=false}}, + {.B, {.REL20, .COND, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_20_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF0008000, 0xF800D000, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, thumb32=true, cond_in_28=false}, {}}, // T32 B unconditional: high=11110 S imm10 low=10 J1 1 J2 imm11 - {.B, {.REL24_T32, .NONE, .NONE, .NONE}, {.BRANCH_24_T32, .NONE, .NONE, .NONE}, 0xF0009000, 0xF800D000, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}}, + {.B, {.REL24_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_24_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF0009000, 0xF800D000, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}, {}}, }, .BL = { - {.BL, {.REL24, .NONE, .NONE, .NONE}, {.BRANCH_24, .NONE, .NONE, .NONE}, 0x0B000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}}, + {.BL, {.REL24, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_24, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0B000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}, {}}, // Thumb-1 / Thumb-2 BL (4 bytes): high=11110 S imm10 low=11 J1 1 J2 imm11 - {.BL, {.REL24_T32, .NONE, .NONE, .NONE}, {.BRANCH_24_T32, .NONE, .NONE, .NONE}, 0xF000D000, 0xF800D000, .THUMB, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}}, + {.BL, {.REL24_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_24_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF000D000, 0xF800D000, .THUMB, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}, {}}, }, // BX / BLX (register form) -- ARMv4T+ for BX, ARMv5T+ for BLX_reg .BX = { - {.BX, {.GPR, .NONE, .NONE, .NONE}, {.RM_A32, .NONE, .NONE, .NONE}, 0x012FFF10, 0x0FFFFFF0, .BASE, .A32, {branch=true, writes_pc=true}}, + {.BX, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_A32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x012FFF10, 0x0FFFFFF0, .BASE, .A32, {branch=true, writes_pc=true}, {}}, // T16 Format 5 BX: 010001 11 0 Rm 000 - {.BX, {.GPR, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE}, 0x00004700, 0x0000FF87, .THUMB, .T32, {branch=true, writes_pc=true, cond_in_28=false}}, + {.BX, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00004700, 0x0000FF87, .THUMB, .T32, {branch=true, writes_pc=true, cond_in_28=false}, {}}, }, .BLX = { // BLX register: cond 0001 0010 1111 1111 1111 0011 Rm - {.BLX, {.GPR, .NONE, .NONE, .NONE}, {.RM_A32, .NONE, .NONE, .NONE}, 0x012FFF30, 0x0FFFFFF0, .V5T, .A32, {branch=true, writes_pc=true}}, + {.BLX, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_A32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x012FFF30, 0x0FFFFFF0, .V5T, .A32, {branch=true, writes_pc=true}, {}}, // BLX immediate (unconditional class): 1111 101 H imm24 -- H=bit24 toggles ARM/Thumb - {.BLX, {.REL24, .NONE, .NONE, .NONE}, {.BRANCH_24, .NONE, .NONE, .NONE}, 0xFA000000, 0xFE000000, .V5T, .A32, {branch=true, writes_pc=true, cond_in_28=false}}, + {.BLX, {.REL24, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_24, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xFA000000, 0xFE000000, .V5T, .A32, {branch=true, writes_pc=true, cond_in_28=false}, {}}, // T16 Format 5 BLX reg: 010001 11 1 Rm 000 - {.BLX, {.GPR, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE}, 0x00004780, 0x0000FF87, .V5T, .T32, {branch=true, writes_pc=true, cond_in_28=false}}, + {.BLX, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00004780, 0x0000FF87, .V5T, .T32, {branch=true, writes_pc=true, cond_in_28=false}, {}}, }, - .BXJ = { {.BXJ, {.GPR, .NONE, .NONE, .NONE}, {.RM_A32, .NONE, .NONE, .NONE}, 0x012FFF20, 0x0FFFFFF0, .V5TEJ, .A32, {branch=true, writes_pc=true, deprecated=true}} }, + .BXJ = { {.BXJ, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_A32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x012FFF20, 0x0FFFFFF0, .V5TEJ, .A32, {branch=true, writes_pc=true, deprecated=true}, {}} }, // SVC (was SWI): cond 1111 imm24 .SVC = { - {.SVC, {.IMM, .NONE, .NONE, .NONE}, {.A32_IMM24, .NONE, .NONE, .NONE}, 0x0F000000, 0x0F000000, .BASE, .A32, {}}, + {.SVC, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_IMM24, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0F000000, 0x0F000000, .BASE, .A32, {}, {}}, // T16 Format 17 SVC: 11011111 imm8 - {.SVC, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000DF00, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}}, + {.SVC, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000DF00, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}, {}}, }, // BKPT (unconditional class but uses cond=NV reserved encoding traditionally): // cond 0001 0010 imm12 0111 imm4 (cond=AL only) .BKPT = { - {.BKPT, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xE1200070, 0xFFF000F0, .V5T, .A32, {cond_in_28=false}}, + {.BKPT, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE1200070, 0xFFF000F0, .V5T, .A32, {cond_in_28=false}, {}}, // T16 BKPT: 1011 1110 imm8 - {.BKPT, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000BE00, 0x0000FF00, .V5T, .T32, {cond_in_28=false}}, + {.BKPT, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BE00, 0x0000FF00, .V5T, .T32, {cond_in_28=false}, {}}, }, // HVC: 0001 0100 imm12 0111 imm4 - .HVC = { {.HVC, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xE1400070, 0xFFF000F0, .V7VE, .A32, {cond_in_28=false}} }, + .HVC = { {.HVC, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE1400070, 0xFFF000F0, .V7VE, .A32, {cond_in_28=false}, {}} }, // SMC: cond 0001 0110 0000 0000 0000 0111 imm4 - .SMC = { {.SMC, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x01600070, 0x0FFFFFF0, .V7, .A32, {}} }, + .SMC = { {.SMC, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x01600070, 0x0FFFFFF0, .V7, .A32, {}, {}} }, // UDF: 1111 0111 1111 imm12 1111 imm4 (permanently undefined) .UDF = { - {.UDF, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xE7F000F0, 0xFFF000F0, .BASE, .A32, {cond_in_28=false}}, + {.UDF, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE7F000F0, 0xFFF000F0, .BASE, .A32, {cond_in_28=false}, {}}, // T16 UDF: 1101 1110 imm8 - {.UDF, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000DE00, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}}, + {.UDF, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000DE00, 0x0000FF00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 UDF: high=11110 0 1111 1111 imm4 low=10 1 0 imm12 - {.UDF, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF7F0A000, 0xFFF0F000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.UDF, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF7F0A000, 0xFFF0F000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // HLT (ARMv8 AArch32): 0001 0000 imm12 0111 imm4 - .HLT = { {.HLT, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xE1000070, 0xFFF000F0, .V8, .A32, {cond_in_28=false}} }, + .HLT = { {.HLT, {.IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE1000070, 0xFFF000F0, .V8, .A32, {cond_in_28=false}, {}} }, // MSR / MRS (status reg access) .MRS = { - {.MRS, {.GPR, .PSR_FIELD, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0x010F0000, 0x0FBF0FFF, .BASE, .A32, {}}, + {.MRS, {.GPR, .PSR_FIELD, .NONE, .NONE, .NONE, .NONE}, {.RD, .MRS_SPEC_REG, .NONE, .NONE, .NONE, .NONE}, 0x010F0000, 0x0FBF0FFF, .BASE, .A32, {}, {}}, // T32 MRS: high=11110011 1110 1111 low=10 0 0 Rd 0000 0000 - {.MRS, {.GPR, .PSR_FIELD, .NONE, .NONE}, {.RD_T32, .NONE, .NONE, .NONE}, 0xF3EF8000, 0xFFFFF0FF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MRS, {.GPR, .PSR_FIELD, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3EF8000, 0xFFFFF0FF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .MSR = { // MSR APSR_, #imm12_mod (immediate form) - {.MSR, {.PSR_FIELD, .IMM_MOD, .NONE, .NONE}, {.PSR_FIELD_MASK, .A32_IMM_MOD, .NONE, .NONE}, 0x0320F000, 0x0FB0F000, .BASE, .A32, {}}, + {.MSR, {.PSR_FIELD, .IMM_MOD, .NONE, .NONE, .NONE, .NONE}, {.PSR_FIELD_MASK, .A32_IMM_MOD, .NONE, .NONE, .NONE, .NONE}, 0x0320F000, 0x0FB0F000, .BASE, .A32, {}, {}}, // MSR APSR_, Rn (register form) - {.MSR, {.PSR_FIELD, .GPR, .NONE, .NONE}, {.PSR_FIELD_MASK, .RM_A32, .NONE, .NONE}, 0x0120F000, 0x0FB0FFF0, .BASE, .A32, {}}, + {.MSR, {.PSR_FIELD, .GPR, .NONE, .NONE, .NONE, .NONE}, {.PSR_FIELD_MASK, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x0120F000, 0x0FB0FFF0, .BASE, .A32, {}, {}}, // T32 MSR: high=11110011 1000 Rn low=10 0 0 mask 0000 0000 - {.MSR, {.PSR_FIELD, .GPR, .NONE, .NONE}, {.PSR_FIELD_MASK, .RN_T32, .NONE, .NONE}, 0xF3808000, 0xFFF0F0FF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.MSR, {.PSR_FIELD, .GPR, .NONE, .NONE, .NONE, .NONE}, {.PSR_FIELD_MASK, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xF3808000, 0xFFF0F0FF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // CPS (change processor state, ARMv6): 1111 0001 0000 imod M iflags mode_field - .CPS = { {.CPS, {.IMM_IFLAGS, .NONE, .NONE, .NONE}, {.CPS_IFLAGS, .NONE, .NONE, .NONE}, 0xF1000000, 0xFFF1FE20, .V6, .A32, {cond_in_28=false}} }, + .CPS = { {.CPS, {.IMM_IFLAGS, .NONE, .NONE, .NONE, .NONE, .NONE}, {.CPS_IFLAGS, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF1000000, 0xFFF1FE20, .V6, .A32, {cond_in_28=false}, {}} }, // SETEND (deprecated in ARMv8): 1111 0001 0000 0001 0000 000E 0000 0000 - .SETEND = { {.SETEND, {.IMM_ENDIAN, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF1010000, 0xFFFFFDFF, .V6, .A32, {cond_in_28=false, deprecated=true}} }, + .SETEND = { {.SETEND, {.IMM_ENDIAN, .NONE, .NONE, .NONE, .NONE, .NONE}, {.SETEND_ENDIAN, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF1010000, 0xFFFFFDFF, .V6, .A32, {cond_in_28=false, deprecated=true}, {}} }, // SETPAN (ARMv8.1): A32 = 1111 0001 0001 0000 0000 0000 imm1 0000 0000 → bit 9 = imm // T16: 1011 0110 0001 0 imm1 000 → bit 3 = imm .SETPAN = { - {.SETPAN, {.IMM_HINT, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE}, 0xF1100000, 0xFFFFFDFF, .V8, .A32, {cond_in_28=false}}, - {.SETPAN, {.IMM_HINT, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE}, 0x0000B610, 0x0000FFF7, .V8, .T32, {cond_in_28=false}}, + {.SETPAN, {.IMM_HINT, .NONE, .NONE, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF1100000, 0xFFFFFDFF, .V8, .A32, {cond_in_28=false}, {}}, + {.SETPAN, {.IMM_HINT, .NONE, .NONE, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000B610, 0x0000FFF7, .V8, .T32, {cond_in_28=false}, {}}, }, // ---- Hint instructions (cond 0011 0010 0000 1111 0000 0000 imm8 OR encoded form) .NOP = { - {.NOP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F000, 0x0FFFFFFF, .V6K, .A32, {}}, + {.NOP, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F000, 0x0FFFFFFF, .V6K, .A32, {}, {}}, // T16 NOP: 1011 1111 0000 0000 - {.NOP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000BF00, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}}, + {.NOP, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BF00, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}, {}}, // T32 NOP: high=11110011 1010 1111 low=10000000 hint - {.NOP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8000, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.NOP, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8000, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .YIELD = { - {.YIELD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F001, 0x0FFFFFFF, .V6K, .A32, {}}, - {.YIELD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000BF10, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}}, - {.YIELD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8001, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.YIELD, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F001, 0x0FFFFFFF, .V6K, .A32, {}, {}}, + {.YIELD, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BF10, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}, {}}, + {.YIELD, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8001, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .WFE = { - {.WFE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F002, 0x0FFFFFFF, .V6K, .A32, {}}, - {.WFE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000BF20, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}}, - {.WFE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8002, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.WFE, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F002, 0x0FFFFFFF, .V6K, .A32, {}, {}}, + {.WFE, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BF20, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}, {}}, + {.WFE, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8002, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .WFI = { - {.WFI, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F003, 0x0FFFFFFF, .V6K, .A32, {}}, - {.WFI, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000BF30, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}}, - {.WFI, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8003, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.WFI, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F003, 0x0FFFFFFF, .V6K, .A32, {}, {}}, + {.WFI, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BF30, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}, {}}, + {.WFI, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8003, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .SEV = { - {.SEV, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F004, 0x0FFFFFFF, .V6K, .A32, {}}, - {.SEV, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0000BF40, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}}, - {.SEV, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8004, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.SEV, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F004, 0x0FFFFFFF, .V6K, .A32, {}, {}}, + {.SEV, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BF40, 0x0000FFFF, .V6T2, .T32, {cond_in_28=false}, {}}, + {.SEV, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8004, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, - .SEVL = { {.SEVL, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F005, 0x0FFFFFFF, .V8, .A32, {}} }, - .DBG = { {.DBG, {.IMM_HINT, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {}} }, - .HINT = { {.HINT, {.IMM_HINT, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {}} }, + .SEVL = { {.SEVL, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F005, 0x0FFFFFFF, .V8, .A32, {}, {}} }, + .DBG = { {.DBG, {.IMM_HINT, .NONE, .NONE, .NONE, .NONE, .NONE}, {.DBG_OPTION, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {}, {}} }, + .HINT = { {.HINT, {.IMM_HINT, .NONE, .NONE, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {}, {}} }, // Memory barriers (ARMv7): 1111 0101 0111 1111 1111 0000 type imm4 .DMB = { - {.DMB, {.IMM_BARRIER, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE}, 0xF57FF050, 0xFFFFFFF0, .V7, .A32, {cond_in_28=false}}, + {.DMB, {.IMM_BARRIER, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF57FF050, 0xFFFFFFF0, .V7, .A32, {cond_in_28=false}, {}}, // T32 DMB: F3BF 8F50 + type - {.DMB, {.IMM_BARRIER, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE}, 0xF3BF8F50, 0xFFFFFFF0, .V7, .T32, {thumb32=true, cond_in_28=false}}, + {.DMB, {.IMM_BARRIER, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3BF8F50, 0xFFFFFFF0, .V7, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .DSB = { - {.DSB, {.IMM_BARRIER, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE}, 0xF57FF040, 0xFFFFFFF0, .V7, .A32, {cond_in_28=false}}, - {.DSB, {.IMM_BARRIER, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE}, 0xF3BF8F40, 0xFFFFFFF0, .V7, .T32, {thumb32=true, cond_in_28=false}}, + {.DSB, {.IMM_BARRIER, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF57FF040, 0xFFFFFFF0, .V7, .A32, {cond_in_28=false}, {}}, + {.DSB, {.IMM_BARRIER, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3BF8F40, 0xFFFFFFF0, .V7, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .ISB = { - {.ISB, {.IMM_BARRIER, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE}, 0xF57FF060, 0xFFFFFFF0, .V7, .A32, {cond_in_28=false}}, - {.ISB, {.IMM_BARRIER, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE}, 0xF3BF8F60, 0xFFFFFFF0, .V7, .T32, {thumb32=true, cond_in_28=false}}, + {.ISB, {.IMM_BARRIER, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF57FF060, 0xFFFFFFF0, .V7, .A32, {cond_in_28=false}, {}}, + {.ISB, {.IMM_BARRIER, .NONE, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_TYPE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3BF8F60, 0xFFFFFFF0, .V7, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ---- HINT-family barriers (ARMv8 FEAT_RAS / FEAT_SPE / FEAT_TRF / FEAT_CSV2) ---- @@ -911,58 +911,58 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // ESB (Error Synchronization Barrier, FEAT_RAS) -- HINT #16 .ESB = { - {.ESB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F010, 0x0FFFFFFF, .V8, .A32, {}}, - {.ESB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8010, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}}, + {.ESB, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F010, 0x0FFFFFFF, .V8, .A32, {}, {}}, + {.ESB, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8010, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // PSB CSYNC (Profiling Synchronization Barrier, FEAT_SPE) -- HINT #17 .PSB_CSYNC = { - {.PSB_CSYNC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F011, 0x0FFFFFFF, .V8, .A32, {}}, - {.PSB_CSYNC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8011, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}}, + {.PSB_CSYNC, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE320F011, 0xFFFFFFFF, .V8, .A32, {cond_in_28=false}, {}}, + {.PSB_CSYNC, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8011, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // TSB CSYNC (Trace Synchronization Barrier, FEAT_TRF) -- HINT #18 .TSB_CSYNC = { - {.TSB_CSYNC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F012, 0x0FFFFFFF, .V8, .A32, {}}, - {.TSB_CSYNC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8012, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}}, + {.TSB_CSYNC, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE320F012, 0xFFFFFFFF, .V8, .A32, {cond_in_28=false}, {}}, + {.TSB_CSYNC, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8012, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // CSDB (Consumption of Speculative Data Barrier, FEAT_CSV2) -- HINT #20 .CSDB = { - {.CSDB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0320F014, 0x0FFFFFFF, .V8, .A32, {}}, - {.CSDB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF8014, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}}, + {.CSDB, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0320F014, 0x0FFFFFFF, .V8, .A32, {}, {}}, + {.CSDB, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF8014, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // SB (Synchronization Barrier, FEAT_SB, ARMv8.5) -- dedicated barrier encoding // A32: 1111 0101 0111 1111 1111 0000 0111 0000 = 0xF57FF070 // T32: 1111 0011 1011 1111 1000 1111 0111 0000 = 0xF3BF8F70 .SB = { - {.SB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF57FF070, 0xFFFFFFFF, .V8, .A32, {cond_in_28=false}}, - {.SB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3BF8F70, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}}, + {.SB, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF57FF070, 0xFFFFFFFF, .V8, .A32, {cond_in_28=false}, {}}, + {.SB, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3BF8F70, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // CLREX (clear exclusive monitor, ARMv6K+) .CLREX = { - {.CLREX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF57FF01F, 0xFFFFFFFF, .V6K, .A32, {cond_in_28=false}}, + {.CLREX, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF57FF01F, 0xFFFFFFFF, .V6K, .A32, {cond_in_28=false}, {}}, // T32 CLREX - {.CLREX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3BF8F2F, 0xFFFFFFFF, .V6K, .T32, {thumb32=true, cond_in_28=false}}, + {.CLREX, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3BF8F2F, 0xFFFFFFFF, .V6K, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // Preload data / instruction (PLD/PLDW/PLI) .PLD = { - {.PLD, {.MEM, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE}, 0xF5D0F000, 0xFFF0F000, .V5T, .A32, {cond_in_28=false}}, + {.PLD, {.MEM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF5D0F000, 0xFFF0F000, .V5T, .A32, {cond_in_28=false}, {}}, // T32 PLD imm12: 0xF890F000 - {.PLD, {.MEM, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE}, 0xF890F000, 0xFFF0F000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.PLD, {.MEM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF890F000, 0xFFF0F000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .PLDW = { - {.PLDW, {.MEM, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE}, 0xF5D0F000, 0xFFF0F000, .V7, .A32, {cond_in_28=false}}, + {.PLDW, {.MEM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF5D0F000, 0xFFF0F000, .V7, .A32, {cond_in_28=false}, {}}, // T32 PLDW imm12: 0xF830F000 - {.PLDW, {.MEM, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE}, 0xF830F000, 0xFFF0F000, .V7, .T32, {thumb32=true, cond_in_28=false}}, + {.PLDW, {.MEM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF830F000, 0xFFF0F000, .V7, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .PLI = { - {.PLI, {.MEM, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE}, 0xF4D0F000, 0xFF70F000, .V7, .A32, {cond_in_28=false}}, + {.PLI, {.MEM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF450F000, 0xFF70F000, .V7, .A32, {cond_in_28=false}, {}}, // T32 PLI imm12: 0xF990F000 - {.PLI, {.MEM, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE}, 0xF990F000, 0xFFF0F000, .V7, .T32, {thumb32=true, cond_in_28=false}}, + {.PLI, {.MEM, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF990F000, 0xFFF0F000, .V7, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ERET (exception return, ARMv7VE+) - .ERET = { {.ERET, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x0160006E, 0x0FFFFFFF, .V7VE, .A32, {writes_pc=true}} }, + .ERET = { {.ERET, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0160006E, 0x0FFFFFFF, .V7VE, .A32, {writes_pc=true}, {}} }, // ========================================================================= // §6 -- Load / Store (single + multiple) @@ -973,139 +973,139 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // We split into three variants per direction: imm-offset, pre-index, post-index. .LDR = { // LDR imm12 offset: P=1 W=0 - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0x05900000, 0x0F700000, .BASE, .A32, {}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x05100000, 0x0F700000, .BASE, .A32, {}, {}}, // LDR imm12 pre-index: P=1 W=1 - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x05B00000, 0x0F700000, .BASE, .A32, {}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x05300000, 0x0F700000, .BASE, .A32, {}, {}}, // LDR imm12 post-index: P=0 W=0 - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04900000, 0x0F700000, .BASE, .A32, {}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04100000, 0x0F700000, .BASE, .A32, {}, {}}, // LDR reg offset: cond 011 P U 0 W 1 Rn Rt shift_imm shift_type 0 Rm - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x07900000, 0x0F700010, .BASE, .A32, {}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x07100000, 0x0F700010, .BASE, .A32, {}, {}}, // T16 Format 6 LDR PC-relative: 01001 Rd imm8 (LDR Rd, [PC, #imm8 << 2]) - {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_HI, .MEM_LITERAL, .NONE, .NONE}, 0x00004800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .MEM_LITERAL, .NONE, .NONE, .NONE, .NONE}, 0x00004800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 7 LDR reg-offset: 0101 100 Rm Rb Rd - {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005800, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005800, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 9 LDR imm5: 01101 imm5 Rb Rd (offset = imm5 << 2) - {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00006800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00006800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 11 LDR SP-relative: 10011 Rd imm8 (LDR Rd, [SP, #imm8 << 2]) - {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_HI, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00009800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LDR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00009800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LDR imm12 offset: high=11111000 1101 Rn low=Rt imm12 - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF8D00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8D00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 LDR reg offset: high=11111000 0101 Rn low=Rt 000000 imm2 Rm - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF8500000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8500000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 LDR literal: high=11111000 X101 1111 low=Rt imm12 (PC-relative) - {.LDR, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_LITERAL, .NONE, .NONE}, 0xF85F0000, 0xFF7F0000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_LITERAL, .NONE, .NONE, .NONE, .NONE}, 0xF85F0000, 0xFF7F0000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STR = { - {.STR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0x05800000, 0x0F700000, .BASE, .A32, {}}, - {.STR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x05A00000, 0x0F700000, .BASE, .A32, {}}, - {.STR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04800000, 0x0F700000, .BASE, .A32, {}}, - {.STR, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x07800000, 0x0F700010, .BASE, .A32, {}}, + {.STR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x05000000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x05200000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04000000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x07000000, 0x0F700010, .BASE, .A32, {}, {}}, // T16 Format 7 STR reg-offset: 0101 000 Rm Rb Rd - {.STR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005000, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.STR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005000, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 9 STR imm5: 01100 imm5 Rb Rd (offset = imm5 << 2) - {.STR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00006000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.STR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00006000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 11 STR SP-relative: 10010 Rd imm8 (STR Rd, [SP, #imm8 << 2]) - {.STR, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_HI, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00009000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.STR, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00009000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 STR imm12: 0xF8C00000 - {.STR, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF8C00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8C00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 STR reg: 0xF8400000 base - {.STR, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF8400000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STR, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8400000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDRB = { - {.LDRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0x05D00000, 0x0F700000, .BASE, .A32, {}}, - {.LDRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x05F00000, 0x0F700000, .BASE, .A32, {}}, - {.LDRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04D00000, 0x0F700000, .BASE, .A32, {}}, - {.LDRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x07D00000, 0x0F700010, .BASE, .A32, {}}, + {.LDRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x05500000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x05700000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04500000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x07500000, 0x0F700010, .BASE, .A32, {}, {}}, // T16 Format 7 LDRB reg-offset: 0101 110 Rm Rb Rd - {.LDRB, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005C00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.LDRB, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005C00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 9 LDRB imm5: 01111 imm5 Rb Rd - {.LDRB, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00007800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LDRB, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00007800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LDRB imm12 / reg - {.LDRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF8900000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.LDRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF8100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8900000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.LDRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STRB = { - {.STRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0x05C00000, 0x0F700000, .BASE, .A32, {}}, - {.STRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x05E00000, 0x0F700000, .BASE, .A32, {}}, - {.STRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04C00000, 0x0F700000, .BASE, .A32, {}}, - {.STRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x07C00000, 0x0F700010, .BASE, .A32, {}}, + {.STRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x05400000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x05600000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04400000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x07400000, 0x0F700010, .BASE, .A32, {}, {}}, // T16 Format 7 STRB reg-offset: 0101 010 Rm Rb Rd - {.STRB, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005400, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.STRB, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005400, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 9 STRB imm5: 01110 imm5 Rb Rd - {.STRB, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00007000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.STRB, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00007000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 STRB imm12 / reg - {.STRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF8800000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.STRB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF8000000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8800000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.STRB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8000000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // LDRH / STRH / LDRSB / LDRSH / LDRD / STRD: cond 000 P U I W L Rn Rt imm4H 1 op2 1 imm4L // where op2 = 01 (halfword), 10 (signed byte), 11 (signed half / doubleword) .LDRH = { // LDRH imm offset (P=1 W=0): cond 000 1 U 1 0 1 Rn Rt imm4H 1011 imm4L - {.LDRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x01D000B0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x01F000B0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00D000B0, 0x0F7000F0, .BASE, .A32, {}}, + {.LDRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x015000B0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x017000B0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x005000B0, 0x0F7000F0, .BASE, .A32, {}, {}}, // LDRH reg offset: cond 000 1 U 0 0 1 Rn Rt 0000 1011 Rm - {.LDRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x019000B0, 0x0F700FF0, .BASE, .A32, {}}, + {.LDRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x011000B0, 0x0F700FF0, .BASE, .A32, {}, {}}, // T16 Format 7 LDRH reg-offset: 0101 101 Rm Rb Rd - {.LDRH, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005A00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.LDRH, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005A00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 10 LDRH imm5: 10001 imm5 Rb Rd (offset = imm5 << 1) - {.LDRH, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00008800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LDRH, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00008800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LDRH imm12 / reg - {.LDRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF8B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.LDRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF8300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.LDRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STRH = { - {.STRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x01C000B0, 0x0F7000F0, .BASE, .A32, {}}, - {.STRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x01E000B0, 0x0F7000F0, .BASE, .A32, {}}, - {.STRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00C000B0, 0x0F7000F0, .BASE, .A32, {}}, - {.STRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x018000B0, 0x0F700FF0, .BASE, .A32, {}}, + {.STRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x014000B0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.STRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x016000B0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.STRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x004000B0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.STRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x010000B0, 0x0F700FF0, .BASE, .A32, {}, {}}, // T16 Format 7 STRH reg-offset: 0101 001 Rm Rb Rd - {.STRH, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005200, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.STRH, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005200, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 10 STRH imm5: 10000 imm5 Rb Rd - {.STRH, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x00008000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.STRH, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00008000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 STRH imm12 / reg - {.STRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF8A00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.STRH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF8200000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8A00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.STRH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF8200000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDRSB = { - {.LDRSB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x01D000D0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRSB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x01F000D0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRSB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00D000D0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRSB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x019000D0, 0x0F700FF0, .BASE, .A32, {}}, + {.LDRSB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x015000D0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRSB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x017000D0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRSB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x005000D0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRSB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x011000D0, 0x0F700FF0, .BASE, .A32, {}, {}}, // T16 Format 7 LDRSB reg-offset: 0101 011 Rm Rb Rd - {.LDRSB, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005600, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.LDRSB, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005600, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LDRSB imm12 / reg - {.LDRSB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF9900000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.LDRSB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF9100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDRSB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF9900000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.LDRSB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF9100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDRSH = { - {.LDRSH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x01D000F0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRSH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x01F000F0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRSH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00D000F0, 0x0F7000F0, .BASE, .A32, {}}, - {.LDRSH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x019000F0, 0x0F700FF0, .BASE, .A32, {}}, + {.LDRSH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x015000F0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRSH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_PRE_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x017000F0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRSH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x005000F0, 0x0F7000F0, .BASE, .A32, {}, {}}, + {.LDRSH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x011000F0, 0x0F700FF0, .BASE, .A32, {}, {}}, // T16 Format 7 LDRSH reg-offset: 0101 111 Rm Rb Rd - {.LDRSH, {.GPR_LOW, .MEM, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE}, 0x00005E00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.LDRSH, {.GPR_LOW, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0x00005E00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LDRSH imm12 / reg - {.LDRSH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xF9B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - {.LDRSH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE}, 0xF9300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDRSH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF9B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.LDRSH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .MEM_REG_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xF9300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDRD = { // LDRD imm offset (ARMv5TE+): cond 000 P U 1 W 0 Rn Rt imm4H 1101 imm4L - {.LDRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x01C000D0, 0x0F7000F0, .V5TE, .A32, {}}, - {.LDRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x01E000D0, 0x0F7000F0, .V5TE, .A32, {}}, - {.LDRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00C000D0, 0x0F7000F0, .V5TE, .A32, {}}, - {.LDRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x018000D0, 0x0F700FF0, .V5TE, .A32, {}}, + {.LDRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE}, 0x014000D0, 0x0F7000F0, .V5TE, .A32, {}, {}}, + {.LDRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_IMM8_PRE_INDEX, .NONE, .NONE, .NONE}, 0x016000D0, 0x0F7000F0, .V5TE, .A32, {}, {}}, + {.LDRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE}, 0x004000D0, 0x0F7000F0, .V5TE, .A32, {}, {}}, + {.LDRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_REG_OFFSET, .NONE, .NONE, .NONE}, 0x010000D0, 0x0F700FF0, .V5TE, .A32, {}, {}}, // T32 LDRD imm8: high=11101001 X101 Rn low=Rt Rt2 imm8 - {.LDRD, {.GPR, .GPR, .MEM, .NONE}, {.RT_T32, .RT2_T32, .RN_T32, .NONE}, 0xE9500000, 0xFE500000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_T32, .RT2_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xE9500000, 0xFE500000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STRD = { - {.STRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x01C000F0, 0x0F7000F0, .V5TE, .A32, {}}, - {.STRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_PRE_INDEX, .NONE, .NONE}, 0x01E000F0, 0x0F7000F0, .V5TE, .A32, {}}, - {.STRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00C000F0, 0x0F7000F0, .V5TE, .A32, {}}, - {.STRD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_REG_OFFSET, .NONE, .NONE}, 0x018000F0, 0x0F700FF0, .V5TE, .A32, {}}, + {.STRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE}, 0x014000F0, 0x0F7000F0, .V5TE, .A32, {}, {}}, + {.STRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_IMM8_PRE_INDEX, .NONE, .NONE, .NONE}, 0x016000F0, 0x0F7000F0, .V5TE, .A32, {}, {}}, + {.STRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE}, 0x004000F0, 0x0F7000F0, .V5TE, .A32, {}, {}}, + {.STRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32_PAIR, .MEM_REG_OFFSET, .NONE, .NONE, .NONE}, 0x010000F0, 0x0F700FF0, .V5TE, .A32, {}, {}}, // T32 STRD imm8: high=11101001 X100 Rn low=Rt Rt2 imm8 - {.STRD, {.GPR, .GPR, .MEM, .NONE}, {.RT_T32, .RT2_T32, .RN_T32, .NONE}, 0xE9400000, 0xFE500000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STRD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_T32, .RT2_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xE9400000, 0xFE500000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // Load/Store multiple (LDM/STM family). cond 100 P U S W L Rn register_list @@ -1116,64 +1116,77 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // base register + register-list into Rn + register_list operand slots. .LDM = { // LDM IA (default) - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x08900000, 0x0FD00000, .BASE, .A32, {}}, + {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x08900000, 0x0FF00000, .BASE, .A32, {}, {}}, // LDMIA writeback (LDM Rn!, {reglist}): W=1 - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x08B00000, 0x0FD00000, .BASE, .A32, {}}, - // LDMIB - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x09900000, 0x0FD00000, .BASE, .A32, {}}, - // LDMDA - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x08100000, 0x0FD00000, .BASE, .A32, {}}, - // LDMDB - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x09100000, 0x0FD00000, .BASE, .A32, {}}, + {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x08B00000, 0x0FF00000, .BASE, .A32, {}, {}}, // T16 Format 15 LDMIA: 11001 Rb reg_list8 - {.LDM, {.GPR_LOW, .GPR_LIST, .NONE, .NONE}, {.RD_T16_HI, .A32_REG_LIST, .NONE, .NONE}, 0x0000C800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LDM, {.GPR_LOW, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0000C800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LDMIA: high=11101000 1001 Rn low=PM 0 reg_list14 - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE}, 0xE8900000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - // T32 LDMDB: high=11101001 0001 Rn low=PM 0 reg_list14 - {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE}, 0xE9100000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDM, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0xE8900000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STM = { - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x08800000, 0x0FD00000, .BASE, .A32, {}}, - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x08A00000, 0x0FD00000, .BASE, .A32, {}}, - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x09800000, 0x0FD00000, .BASE, .A32, {}}, - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x08000000, 0x0FD00000, .BASE, .A32, {}}, - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE}, 0x09000000, 0x0FD00000, .BASE, .A32, {}}, + {.STM, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x08800000, 0x0FF00000, .BASE, .A32, {}, {}}, + {.STM, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x08A00000, 0x0FF00000, .BASE, .A32, {}, {}}, // T16 Format 15 STMIA: 11000 Rb reg_list8 - {.STM, {.GPR_LOW, .GPR_LIST, .NONE, .NONE}, {.RD_T16_HI, .A32_REG_LIST, .NONE, .NONE}, 0x0000C000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.STM, {.GPR_LOW, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0000C000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 STMIA: 0xE8800000 - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE}, 0xE8800000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, - // T32 STMDB: 0xE9000000 - {.STM, {.GPR, .GPR_LIST, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE}, 0xE9000000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STM, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0xE8800000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // PUSH / POP are conventional aliases for STMDB SP! / LDMIA SP! .PUSH = { - {.PUSH, {.GPR_LIST, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE}, 0x092D0000, 0x0FFF0000, .BASE, .A32, {}}, + {.PUSH, {.GPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x092D0000, 0x0FFF0000, .BASE, .A32, {}, {}}, // T16 Format 14 PUSH: 1011010 R reg_list8 (R bit selects LR included) - {.PUSH, {.GPR_LIST, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE}, 0x0000B400, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.PUSH, {.GPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000B400, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 PUSH (STMDB SP!, reglist): 0xE92D0000 - {.PUSH, {.GPR_LIST, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE}, 0xE92D0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.PUSH, {.GPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE92D0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .POP = { - {.POP, {.GPR_LIST, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE}, 0x08BD0000, 0x0FFF0000, .BASE, .A32, {}}, + {.POP, {.GPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x08BD0000, 0x0FFF0000, .BASE, .A32, {}, {}}, // T16 Format 14 POP: 1011110 R reg_list8 (R bit selects PC included) - {.POP, {.GPR_LIST, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE}, 0x0000BC00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}}, + {.POP, {.GPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000BC00, 0x0000FE00, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 POP (LDMIA SP!, reglist): 0xE8BD0000 - {.POP, {.GPR_LIST, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE}, 0xE8BD0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.POP, {.GPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.A32_REG_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE8BD0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // SWP / SWPB (deprecated since ARMv6) - .SWP = { {.SWP, {.GPR, .GPR, .GPR, .NONE}, {.RT_A32, .RM_A32, .RN_A32, .NONE}, 0x01000090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}} }, - .SWPB = { {.SWPB, {.GPR, .GPR, .GPR, .NONE}, {.RT_A32, .RM_A32, .RN_A32, .NONE}, 0x01400090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}} }, + .SWP = { {.SWP, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RT_A32, .RM_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01000090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}, {}} }, + .SWPB = { {.SWPB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RT_A32, .RM_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01400090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}, {}} }, // RFE / SRS (return-from-exception / store return state) - .RFE = { - // 1111 100 P U 0 W 1 Rn 0000 1010 0000 0000 - {.RFE, {.GPR, .NONE, .NONE, .NONE}, {.RN_A32, .NONE, .NONE, .NONE}, 0xF8100A00, 0xFE10FFFF, .V6, .A32, {cond_in_28=false}}, + // 1111 100 P U 0 W 1 Rn 0000 1010 0000 0000 + .RFEDA = { + {.RFEDA, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF8100A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + {.RFEDA, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF8300A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, }, - .SRS = { - // 1111 100 P U 1 W 0 1101 0000 0101 000 mode4 - {.SRS, {.IMM, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF84D0500, 0xFE5FFFE0, .V6, .A32, {cond_in_28=false}}, + .RFEDB = { + {.RFEDB, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF9100A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + {.RFEDB, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF9300A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + }, + .RFEIA = { + {.RFEIA, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF8900A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + {.RFEIA, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF8B00A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + }, + .RFEIB = { + {.RFEIB, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF9900A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + {.RFEIB, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF9B00A00, 0xFFF0FFFF, .V6, .A32, {cond_in_28=false}, {}}, + }, + // 1111 100 P U 1 W 0 1101 0000 0101 000 mode4 + .SRSDA = { + {.SRSDA, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF84D0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + {.SRSDA, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF86D0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + }, + .SRSDB = { + {.SRSDB, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF94D0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + {.SRSDB, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF96D0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + }, + .SRSIA = { + {.SRSIA, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF8CD0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + {.SRSIA, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF8ED0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + }, + .SRSIB = { + {.SRSIB, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF9CD0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, + {.SRSIB, {.GPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.IMPL_SP, .MODE_IMM5, .NONE, .NONE, .NONE, .NONE}, 0xF9ED0500, 0xFFFFFFE0, .V6, .A32, {cond_in_28=false}, {}}, }, // ========================================================================= @@ -1182,94 +1195,138 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // LDREX family (ARMv6K+, then ARMv7 added all widths) .LDREX = { - {.LDREX, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01900F9F, 0x0FF00FFF, .V6K, .A32, {}}, + {.LDREX, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01900F9F, 0x0FF00FFF, .V6K, .A32, {}, {}}, // T32 LDREX: high=11101000 0101 Rn low=Rt 1111 imm8 - {.LDREX, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .RN_T32, .NONE, .NONE}, 0xE8500F00, 0xFFF00F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDREX, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE8500F00, 0xFFF00F00, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STREX = { - {.STREX, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01800F90, 0x0FF00FF0, .V6K, .A32, {}}, + {.STREX, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01800F90, 0x0FF00FF0, .V6K, .A32, {}, {}}, // T32 STREX: high=11101000 0100 Rn low=Rt Rd imm8 - {.STREX, {.GPR, .GPR, .MEM, .NONE}, {.RD_T32, .RT_T32, .RN_T32, .NONE}, 0xE8400000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STREX, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD_T32, .RT_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xE8400000, 0xFFF00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDREXB = { - {.LDREXB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01D00F9F, 0x0FF00FFF, .V6K, .A32, {}}, + {.LDREXB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01D00F9F, 0x0FF00FFF, .V6K, .A32, {}, {}}, // T32 LDREXB: high=11101000 1101 Rn low=Rt 1111 0100 1111 - {.LDREXB, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .RN_T32, .NONE, .NONE}, 0xE8D00F4F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDREXB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE8D00F4F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STREXB = { - {.STREXB, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01C00F90, 0x0FF00FF0, .V6K, .A32, {}}, + {.STREXB, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01C00F90, 0x0FF00FF0, .V6K, .A32, {}, {}}, // T32 STREXB: high=11101000 1100 Rn low=Rt 1111 0100 Rd - {.STREXB, {.GPR, .GPR, .MEM, .NONE}, {.RD_T32, .RT_T32, .RN_T32, .NONE}, 0xE8C00F40, 0xFFF00FF0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STREXB, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD_T32, .RT_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xE8C00F40, 0xFFF00FF0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDREXH = { - {.LDREXH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01F00F9F, 0x0FF00FFF, .V6K, .A32, {}}, - {.LDREXH, {.GPR, .MEM, .NONE, .NONE}, {.RT_T32, .RN_T32, .NONE, .NONE}, 0xE8D00F5F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDREXH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01F00F9F, 0x0FF00FFF, .V6K, .A32, {}, {}}, + {.LDREXH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE8D00F5F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STREXH = { - {.STREXH, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01E00F90, 0x0FF00FF0, .V6K, .A32, {}}, - {.STREXH, {.GPR, .GPR, .MEM, .NONE}, {.RD_T32, .RT_T32, .RN_T32, .NONE}, 0xE8C00F50, 0xFFF00FF0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STREXH, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01E00F90, 0x0FF00FF0, .V6K, .A32, {}, {}}, + {.STREXH, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD_T32, .RT_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xE8C00F50, 0xFFF00FF0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LDREXD = { - {.LDREXD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01B00F9F, 0x0FF00FFF, .V6K, .A32, {}}, + {.LDREXD, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01B00F9F, 0x0FF00FFF, .V6K, .A32, {}, {}}, // T32 LDREXD: high=11101000 1101 Rn low=Rt Rt2 0111 1111 - {.LDREXD, {.GPR, .GPR, .MEM, .NONE}, {.RT_T32, .RT2_T32, .RN_T32, .NONE}, 0xE8D0007F, 0xFFF000FF, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LDREXD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RT_T32, .RT2_T32, .RN_T32, .NONE, .NONE, .NONE}, 0xE8D0007F, 0xFFF000FF, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .STREXD = { - {.STREXD, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01A00F90, 0x0FF00FF0, .V6K, .A32, {}}, + {.STREXD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01A00F90, 0x0FF00FF0, .V6K, .A32, {}, {}}, // T32 STREXD: high=11101000 1100 Rn low=Rt Rt2 0111 Rd - {.STREXD, {.GPR, .GPR, .GPR, .MEM}, {.RD_T32, .RT_T32, .RT2_T32, .RN_T32}, 0xE8C00070, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.STREXD, {.GPR, .GPR, .GPR, .MEM, .NONE, .NONE}, {.RD_T32, .RT_T32, .RT2_T32, .RN_T32, .NONE, .NONE}, 0xE8C00070, 0xFFF000F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ARMv8 acquire/release (LDA/STL family, exclusive too) - .LDA = { {.LDA, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01900C9F, 0x0FF00FFF, .V8, .A32, {}} }, + .LDA = { {.LDA, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01900C9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, // STL/STLB/STLH: per ARMv8 ARM, Rt is at bits 3:0 (NOT 15:12); bits 15:12 are // 0xF fixed. Use RM_A32 enc for Rt to place it correctly. - .STL = { {.STL, {.GPR, .MEM, .NONE, .NONE}, {.RM_A32, .RN_A32, .NONE, .NONE}, 0x0180FC90, 0x0FF0FFF0, .V8, .A32, {}} }, - .LDAB = { {.LDAB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01D00C9F, 0x0FF00FFF, .V8, .A32, {}} }, - .STLB = { {.STLB, {.GPR, .MEM, .NONE, .NONE}, {.RM_A32, .RN_A32, .NONE, .NONE}, 0x01C0FC90, 0x0FF0FFF0, .V8, .A32, {}} }, - .LDAH = { {.LDAH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01F00C9F, 0x0FF00FFF, .V8, .A32, {}} }, - .STLH = { {.STLH, {.GPR, .MEM, .NONE, .NONE}, {.RM_A32, .RN_A32, .NONE, .NONE}, 0x01E0FC90, 0x0FF0FFF0, .V8, .A32, {}} }, - .LDAEX = { {.LDAEX, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01900E9F, 0x0FF00FFF, .V8, .A32, {}} }, - .STLEX = { {.STLEX, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01800E90, 0x0FF00FF0, .V8, .A32, {}} }, - .LDAEXB = { {.LDAEXB, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01D00E9F, 0x0FF00FFF, .V8, .A32, {}} }, - .STLEXB = { {.STLEXB, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01C00E90, 0x0FF00FF0, .V8, .A32, {}} }, - .LDAEXH = { {.LDAEXH, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01F00E9F, 0x0FF00FFF, .V8, .A32, {}} }, - .STLEXH = { {.STLEXH, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01E00E90, 0x0FF00FF0, .V8, .A32, {}} }, - .LDAEXD = { {.LDAEXD, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE}, 0x01B00E9F, 0x0FF00FFF, .V8, .A32, {}} }, - .STLEXD = { {.STLEXD, {.GPR, .GPR, .MEM, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE}, 0x01A00E90, 0x0FF00FF0, .V8, .A32, {}} }, + .STL = { {.STL, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RM_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x0180FC90, 0x0FF0FFF0, .V8, .A32, {}, {}} }, + .LDAB = { {.LDAB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01D00C9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, + .STLB = { {.STLB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RM_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01C0FC90, 0x0FF0FFF0, .V8, .A32, {}, {}} }, + .LDAH = { {.LDAH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01F00C9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, + .STLH = { {.STLH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RM_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01E0FC90, 0x0FF0FFF0, .V8, .A32, {}, {}} }, + .LDAEX = { {.LDAEX, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01900E9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, + .STLEX = { {.STLEX, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01800E90, 0x0FF00FF0, .V8, .A32, {}, {}} }, + .LDAEXB = { {.LDAEXB, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01D00E9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, + .STLEXB = { {.STLEXB, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01C00E90, 0x0FF00FF0, .V8, .A32, {}, {}} }, + .LDAEXH = { {.LDAEXH, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01F00E9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, + .STLEXH = { {.STLEXH, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01E00E90, 0x0FF00FF0, .V8, .A32, {}, {}} }, + .LDAEXD = { {.LDAEXD, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0x01B00E9F, 0x0FF00FFF, .V8, .A32, {}, {}} }, + .STLEXD = { {.STLEXD, {.GPR, .GPR, .MEM, .NONE, .NONE, .NONE}, {.RD, .RT_A32, .RN_A32, .NONE, .NONE, .NONE}, 0x01A00E90, 0x0FF00FF0, .V8, .A32, {}, {}} }, // ========================================================================= // §8 -- Coprocessor + CRC32 + Crypto // ========================================================================= // CDP / CDP2: cond 1110 opc1 CRn CRd cp_num opc2 0 CRm - .CDP = { {.CDP, {.COPROC_NUM, .IMM_COPROC_OP, .COPROC_REG, .COPROC_REG}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD}, 0x0E000000, 0x0F000010, .BASE, .A32, {}} }, - .CDP2 = { {.CDP2, {.COPROC_NUM, .IMM_COPROC_OP, .COPROC_REG, .COPROC_REG}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD}, 0xFE000000, 0xFF000010, .V5T, .A32, {cond_in_28=false}} }, + // Written `cdp p1, #2, c3, c4, c5, #6` -- coproc, opc1, CRd, CRn, CRm, + // opc2. CRd is bits 15:12; CRn, at 19:16, is a different operand. + .CDP = { {.CDP, {.COPROC_NUM, .IMM_COPROC_OP, .COPROC_REG, .COPROC_REG, .COPROC_REG, .IMM_COPROC_OP}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .COPROC_CRD_FIELD, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD, .COPROC_OPC2_FIELD}, 0x0E000000, 0x0F000010, .BASE, .A32, {}, {}} }, + .CDP2 = { {.CDP2, {.COPROC_NUM, .IMM_COPROC_OP, .COPROC_REG, .COPROC_REG, .COPROC_REG, .IMM_COPROC_OP}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .COPROC_CRD_FIELD, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD, .COPROC_OPC2_FIELD}, 0xFE000000, 0xFF000010, .V5T, .A32, {cond_in_28=false}, {}} }, // MCR / MCR2 / MRC / MRC2: cond 1110 opc1 L CRn Rt cp_num opc2 1 CRm - .MCR = { {.MCR, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .RT_A32, .COPROC_CRM_FIELD}, 0x0E000010, 0x0F100010, .BASE, .A32, {}} }, - .MCR2 = { {.MCR2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .RT_A32, .COPROC_CRM_FIELD}, 0xFE000010, 0xFF100010, .V5T, .A32, {cond_in_28=false}} }, - .MRC = { {.MRC, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .RT_A32, .COPROC_CRM_FIELD}, 0x0E100010, 0x0F100010, .BASE, .A32, {}} }, - .MRC2 = { {.MRC2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG}, {.COPROC_NUM_FIELD, .COPROC_OPC1_FIELD, .RT_A32, .COPROC_CRM_FIELD}, 0xFE100010, 0xFF100010, .V5T, .A32, {cond_in_28=false}} }, - // MCRR / MCRR2 / MRRC / MRRC2: cond 1100 010 0/1 Rt2 Rt cp_num opc CRm - .MCRR = { {.MCRR, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32}, 0x0C400000, 0x0FF00000, .V6, .A32, {}} }, - .MCRR2 = { {.MCRR2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32}, 0xFC400000, 0xFFF00000, .V6, .A32, {cond_in_28=false}} }, - .MRRC = { {.MRRC, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32}, 0x0C500000, 0x0FF00000, .V6, .A32, {}} }, - .MRRC2 = { {.MRRC2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32}, 0xFC500000, 0xFFF00000, .V6, .A32, {cond_in_28=false}} }, - // LDC / STC: cond 110 P U N W L Rn CRd cp_num imm8 - .LDC = { {.LDC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRN_FIELD, .MEM_IMM8_OFFSET, .NONE}, 0x0C100000, 0x0F100000, .BASE, .A32, {}} }, - .LDC2 = { {.LDC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRN_FIELD, .MEM_IMM8_OFFSET, .NONE}, 0xFC100000, 0xFF100000, .V5T, .A32, {cond_in_28=false}} }, - .STC = { {.STC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRN_FIELD, .MEM_IMM8_OFFSET, .NONE}, 0x0C000000, 0x0F100000, .BASE, .A32, {}} }, - .STC2 = { {.STC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRN_FIELD, .MEM_IMM8_OFFSET, .NONE}, 0xFC000000, 0xFF100000, .V5T, .A32, {cond_in_28=false}} }, + // opc1 is three bits here, at 23:21, not the four CDP gets. + .MCR = { {.MCR, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG, .COPROC_REG, .IMM_COPROC_OP}, {.COPROC_NUM_FIELD, .COPROC_OPC1_MCR, .RT_A32, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD, .COPROC_OPC2_FIELD}, 0x0E000010, 0x0F100010, .BASE, .A32, {}, {}} }, + .MCR2 = { {.MCR2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG, .COPROC_REG, .IMM_COPROC_OP}, {.COPROC_NUM_FIELD, .COPROC_OPC1_MCR, .RT_A32, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD, .COPROC_OPC2_FIELD}, 0xFE000010, 0xFF100010, .V5T, .A32, {cond_in_28=false}, {}} }, + .MRC = { {.MRC, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG, .COPROC_REG, .IMM_COPROC_OP}, {.COPROC_NUM_FIELD, .COPROC_OPC1_MCR, .RT_A32, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD, .COPROC_OPC2_FIELD}, 0x0E100010, 0x0F100010, .BASE, .A32, {}, {}} }, + .MRC2 = { {.MRC2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .COPROC_REG, .COPROC_REG, .IMM_COPROC_OP}, {.COPROC_NUM_FIELD, .COPROC_OPC1_MCR, .RT_A32, .COPROC_CRN_FIELD, .COPROC_CRM_FIELD, .COPROC_OPC2_FIELD}, 0xFE100010, 0xFF100010, .V5T, .A32, {cond_in_28=false}, {}} }, + // MCRR / MCRR2 / MRRC / MRRC2: cond 1100 010 L Rt2 Rt cp_num opc1 CRm + .MCRR = { {.MCRR, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR, .COPROC_REG, .NONE}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32, .COPROC_CRM_FIELD, .NONE}, 0x0C400000, 0x0FF00000, .V6, .A32, {}, {}} }, + .MCRR2 = { {.MCRR2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR, .COPROC_REG, .NONE}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32, .COPROC_CRM_FIELD, .NONE}, 0xFC400000, 0xFFF00000, .V6, .A32, {cond_in_28=false}, {}} }, + .MRRC = { {.MRRC, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR, .COPROC_REG, .NONE}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32, .COPROC_CRM_FIELD, .NONE}, 0x0C500000, 0x0FF00000, .V6, .A32, {}, {}} }, + .MRRC2 = { {.MRRC2, {.COPROC_NUM, .IMM_COPROC_OP, .GPR, .GPR, .COPROC_REG, .NONE}, {.COPROC_NUM_FIELD, .COPROC_OPC_MCRR, .RT_A32, .RT2_A32, .COPROC_CRM_FIELD, .NONE}, 0xFC500000, 0xFFF00000, .V6, .A32, {cond_in_28=false}, {}} }, + // LDC / STC: cond 110 P U N W L Rn CRd cp_num imm8. CRd is bits 15:12; + // bits 19:16 are the base register. The offset counts words, so the + // eight bits reach 1020. N asks the coprocessor for the long + // transfer, which the syntax spells as an L on the mnemonic. U is the + // offset's sign and belongs to the memory operand, so it stays out of + // the mask; P, N, W and L pick the form and must be in it. + .LDC = { + {.LDC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0x0D100000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0x0D300000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0x0C300000, 0x0F700000, .BASE, .A32, {}, {}}, + }, + .LDCL = { + {.LDCL, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0x0D500000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDCL, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0x0D700000, 0x0F700000, .BASE, .A32, {}, {}}, + {.LDCL, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0x0C700000, 0x0F700000, .BASE, .A32, {}, {}}, + }, + .LDC2 = { + {.LDC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0xFD100000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.LDC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0xFD300000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.LDC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0xFC300000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + }, + .LDC2L = { + {.LDC2L, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0xFD500000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.LDC2L, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0xFD700000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.LDC2L, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0xFC700000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + }, + .STC = { + {.STC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0x0D000000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0x0D200000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STC, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0x0C200000, 0x0F700000, .BASE, .A32, {}, {}}, + }, + .STCL = { + {.STCL, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0x0D400000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STCL, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0x0D600000, 0x0F700000, .BASE, .A32, {}, {}}, + {.STCL, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0x0C600000, 0x0F700000, .BASE, .A32, {}, {}}, + }, + .STC2 = { + {.STC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0xFD000000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.STC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0xFD200000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.STC2, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0xFC200000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + }, + .STC2L = { + {.STC2L, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE}, 0xFD400000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.STC2L, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_PRE, .NONE, .NONE, .NONE}, 0xFD600000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + {.STC2L, {.COPROC_NUM, .COPROC_REG, .MEM, .NONE, .NONE, .NONE}, {.COPROC_NUM_FIELD, .COPROC_CRD_FIELD, .MEM_IMM8_SCALED4_POST, .NONE, .NONE, .NONE}, 0xFC600000, 0xFF700000, .V5T, .A32, {cond_in_28=false}, {}}, + }, // ARMv8 CRC32 family // cond 0001 0 sz 0 Rn Rd 0000 0 0 1 0 0 Rm sz=00 byte / 01 half / 10 word // bit 9 selects CRC32 (0) vs CRC32C (1). - .CRC32B = { {.CRC32B, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01000040, 0x0FF00FF0, .CRC32, .A32, {}} }, - .CRC32H = { {.CRC32H, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01200040, 0x0FF00FF0, .CRC32, .A32, {}} }, - .CRC32W = { {.CRC32W, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01400040, 0x0FF00FF0, .CRC32, .A32, {}} }, - .CRC32CB = { {.CRC32CB, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01000240, 0x0FF00FF0, .CRC32, .A32, {}} }, - .CRC32CH = { {.CRC32CH, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01200240, 0x0FF00FF0, .CRC32, .A32, {}} }, - .CRC32CW = { {.CRC32CW, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE}, 0x01400240, 0x0FF00FF0, .CRC32, .A32, {}} }, + .CRC32B = { {.CRC32B, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0xE1000040, 0xFFF00FF0, .CRC32, .A32, {cond_in_28=false}, {}} }, + .CRC32H = { {.CRC32H, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0xE1200040, 0xFFF00FF0, .CRC32, .A32, {cond_in_28=false}, {}} }, + .CRC32W = { {.CRC32W, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0xE1400040, 0xFFF00FF0, .CRC32, .A32, {cond_in_28=false}, {}} }, + .CRC32CB = { {.CRC32CB, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0xE1000240, 0xFFF00FF0, .CRC32, .A32, {cond_in_28=false}, {}} }, + .CRC32CH = { {.CRC32CH, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0xE1200240, 0xFFF00FF0, .CRC32, .A32, {cond_in_28=false}, {}} }, + .CRC32CW = { {.CRC32CW, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RN_A32, .RM_A32, .NONE, .NONE, .NONE}, 0xE1400240, 0xFFF00FF0, .CRC32, .A32, {cond_in_28=false}, {}} }, // ========================================================================= @@ -1302,116 +1359,122 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // forms. The matcher dispatches on operand types. .VADD = { // VFP scalar - {.VADD, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E300A00, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VADD, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E300A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar (FEAT_FP16): cp=1001 - {.VADD, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E300900, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VADD, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E300900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON F16 vector: 1111 0010 0 D 1 0 Vn Vd 1101 N Q M 0 Vm (bit 4 = 0 for VADD) - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, // NEON integer (D-reg), size = 00/01/10/11 - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2300800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2300800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, // NEON integer (Q-reg) - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, // NEON F32 (D and Q) - {.VADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE integer: Q-only, T32, 1110 1111 0 0 sz Qn Qd 1000 N 1 M 0 Qm - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000840, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000840, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, // MVE FP: 1110 1111 0 0 sz Qn Qd 1101 N 1 M 1 Qm - {.VADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, // MVE scalar Rm (Qd, Qn, Rt): per LLVM vadd.i8 q1,q2,r3 = 0xEE05_2F43 -> base 0xEE010F40 - {.VADD, {.QPR, .QPR, .GPR, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE}, 0xEE010F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VADD, {.QPR, .QPR, .GPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE, .NONE, .NONE}, 0xEE010F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, }, .VSUB = { // VFP scalar - {.VSUB, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VSUB, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VSUB, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E300940, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VSUB, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E300940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON F16 (bit 4 = 0 for VSUB; bit 21 = 1 selects sub) - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2300D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2300D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, // NEON integer (D-reg) - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3300800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3300800, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, // NEON integer (Q-reg) - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3300840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3300840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, // NEON F32 (D and Q) - {.VSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE integer / FP / scalar - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFF000840, 0xFF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - {.VSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF200D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFF000840, 0xFF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, + {.VSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF200D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, // VSUB MVE scalar: per LLVM 0xEE05_3F43 -> base 0xEE011F40 - {.VSUB, {.QPR, .QPR, .GPR, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE}, 0xEE011F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSUB, {.QPR, .QPR, .GPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE, .NONE, .NONE}, 0xEE011F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, }, // (VMUL/VMLA/VMLS are declared further below with both VFP scalar and // NEON vector forms in a single block.) .VDIV = { - {.VDIV, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E800A00, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VDIV, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E800B00, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VDIV, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E800A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VDIV, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E800B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VDIV, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E800900, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VDIV, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E800900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, }, .VNMUL = { - {.VNMUL, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E200A40, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VNMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E200B40, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VNMUL, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E200A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VNMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E200B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, }, .VNMLS = { - {.VNMLS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E100A00, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VNMLS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E100B00, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VNMLS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E100A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VNMLS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E100B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, }, .VNMLA = { - {.VNMLA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E100A40, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VNMLA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E100B40, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VNMLA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E100A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VNMLA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E100B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, }, // VFPv4 fused multiply-add .VFMA = { - {.VFMA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0EA00A00, 0x0FB00B50, .VFPV4, .A32, {}}, - {.VFMA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0EA00B00, 0x0FB00B50, .VFPV4, .A32, {}}, + {.VFMA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0EA00A00, 0x0FB00B50, .VFPV4, .A32, {}, {.F32, .NONE}}, + {.VFMA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0EA00B00, 0x0FB00B50, .VFPV4, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VFMA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0EA00900, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VFMA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0EA00900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON F32: 1111 0010 0 D 0 0 Vn Vd 1100 N Q M 1 Vm - {.VFMA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VFMA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VFMA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VFMA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE FP vector + scalar - {.VFMA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, - {.VFMA, {.QPR, .QPR, .GPR, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE}, 0xEE310E40, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VFMA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, + {.VFMA, {.QPR, .QPR, .GPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE, .NONE, .NONE}, 0xEE310E40, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, + }, + .VFMAB = { + {.VFMAB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC300810, 0xFFB00F70, .BF16, .A32, {cond_in_28=false}, {.BF16, .NONE}}, + }, + .VFMAT = { + {.VFMAT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC300850, 0xFFB00F70, .BF16, .A32, {cond_in_28=false}, {.BF16, .NONE}}, }, .VFMS = { - {.VFMS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0EA00A40, 0x0FB00B50, .VFPV4, .A32, {}}, - {.VFMS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0EA00B40, 0x0FB00B50, .VFPV4, .A32, {}}, + {.VFMS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0EA00A40, 0x0FB00B50, .VFPV4, .A32, {}, {.F32, .NONE}}, + {.VFMS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0EA00B40, 0x0FB00B50, .VFPV4, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VFMS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0EA00940, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VFMS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0EA00940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON F32 (bit 21 = 1) - {.VFMS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200C10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VFMS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200C50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VFMS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200C10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VFMS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200C50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE FP vector - {.VFMS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF200C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VFMS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF200C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VFNMS = { - {.VFNMS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E900A00, 0x0FB00B50, .VFPV4, .A32, {}}, - {.VFNMS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E900B00, 0x0FB00B50, .VFPV4, .A32, {}}, + {.VFNMS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E900A00, 0x0FB00B50, .VFPV4, .A32, {}, {.F32, .NONE}}, + {.VFNMS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E900B00, 0x0FB00B50, .VFPV4, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VFNMS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E900900, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VFNMS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E900900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, }, .VFNMA = { - {.VFNMA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E900A40, 0x0FB00B50, .VFPV4, .A32, {}}, - {.VFNMA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E900B40, 0x0FB00B50, .VFPV4, .A32, {}}, + {.VFNMA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E900A40, 0x0FB00B50, .VFPV4, .A32, {}, {.F32, .NONE}}, + {.VFNMA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E900B40, 0x0FB00B50, .VFPV4, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VFNMA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E900940, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VFNMA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E900940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, }, // ---- 2-operand unary FP (opc1=1011 op2=xxxx) ---- @@ -1419,27 +1482,27 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // opc2 (bits 19:16): 0000 VMOV, 0001 VNEG, 0010 VSQRT, etc. // (VABS / VNEG: VFP scalar + NEON forms declared together further below.) .VSQRT = { - {.VSQRT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB10AC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VSQRT, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB10BC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VSQRT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB10AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VSQRT, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB10BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar (cp=1001) - {.VSQRT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB109C0, 0x0FBF0FD0, .HALF_FP, .A32, {}}, + {.VSQRT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB109C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16, .NONE}}, }, // VMOV reg-reg (opc2=0000, op=0) .VMOV = { - {.VMOV, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB00A40, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VMOV, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB00B40, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VMOV, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB00A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VMOV, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB00B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .NONE}}, // VMOV imm (opc1=1011 opc2=0000 op=0, imm in (19:16)+(3:0) split) - {.VMOV, {.SPR, .IMM8, .NONE, .NONE}, {.VD_S, .VFP_IMM8, .NONE, .NONE}, 0x0EB00A00, 0x0FB00FF0, .VFPV3, .A32, {}}, - {.VMOV, {.DPR, .IMM8, .NONE, .NONE}, {.VD_D, .VFP_IMM8, .NONE, .NONE}, 0x0EB00B00, 0x0FB00FF0, .VFPV3, .A32, {}}, + {.VMOV, {.SPR, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VFP_IMM8, .NONE, .NONE, .NONE, .NONE}, 0x0EB00A00, 0x0FB00FF0, .VFPV3, .A32, {}, {.F32, .NONE}}, + {.VMOV, {.DPR, .IMM8, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VFP_IMM8, .NONE, .NONE, .NONE, .NONE}, 0x0EB00B00, 0x0FB00FF0, .VFPV3, .A32, {}, {.F64, .NONE}}, // VMOV GPR <-> S reg: cond 1110 000 op L Vn Rt 1010 N 0010000 - {.VMOV, {.SPR, .GPR, .NONE, .NONE}, {.VN_S, .RT_A32, .NONE, .NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {}}, - {.VMOV, {.GPR, .SPR, .NONE, .NONE}, {.RT_A32, .VN_S, .NONE, .NONE}, 0x0E100A10, 0x0FF00F7F, .VFPV2, .A32, {}}, + {.VMOV, {.SPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VN_S, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {}, {}}, + {.VMOV, {.GPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .VN_S, .NONE, .NONE, .NONE, .NONE}, 0x0E100A10, 0x0FF00F7F, .VFPV2, .A32, {}, {}}, // VMOV two GPRs <-> D reg (VMOV Rt, Rt2, Dm) - {.VMOV, {.GPR, .GPR, .DPR, .NONE}, {.RT_A32, .RT2_A32, .VM_D, .NONE}, 0x0C500B10, 0x0FF00FD0, .VFPV2, .A32, {}}, - {.VMOV, {.DPR, .GPR, .GPR, .NONE}, {.VM_D, .RT_A32, .RT2_A32, .NONE}, 0x0C400B10, 0x0FF00FD0, .VFPV2, .A32, {}}, + {.VMOV, {.GPR, .GPR, .DPR, .NONE, .NONE, .NONE}, {.RT_A32, .RT2_A32, .VM_D, .NONE, .NONE, .NONE}, 0x0C500B10, 0x0FF00FD0, .VFPV2, .A32, {}, {}}, + {.VMOV, {.DPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.VM_D, .RT_A32, .RT2_A32, .NONE, .NONE, .NONE}, 0x0C400B10, 0x0FF00FD0, .VFPV2, .A32, {}, {}}, // VMOV two GPRs <-> two consecutive S regs - {.VMOV, {.GPR, .GPR, .SPR, .SPR}, {.RT_A32, .RT2_A32, .VM_S, .NONE}, 0x0C500A10, 0x0FF00FD0, .VFPV2, .A32, {}}, - {.VMOV, {.SPR, .SPR, .GPR, .GPR}, {.VM_S, .NONE, .RT_A32, .RT2_A32}, 0x0C400A10, 0x0FF00FD0, .VFPV2, .A32, {}}, + {.VMOV, {.GPR, .GPR, .SPR, .SPR, .NONE, .NONE}, {.RT_A32, .RT2_A32, .VM_S, .VM_S_PLUS1, .NONE, .NONE}, 0x0C500A10, 0x0FF00FD0, .VFPV2, .A32, {}, {}}, + {.VMOV, {.SPR, .SPR, .GPR, .GPR, .NONE, .NONE}, {.VM_S, .VM_S_PLUS1, .RT_A32, .RT2_A32, .NONE, .NONE}, 0x0C400A10, 0x0FF00FD0, .VFPV2, .A32, {}, {}}, // ---- VMOV NEON modified immediate ---- // 1111 0010 1 D 000 imm3 Vd cmode 0 Q op 1 imm4 (op=0 VMOV, op=1 VMVN) // cmode mappings (8 forms when op=0): @@ -1454,73 +1517,97 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // 1110 .I8 → 0xF2800E10 // 1111 .F32 (special: high bit = 0) → 0xF2800F10 (limited to specific imm patterns) // 1110 op=1 + bit 5 set → .I64 → 0xF2800E30 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800010, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=0000 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800210, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=0010 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800410, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=0100 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800610, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=0110 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800810, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I16 cmode=1000 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800A10, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I16 cmode=1010 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800C10, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=1100 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800D10, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=1101 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800E10, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I8 cmode=1110 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800F10, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .F32 cmode=1111 - {.VMOV, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800E30, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I64 (op=0+bit5=1) + // One register and a modified immediate: the cmode picks how the + // eight-bit field expands, and op tells VMOV from VMVN. + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800010, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800050, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800210, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800250, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800410, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800450, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800610, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800650, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800810, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800850, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800A10, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800A50, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800C10, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800C50, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800D10, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800D50, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800E10, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800E50, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800F10, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800F50, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMOV, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800E30, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, + {.VMOV, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800E70, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, // Q forms (Q=1, bit 6 = 1) - {.VMOV, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800050, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, // .I32 Q - {.VMOV, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800850, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, // .I16 Q - {.VMOV, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800E50, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, // .I8 Q - {.VMOV, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800F50, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, // .F32 Q - {.VMOV, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800E70, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, // .I64 Q // ---- VMOV scalar to/from GPR (lane access) ---- // VMOV. Rt, Dn[idx]: cond 1110 U opc1 1 Vn Rt 1011 N opc2 1 0000 // VMOV. Dn[idx], Rt: cond 1110 0 opc1 0 Vn Rt 1011 N opc2 1 0000 // .8 / .16 / .32 selected by opc1+opc2 split bits in encoding. // 32-bit lane move (.32): - {.VMOV, {.GPR, .DPR_ELEM, .NONE, .NONE}, {.RT_A32, .VN_D, .NONE, .NONE}, 0x0E100B10, 0x0F100F1F, .NEON, .A32, {}}, - {.VMOV, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VN_D, .RT_A32, .NONE, .NONE}, 0x0E000B10, 0x0F100F1F, .NEON, .A32, {}}, + {.VMOV, {.GPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .NEON_LANE_VN_32, .NONE, .NONE, .NONE, .NONE}, 0x0E100B10, 0x0F100F1F, .NEON, .A32, {}, {.SZ32, .NONE}}, + // VMOV. Qd[i], Rt -- single lane Rt -> Qd[i] + {.VMOV, {.QPR_ELEM, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .RT_T32, .NONE, .NONE, .NONE, .NONE}, 0xEE000B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ32, .NONE}}, + // VMOV. Rt, Qd[i] + {.VMOV, {.GPR, .QPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.RT_T32, .VD_Q, .NONE, .NONE, .NONE, .NONE}, 0xEE100B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ32, .NONE}}, + // VMOV Qd[2*i], Qd[2*i+1], Rt, Rt2 -- pair move + {.VMOV, {.QPR_ELEM, .QPR_ELEM, .GPR, .GPR, .NONE, .NONE}, {.VD_Q, .VD_Q, .RT_T32, .RT2_T32, .NONE, .NONE}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VMOV, {.DPR_ELEM, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VMOV_LANE_8, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {}, {.SZ8, .NONE}}, + {.VMOV, {.DPR_ELEM, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VMOV_LANE_16, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {}, {.SZ16, .NONE}}, + {.VMOV, {.DPR_ELEM, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VMOV_LANE_32, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {}, {.SZ32, .NONE}}, }, // ---- VMVN NEON modified immediate (op=1 form) ---- // bit 5 = 1 distinguishes VMVN from VMOV .VMVN = { - {.VMVN, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VMVN, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {}}, + {.VMVN, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {}}, // VMVN immediate: 1111 0010 1 D 000 imm3 Vd cmode 0 Q 1 1 imm4 (op=1) - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800030, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I32 cmode=0000 - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800230, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800430, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800630, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800830, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, // .I16 cmode=1000 - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800A30, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800C30, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.DPR, .IMM, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0xF2800D30, 0xFEB80F90, .NEON, .A32, {cond_in_28=false}}, + // One register and a modified immediate: the cmode picks how the + // eight-bit field expands, and op tells VMOV from VMVN. + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800030, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800070, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800230, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800270, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800430, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800470, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800630, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800670, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800830, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800870, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800A30, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800A70, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800C30, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800C70, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800D30, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMVN, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800D70, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // Q forms - {.VMVN, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800070, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, - {.VMVN, {.QPR, .IMM, .NONE, .NONE}, {.VD_Q, .NONE, .NONE, .NONE}, 0xF2800870, 0xFEB80FD0, .NEON, .A32, {cond_in_28=false}}, // MVE VMVN Qd, Qm - {.VMVN, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB005C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMVN, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB005C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // VCMP / VCMPE: cond 1110 1011 D 0100 Vd 101 sz E 1 M 0 Vm (E=1 raises invalid op on QNaN) .VCMP = { - {.VCMP, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB40A40, 0x0FBF0F50, .VFPV2, .A32, {}}, - {.VCMP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB40B40, 0x0FBF0F50, .VFPV2, .A32, {}}, + {.VCMP, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB40A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VCMP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB40B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .NONE}}, // VCMP with zero: cond 1110 1011 D 0101 Vd 101 sz E 1 (0) 0 0000 - {.VCMP, {.SPR, .NONE, .NONE, .NONE}, {.VD_S, .NONE, .NONE, .NONE}, 0x0EB50A40, 0x0FBF0FFF, .VFPV2, .A32, {}}, - {.VCMP, {.DPR, .NONE, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0x0EB50B40, 0x0FBF0FFF, .VFPV2, .A32, {}}, + {.VCMP, {.SPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .IMPL, .NONE, .NONE, .NONE, .NONE}, 0x0EB50A40, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VCMP, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .IMPL, .NONE, .NONE, .NONE, .NONE}, 0x0EB50B40, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VCMP, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB40940, 0x0FBF0F50, .HALF_FP, .A32, {}}, - {.VCMP, {.SPR, .NONE, .NONE, .NONE}, {.VD_S, .NONE, .NONE, .NONE}, 0x0EB50940, 0x0FBF0FFF, .HALF_FP, .A32, {}}, + {.VCMP, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB40940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16, .NONE}}, + {.VCMP, {.SPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .IMPL, .NONE, .NONE, .NONE, .NONE}, 0x0EB50940, 0x0FBF0FFF, .HALF_FP, .A32, {}, {.F16, .NONE}}, // MVE VCMP Qn, Qm -- writes VPR.P0. Per LLVM: // vcmp.i8 eq,q2,q3 -> 0xFE05_0F06 base 0xFE01_0F00 // vcmp.f32 eq,q2,q3 -> 0xEE35_0F06 base 0xEE31_0F00 - {.VCMP, {.QPR, .QPR, .NONE, .NONE}, {.VN_Q, .VM_Q, .NONE, .NONE}, 0xFE010F00, 0xFE818FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - {.VCMP, {.QPR, .QPR, .NONE, .NONE}, {.VN_Q, .VM_Q, .NONE, .NONE}, 0xEE310F00, 0xEFB10FF0, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VCMP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VN_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFE010F00, 0xFE818FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, + {.VCMP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VN_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEE310F00, 0xEFB10FF0, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VCMPE = { - {.VCMPE, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB40AC0, 0x0FBF0F50, .VFPV2, .A32, {}}, - {.VCMPE, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB40BC0, 0x0FBF0F50, .VFPV2, .A32, {}}, - {.VCMPE, {.SPR, .NONE, .NONE, .NONE}, {.VD_S, .NONE, .NONE, .NONE}, 0x0EB50AC0, 0x0FBF0FFF, .VFPV2, .A32, {}}, - {.VCMPE, {.DPR, .NONE, .NONE, .NONE}, {.VD_D, .NONE, .NONE, .NONE}, 0x0EB50BC0, 0x0FBF0FFF, .VFPV2, .A32, {}}, + {.VCMPE, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB40AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VCMPE, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB40BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .NONE}}, + {.VCMPE, {.SPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .IMPL, .NONE, .NONE, .NONE, .NONE}, 0x0EB50AC0, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VCMPE, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .IMPL, .NONE, .NONE, .NONE, .NONE}, 0x0EB50BC0, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F64, .NONE}}, }, // VCVT family: int<->float and float<->float @@ -1529,143 +1616,186 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // F32<->half-prec: VCVTB/VCVTT .VCVT = { // VCVT.F64.F32 Dd, Sm (cond 1110 1011 D 0111 Vd 1010 11 M 0 Vm) sz=0 (output F32)... actually inverse: - {.VCVT, {.DPR, .SPR, .NONE, .NONE}, {.VD_D, .VM_S, .NONE, .NONE}, 0x0EB70AC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.DPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB70AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .F32}}, // VCVT.F32.F64 Sd, Dm (sz=1 output F64; opc2=0111) - {.VCVT, {.SPR, .DPR, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE}, 0x0EB70BC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB70BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .F64}}, // VCVT.S32.F32 Sd, Sm (opc2=1101 op=1) - {.VCVT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBD0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EBD0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32, .F32}}, // VCVT.U32.F32 Sd, Sm (opc2=1100 op=1) - {.VCVT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBC0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EBC0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32, .F32}}, // VCVT.S32.F64 Sd, Dm - {.VCVT, {.SPR, .DPR, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE}, 0x0EBD0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EBD0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32, .F64}}, // VCVT.U32.F64 Sd, Dm - {.VCVT, {.SPR, .DPR, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE}, 0x0EBC0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EBC0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32, .F64}}, // VCVT.F32.S32 Sd, Sm (opc2=1000 op=1) - {.VCVT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB80AC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB80AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .S32}}, // VCVT.F32.U32 Sd, Sm (opc2=1000 op=0) - {.VCVT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB80A40, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB80A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .U32}}, // VCVT.F64.S32 Dd, Sm - {.VCVT, {.DPR, .SPR, .NONE, .NONE}, {.VD_D, .VM_S, .NONE, .NONE}, 0x0EB80BC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.DPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB80BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .S32}}, // VCVT.F64.U32 Dd, Sm - {.VCVT, {.DPR, .SPR, .NONE, .NONE}, {.VD_D, .VM_S, .NONE, .NONE}, 0x0EB80B40, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVT, {.DPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB80B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .U32}}, + // VCVT.BF16.F32 D, Q + // vcvt.bf16.f32 d0, q1 = 0xF3B6_0642 -> base 0xF3B60600 + {.VCVT, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {cond_in_28=false}, {.F16, .F32}}, + // VCVT between floating point and fixed point. The `sx` bit picks the + // fixed-point width -- clear for 16-bit, set for 32-bit -- and the + // number of fraction bits is that width less the imm4:i field, so a + // field of zero is the widest fraction rather than none at all. + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16, .S16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBB0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16, .U16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.S16, .F16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBF0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.U16, .F16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBA09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16, .S32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBB09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16, .U32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBE09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.S32, .F16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBF09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.U32, .F16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32, .S16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32, .U16}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S16, .F32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U16, .F32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBA0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32, .S32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBB0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32, .U32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBE0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S32, .F32}}, + {.VCVT, {.SPR, .SPR, .IMM, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBF0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U32, .F32}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64, .S16}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBB0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64, .U16}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S16, .F64}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBF0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U16, .F64}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBA0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64, .S32}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBB0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64, .U32}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBE0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S32, .F64}}, + {.VCVT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VFP_FBITS, .NONE, .NONE, .NONE}, 0x0EBF0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U32, .F64}}, }, .VCVTB = { // VCVTB.F32.F16 / .F16.F32 - {.VCVTB, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB20A40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - {.VCVTB, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB30A40, 0x0FBF0FD0, .VFPV3, .A32, {}}, + {.VCVTB, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB20A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32, .F16}}, + {.VCVTB, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB30A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F16, .F32}}, }, .VCVTT = { - {.VCVTT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB20AC0, 0x0FBF0FD0, .VFPV3, .A32, {}}, - {.VCVTT, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB30AC0, 0x0FBF0FD0, .VFPV3, .A32, {}}, + {.VCVTT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB20AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32, .F16}}, + {.VCVTT, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB30AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F16, .F32}}, }, // ARMv8: VCVTA/N/P/M (rounding-mode FP-to-int) - cond=1111 (unconditional class) .VCVTA = { - {.VCVTA, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEBC0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VCVTA, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEBC0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VCVTA, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEBC0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F32}}, + {.VCVTA, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEBC0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F64}}, }, .VCVTN = { - {.VCVTN, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEBD0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VCVTN, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEBD0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VCVTN, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEBD0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F32}}, + {.VCVTN, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEBD0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F64}}, }, .VCVTP = { - {.VCVTP, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEBE0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VCVTP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEBE0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VCVTP, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEBE0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F32}}, + {.VCVTP, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEBE0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F64}}, }, .VCVTM = { - {.VCVTM, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEBF0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VCVTM, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEBF0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VCVTM, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEBF0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F32}}, + {.VCVTM, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEBF0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.U32, .F64}}, }, // VMRS / VMSR (access FPSCR + friends as GPR) // VMRS: cond 1110 1111 0001 Rt 1010 0001 0000 (Rt=PC means transfer to APSR.NZCV) - .VMRS = { {.VMRS, {.GPR, .NONE, .NONE, .NONE}, {.RT_A32, .NONE, .NONE, .NONE}, 0x0EF10A10, 0x0FFF0FFF, .VFPV2, .A32, {}} }, - .VMSR = { {.VMSR, {.GPR, .NONE, .NONE, .NONE}, {.RT_A32, .NONE, .NONE, .NONE}, 0x0EE10A10, 0x0FFF0FFF, .VFPV2, .A32, {}} }, + .VMRS = { {.VMRS, {.GPR, .PSR_FIELD, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .VFP_SPEC_REG, .NONE, .NONE, .NONE, .NONE}, 0x0EF10A10, 0x0FF00FFF, .VFPV2, .A32, {}, {}} }, + .VMSR = { {.VMSR, {.PSR_FIELD, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VFP_SPEC_REG, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0EE10A10, 0x0FF00FFF, .VFPV2, .A32, {}, {}} }, // VLDR / VSTR (single / double): cond 1101 U D 0 1 Rn Vd 101 sz imm8 .VLDR = { - {.VLDR, {.SPR, .MEM, .NONE, .NONE}, {.VD_S, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x0D100A00, 0x0F300F00, .VFPV2, .A32, {}}, - {.VLDR, {.DPR, .MEM, .NONE, .NONE}, {.VD_D, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x0D100B00, 0x0F300F00, .VFPV2, .A32, {}}, + {.VLDR, {.SPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE, .NONE}, 0x0D100A00, 0x0F300F00, .VFPV2, .A32, {}, {}}, + {.VLDR, {.DPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE, .NONE}, 0x0D100B00, 0x0F300F00, .VFPV2, .A32, {}, {}}, }, .VSTR = { - {.VSTR, {.SPR, .MEM, .NONE, .NONE}, {.VD_S, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x0D000A00, 0x0F300F00, .VFPV2, .A32, {}}, - {.VSTR, {.DPR, .MEM, .NONE, .NONE}, {.VD_D, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0x0D000B00, 0x0F300F00, .VFPV2, .A32, {}}, + {.VSTR, {.SPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE, .NONE}, 0x0D000A00, 0x0F300F00, .VFPV2, .A32, {}, {}}, + {.VSTR, {.DPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .MEM_IMM8_SCALED4, .NONE, .NONE, .NONE, .NONE}, 0x0D000B00, 0x0F300F00, .VFPV2, .A32, {}, {}}, }, // VLDM / VSTM (multiple S or D regs): cond 110 P U D W L Rn Vd 101 sz imm8 // IA = P=0 U=1 ; DB = P=1 U=0 ; W=1 writeback; L=1 load / 0 store. - .VLDM = { - {.VLDM, {.GPR, .SPR_LIST, .NONE, .NONE}, {.RN_A32, .VFP_S_LIST, .NONE, .NONE}, 0x0C900A00, 0x0F900F00, .VFPV2, .A32, {}}, - {.VLDM, {.GPR, .DPR_LIST, .NONE, .NONE}, {.RN_A32, .VFP_D_LIST, .NONE, .NONE}, 0x0C900B00, 0x0F900F00, .VFPV2, .A32, {}}, + .VLDMIA = { + {.VLDMIA, {.GPR, .SPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_S_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0C900A00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VLDMIA, {.GPR, .DPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_D_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0C900B00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VLDMIA, {.GPR, .SPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_S_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0CB00A00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VLDMIA, {.GPR, .DPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_D_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0CB00B00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, }, - .VSTM = { - {.VSTM, {.GPR, .SPR_LIST, .NONE, .NONE}, {.RN_A32, .VFP_S_LIST, .NONE, .NONE}, 0x0C800A00, 0x0F900F00, .VFPV2, .A32, {}}, - {.VSTM, {.GPR, .DPR_LIST, .NONE, .NONE}, {.RN_A32, .VFP_D_LIST, .NONE, .NONE}, 0x0C800B00, 0x0F900F00, .VFPV2, .A32, {}}, + .VLDMDB = { + {.VLDMDB, {.GPR, .SPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_S_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0D300A00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VLDMDB, {.GPR, .DPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_D_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0D300B00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + }, + .VSTMIA = { + {.VSTMIA, {.GPR, .SPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_S_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0C800A00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VSTMIA, {.GPR, .DPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_D_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0C800B00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VSTMIA, {.GPR, .SPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_S_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0CA00A00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VSTMIA, {.GPR, .DPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_D_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0CA00B00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + }, + .VSTMDB = { + {.VSTMDB, {.GPR, .SPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_S_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0D200A00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, + {.VSTMDB, {.GPR, .DPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32_WB, .VFP_D_LIST, .NONE, .NONE, .NONE, .NONE}, 0x0D200B00, 0x0FB00F00, .VFPV2, .A32, {}, {}}, }, .VPUSH = { - {.VPUSH, {.SPR_LIST, .NONE, .NONE, .NONE}, {.VFP_S_LIST, .NONE, .NONE, .NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {}}, - {.VPUSH, {.DPR_LIST, .NONE, .NONE, .NONE}, {.VFP_D_LIST, .NONE, .NONE, .NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {}}, + {.VPUSH, {.SPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.VFP_S_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {}, {}}, + {.VPUSH, {.DPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.VFP_D_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {}, {}}, }, .VPOP = { - {.VPOP, {.SPR_LIST, .NONE, .NONE, .NONE}, {.VFP_S_LIST, .NONE, .NONE, .NONE}, 0x0CBD0A00, 0x0FFF0F00, .VFPV2, .A32, {}}, - {.VPOP, {.DPR_LIST, .NONE, .NONE, .NONE}, {.VFP_D_LIST, .NONE, .NONE, .NONE}, 0x0CBD0B00, 0x0FFF0F00, .VFPV2, .A32, {}}, + {.VPOP, {.SPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.VFP_S_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0CBD0A00, 0x0FFF0F00, .VFPV2, .A32, {}, {}}, + {.VPOP, {.DPR_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, {.VFP_D_LIST, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0CBD0B00, 0x0FFF0F00, .VFPV2, .A32, {}, {}}, }, // ARMv8 FP min/max NaN-aware (VMAXNM/VMINNM), VSEL, VRINT* .VMAXNM = { - {.VMAXNM, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {cond_in_28=false}}, - {.VMAXNM, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE800B00, 0xFFB00B50, .V8, .A32, {cond_in_28=false}}, + {.VMAXNM, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMAXNM, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFE800B00, 0xFFB00B50, .V8, .A32, {cond_in_28=false}, {.F64, .NONE}}, }, .VMINNM = { - {.VMINNM, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0xFE800A40, 0xFFB00B50, .V8, .A32, {cond_in_28=false}}, - {.VMINNM, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE800B40, 0xFFB00B50, .V8, .A32, {cond_in_28=false}}, + {.VMINNM, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0xFE800A40, 0xFFB00B50, .V8, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMINNM, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFE800B40, 0xFFB00B50, .V8, .A32, {cond_in_28=false}, {.F64, .NONE}}, }, .VSEL = { // VSEL.F32/F64 Sd, Sn, Sm -- cond field at bits 21-20 + 7 - {.VSEL, {.SPR, .SPR, .SPR, .COND}, {.VD_S, .VN_S, .VM_S, .NONE}, 0xFE000A00, 0xFF800F50, .V8, .A32, {cond_in_28=false}}, - {.VSEL, {.DPR, .DPR, .DPR, .COND}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {cond_in_28=false}}, + {.VSEL, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0xFE000A00, 0xFF800F50, .V8, .A32, {cond_in_28=false, cond_in_21=true}, {.F32, .NONE}}, + {.VSEL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {cond_in_28=false, cond_in_21=true}, {.F64, .NONE}}, }, .VRINTA = { - {.VRINTA, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEB80A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VRINTA, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEB80B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VRINTA, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEB80A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRINTA, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEB80B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F64, .NONE}}, // MVE Q-form (FEAT_MVE_FP): per LLVM `vrinta.f32 q1, q3` -> 0xFFBA_0540 - {.VRINTA, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFBA0540, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VRINTA, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFBA0540, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VRINTN = { - {.VRINTN, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEB90A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VRINTN, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEB90B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VRINTN, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEB90A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRINTN, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEB90B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F64, .NONE}}, // MVE - {.VRINTN, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFBA0440, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VRINTN, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFBA0440, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VRINTP = { - {.VRINTP, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEBA0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VRINTP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEBA0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VRINTP, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEBA0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRINTP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEBA0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F64, .NONE}}, // MVE - {.VRINTP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFBA07C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VRINTP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFBA07C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VRINTM = { - {.VRINTM, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEBB0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, - {.VRINTM, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xFEBB0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}}, + {.VRINTM, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEBB0A40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRINTM, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xFEBB0B40, 0xFFBF0FD0, .V8, .A32, {cond_in_28=false}, {.F64, .NONE}}, // MVE - {.VRINTM, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFBA06C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VRINTM, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFBA06C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VRINTR = { - {.VRINTR, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB60A40, 0x0FBF0FD0, .V8, .A32, {}}, - {.VRINTR, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB60B40, 0x0FBF0FD0, .V8, .A32, {}}, + {.VRINTR, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB60A40, 0x0FBF0FD0, .V8, .A32, {}, {.F32, .NONE}}, + {.VRINTR, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB60B40, 0x0FBF0FD0, .V8, .A32, {}, {.F64, .NONE}}, }, .VRINTZ = { - {.VRINTZ, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB60AC0, 0x0FBF0FD0, .V8, .A32, {}}, - {.VRINTZ, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB60BC0, 0x0FBF0FD0, .V8, .A32, {}}, + {.VRINTZ, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB60AC0, 0x0FBF0FD0, .V8, .A32, {}, {.F32, .NONE}}, + {.VRINTZ, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB60BC0, 0x0FBF0FD0, .V8, .A32, {}, {.F64, .NONE}}, // MVE - {.VRINTZ, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFBA05C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VRINTZ, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFBA05C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VRINTX = { - {.VRINTX, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {}}, - {.VRINTX, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {}}, + {.VRINTX, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {}, {.F32, .NONE}}, + {.VRINTX, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {}, {.F64, .NONE}}, // MVE - {.VRINTX, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFBA04C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VRINTX, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFBA04C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, // VJCVT (ARMv8.3): F64 -> S32 with JS-style rounding - .VJCVT = { {.VJCVT, {.SPR, .DPR, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {}} }, + .VJCVT = { {.VJCVT, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {}, {.S32, .F64}} }, // ---- VFP F16 scalar arithmetic (FEAT_FP16) ---- // Uses coproc 9 (cp_num = 1001) instead of 10/11 used by F32/F64. @@ -1692,489 +1822,535 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // ---- VMUL (integer + F32) ---- .VMUL = { // VFP scalar - {.VMUL, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E200A00, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E200B00, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VMUL, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E200A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E200B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VMUL, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E200900, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VMUL, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E200900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON F16 - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100D10, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100D50, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100D10, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100D50, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, // NEON integer (.I8/.I16/.I32) D form: 1111 0010 0 size Vn Vd 1001 N 0 M 1 Vm - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // NEON integer Q form - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // NEON polynomial (.P8): U=1 bit 24 - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000910, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.P8, .NONE}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000950, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.P8, .NONE}}, // NEON F32 - {.VMUL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000D10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000D50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMUL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000D10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000D50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE integer / FP / scalar - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000950, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - {.VMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFF000D50, 0xFFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000950, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, + {.VMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFF000D50, 0xFFA10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, // VMUL MVE scalar: per LLVM 0xEE05_3E63 -> base 0xEE011E60 - {.VMUL, {.QPR, .QPR, .GPR, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE}, 0xEE011E60, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMUL, {.QPR, .QPR, .GPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE, .NONE, .NONE}, 0xEE011E60, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, + // Integer D-form .I16/.I32 + {.VMUL, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMUL, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + // Integer Q-form .I16/.I32 (bit 24 = 1) + {.VMUL, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMUL, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, // ---- VMLA / VMLS (integer + F32) ---- .VMLA = { - {.VMLA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E000A00, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VMLA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E000B00, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VMLA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E000A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VMLA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E000B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VMLA, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E000900, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VMLA, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E000900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON integer (multiply-accumulate) - {.VMLA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMLA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMLA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // NEON F32 - {.VMLA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMLA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE VMLA Qda, Qn, Rm (scalar) - {.VMLA, {.QPR, .QPR, .GPR, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE}, 0xEE010E40, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLA, {.QPR, .QPR, .GPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE, .NONE, .NONE}, 0xEE010E40, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, + {.VMLA, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLA, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMLA, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLA, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, .VMLS = { - {.VMLS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E000A40, 0x0FB00B50, .VFPV2, .A32, {}}, - {.VMLS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0x0E000B40, 0x0FB00B50, .VFPV2, .A32, {}}, + {.VMLS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E000A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VMLS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0x0E000B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64, .NONE}}, // VFP F16 scalar - {.VMLS, {.SPR, .SPR, .SPR, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE}, 0x0E000940, 0x0FB00F50, .HALF_FP, .A32, {}}, + {.VMLS, {.SPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_S, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0x0E000940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16, .NONE}}, // NEON integer (op-bit at 24 distinguishes VMLA vs VMLS for U=1) - {.VMLS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMLS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMLS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200900, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMLS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VMLS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200940, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // NEON F32 (bit 21 = 1 distinguishes FMLS from FMLA) - {.VMLS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200D10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMLS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200D50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMLS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200D10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMLS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200D50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMLS, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLS, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VMLS, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VMLS, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, // ---- VAND / VBIC / VORR / VORN / VEOR (bitwise, no size variants) ---- .VAND = { // VAND D: 1111 0010 0000 Vn Vd 0001 N 0 M 1 Vm (no size; always byte-wise) - {.VAND, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VAND, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VAND, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VAND, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VAND, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, + {.VAND, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VBIC = { + {.VBIC, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800130, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800170, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800330, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800370, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800530, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800570, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800730, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800770, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VBIC, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800930, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VBIC, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800970, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VBIC, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800B30, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VBIC, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800B70, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, // VBIC D: 1111 0010 0100 Vn Vd 0001 N 0 M 1 Vm - {.VBIC, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VBIC, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VBIC, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF100150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VBIC, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VBIC, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, + {.VBIC, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF100150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VORR = { - {.VORR, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VORR, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VORR, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF200150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VORR, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800110, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800150, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800310, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800350, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800510, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800550, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800710, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800750, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VORR, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800910, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VORR, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800950, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VORR, {.DPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800B10, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VORR, {.QPR, .IMM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_IMM8_ABCDEFGH, .NONE, .NONE, .NONE, .NONE}, 0xF2800B50, 0xFEB80FF0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VORR, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VORR, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, + {.VORR, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF200150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VORN = { - {.VORN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2300110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VORN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VORN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF300150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VORN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2300110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VORN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, + {.VORN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF300150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VEOR = { // U=1 distinguishes VEOR from VAND family - {.VEOR, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VEOR, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VEOR, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VEOR, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VEOR, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, + {.VEOR, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ---- VBSL / VBIT / VBIF (predicated bitwise select) ---- .VBSL = { - {.VBSL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VBSL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VBSL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VBSL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, }, .VBIT = { - {.VBIT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VBIT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VBIT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VBIT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, }, .VBIF = { - {.VBIF, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3300110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VBIF, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3300150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VBIF, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3300110, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {}}, + {.VBIF, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3300150, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {}}, }, // ---- VMAX / VMIN (integer + F32) ---- .VMAX = { // NEON integer signed (U=0) - {.VMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // NEON integer unsigned (U=1) - {.VMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // NEON F32 - {.VMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // NEON F16 (sz bit 20 = 1) - {.VMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, // MVE integer (VMAX.F32 doesn't exist in MVE; use VMAXNM.F32 instead) - {.VMAX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000640, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMAX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000640, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VMIN = { // bit 4 distinguishes MAX (0) vs MIN (1) within the 0x6_0 op family - {.VMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000650, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // F32 (bit 21 = 1 selects MIN) - {.VMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // NEON F16 (sz=1) - {.VMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2300F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2300F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, // MVE integer (VMIN.F32 doesn't exist; use VMINNM.F32) - {.VMIN, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000650, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMIN, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000650, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // ---- VCEQ / VCGT / VCGE (compare) ---- .VCEQ = { // NEON integer (op family 0x8_0) - {.VCEQ, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCEQ, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VCEQ, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VCEQ, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VCEQ, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VCEQ, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VCEQ, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // NEON F32 - {.VCEQ, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000E40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCEQ, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCEQ, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000E40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // NEON F16 - {.VCEQ, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VCEQ, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VCEQ, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCEQ, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + // Integer: 0xF3B10100 base for .I8, opc=000 + {.VCEQ, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10100, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VCEQ, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10140, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + // Float: 0xF3B90500 base (.F32, opc=010) + {.VCEQ, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90500, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCEQ, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90540, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VCGT = { // signed: 0xF200_0300; unsigned: 0xF300_0300 - {.VCGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // unsigned - {.VCGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VCGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // F32 - {.VCGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200E00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200E40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200E00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200E40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // F16 - {.VCGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3300E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VCGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3300E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VCGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3300E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3300E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCGT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10000, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGT, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10040, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90400, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCGT, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90440, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VCGE = { // signed: 0xF200_0310; unsigned: 0xF300_0310 - {.VCGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VCGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // F32 - {.VCGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VCGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VCGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // F16 - {.VCGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, - {.VCGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VCGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCGE, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10080, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGE, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B100C0, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCGE, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90480, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCGE, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B904C0, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, // ---- VQADD / VQSUB (saturating) ---- .VQADD = { // signed: F200_0010; unsigned: F300_0010 - {.VQADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2300010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2300010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VQADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, // unsigned - {.VQADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000010, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VQADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000050, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // MVE - {.VQADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000050, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000050, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQSUB = { - {.VQSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2300210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2300210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VQSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VQSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000210, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VQSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000250, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // MVE - {.VQSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000250, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000250, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // ---- VHADD / VHSUB / VRHADD ---- .VHADD = { - {.VHADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VHADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VHADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VHADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VHADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000000, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // MVE - {.VHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000040, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000040, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VHSUB = { - {.VHSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VHSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VHSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VHSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VHSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VHSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VHSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VHSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VHSUB, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000200, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VHSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // MVE - {.VHSUB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000240, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VHSUB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000240, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VRHADD = { - {.VRHADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000100, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VRHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000140, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VRHADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000100, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VRHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000140, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, // MVE - {.VRHADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000140, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRHADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000140, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // ---- VPADD (pairwise add, D-form only) ---- .VPADD = { // NEON integer (op 0xB10, bit 4 = 1) - {.VPADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000B10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100B10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VPADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000B10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VPADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100B10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VPADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // F32 - {.VPADD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VPADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // (VPADD MVE form doesn't exist; MVE uses VADDV reduction instead) + {.VPADD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}, {.F16, .NONE}}, }, // ---- VPMAX / VPMIN (D-form only) ---- .VPMAX = { - {.VPMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VPMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VPMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VPMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VPMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // F32 - {.VPMAX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VPMAX, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // (VPMAX MVE form doesn't exist; MVE uses VMAXV reduction) }, .VPMIN = { - {.VPMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPMIN, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, + {.VPMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VPMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VPMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VPMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VPMIN, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200F00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // (VPMIN MVE form doesn't exist; MVE uses VMINV reduction) }, // ---- VTST (test bits) ---- .VTST = { - {.VTST, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VTST, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VTST, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VTST, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VTST, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VTST, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VTST, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTST, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VTST, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200810, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + {.VTST, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTST, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VTST, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200850, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, // ---- VABD (absolute difference) ---- .VABD = { // signed - {.VABD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VABD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VABD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // unsigned - {.VABD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VABD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VABD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // F32 (bit 21=1 selects FP) - {.VABD, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VABD, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VABD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, // ---- VABA (accumulate absolute difference) ---- .VABA = { - {.VABA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VABA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VABA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VABA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VABA, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000710, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VABA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000750, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, // ---- VSHL register (variable shift) ---- .VSHL = { // signed: F200_0400; unsigned: F300_0400 - {.VSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2000400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2100400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2200400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2300400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2300440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2000400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2100400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2200400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2300400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2300440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, // unsigned shift by reg - {.VSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // MVE - {.VSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000440, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000440, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // VSHR immediate (signed/unsigned, .I8/.I16/.I32/.I64) .VSHR = { - {.VSHR, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF2800010, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHR, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800050, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, - // unsigned - {.VSHR, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF3800010, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VSHR, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800050, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, + {.VSHR, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800010, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VSHR, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800050, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // MVE imm form (imm6 at bits 21:16) - {.VSHR, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEF800050, 0xEF800F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHR, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEF800050, 0xEF800F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I32, .NONE}}, }, // VSRA imm .VSRA = { - {.VSRA, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF2800110, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VSRA, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800150, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, - {.VSRA, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF3800110, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VSRA, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800150, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, + {.VSRA, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800110, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VSRA, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800150, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // MVE (imm6 at bits 21:16) - {.VSRA, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEF800150, 0xEF800F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSRA, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEF800150, 0xEF800F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I32, .NONE}}, }, // VQSHL imm (saturating shift left) .VQSHL = { // register form (signed): F200_0410 - {.VQSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2000410, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2000450, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2000410, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2000450, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, // unsigned: F300_0410 - {.VQSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000410, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000450, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000410, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VQSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000450, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // immediate form: F2800710 - {.VQSHL, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF2800710, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VQSHL, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800750, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, + {.VQSHL, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800710, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VQSHL, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800750, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // MVE - {.VQSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000450, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000450, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // VRSHL (rounding shift left) .VRSHL = { - {.VRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2000500, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2000540, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000500, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000540, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2000500, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2000540, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000500, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000540, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // MVE - {.VRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEF000540, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEF000540, 0xEF810F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // VRSHR (rounding shift right immediate) .VRSHR = { - {.VRSHR, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF2800210, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VRSHR, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800250, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, - {.VRSHR, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF3800210, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VRSHR, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800250, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, + {.VRSHR, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800210, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VRSHR, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800250, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // MVE - {.VRSHR, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEF800250, 0xEF800F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRSHR, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEF800250, 0xEF800F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I32, .NONE}}, }, // VSLI / VSRI (shift left/right and insert) .VSLI = { - {.VSLI, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF3800510, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VSLI, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800550, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, + {.VSLI, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800510, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VSLI, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800550, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, .VSRI = { - {.VSRI, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF3800410, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VSRI, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800450, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, + {.VSRI, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800410, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VSRI, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800450, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, // ---- VABS / VNEG / VMVN / VCNT / VCLZ / VCLS (NEON unary) ---- // (VABS/VNEG VFP scalar already declared; here we add NEON forms.) .VABS = { // VFP scalar (already declared near top of §9, here we extend the block) - {.VABS, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB00AC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VABS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB00BC0, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VABS, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB00AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VABS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB00BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .NONE}}, // NEON integer: 1111 0011 1011 size 01 Vd 0011 0 Q M 0 Vm - {.VABS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10300, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VABS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B50300, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VABS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90300, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B10340, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B50340, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B90340, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VABS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B10300, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B50300, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B90300, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B10340, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B50340, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B90340, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // NEON F32 (size=10, bit 10 = 1) - {.VABS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90700, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B90740, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VABS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B90700, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B90740, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE integer + FP. Per LLVM: vabs.s8 q,q = FFB1_0340; vabs.f32 q,q = FFB9_0740 (bit 19 = 1 for FP). - {.VABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB10340, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - {.VABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB90740, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB10340, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, + {.VABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB90740, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VNEG = { - {.VNEG, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EB10A40, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VNEG, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EB10B40, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VNEG, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EB10A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32, .NONE}}, + {.VNEG, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EB10B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64, .NONE}}, // NEON integer (bit 7 = 1 distinguishes VNEG from VABS) - {.VNEG, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10380, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VNEG, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B50380, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VNEG, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90380, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B103C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B503C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B903C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VNEG, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B10380, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VNEG, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B50380, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VNEG, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B90380, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B103C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B503C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B903C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // NEON F32 - {.VNEG, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90780, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B907C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VNEG, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B90780, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B907C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // MVE integer + FP. Per LLVM: vneg.s8 q,q = FFB1_03C0; vneg.f32 q,q = FFB9_07C0. - {.VNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB103C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - {.VNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB907C0, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB103C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, + {.VNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB907C0, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, // (VMVN declared earlier in VMOV neighbourhood with reg + immediate forms.) .VCNT = { // Byte-only: 1111 0011 1011 0000 size00 Vd 0101 0 Q M 0 Vm - {.VCNT, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCNT, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VCNT, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VCNT, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, .VCLZ = { - {.VCLZ, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00480, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLZ, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B40480, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLZ, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B80480, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLZ, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B004C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLZ, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B404C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLZ, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B804C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VCLZ, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00480, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VCLZ, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B40480, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VCLZ, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B80480, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VCLZ, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B004C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VCLZ, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B404C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VCLZ, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B804C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, .VCLS = { - {.VCLS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00400, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B40400, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLS, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B80400, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00440, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B40440, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B80440, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VCLS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00400, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B40400, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCLS, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B80400, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCLS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00440, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B40440, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCLS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B80440, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, // ---- VREV16 / VREV32 / VREV64 (byte/half/word reverse within block) ---- .VREV64 = { - {.VREV64, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00000, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV64, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B40000, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV64, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B80000, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV64, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00040, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV64, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B40040, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV64, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B80040, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VREV64, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00000, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VREV64, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B40000, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VREV64, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B80000, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + {.VREV64, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00040, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VREV64, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B40040, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VREV64, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B80040, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, .VREV32 = { - {.VREV32, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00080, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV32, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B40080, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV32, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B000C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV32, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B400C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VREV32, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00080, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VREV32, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B40080, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VREV32, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B000C0, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VREV32, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B400C0, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, }, .VREV16 = { - {.VREV16, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VREV16, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VREV16, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VREV16, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, // ---- VEXT (vector extract) ---- .VEXT = { // 1111 0010 1011 Vn Vd imm4 N Q M 0 Vm - {.VEXT, {.DPR, .DPR, .DPR, .IMM4}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2B00000, 0xFFB00010, .NEON, .A32, {cond_in_28=false}}, - {.VEXT, {.QPR, .QPR, .QPR, .IMM4}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2B00040, 0xFFB00050, .NEON, .A32, {cond_in_28=false}}, + {.VEXT, {.DPR, .DPR, .DPR, .IMM4, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2B00000, 0xFFB00010, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + {.VEXT, {.QPR, .QPR, .QPR, .IMM4, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2B00040, 0xFFB00050, .NEON, .A32, {cond_in_28=false}, {.SZ64, .NONE}}, }, // ---- VDUP (duplicate scalar/reg to vector) ---- @@ -2184,37 +2360,41 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // Variant: vector D[lane] form (1111 0011 1011 imm4 Vd 1100 0 Q M 0 Vm) // We list the common scalar/Rt form for V_8B/V_16B/V_4H/V_8H/V_2S/V_4S. // (encoder picks based on operand kinds) - {.VDUP, {.DPR, .GPR, .NONE, .NONE}, {.VD_D, .RT_A32, .NONE, .NONE}, 0x0EC00B10, 0x0FF00FD0, .NEON, .A32, {}}, - {.VDUP, {.QPR, .GPR, .NONE, .NONE}, {.VD_Q, .RT_A32, .NONE, .NONE}, 0x0EE00B10, 0x0FF00FD0, .NEON, .A32, {}}, + {.VDUP, {.DPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VN_D, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0EC00B10, 0x0FF00FD0, .NEON, .A32, {}, {.SZ8, .NONE}}, + {.VDUP, {.QPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VN_Q, .RT_A32, .NONE, .NONE, .NONE, .NONE}, 0x0EE00B10, 0x0FF00FD0, .NEON, .A32, {}, {.SZ8, .NONE}}, // VDUP from vector lane (.D form): 1111 0011 1011 imm4 Vd 1100 0 Q M 0 Vm - {.VDUP, {.DPR, .DPR_ELEM, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00C00, 0xFFB00FD0, .NEON, .A32, {cond_in_28=false}}, - {.VDUP, {.QPR, .DPR_ELEM, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3B00C40, 0xFFB00FD0, .NEON, .A32, {cond_in_28=false}}, + {.VDUP, {.DPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VDUP_LANE_8, .NONE, .NONE, .NONE, .NONE}, 0xF3B10C00, 0xFFB10FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VDUP, {.QPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_VDUP_LANE_8, .NONE, .NONE, .NONE, .NONE}, 0xF3B10C40, 0xFFB10FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VDUP, {.DPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VDUP_LANE_16, .NONE, .NONE, .NONE, .NONE}, 0xF3B20C00, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VDUP, {.QPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_VDUP_LANE_16, .NONE, .NONE, .NONE, .NONE}, 0xF3B20C40, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VDUP, {.DPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VDUP_LANE_32, .NONE, .NONE, .NONE, .NONE}, 0xF3B40C00, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + {.VDUP, {.QPR, .DPR_ELEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .NEON_VDUP_LANE_32, .NONE, .NONE, .NONE, .NONE}, 0xF3B40C40, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, // MVE VDUP Qd, Rt - {.VDUP, {.QPR, .GPR, .NONE, .NONE}, {.VD_Q, .RT_T32, .NONE, .NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VDUP, {.QPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .RT_T32, .NONE, .NONE, .NONE, .NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ32, .NONE}}, }, // ---- VTRN / VUZP / VZIP (interleave / deinterleave) ---- .VTRN = { - {.VTRN, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B20080, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VTRN, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B60080, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VTRN, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BA0080, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VTRN, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B200C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VTRN, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B600C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VTRN, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BA00C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VTRN, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B20080, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTRN, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B60080, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VTRN, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3BA0080, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + {.VTRN, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B200C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTRN, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B600C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VTRN, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA00C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, .VUZP = { - {.VUZP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B20100, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VUZP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B60100, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VUZP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B20140, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VUZP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B60140, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VUZP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BA0140, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VUZP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B20100, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VUZP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B60100, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VUZP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B20140, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VUZP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B60140, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VUZP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA0140, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, .VZIP = { - {.VZIP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B20180, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VZIP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B60180, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VZIP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B201C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VZIP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B601C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VZIP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BA01C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VZIP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B20180, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VZIP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B60180, 0xFFB70FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VZIP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B201C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VZIP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B601C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VZIP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA01C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, // ---- VTBL / VTBX (table lookup) ---- @@ -2222,46 +2402,46 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // len = 00,01,10,11 selects 1/2/3/4-vec table; op=0 TBL, 1 TBX .VTBL = { // 1-vec table - {.VTBL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, + {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_1, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // 2-vec table - {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, + {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_2, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // 3-vec table - {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, + {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_3, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // 4-vec table - {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, + {.VTBL, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_4, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, .VTBX = { - {.VTBX, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, - {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, - {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, - {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}}, + {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_1, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_2, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_3, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VTBX, {.DPR, .DPR_LIST, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .NEON_VN_TABLE_4, .VM_D, .NONE, .NONE, .NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, // ---- VRECPE / VRSQRTE (reciprocal estimates) ---- .VRECPE = { // Integer: 1111 0011 1011 1011 Vd 0100 0 Q M 0 Vm; FP: bit 8 = 1 - {.VRECPE, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRECPE, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, + {.VRECPE, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VRECPE, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, // FP form - {.VRECPE, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRECPE, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, + {.VRECPE, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRECPE, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // (VRECPE MVE form doesn't exist in current MVE spec) }, .VRSQRTE = { - {.VRSQRTE, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRSQRTE, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRSQRTE, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRSQRTE, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, + {.VRSQRTE, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VRSQRTE, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VRSQRTE, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRSQRTE, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, // (VRSQRTE MVE form doesn't exist) }, // VRECPS / VRSQRTS (reciprocal step) .VRECPS = { - {.VRECPS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2000F10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VRECPS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VRECPS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2000F10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRECPS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VRSQRTS = { - {.VRSQRTS, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200F10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VRSQRTS, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VRSQRTS, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200F10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VRSQRTS, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, // ---- VLD1 / VST1 (most-used load/store multiple structures) ---- @@ -2270,271 +2450,328 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // have distinct opcode bits; included as separate entries. .VLD1 = { // VLD1 multiple (1-reg list, type=0111, size=00/01/10/11, D form) - {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200700, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_1, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420070F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // VLD1 multiple (2-reg list, type=1010) - {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200A00, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4200A0F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // VLD1 multiple (3-reg list, type=0110) - {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200600, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420060F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // VLD1 multiple (4-reg list, type=0010) - {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200200, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420020F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // VLD1 single lane to all lanes (VLD1R): 1111 0100 1 D 10 Rn Vd 1100 size T a Rm // size 00 .8 / 01 .16 / 10 .32; T=0 single, T=1 pair - {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4A00C00, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_ALL, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A00C0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // VLD1 single lane: 1111 0100 1 D 10 Rn Vd 0X00 size idx_align Rm (X = 8/16/32 size selector) - {.VLD1, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00000, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, // .8 - {.VLD1, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00400, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, // .16 - {.VLD1, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00800, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, // .32 + {.VLD1, {.DPR_ELEM, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0000F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // .8 + {.VLD1, {.DPR_ELEM, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0040F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, // .16 + {.VLD1, {.DPR_ELEM, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0080F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, // .32 }, .VST1 = { // VST1 multiple (1-reg list) - {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000700, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000A00, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000600, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000200, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_1, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400070F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4000A0F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400060F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST1, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400020F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // VST1 single lane: 1111 0100 1 D 00 Rn Vd 0X00 size idx_align Rm - {.VST1, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800000, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, // .8 - {.VST1, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800400, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, // .16 - {.VST1, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800800, 0xFFB00F00, .NEON, .A32, {cond_in_28=false}}, // .32 + {.VST1, {.DPR_ELEM, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480000F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, // .8 + {.VST1, {.DPR_ELEM, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480040F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, // .16 + {.VST1, {.DPR_ELEM, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480080F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, // .32 }, // VLD2 / VST2 / VLD3 / VST3 / VLD4 / VST4 - similar pattern with different "type" bits .VLD2 = { - {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200800, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200900, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200300, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420080F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_2X, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420090F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420030F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0010F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0050F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0090F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + // The broadcast form: one element to every lane. + {.VLD2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_ALL_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, .VST2 = { - {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000800, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000900, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000300, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400080F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_2X, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400090F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400030F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480010F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480050F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VST2, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32_2, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480090F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, .VLD3 = { - {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200400, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200500, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420040F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_3X, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420050F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0020F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0060F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A00A0F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + // The broadcast form: one element to every lane. + {.VLD3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_ALL_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, .VST3 = { - {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000400, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000500, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400040F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_3X, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400050F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480020F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480060F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VST3, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32_3, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4800A0F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, .VLD4 = { - {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200000, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4200100, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420000F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4X, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF420010F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0030F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A0070F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A00B0F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, + // The broadcast form: one element to every lane. + {.VLD4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_ALL_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, }, .VST4 = { - {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000000, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, - {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VFP_D_LIST, .RN_A32, .NONE, .NONE}, 0xF4000100, 0xFFF00F00, .NEON, .A32, {cond_in_28=false}}, + {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400000F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_D_LIST_4X, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF400010F, 0xFFF00F0F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_8_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480030F, 0xFFB00F1F, .NEON, .A32, {cond_in_28=false}, {.SZ8, .NONE}}, + {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_16_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF480070F, 0xFFB00F3F, .NEON, .A32, {cond_in_28=false}, {.SZ16, .NONE}}, + {.VST4, {.DPR_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.NEON_LANE_D_32_4, .RN_A32, .NONE, .NONE, .NONE, .NONE}, 0xF4800B0F, 0xFFB00F7F, .NEON, .A32, {cond_in_28=false}, {.SZ32, .NONE}}, }, // ---- VMULL / VMLAL / VMLSL (widening multiplies) ---- .VMULL = { // signed: 1111 0010 1U sz Vn Vd 1100 N 0 M 0 Vm - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // unsigned - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, // polynomial: U=0, op=10 - {.VMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.P8, .NONE}}, + // signed .S16/.S32 + {.VMULL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMULL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + // unsigned .U16/.U32 (top byte 0xF3) + {.VMULL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VMULL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, // VMLAL / VMLSL (widening multiply-accumulate) // VMLAL: signed F2800800 / unsigned F3800800; op=1000 (no minus); minus bit at 21 .VMLAL = { - {.VMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VMLAL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VMLSL = { // VMLSL: op=1010 (bit 9 = 1) - {.VMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VMLSL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, // ---- VQDMULH / VQRDMULH (saturating doubling multiply, high half) ---- // 1111 0010 0 D size Vn Vd 1011 N Q M 0 Vm (VQDMULH) // 1111 0011 0 D size Vn Vd 1011 N Q M 0 Vm (VQRDMULH) .VQDMULH = { - {.VQDMULH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2100B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2200B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQDMULH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2100B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMULH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2200B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQDMULH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMULH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQDMULH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR16, .NONE, .NONE, .NONE}, 0xF2900C40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMULH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR16, .NONE, .NONE, .NONE}, 0xF3900C40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMULH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR32, .NONE, .NONE, .NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQDMULH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR32, .NONE, .NONE, .NONE}, 0xF3A00C40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, .VQRDMULH = { - {.VQRDMULH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQRDMULH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VQRDMULH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRDMULH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQRDMULH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMULH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200B00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMULH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMULH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMULH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR16, .NONE, .NONE, .NONE}, 0xF2900D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMULH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR16, .NONE, .NONE, .NONE}, 0xF3900D40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMULH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR32, .NONE, .NONE, .NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMULH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR32, .NONE, .NONE, .NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, // ---- VQRDMLAH / VQRDMLSH (ARMv8.1 FEAT_RDM, rounding doubling MAC) ---- // VQRDMLAH: 1111 0011 0 D size Vn Vd 1011 N Q M 1 Vm (size = 01 .S16 or 10 .S32) // VQRDMLSH: 1111 0011 0 D size Vn Vd 1100 N Q M 1 Vm .VQRDMLAH = { - {.VQRDMLAH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100B10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLAH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200B10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLAH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100B50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLAH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200B50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, + {.VQRDMLAH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100B10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLAH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200B10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMLAH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100B50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLAH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200B50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMLAH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLAH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMLAH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLAH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, .VQRDMLSH = { - {.VQRDMLSH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100C10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLSH, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200C10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLSH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100C50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLSH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200C50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, + {.VQRDMLSH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3100C10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLSH, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200C10, 0xFFB00F10, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMLSH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100C50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLSH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200C50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMLSH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLSH, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRDMLSH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF3900F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRDMLSH, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, // VQDMULL: 1111 0010 1 D size Vn Vd 1101 N 0 M 0 Vm .VQDMULL = { - {.VQDMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900D00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQDMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900D00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMULL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQDMULL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMULL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, // VQDMLAL / VQDMLSL (saturating doubling multiply-accumulate long) .VQDMLAL = { // signed: 1111 0010 1 D size Vn Vd 1001 N 0 M 0 Vm - {.VQDMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900900, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMLAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQDMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900900, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMLAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQDMLAL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMLAL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, .VQDMLSL = { // signed: 1111 0010 1 D size Vn Vd 1011 N 0 M 0 Vm - {.VQDMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900B00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMLSL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VQDMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900B00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMLSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQDMLSL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_16, .NONE, .NONE, .NONE}, 0xF2900740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQDMLSL, {.QPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, }, // ---- VMOVL / VMOVN / VQMOVN / VQMOVUN (widening/narrowing moves) ---- .VMOVL = { // VMOVL.S Q, D : 1111 0010 1 D imm3 0 0 0 Vd 1010 0 0 M 1 Vm (imm3 = size) // We list signed/unsigned × 3 sizes (.S8/.S16/.S32 and .U variants) - {.VMOVL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}}, // .S8 - {.VMOVL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF2900A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}}, // .S16 - {.VMOVL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF2A00A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}}, // .S32 - {.VMOVL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3880A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}}, // .U8 - {.VMOVL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3900A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}}, // .U16 - {.VMOVL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3A00A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}}, // .U32 + {.VMOVL, {.QPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, // .S8 + {.VMOVL, {.QPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF2900A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, // .S16 + {.VMOVL, {.QPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF2A00A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // .S32 + {.VMOVL, {.QPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3880A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, // .U8 + {.VMOVL, {.QPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3900A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, // .U16 + {.VMOVL, {.QPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3A00A10, 0xFFB80FD0, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, // .U32 }, .VMOVN = { // VMOVN.I D, Q : 1111 0011 1 D 11 size 10 Vd 0010 0 0 M 0 Vm - {.VMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B20200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, // .I16 - {.VMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B60200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, // .I32 - {.VMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3BA0200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, // .I64 + {.VMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B20200, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, // .I16 + {.VMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B60200, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, // .I32 + {.VMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA0200, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I64, .NONE}}, // .I64 }, .VQMOVN = { // VQMOVN. (signed saturating narrowing move) // .S: 1111 0011 1 D 11 size 10 Vd 0010 1 0 M 0 Vm // .U: same with op bit 6 = 1 - {.VQMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B20280, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B60280, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3BA0280, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B202C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B602C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3BA02C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VQMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B20280, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B60280, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA0280, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VQMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B202C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VQMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B602C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VQMOVN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA02C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U64, .NONE}}, }, .VQMOVUN = { // VQMOVUN (signed input, unsigned saturating output): 1111 0011 1 D 11 size 10 Vd 0010 0 1 M 0 Vm (bit 6=1, bit 7=0) - {.VQMOVUN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B20240, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVUN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B60240, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQMOVUN, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3BA0240, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VQMOVUN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B20240, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQMOVUN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B60240, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQMOVUN, {.DPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA0240, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, }, // ---- VSHLL / VSHRN / VRSHRN / VQSHRN / VQRSHRN ---- .VSHLL = { // VSHLL.S Q, D, #imm: 1111 0010 1 D imm6 Vd 1010 0 0 M 1 Vm // imm6 encodes sh + size: 001sss for sh<8, 01sss for sh<16, 1sss for sh<32 - {.VSHLL, {.QPR, .DPR, .IMM, .NONE}, {.VD_Q, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF2800A10, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, - {.VSHLL, {.QPR, .DPR, .IMM, .NONE}, {.VD_Q, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF3800A10, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, // U=1 + {.VSHLL, {.QPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800A10, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, // VSHLL by max (#size) variant: 1111 0011 1 D 11 size 10 Vd 0011 0 0 M 0 Vm - {.VSHLL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3B20300, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VSHLL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3B60300, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VSHLL, {.QPR, .DPR, .NONE, .NONE}, {.VD_Q, .VM_D, .NONE, .NONE}, 0xF3BA0300, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VSHLL, {.QPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NEON_SHLL_8, .NONE, .NONE, .NONE}, 0xF3B20300, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I8, .NONE}}, + {.VSHLL, {.QPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NEON_SHLL_16, .NONE, .NONE, .NONE}, 0xF3B60300, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, + {.VSHLL, {.QPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_D, .NEON_SHLL_32, .NONE, .NONE, .NONE}, 0xF3BA0300, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, .VSHRN = { // 1111 0010 1 D imm6 Vd 1000 0 0 M 1 Vm - {.VSHRN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, + {.VSHRN, {.DPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, }, .VRSHRN = { // 1111 0010 1 D imm6 Vd 1000 0 1 M 1 Vm - {.VRSHRN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800850, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, + {.VRSHRN, {.DPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800850, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, }, .VQSHRN = { // signed: 1111 0010 1 D imm6 Vd 1001 0 0 M 1 Vm; unsigned: U=1 - {.VQSHRN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQSHRN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800910, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, + {.VQSHRN, {.DPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, }, .VQRSHRN = { // 1111 0010 1 D imm6 Vd 1001 0 1 M 1 Vm - {.VQRSHRN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHRN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800950, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}}, + {.VQRSHRN, {.DPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, }, .VQSHRUN = { // signed input, unsigned saturating shift right narrow: // 1111 0011 1 D imm6 Vd 1000 0 0 M 1 Vm - {.VQSHRUN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800810, 0xFF800FD0, .NEON, .A32, {cond_in_28=false}}, + {.VQSHRUN, {.DPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF3800810, 0xFF800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, }, .VQRSHRUN = { - {.VQRSHRUN, {.DPR, .QPR, .IMM, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF3800850, 0xFF800FD0, .NEON, .A32, {cond_in_28=false}}, + {.VQRSHRUN, {.DPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF3800850, 0xFF800FD0, .NEON, .A32, {cond_in_28=false}, {.I16, .NONE}}, }, // ---- VPADDL / VPADAL (pairwise add long / accumulate) ---- // 1111 0011 1 D 11 size 00 Vd 0010 op Q M 0 Vm (op=0 add long, op=1 accumulate) .VPADDL = { // .S: - {.VPADDL, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VPADDL, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B40200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VPADDL, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B80200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VPADDL, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00200, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VPADDL, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B40200, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VPADDL, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B80200, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, // Q form - {.VPADDL, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VPADDL, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, // .U variants: bit 7 = 1 - {.VPADDL, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00280, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VPADDL, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VPADDL, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00280, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VPADDL, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, .VPADAL = { // op4=0110 instead of 0010 (bit 8=1) - {.VPADAL, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VPADAL, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VPADAL, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VPADAL, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, // unsigned - {.VPADAL, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VPADAL, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VPADAL, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VPADAL, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, // ---- VSWP (swap) ---- // 1111 0011 1 D 11 size 10 Vd 0000 0 Q M 0 Vm .VSWP = { - {.VSWP, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VSWP, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, + {.VSWP, {.DPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {}}, + {.VSWP, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}, {}}, }, // ---- VACGE / VACGT (FP absolute compare) ---- .VACGE = { // 1111 0011 0 D 0 sz Vn Vd 1110 N Q M 1 Vm - {.VACGE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VACGE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000E50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VACGE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VACGE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000E50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VACGT = { // sz bit 21 = 1 - {.VACGT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3200E10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VACGT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200E50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, + {.VACGT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3200E10, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VACGT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200E50, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, // NEON crypto (ARMv8 FEAT_AES / FEAT_SHA1 / FEAT_SHA256) // AESE/AESD/AESMC/AESIMC: 1111 0011 1011 size 00 Vd 0011 op M 0 Vm (op=0 AESE, 1 AESD; bit 7 selects MC) - .AESE = { {.AESE, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}} }, - .AESD = { {.AESD, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}} }, - .AESMC = { {.AESMC, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}} }, - .AESIMC = { {.AESIMC, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}} }, + .AESE = { {.AESE, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ8, .NONE}} }, + .AESD = { {.AESD, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ8, .NONE}} }, + .AESMC = { {.AESMC, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ8, .NONE}} }, + .AESIMC = { {.AESIMC, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ8, .NONE}} }, // SHA1 family - .SHA1H = { {.SHA1H, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA1SU1 = { {.SHA1SU1, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA256SU0 = { {.SHA256SU0, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA1C = { {.SHA1C, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2000C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA1P = { {.SHA1P, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA1M = { {.SHA1M, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA1SU0 = { {.SHA1SU0, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF2300C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA256H = { {.SHA256H, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3000C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA256H2 = { {.SHA256H2, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3100C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, - .SHA256SU1 = { {.SHA256SU1, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xF3200C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}} }, + .SHA1H = { {.SHA1H, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA1SU1 = { {.SHA1SU1, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA256SU0 = { {.SHA256SU0, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA1C = { {.SHA1C, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2000C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA1P = { {.SHA1P, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA1M = { {.SHA1M, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA1SU0 = { {.SHA1SU0, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF2300C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA256H = { {.SHA256H, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3000C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA256H2 = { {.SHA256H2, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3100C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, + .SHA256SU1 = { {.SHA256SU1, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xF3200C40, 0xFFB00F50, .CRYPTO, .A32, {cond_in_28=false}, {.SZ32, .NONE}} }, // ========================================================================= // §11 -- T16 Thumb-1 + T32 Thumb-2 (Thumb-only mnemonics) @@ -2557,74 +2794,74 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // 010000 op4 Rs Rd op4=0010 LSL, 0011 LSR, 0100 ASR, 0111 ROR .LSL = { // A32: MOV reg with LSL #imm (cond 00011010 0000 Rd imm5 000 Rm) - {.LSL, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT, .NONE}, 0x01A00000, 0x0FFF0070, .BASE, .A32, {}}, + {.LSL, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT, .NONE, .NONE, .NONE}, 0x01A00000, 0x0FFF0070, .BASE, .A32, {}, {}}, // A32: MOV reg with LSL Rs (RSR form) - {.LSL, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE}, 0x01A00010, 0x0FFF00F0, .BASE, .A32, {}}, + {.LSL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x01A00010, 0x0FFF00F0, .BASE, .A32, {}, {}}, // T16 Format 1: LSL imm - {.LSL, {.GPR_LOW, .GPR_LOW, .IMM5, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00000000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LSL, {.GPR_LOW, .GPR_LOW, .IMM5, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00000000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 4: LSL reg (Rd = Rd <<= Rs) - {.LSL, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004080, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.LSL, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004080, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LSL imm (encoded as MOV with shift LSL): high=11101010 0100 1111 low=0 imm3 Rd imm2 00 Rm - {.LSL, {.GPR, .GPR, .IMM5, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA4F0000, 0xFFEF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LSL, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA4F0000, 0xFFFF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 LSL reg: high=11111010 0000 Rn low=1111 Rd 0000 Rm - {.LSL, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA00F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LSL, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .LSR = { - {.LSR, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT, .NONE}, 0x01A00020, 0x0FFF0070, .BASE, .A32, {}}, - {.LSR, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE}, 0x01A00030, 0x0FFF00F0, .BASE, .A32, {}}, + {.LSR, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT_32, .NONE, .NONE, .NONE}, 0x01A00020, 0x0FFF0070, .BASE, .A32, {}, {}}, + {.LSR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x01A00030, 0x0FFF00F0, .BASE, .A32, {}, {}}, // T16 Format 1: LSR imm - {.LSR, {.GPR_LOW, .GPR_LOW, .IMM5, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00000800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.LSR, {.GPR_LOW, .GPR_LOW, .IMM5, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00000800, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 4: LSR reg - {.LSR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x000040C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.LSR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x000040C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 LSR imm (MOV with shift LSR): bits 5:4 = 01 - {.LSR, {.GPR, .GPR, .IMM5, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA4F0010, 0xFFEF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LSR, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA4F0010, 0xFFFF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 LSR reg: 0xFA20F000 - {.LSR, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA20F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.LSR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA20F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .ASR = { - {.ASR, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT, .NONE}, 0x01A00040, 0x0FFF0070, .BASE, .A32, {}}, - {.ASR, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE}, 0x01A00050, 0x0FFF00F0, .BASE, .A32, {}}, + {.ASR, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT_32, .NONE, .NONE, .NONE}, 0x01A00040, 0x0FFF0070, .BASE, .A32, {}, {}}, + {.ASR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x01A00050, 0x0FFF00F0, .BASE, .A32, {}, {}}, // T16 Format 1: ASR imm - {.ASR, {.GPR_LOW, .GPR_LOW, .IMM5, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00001000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.ASR, {.GPR_LOW, .GPR_LOW, .IMM5, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00001000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, // T16 Format 4: ASR reg - {.ASR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004100, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.ASR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004100, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 ASR imm: bits 5:4 = 10 - {.ASR, {.GPR, .GPR, .IMM5, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA4F0020, 0xFFEF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.ASR, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA4F0020, 0xFFFF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 ASR reg: 0xFA40F000 - {.ASR, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA40F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.ASR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA40F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .ROR = { - {.ROR, {.GPR, .GPR, .IMM5, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT, .NONE}, 0x01A00060, 0x0FFF0070, .BASE, .A32, {}}, - {.ROR, {.GPR, .GPR, .GPR, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE}, 0x01A00070, 0x0FFF00F0, .BASE, .A32, {}}, + {.ROR, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .A32_IMM_SHIFT, .NONE, .NONE, .NONE}, 0x01A00060, 0x0FFF0070, .BASE, .A32, {}, {}}, + {.ROR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .RS_A32, .NONE, .NONE, .NONE}, 0x01A00070, 0x0FFF00F0, .BASE, .A32, {}, {}}, // T16 Format 4: ROR reg - {.ROR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x000041C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.ROR, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x000041C0, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, // T32 ROR imm: bits 5:4 = 11 - {.ROR, {.GPR, .GPR, .IMM5, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE}, 0xEA4F0030, 0xFFEF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.ROR, {.GPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.RD_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xEA4F0030, 0xFFFF8030, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, // T32 ROR reg: 0xFA60F000 - {.ROR, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFA60F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}}, + {.ROR, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFA60F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .RRX = { // RRX is ROR with imm=0 (cond 00011010 0000 Rd 00000110 Rm) - {.RRX, {.GPR, .GPR, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE}, 0x01A00060, 0x0FFF0FF0, .BASE, .A32, {}}, + {.RRX, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD, .RM_A32, .NONE, .NONE, .NONE, .NONE}, 0x01A00060, 0x0FFF0FF0, .BASE, .A32, {}, {}}, }, // T16 Format 12: ADR (ADD Rd, PC, #imm8 << 2) .ADR = { // A32 ADR forms (ADD/SUB to PC); handled via ADD encoded with Rn=PC. // T16 Format 12 form (10100 Rd imm8): - {.ADR, {.GPR_LOW, .REL8, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE}, 0x0000A000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}}, + {.ADR, {.GPR_LOW, .REL8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x0000A000, 0x0000F800, .THUMB, .T32, {cond_in_28=false}, {}}, }, // T16 NEG Rd, Rm = RSB Rd, Rm, #0 (Format 4, op=1001) .NEG = { - {.NEG, {.GPR_LOW, .GPR_LOW, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE}, 0x00004240, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}}, + {.NEG, {.GPR_LOW, .GPR_LOW, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .RM_T16_LO, .NONE, .NONE, .NONE, .NONE}, 0x00004240, 0x0000FFC0, .THUMB, .T32, {cond_in_28=false}, {}}, }, - .CBZ = { {.CBZ, {.GPR_LOW, .REL8, .NONE, .NONE}, {.RD_T16_LO, .BRANCH_CBZ, .NONE, .NONE}, 0x0000B100, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, cond_in_28=false}} }, - .CBNZ = { {.CBNZ, {.GPR_LOW, .REL8, .NONE, .NONE}, {.RD_T16_LO, .BRANCH_CBZ, .NONE, .NONE}, 0x0000B900, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, cond_in_28=false}} }, - .IT = { {.IT, {.COND, .IMM4, .NONE, .NONE}, {.NONE, .IT_MASK, .NONE, .NONE}, 0x0000BF00, 0x0000FF00, .V6T2, .T32, {cond_in_28=false}} }, - .TBB = { {.TBB, {.GPR, .GPR, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE}, 0xE8D0F000, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}} }, - .TBH = { {.TBH, {.GPR, .GPR, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE}, 0xE8D0F010, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}} }, + .CBZ = { {.CBZ, {.GPR_LOW, .REL8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .BRANCH_CBZ, .NONE, .NONE, .NONE, .NONE}, 0x0000B100, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, cond_in_28=false}, {}} }, + .CBNZ = { {.CBNZ, {.GPR_LOW, .REL8, .NONE, .NONE, .NONE, .NONE}, {.RD_T16_LO, .BRANCH_CBZ, .NONE, .NONE, .NONE, .NONE}, 0x0000B900, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, cond_in_28=false}, {}} }, + .IT = { {.IT, {.COND, .IMM4, .NONE, .NONE, .NONE, .NONE}, {.NONE, .IT_MASK, .NONE, .NONE, .NONE, .NONE}, 0x0000BF00, 0x0000FF00, .V6T2, .T32, {cond_in_28=false}, {}} }, + .TBB = { {.TBB, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xE8D0F000, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}, {}} }, + .TBH = { {.TBH, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .RM_T32, .NONE, .NONE, .NONE, .NONE}, 0xE8D0F010, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true, cond_in_28=false}, {}} }, // ========================================================================= // §14 -- Extensions: Dot product / FCMA / FHM / BF16 @@ -2633,23 +2870,19 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // FEAT_DotProd (ARMv8.2-A): VSDOT/VUDOT (8-bit signed/unsigned dot product) .VSDOT = { // VSDOT.S8 D: 0xFC200D00 - {.VSDOT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFC200D00, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}}, - {.VSDOT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC200D40, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}}, + {.VSDOT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFC200D00, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSDOT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC200D40, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSDOT, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE200D00, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSDOT, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE200D40, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}, {.S8, .NONE}}, }, // VUDOT (unsigned): bit 4 = 1 distinguishes from VSDOT (bit 4 = 0). // vudot.u8 d0,d1,d2 = 0xFC21_0D12 -> base 0xFC200D10 .VUDOT = { - {.VUDOT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFC200D10, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}}, - {.VUDOT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC200D50, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}}, - }, - .VSDOT_LANE = { - {.VSDOT_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE200D00, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}}, - {.VSDOT_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xFE200D40, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}}, - }, - .VUDOT_LANE = { + {.VUDOT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFC200D10, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VUDOT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC200D50, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}, {.U8, .NONE}}, // vudot.u8 d0,d1,d2[0] = 0xFE21_0D12 -> base 0xFE200D10 (bit 4 = 1 for U) - {.VUDOT_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE200D10, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}}, - {.VUDOT_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xFE200D50, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}}, + {.VUDOT, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE200D10, 0xFFB00F10, .DOT, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VUDOT, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE200D50, 0xFFB00F50, .DOT, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, // FEAT_FCMA (ARMv8.3): VCMLA / VCADD (complex multiply-add + add) @@ -2657,41 +2890,36 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // VCADD: rotation in bit 24 only (2 values: 90, 270 deg) .VCMLA = { // Mask 0xFC800F10 leaves bits 24:23 variable for rotation operand - {.VCMLA, {.DPR, .DPR, .DPR, .IMM}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFC200800, 0xFC800F10, .FCMA, .A32, {cond_in_28=false}}, - {.VCMLA, {.QPR, .QPR, .QPR, .IMM}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC200840, 0xFC800F50, .FCMA, .A32, {cond_in_28=false}}, + {.VCMLA, {.DPR, .DPR, .DPR, .IMM, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NEON_ROT_4_HI, .NONE, .NONE}, 0xFC200800, 0xFC800F10, .FCMA, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCMLA, {.QPR, .QPR, .QPR, .IMM, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NEON_ROT_4_HI, .NONE, .NONE}, 0xFC200840, 0xFC800F50, .FCMA, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCMLA, {.DPR, .DPR, .DPR_ELEM, .IMM, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NEON_ROT_4, .NONE, .NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCMLA, {.QPR, .QPR, .DPR_ELEM, .IMM, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NEON_ROT_4, .NONE, .NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCMLA, {.QPR, .QPR, .QPR, .IMM, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .MVE_ROT_CMLA, .NONE, .NONE}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F16, .NONE}}, }, .VCADD = { // Mask 0xFE800F10 leaves bit 24 variable for rotation operand (90 or 270) - {.VCADD, {.DPR, .DPR, .DPR, .IMM}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFC800800, 0xFE800F10, .FCMA, .A32, {cond_in_28=false}}, - {.VCADD, {.QPR, .QPR, .QPR, .IMM}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC800840, 0xFE800F50, .FCMA, .A32, {cond_in_28=false}}, + {.VCADD, {.DPR, .DPR, .DPR, .IMM, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NEON_ROT_2, .NONE, .NONE}, 0xFC800800, 0xFE800F10, .FCMA, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VCADD, {.QPR, .QPR, .QPR, .IMM, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NEON_ROT_2, .NONE, .NONE}, 0xFC800840, 0xFE800F50, .FCMA, .A32, {cond_in_28=false}, {.F16, .NONE}}, }, // FEAT_FHM (ARMv8.2): FP16 fused multiply-add long .VFMAL = { - {.VFMAL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFC200810, 0xFFB00F10, .FHM, .A32, {cond_in_28=false}}, - {.VFMAL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC200850, 0xFFB00F50, .FHM, .A32, {cond_in_28=false}}, + {.VFMAL, {.DPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0xFC200810, 0xFFB00F10, .FHM, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VFMAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFC200850, 0xFFB00F50, .FHM, .A32, {cond_in_28=false}, {.F16, .NONE}}, }, .VFMSL = { - {.VFMSL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {cond_in_28=false}}, - {.VFMSL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {cond_in_28=false}}, + {.VFMSL, {.DPR, .SPR, .SPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_S, .VM_S, .NONE, .NONE, .NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {cond_in_28=false}, {.F16, .NONE}}, + {.VFMSL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {cond_in_28=false}, {.F16, .NONE}}, }, // FEAT_BF16 (ARMv8.6): BFloat16 arithmetic and conversion - .VCVT_BF16 = { - // VCVT.BF16.F32 D, Q - // vcvt.bf16.f32 d0, q1 = 0xF3B6_0642 -> base 0xF3B60600 - {.VCVT_BF16, {.DPR, .QPR, .NONE, .NONE}, {.VD_D, .VM_Q, .NONE, .NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {cond_in_28=false}}, - }, - .VDOT_BF16 = { + .VDOT = { // VDOT.BF16 D, D, D - {.VDOT_BF16, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFC000D00, 0xFFB00F10, .BF16, .A32, {cond_in_28=false}}, - {.VDOT_BF16, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC000D40, 0xFFB00F50, .BF16, .A32, {cond_in_28=false}}, + {.VDOT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFC000D00, 0xFFB00F10, .BF16, .A32, {cond_in_28=false}, {.BF16, .NONE}}, + {.VDOT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC000D40, 0xFFB00F50, .BF16, .A32, {cond_in_28=false}, {.BF16, .NONE}}, }, - .VFMA_BF16 = { - {.VFMA_BF16, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC300850, 0xFFB00F50, .BF16, .A32, {cond_in_28=false}}, - }, - .VMMLA_BF16 = { - {.VMMLA_BF16, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC000C40, 0xFFB00F50, .BF16, .A32, {cond_in_28=false}}, + .VMMLA = { + {.VMMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC000C40, 0xFFB00F50, .BF16, .A32, {cond_in_28=false}, {.BF16, .NONE}}, }, // ========================================================================= @@ -2701,13 +2929,13 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // VUMMLA Qd, Qn, Qm: 1111 1100 0 D 1 0 Vn Vd 1100 N 1 M 1 Vm (unsigned) // VUSMMLA Qd, Qn, Qm: 1111 1100 1 D 1 0 Vn Vd 1100 N 1 M 0 Vm (mixed) .VSMMLA = { - {.VSMMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC200C40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, + {.VSMMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC200C40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S8, .NONE}}, }, .VUMMLA = { - {.VUMMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFC200C50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, + {.VUMMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFC200C50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, .VUSMMLA = { - {.VUSMMLA, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, + {.VUSMMLA, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S8, .NONE}}, }, // VSUDOT Qd, Qn, Qm[idx]: 1111 1110 1 D 00 Vn Vd 1101 N Q M 1 Vm // VUSDOT Qd, Qn, Qm: 1111 1100 0 D 10 Vn Vd 1101 N Q M 0 Vm @@ -2715,18 +2943,13 @@ 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, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.U8, .NONE}}, }, .VUSDOT = { - {.VUSDOT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {cond_in_28=false}}, - {.VUSDOT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - }, - .VSUDOT_LANE = { - {.VSUDOT_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - }, - .VUSDOT_LANE = { - {.VUSDOT_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE800D00, 0xFFB00F10, .V8, .A32, {cond_in_28=false}}, - {.VUSDOT_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, + {.VUSDOT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VUSDOT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VUSDOT, {.DPR, .DPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE800D00, 0xFFB00F10, .V8, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VUSDOT, {.QPR, .QPR, .DPR_ELEM, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR_32, .NONE, .NONE, .NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}, {.S8, .NONE}}, }, // ========================================================================= @@ -2738,102 +2961,17 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // VMUL by scalar: opcode bits[11:8] = 1000; Q bit at bit 24 (0=D, 1=Q); // size bits 21:20; F bit at bit 7 (0=integer, 1=FP F32) - .VMUL_LANE = { - // Integer D-form .I16/.I32 - {.VMUL_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2900840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMUL_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A00840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - // Integer Q-form .I16/.I32 (bit 24 = 1) - {.VMUL_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMUL_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - // FP .F32 D-form / Q-form (F=1, size=10) - {.VMUL_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A008C0, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMUL_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A008C0, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VMLA by scalar: opcode bits[11:8] = 0000 - .VMLA_LANE = { - {.VMLA_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2900040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLA_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLA_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLA_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - // FP .F32 (F=1) - {.VMLA_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A000C0, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLA_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A000C0, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VMLS by scalar: opcode bits[11:8] = 0100 - .VMLS_LANE = { - {.VMLS_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2900440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLS_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLS_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLS_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - // FP .F32 - {.VMLS_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A004C0, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLS_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A004C0, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VMULL by scalar: opcode bits[11:8] = 1010. Long: Q dest from D inputs. - .VMULL_LANE = { - // signed .S16/.S32 - {.VMULL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMULL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - // unsigned .U16/.U32 (top byte 0xF3) - {.VMULL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMULL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VMLAL by scalar: opcode bits[11:8] = 0010 - .VMLAL_LANE = { - {.VMLAL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLAL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VMLSL by scalar: opcode bits[11:8] = 0110 - .VMLSL_LANE = { - {.VMLSL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VMLSL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VQDMULL by scalar: opcode bits[11:8] = 1011 (signed only) - .VQDMULL_LANE = { - {.VQDMULL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VQDMLAL by scalar: opcode bits[11:8] = 0011 - .VQDMLAL_LANE = { - {.VQDMLAL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMLAL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VQDMLSL by scalar: opcode bits[11:8] = 0111 - .VQDMLSL_LANE = { - {.VQDMLSL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMLSL_LANE, {.QPR, .DPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - }, // VFMA / VFMS by scalar -- FEAT_FCMA adds these as opcode 0001 / 0101 with F=1 - .VFMA_LANE = { - {.VFMA_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A000C0, 0xFFB00F50, .VFPV4, .A32, {cond_in_28=false}}, - {.VFMA_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A000C0, 0xFFB00F50, .VFPV4, .A32, {cond_in_28=false}}, - }, - .VFMS_LANE = { - {.VFMS_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A004C0, 0xFFB00F50, .VFPV4, .A32, {cond_in_28=false}}, - {.VFMS_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A004C0, 0xFFB00F50, .VFPV4, .A32, {cond_in_28=false}}, - }, // VQRDMLAH / VQRDMLSH by scalar (FEAT_RDM): opcode 1110 / 1111, bit 4 = 1 - .VQRDMLAH_LANE = { - {.VQRDMLAH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2900E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLAH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLAH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLAH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - }, - .VQRDMLSH_LANE = { - {.VQRDMLSH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2900F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLSH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF2A00F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLSH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - {.VQRDMLSH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {cond_in_28=false}}, - }, // VCMLA by indexed scalar (FEAT_FCMA) - .VCMLA_LANE = { - {.VCMLA_LANE, {.DPR, .DPR, .DPR_ELEM, .IMM}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {cond_in_28=false}}, - {.VCMLA_LANE, {.QPR, .QPR, .DPR_ELEM, .IMM}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {cond_in_28=false}}, - }, // ========================================================================= // MVE polish (gaps from earlier pass) @@ -2841,21 +2979,21 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // VQABS Qd, Qm: 1111 1111 1 D 11 size 00 Vd 0111 1 1 M 0 Vm // VQNEG Qd, Qm: 1111 1111 1 D 11 size 00 Vd 0111 1 1 M 1 Vm .VQABS = { - {.VQABS, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB00740, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQABS, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB00740, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQNEG = { - {.VQNEG, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFFB007C0, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQNEG, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFFB007C0, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // VMOVX Sd, Sm (extract high F16 lane to bottom of Sd) -- ARMv8.2 FP16 // 1111 1110 1 D 11 0000 Vd 1010 01 M 0 Vm .VMOVX = { - {.VMOVX, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEB00A40, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VMOVX, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEB00A40, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true, cond_in_28=false}, {.F16, .NONE}}, }, // VINS Sd, Sm (insert F16 from Sm into high half of Sd) // 1111 1110 1 D 11 0000 Vd 1010 11 M 0 Vm .VINS = { - {.VINS, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0xFEB00AC0, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VINS, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0xFEB00AC0, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true, cond_in_28=false}, {.F16, .NONE}}, }, // ---- MVE gather/scatter (vector offset addressing) ---------------------- @@ -2865,32 +3003,8 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // vldrh.u16 q,[r,q] = 0xFC92_2E96 -> base 0xFC900E90 // vldrw.u32 q,[r,q] = 0xFC92_2F46 -> base 0xFC900F40 // vldrd.u64 q,[r,q] = 0xFC92_2FD6 -> base 0xFC900FD0 - .VLDRB_GATHER = { - {.VLDRB_GATHER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VLDRH_GATHER = { - {.VLDRH_GATHER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VLDRW_GATHER = { - {.VLDRW_GATHER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VLDRD_GATHER = { - {.VLDRD_GATHER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, // VSTR scatter (LLVM-verified): top byte 0xEC (vs 0xFC for VLDR gather). // vstrb.8 q1,[r2,q3] = 0xEC82_2E06 -> base 0xEC600E00 - .VSTRB_SCATTER = { - {.VSTRB_SCATTER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xEC600E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VSTRH_SCATTER = { - {.VSTRH_SCATTER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xEC600E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VSTRW_SCATTER = { - {.VSTRW_SCATTER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xEC600F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VSTRD_SCATTER = { - {.VSTRD_SCATTER, {.QPR, .MEM, .QPR, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE}, 0xEC600FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, // ========================================================================= // VFP fixed-point conversions (VCVT with #fbits) -- ARMv7 VFPv3 / FP16 @@ -2902,83 +3016,14 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // sf = 0 (.16) / 1 (.32) // sx = same as sf (size selector for output) // sz = 0 (F32) / 1 (F64) - .VCVT_FIXED = { - // VCVT.S32.F32 Sd, Sd, #fbits -- to signed 32-bit fixed-point - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - // VCVT.U32.F32 Sd, Sd, #fbits - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - // VCVT.F32.S32 Sd, Sd, #fbits -- from signed 32-bit fixed - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - // VCVT.F32.U32 Sd, Sd, #fbits - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - // VCVT.S16.F32 Sd, Sd, #fbits (sx=0 selects 16-bit fixed-point) - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBE0A40, 0x0FBF0FC0, .VFPV3, .A32, {}}, - // VCVT.F32.S16 Sd, Sd, #fbits - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBA0A40, 0x0FBF0FC0, .VFPV3, .A32, {}}, - // F64 variants (sz=1): change cp to 1011 (bit 8 = 1) - {.VCVT_FIXED, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - {.VCVT_FIXED, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {}}, - // F16 variants (cp=1001, FEAT_FP16) - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {}}, - {.VCVT_FIXED, {.SPR, .SPR, .IMM, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {}}, - }, // ========================================================================= // NEON compare-with-zero (single-operand, distinct encoding from reg form) // ========================================================================= // 1111 0011 1011 size 01 Vd op 0 0 0 Q M 0 Vm (integer) // 1111 0011 1011 size 10 Vd op 0 0 1 Q M 0 Vm (float; op selects EQ/GE/GT/LE/LT) - .VCEQ_Z = { - // Integer: 0xF3B10100 base for .I8, opc=000 - {.VCEQ_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10100, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B10140, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - // Float: 0xF3B90500 base (.F32, opc=010) - {.VCEQ_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90500, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCEQ_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B90540, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - }, - .VCGE_Z = { - {.VCGE_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10080, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCGE_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B100C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCGE_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90480, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCGE_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B904C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - }, - .VCGT_Z = { - {.VCGT_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10000, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCGT_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B10040, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCGT_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90400, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCGT_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B90440, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - }, - .VCLE_Z = { - {.VCLE_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10180, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLE_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B101C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLE_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90580, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLE_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B905C0, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - }, - .VCLT_Z = { - {.VCLT_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B10200, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLT_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B10240, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLT_Z, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3B90600, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - {.VCLT_Z, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3B90640, 0xFFB30FD0, .NEON, .A32, {cond_in_28=false}}, - }, // ========================================================================= - // NEON replicate loads (broadcast single element to all lanes) - // ========================================================================= - // 1111 0100 1 D 10 Rn Vd 11 N size T a Rm - // N=00 VLD1R, 01 VLD2R, 10 VLD3R, 11 VLD4R - // VLD{2,3,4}R replicate forms (LLVM-verified for .8 element size): - // vld2.8 {d1[], d2[]}, [r2] = 0xF4A2_1D0F -> base 0xF4A0_0D0F - // vld3.8 {d1[], d2[], d3[]}, [r2] = 0xF4A2_1E0F -> base 0xF4A0_0E0F - // vld4.8 {d1[], d2[], d3[], d4[]}, [r2] = 0xF4A2_1F0F -> base 0xF4A0_0F0F - .VLD2R = { - {.VLD2R, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}}, - }, - .VLD3R = { - {.VLD3R, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}}, - }, - .VLD4R = { - {.VLD4R, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {cond_in_28=false}}, - }, // ========================================================================= // NEON single-element-lane load/store (one element, with lane index) @@ -2986,47 +3031,6 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // 1111 0100 1 D 10 Rn Vd size{2} N index_align Rm // N=00 VLDx1, 01 VLDx2, 10 VLDx3, 11 VLDx4 (x = 1..4) // VLD1_LANE Dd[i], [Rn]: size=00 (.8) 0xF4A00000, size=01 (.16) 0xF4A00400, size=10 (.32) 0xF4A00800 - .VLD1_LANE = { - {.VLD1_LANE, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00000, 0xFFB00C00, .NEON, .A32, {cond_in_28=false}}, - {.VLD1_LANE, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00400, 0xFFB00C00, .NEON, .A32, {cond_in_28=false}}, - {.VLD1_LANE, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00800, 0xFFB00C00, .NEON, .A32, {cond_in_28=false}}, - }, - .VLD2_LANE = { - {.VLD2_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00100, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VLD2_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00500, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VLD2_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00900, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - }, - .VLD3_LANE = { - {.VLD3_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00200, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VLD3_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00600, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VLD3_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00A00, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - }, - .VLD4_LANE = { - {.VLD4_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00300, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VLD4_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00700, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VLD4_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4A00B00, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - }, - // VST1/2/3/4 single-lane: bit 21 = 0 (store, not load) - .VST1_LANE = { - {.VST1_LANE, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800000, 0xFFB00C00, .NEON, .A32, {cond_in_28=false}}, - {.VST1_LANE, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800400, 0xFFB00C00, .NEON, .A32, {cond_in_28=false}}, - {.VST1_LANE, {.DPR_ELEM, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800800, 0xFFB00C00, .NEON, .A32, {cond_in_28=false}}, - }, - .VST2_LANE = { - {.VST2_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800100, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VST2_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800500, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VST2_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800900, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - }, - .VST3_LANE = { - {.VST3_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800200, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VST3_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800600, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VST3_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800A00, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - }, - .VST4_LANE = { - {.VST4_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800300, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VST4_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800700, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - {.VST4_LANE, {.DPR_LIST, .MEM, .NONE, .NONE}, {.VD_D, .RN_A32, .NONE, .NONE}, 0xF4800B00, 0xFFB00D00, .NEON, .A32, {cond_in_28=false}}, - }, // ========================================================================= // ARMv8-M Security Extensions (TrustZone-M) -- TT / TTT / TTA / TTAT @@ -3039,29 +3043,29 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // TTAT : A=1 T=1 -> 0xE840F0C0 // mask 0xFFF0FFC0 keeps Rn and Rd variable, fixes A and T bits per mnemonic. .TT = { - {.TT, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE}, 0xE840F000, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}}, + {.TT, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE840F000, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .TTT = { - {.TTT, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE}, 0xE840F040, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}}, + {.TTT, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE840F040, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .TTA = { - {.TTA, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE}, 0xE840F080, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}}, + {.TTA, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE840F080, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .TTAT = { - {.TTAT, {.GPR, .GPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE}, 0xE840F0C0, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}}, + {.TTAT, {.GPR, .GPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .NONE, .NONE, .NONE, .NONE}, 0xE840F0C0, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // SG: Secure Gateway -- 32-bit T32 instruction that looks like two NOPs // bits = 0xE97F E97F .SG = { - {.SG, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xE97FE97F, 0xFFFFFFFF, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}}, + {.SG, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xE97FE97F, 0xFFFFFFFF, .V8M_SE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // BXNS Rm: T16 16-bit, 0100 0111 0 Rm[3:0] 100 = 0x4704 base, bit 2 = 1 .BXNS = { - {.BXNS, {.GPR, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE}, 0x00004704, 0x0000FF87, .V8M_SE, .T32, {cond_in_28=false, branch=true}}, + {.BXNS, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00004704, 0x0000FF87, .V8M_SE, .T32, {cond_in_28=false, branch=true}, {}}, }, // BLXNS Rm: T16, 0100 0111 1 Rm[3:0] 100 = 0x4784 base .BLXNS = { - {.BLXNS, {.GPR, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE}, 0x00004784, 0x0000FF87, .V8M_SE, .T32, {cond_in_28=false, branch=true}}, + {.BLXNS, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RM_T16_HI, .NONE, .NONE, .NONE, .NONE, .NONE}, 0x00004784, 0x0000FF87, .V8M_SE, .T32, {cond_in_28=false, branch=true}, {}}, }, // ========================================================================= @@ -3073,20 +3077,20 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // AUTG Rd, Rn, Rm: more general form using FB50F000 base // BTI: HINT #15 = 0xF3AF80F0 .PAC = { - {.PAC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF801D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.PAC, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF801D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .PACBTI = { - {.PACBTI, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF800D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.PACBTI, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF800D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .AUT = { - {.AUT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF802D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.AUT, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF802D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .AUTG = { // AUTG Rd, Rn, Rm: 1111 1011 0101 Rn 1111 Rd 0000 Rm - {.AUTG, {.GPR, .GPR, .GPR, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE}, 0xFB50F000, 0xFFF0F0F0, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.AUTG, {.GPR, .GPR, .GPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .RM_T32, .NONE, .NONE, .NONE}, 0xFB50F000, 0xFFF0F0F0, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .BTI = { - {.BTI, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF3AF80F0, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.BTI, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF3AF80F0, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ========================================================================= @@ -3099,49 +3103,49 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // LETP / WLSTP / DLSTP: same family with TP variant bit // LCTP: 1111 0000 0000 1111 1110 0 0000 0000 0000 1 .WLS = { - {.WLS, {.GPR, .REL11, .NONE, .NONE}, {.RN_T32, .MVE_LOOP_IMM, .NONE, .NONE}, 0xF040C001, 0xFFF0F001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.WLS, {.GPR, .REL11, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .MVE_LOOP_IMM, .NONE, .NONE, .NONE, .NONE}, 0xF040C001, 0xFFF0F001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {}}, }, .WLSTP = { // WLSTP.: bits 22:20 carry size selector (B/H/W/D) - {.WLSTP, {.GPR, .REL11, .NONE, .NONE}, {.RN_T32, .MVE_LOOP_IMM, .NONE, .NONE}, 0xF000C001, 0xFEC0F001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.WLSTP, {.GPR, .REL11, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .MVE_LOOP_IMM, .NONE, .NONE, .NONE, .NONE}, 0xF000C001, 0xFEC0F001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {.SZ8, .NONE}}, }, .DLS = { - {.DLS, {.GPR, .NONE, .NONE, .NONE}, {.RN_T32, .NONE, .NONE, .NONE}, 0xF040E001, 0xFFF0FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.DLS, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF040E001, 0xFFF0FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .DLSTP = { - {.DLSTP, {.GPR, .NONE, .NONE, .NONE}, {.RN_T32, .NONE, .NONE, .NONE}, 0xF000E001, 0xFEC0FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.DLSTP, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF000E001, 0xFEC0FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .LE = { - {.LE, {.REL11, .NONE, .NONE, .NONE}, {.MVE_LOOP_IMM, .NONE, .NONE, .NONE}, 0xF00FC001, 0xFFFFF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.LE, {.REL11, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MVE_LOOP_IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF00FC001, 0xFFFFF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {}}, }, .LETP = { - {.LETP, {.REL11, .NONE, .NONE, .NONE}, {.MVE_LOOP_IMM, .NONE, .NONE, .NONE}, 0xF01FC001, 0xFFFFF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.LETP, {.REL11, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MVE_LOOP_IMM, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF01FC001, 0xFFFFF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {}}, }, .LCTP = { - {.LCTP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF00FE001, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}}, + {.LCTP, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF00FE001, 0xFFFFFFFF, .V81M, .T32, {thumb32=true, cond_in_28=false}, {}}, }, - // BF / BFL / BFLX / BFI_BR (Branch Future, ARMv8.1-M). T32, word = hw0<<16|hw1. + // BF / BFL / BFLX / BFX (Branch Future, ARMv8.1-M). T32, word = hw0<<16|hw1. // bf-point: imm4 = (label-(PC+4))/2 at hw0[10:7]; branch target: val = // (label-(PC+4))/2 with J at hw1[11] and imm10 at hw1[10:1]; BFLX/BFX target // is a register Rm at hw0[3:0]. (BFCSEL has an extra else-target + condition.) .BF = { - {.BF, {.REL_BF, .REL_BF, .NONE, .NONE}, {.BF_BOFF, .BF_BLOC, .NONE, .NONE}, 0xF040E001, 0xF87FF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.BF, {.REL_BF, .REL_BF, .NONE, .NONE, .NONE, .NONE}, {.BF_BOFF, .BF_BLOC, .NONE, .NONE, .NONE, .NONE}, 0xF040E001, 0xF87FF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {}}, }, .BFL = { - {.BFL, {.REL_BF, .REL_BF, .NONE, .NONE}, {.BF_BOFF, .BF_BLOC, .NONE, .NONE}, 0xF000C001, 0xF87FF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.BFL, {.REL_BF, .REL_BF, .NONE, .NONE, .NONE, .NONE}, {.BF_BOFF, .BF_BLOC, .NONE, .NONE, .NONE, .NONE}, 0xF000C001, 0xF87FF001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {.SZ8, .NONE}}, }, .BFLX = { - {.BFLX, {.REL_BF, .GPR, .NONE, .NONE}, {.BF_BOFF, .BF_RM, .NONE, .NONE}, 0xF070E001, 0xF870FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.BFLX, {.REL_BF, .GPR, .NONE, .NONE, .NONE, .NONE}, {.BF_BOFF, .BF_RM, .NONE, .NONE, .NONE, .NONE}, 0xF070E001, 0xF870FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {}}, }, - .BFI_BR = { - {.BFI_BR, {.REL_BF, .GPR, .NONE, .NONE}, {.BF_BOFF, .BF_RM, .NONE, .NONE}, 0xF060E001, 0xF870FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + .BFX = { + {.BFX, {.REL_BF, .GPR, .NONE, .NONE, .NONE, .NONE}, {.BF_BOFF, .BF_RM, .NONE, .NONE, .NONE, .NONE}, 0xF060E001, 0xF870FFFF, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {}}, }, // BFCSEL: bf-point + true-target (hw1, like BF) + 4-bit condition at hw0[5:2]; // hw0[1] is a static marker. The else-target is the architectural fall-through // (implicit) so it is not a separate operand. .BFCSEL = { - {.BFCSEL, {.REL_BF, .REL_BF, .IMM4, .NONE}, {.BF_BOFF, .BF_BLOC, .BFCSEL_COND, .NONE}, 0xF002E001, 0xF843F001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}}, + {.BFCSEL, {.REL_BF, .REL_BF, .IMM4, .NONE, .NONE, .NONE}, {.BF_BOFF, .BF_BLOC, .BFCSEL_COND, .NONE, .NONE, .NONE}, 0xF002E001, 0xF843F001, .V81M, .T32, {thumb32=true, cond_in_28=false, branch=true}, {.SZ8, .NONE}}, }, // ========================================================================= @@ -3162,66 +3166,66 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // Base T32 prefix 0xEE/0xEC selects which coproc encoding family. Bit 16 // (A bit) distinguishes accumulator variants (CX1A from CX1, etc.). .CX1 = { - {.CX1, {.IMM_COPROC, .GPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE}, 0xEE000000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX1, {.IMM_COPROC, .GPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xEE000000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX1A = { - {.CX1A, {.IMM_COPROC, .GPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE}, 0xFE000000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX1A, {.IMM_COPROC, .GPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xFE000000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX1D = { - {.CX1D, {.IMM_COPROC, .GPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE}, 0xEE800000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX1D, {.IMM_COPROC, .GPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xEE800000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX1DA = { - {.CX1DA, {.IMM_COPROC, .GPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE}, 0xFE800000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX1DA, {.IMM_COPROC, .GPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xFE800000, 0xFF800000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX2 = { - {.CX2, {.IMM_COPROC, .GPR, .GPR, .IMM}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD}, 0xEE400000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX2, {.IMM_COPROC, .GPR, .GPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD, .NONE, .NONE}, 0xEE400000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX2A = { - {.CX2A, {.IMM_COPROC, .GPR, .GPR, .IMM}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD}, 0xFE400000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX2A, {.IMM_COPROC, .GPR, .GPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD, .NONE, .NONE}, 0xFE400000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX2D = { - {.CX2D, {.IMM_COPROC, .GPR, .GPR, .IMM}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX2D, {.IMM_COPROC, .GPR, .GPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD, .NONE, .NONE}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX2DA = { - {.CX2DA, {.IMM_COPROC, .GPR, .GPR, .IMM}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX2DA, {.IMM_COPROC, .GPR, .GPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .CDE_IMM_FIELD, .NONE, .NONE}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // CX3 has Rn and Rm inputs (Rm placed at bits 3:0 of low half) .CX3 = { - {.CX3, {.IMM_COPROC, .GPR, .GPR, .GPR}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32}, 0xEE800000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX3, {.IMM_COPROC, .GPR, .GPR, .GPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xEE800000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX3A = { - {.CX3A, {.IMM_COPROC, .GPR, .GPR, .GPR}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32}, 0xFE800000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX3A, {.IMM_COPROC, .GPR, .GPR, .GPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xFE800000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX3D = { - {.CX3D, {.IMM_COPROC, .GPR, .GPR, .GPR}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX3D, {.IMM_COPROC, .GPR, .GPR, .GPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .CX3DA = { - {.CX3DA, {.IMM_COPROC, .GPR, .GPR, .GPR}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.CX3DA, {.IMM_COPROC, .GPR, .GPR, .GPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .RD_T32, .RN_T32, .RM_T32, .NONE, .NONE}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // VCX variants -- VFP/FP-register destination using S or D form .VCX1 = { - {.VCX1, {.IMM_COPROC, .SPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .CDE_IMM_FIELD, .NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, - {.VCX1, {.IMM_COPROC, .DPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .CDE_IMM_FIELD, .NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.VCX1, {.IMM_COPROC, .SPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VCX1, {.IMM_COPROC, .DPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VCX1A = { - {.VCX1A, {.IMM_COPROC, .SPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .CDE_IMM_FIELD, .NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, - {.VCX1A, {.IMM_COPROC, .DPR, .IMM, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .CDE_IMM_FIELD, .NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.VCX1A, {.IMM_COPROC, .SPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VCX1A, {.IMM_COPROC, .DPR, .IMM, .NONE, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VCX2 = { - {.VCX2, {.IMM_COPROC, .SPR, .SPR, .IMM}, {.CDE_COPROC_FIELD, .VD_S, .VM_S, .CDE_IMM_FIELD}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, - {.VCX2, {.IMM_COPROC, .DPR, .DPR, .IMM}, {.CDE_COPROC_FIELD, .VD_D, .VM_D, .CDE_IMM_FIELD}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.VCX2, {.IMM_COPROC, .SPR, .SPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .VM_S, .CDE_IMM_FIELD, .NONE, .NONE}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VCX2, {.IMM_COPROC, .DPR, .DPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .VM_D, .CDE_IMM_FIELD, .NONE, .NONE}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VCX2A = { - {.VCX2A, {.IMM_COPROC, .SPR, .SPR, .IMM}, {.CDE_COPROC_FIELD, .VD_S, .VM_S, .CDE_IMM_FIELD}, 0xFC600000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, - {.VCX2A, {.IMM_COPROC, .DPR, .DPR, .IMM}, {.CDE_COPROC_FIELD, .VD_D, .VM_D, .CDE_IMM_FIELD}, 0xFC700000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.VCX2A, {.IMM_COPROC, .SPR, .SPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .VM_S, .CDE_IMM_FIELD, .NONE, .NONE}, 0xFC600000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VCX2A, {.IMM_COPROC, .DPR, .DPR, .IMM, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .VM_D, .CDE_IMM_FIELD, .NONE, .NONE}, 0xFC700000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VCX3 = { - {.VCX3, {.IMM_COPROC, .SPR, .SPR, .SPR}, {.CDE_COPROC_FIELD, .VD_S, .VN_S, .VM_S}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, - {.VCX3, {.IMM_COPROC, .DPR, .DPR, .DPR}, {.CDE_COPROC_FIELD, .VD_D, .VN_D, .VM_D}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.VCX3, {.IMM_COPROC, .SPR, .SPR, .SPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .VN_S, .VM_S, .NONE, .NONE}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VCX3, {.IMM_COPROC, .DPR, .DPR, .DPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .VN_D, .VM_D, .NONE, .NONE}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VCX3A = { - {.VCX3A, {.IMM_COPROC, .SPR, .SPR, .SPR}, {.CDE_COPROC_FIELD, .VD_S, .VN_S, .VM_S}, 0xFC800000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, - {.VCX3A, {.IMM_COPROC, .DPR, .DPR, .DPR}, {.CDE_COPROC_FIELD, .VD_D, .VN_D, .VM_D}, 0xFC900000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}}, + {.VCX3A, {.IMM_COPROC, .SPR, .SPR, .SPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_S, .VN_S, .VM_S, .NONE, .NONE}, 0xFC800000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VCX3A, {.IMM_COPROC, .DPR, .DPR, .DPR, .NONE, .NONE}, {.CDE_COPROC_FIELD, .VD_D, .VN_D, .VM_D, .NONE, .NONE}, 0xFC900000, 0xFF300000, .CDE, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ========================================================================= @@ -3240,310 +3244,299 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // where mask in bits 13-11 encodes then/else pattern + length // VPT (LLVM-verified): vpt.i8 eq, q2, q3 = 0xFE45_0F06 -> base 0xFE010F00 .VPT = { - {.VPT, {.MVE_VPT_MASK, .COND, .QPR, .QPR}, {.MVE_VPT_MASK_FIELD, .NONE, .VN_Q, .VM_Q}, 0xFE010F00, 0xFE018FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VPT, {.MVE_VPT_MASK, .COND, .QPR, .QPR, .NONE, .NONE}, {.MVE_VPT_MASK_FIELD, .NONE, .VN_Q, .VM_Q, .NONE, .NONE}, 0xFE010F00, 0xFE018FF0, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, }, // VPST = 0xFE71_0F4D .VPST = { - {.VPST, {.MVE_VPT_MASK, .NONE, .NONE, .NONE}, {.MVE_VPT_MASK_FIELD, .NONE, .NONE, .NONE}, 0xFE710F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VPST, {.MVE_VPT_MASK, .NONE, .NONE, .NONE, .NONE, .NONE}, {.MVE_VPT_MASK_FIELD, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xFE710F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // VPSEL (LLVM): vpsel q1, q2, q3 = 0xFE35_2F07 -> base 0xFE010F01 .VPSEL = { - {.VPSEL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFE010F01, 0xFFB10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VPSEL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFE010F01, 0xFFB10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, }, // VPNOT = 0xFE31_0F4D .VPNOT = { - {.VPNOT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xFE310F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VPNOT, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xFE310F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // VCTP (LLVM): vctp.8 r3 = 0xF003_E801 -> base 0xF000E801 with Rn at bits 19:16 .VCTP = { - {.VCTP, {.GPR, .NONE, .NONE, .NONE}, {.RN_T32, .NONE, .NONE, .NONE}, 0xF000E801, 0xFFC0FFFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VCTP, {.GPR, .NONE, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF000E801, 0xFFC0FFFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, // ---- MVE reductions (single Q -> GPR or pair) ----------------------------- // MVE reductions (LLVM-verified bases for size-00 .S8 forms). .VADDV = { // vaddv.s8 r0, q3 = 0xEEF1_0F06 -> base 0xEEF10F00 - {.VADDV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEF10F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VADDV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEF10F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VADDVA = { // vaddva.s8 r0, q3 = 0xEEF1_0F26 -> base 0xEEF10F20 - {.VADDVA, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEF10F20, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VADDVA, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEF10F20, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VADDLV = { // vaddlv.s32 r0,r1,q3 = 0xEE89_0F06 -> base 0xEE890F00 (Rd=R0 at 11:8, Rn=R1 implicit pair) - {.VADDLV, {.GPR, .GPR, .QPR, .NONE}, {.RD_T32, .RN_T32, .VM_Q, .NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VADDLV, {.GPR, .GPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VADDLVA = { - {.VADDLVA, {.GPR, .GPR, .QPR, .NONE}, {.RD_T32, .RN_T32, .VM_Q, .NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VADDLVA, {.GPR, .GPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMAXV = { // vmaxv.s8 r0, q3 = 0xEEE2_0F06 -> base 0xEEE20F00 - {.VMAXV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEE20F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMAXV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEE20F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VMAXAV = { - {.VMAXAV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMAXAV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VMINV = { // vminv.s8 r0, q3 = 0xEEE2_0F86 -> base 0xEEE20F80 - {.VMINV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMINV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VMINAV = { - {.VMINAV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMINAV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VMAXNMV = { // vmaxnmv.f32 r0, q3 = 0xEEEE_0F06 -> base 0xEEEE0F00 - {.VMAXNMV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VMAXNMV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VMAXNMAV = { - {.VMAXNMAV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEEC0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VMAXNMAV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEEC0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VMINNMV = { // vminnmv.f32 r0, q3 = 0xEEEE_0F86 -> base 0xEEEE0F80 - {.VMINNMV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEEE0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VMINNMV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEEE0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, .VMINNMAV = { - {.VMINNMAV, {.GPR, .QPR, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE}, 0xEEEC0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VMINNMAV, {.GPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.RD_T32, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEEEC0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F32, .NONE}}, }, // ---- MVE dual MAC reductions (representative; full B/T/X variants encoded similarly) ---- // MVE MAC reductions (LLVM-verified for .S8 sizes; size bits in 21:20): // vabav.s8 r0, q2, q3 = 0xEE84_0F07 -> base 0xEE800F01 .VABAV = { - {.VABAV, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEE800F01, 0xEFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VABAV, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE800F01, 0xEFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // vmlav.s8 r0,q2,q3 = 0xEEF4_0F06 -> base 0xEEB00F00 // vmladav.s8 = same encoding as vmlav (alias) .VMLAV = { - {.VMLAV, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLAV, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLAVA = { - {.VMLAVA, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLAVA, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLADAV = { - {.VMLADAV, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLADAV, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLADAVA = { // vmladava.s8 = 0xEEF4_0F26 -> base 0xEEB00F20 - {.VMLADAVA, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLADAVA, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLADAVX = { // vmladavx.s8 = 0xEEF4_1F06 -> base 0xEEB01F00 - {.VMLADAVX, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEEB01F00, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLADAVX, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEEB01F00, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLADAVAX = { - {.VMLADAVAX, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xEEB01F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLADAVAX, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEEB01F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLSDAV = { // vmlsdav.s8 r0,q2,q3 = 0xFEF4_0E07 -> base 0xFEB00E01 - {.VMLSDAV, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xFEB00E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSDAV, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFEB00E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLSDAVA = { - {.VMLSDAVA, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xFEB00E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSDAVA, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFEB00E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLSDAVX = { - {.VMLSDAVX, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xFEB01E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSDAVX, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFEB01E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VMLSDAVAX = { - {.VMLSDAVAX, {.GPR, .QPR, .QPR, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE}, 0xFEB01E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSDAVAX, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RD_T32, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFEB01E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, // Long-version (64-bit pair RdaLo, RdaHi) // vmlaldav.s32 r0,r1,q2,q3 = 0xEE85_0E06 -> base 0xEE800E00 (with Qn at 19:17 expanded view) // Need to verify exact base after Rn at bits 11:8 + Rd at bits 15:12. .VMLALDAV = { - {.VMLALDAV, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE800E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLALDAV, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE800E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLALDAVA = { - {.VMLALDAVA, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE800E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLALDAVA, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE800E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLALDAVX = { - {.VMLALDAVX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE801E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLALDAVX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE801E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLALDAVAX = { - {.VMLALDAVAX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE801E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLALDAVAX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE801E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLSLDAV = { // vmlsldav.s32 r0,r1,q2,q3 = 0xEE85_0E07 -> base 0xEE800E01 - {.VMLSLDAV, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSLDAV, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLSLDAVA = { - {.VMLSLDAVA, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSLDAVA, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLSLDAVX = { // vmlsldavx.s32 = 0xEE85_1E07 -> base 0xEE801E01 - {.VMLSLDAVX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSLDAVX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VMLSLDAVAX = { - {.VMLSLDAVAX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSLDAVAX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, // High-half rounding reductions: // vrmlaldavh.s32 r0,r1,q2,q3 = 0xEE84_0F06 -> base 0xEE800F00 // vrmlsldavh.s32 r0,r1,q2,q3 = 0xFE84_0E07 -> base 0xFE800E01 .VRMLALDAVH = { - {.VRMLALDAVH, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE800F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLALDAVH, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE800F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLALDAVHA = { - {.VRMLALDAVHA, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE800F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLALDAVHA, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE800F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLALDAVHX = { - {.VRMLALDAVHX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE801F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLALDAVHX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE801F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLALDAVHAX = { - {.VRMLALDAVHAX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xEE801F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLALDAVHAX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xEE801F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLSLDAVH = { - {.VRMLSLDAVH, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xFE800E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLSLDAVH, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xFE800E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLSLDAVHA = { - {.VRMLSLDAVHA, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xFE800E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLSLDAVHA, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xFE800E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLSLDAVHX = { - {.VRMLSLDAVHX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xFE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLSLDAVHX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xFE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, .VRMLSLDAVHAX = { - {.VRMLSLDAVHAX, {.GPR, .GPR, .QPR, .QPR}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q}, 0xFE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRMLSLDAVHAX, {.GPR, .GPR, .QPR, .QPR, .NONE, .NONE}, {.RD_T32, .RN_T32, .VN_Q, .VM_Q, .NONE, .NONE}, 0xFE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S32, .NONE}}, }, // ---- MVE complex arithmetic ------------------------------------------------ .VCMUL = { - {.VCMUL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE300E00, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}}, + {.VCMUL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE300E00, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}, {.F16, .NONE}}, }, .VHCADD = { - {.VHCADD, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE000F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VHCADD, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE000F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, + {.VHCADD, {.QPR, .QPR, .QPR, .IMM, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .MVE_ROT_HCADD, .NONE, .NONE}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // ---- MVE shifts (specialized) --------------------------------------------- .VSHLC = { // VSHLC Qd, Rdm, #imm5 -- vector shift left with carry from GPR - {.VSHLC, {.QPR, .GPR, .IMM5, .NONE}, {.VD_Q, .RM_T32, .A32_IMM_SHIFT, .NONE}, 0xEE000FC0, 0xFFC00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHLC, {.QPR, .GPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .RM_T32, .A32_IMM_SHIFT, .NONE, .NONE, .NONE}, 0xEE000FC0, 0xFFC00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VBRSR = { // VBRSR Qd, Qn, Rm -- bit reverse with shift right - {.VBRSR, {.QPR, .QPR, .GPR, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE}, 0xEE011E60, 0xEF811F71, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VBRSR, {.QPR, .QPR, .GPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .RM_T32, .NONE, .NONE, .NONE}, 0xEE011E60, 0xEF811F71, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I8, .NONE}}, }, // ---- MVE counter init duplicates ------------------------------------------ .VDDUP = { - {.VDDUP, {.QPR, .GPR, .IMM, .NONE}, {.VD_Q, .RM_T32, .CDE_IMM_FIELD, .NONE}, 0xEE011F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VDDUP, {.QPR, .GPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .RM_T32, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xEE011F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, }, .VIDUP = { - {.VIDUP, {.QPR, .GPR, .IMM, .NONE}, {.VD_Q, .RM_T32, .CDE_IMM_FIELD, .NONE}, 0xEE010F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VIDUP, {.QPR, .GPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .RM_T32, .CDE_IMM_FIELD, .NONE, .NONE, .NONE}, 0xEE010F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, }, .VDWDUP = { - {.VDWDUP, {.QPR, .GPR, .GPR, .IMM}, {.VD_Q, .RM_T32, .RN_T32, .CDE_IMM_FIELD}, 0xEE011F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VDWDUP, {.QPR, .GPR, .GPR, .IMM, .NONE, .NONE}, {.VD_Q, .RM_T32, .RN_T32, .CDE_IMM_FIELD, .NONE, .NONE}, 0xEE011F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, }, .VIWDUP = { - {.VIWDUP, {.QPR, .GPR, .GPR, .IMM}, {.VD_Q, .RM_T32, .RN_T32, .CDE_IMM_FIELD}, 0xEE010F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VIWDUP, {.QPR, .GPR, .GPR, .IMM, .NONE, .NONE}, {.VD_Q, .RM_T32, .RN_T32, .CDE_IMM_FIELD, .NONE, .NONE}, 0xEE010F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, }, // MVE narrow B/T (LLVM-verified for .S16 sizes; T-form bit 12 = 1): .VMOVNB = { // vmovnb.s16 q1, q3 = 0xFE31_2E87 -> base 0xFE310E81 - {.VMOVNB, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMOVNB, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I16, .NONE}}, }, .VMOVNT = { - {.VMOVNT, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xFE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMOVNT, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xFE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.I16, .NONE}}, }, .VQMOVNB = { // vqmovnb.s16 q1, q3 = 0xEE33_2E07 -> base 0xEE330E01 - {.VQMOVNB, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xEE330E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQMOVNB, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEE330E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VQMOVNT = { - {.VQMOVNT, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xEE331E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQMOVNT, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEE331E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VQMOVUNB = { // vqmovunb.s16 q1, q3 = 0xEE31_2E87 -> base 0xEE310E81 - {.VQMOVUNB, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xEE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQMOVUNB, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, .VQMOVUNT = { - {.VQMOVUNT, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xEE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQMOVUNT, {.QPR, .QPR, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE, .NONE, .NONE}, 0xEE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S16, .NONE}}, }, // MVE widening (long) B/T forms: .VSHLLB = { // vshllb.s8 q1, q3, #4 = 0xEEAC_2F46 -> base 0xEE800F40 (imm6 in 21:16, // includes the size-prefix 101sss for .S8) - {.VSHLLB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHLLB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VSHLLT = { - {.VSHLLT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHLLT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VMULLB = { // vmullb.s8 q1, q2, q3 = 0xEE05_2E06 -> base 0xEE000E00 - {.VMULLB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMULLB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VMULLT = { - {.VMULLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMULLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // VMLALB/T/VMLSLB/T: LLVM doesn't seem to support direct mnemonics in // its assembler; encodings derived heuristically from VMULL B/T pattern .VMLALB = { - {.VMLALB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE000E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLALB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE000E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VMLALT = { - {.VMLALT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE001E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLALT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE001E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VMLSLB = { - {.VMLSLB, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE000E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSLB, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE000E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VMLSLT = { - {.VMLSLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE001E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VMLSLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE001E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // Narrow shift B/T forms (LLVM-verified): // vshrnb.i16 q,q,#shift = 0xEE8F_2EC7 base 0xEE800EC1 (imm6 = 16-shift) // vshrnt.i16 = bit 12 = 1 .VSHRNB = { - {.VSHRNB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE800EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHRNB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE800EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VSHRNT = { - {.VSHRNT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE801EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSHRNT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE801EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VRSHRNB = { - {.VRSHRNB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xFE800EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRSHRNB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xFE800EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VRSHRNT = { - {.VRSHRNT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xFE801EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VRSHRNT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xFE801EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQSHRNB = { // vqshrnb.s16 q,q,#4 = 0xEE8C_2F46 -> base 0xEE800F40 - {.VQSHRNB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQSHRNB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQSHRNT = { - {.VQSHRNT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQSHRNT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQRSHRNB = { // vqrshrnb.s16 q,q,#4 = 0xEE8C_2F47 -> base 0xEE800F41 - {.VQRSHRNB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE800F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRSHRNB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE800F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQRSHRNT = { - {.VQRSHRNT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE801F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRSHRNT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE801F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQSHRUNB = { // vqshrunb.s16 q,q,#4 = 0xEE8C_2FC6 -> base 0xEE800FC0 - {.VQSHRUNB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE800FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQSHRUNB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE800FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQSHRUNT = { - {.VQSHRUNT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xEE801FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQSHRUNT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xEE801FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQRSHRUNB = { // vqrshrunb.s16 q,q,#4 = 0xFE8C_2FC6 -> base 0xFE800FC0 - {.VQRSHRUNB, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xFE800FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRSHRUNB, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xFE800FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VQRSHRUNT = { - {.VQRSHRUNT, {.QPR, .QPR, .IMM5, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xFE801FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRSHRUNT, {.QPR, .QPR, .IMM5, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xFE801FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // ---- MVE Q-lane GPR move --------------------------------------------------- - .VMOV_Q_R = { - // VMOV. Qd[i], Rt -- single lane Rt -> Qd[i] - {.VMOV_Q_R, {.QPR_ELEM, .GPR, .NONE, .NONE}, {.VD_Q, .RT_T32, .NONE, .NONE}, 0xEE000B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VMOV_R_Q = { - // VMOV. Rt, Qd[i] - {.VMOV_R_Q, {.GPR, .QPR_ELEM, .NONE, .NONE}, {.RT_T32, .VD_Q, .NONE, .NONE}, 0xEE100B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, - .VMOV_2GPR_Q = { - // VMOV Qd[2*i], Qd[2*i+1], Rt, Rt2 -- pair move - {.VMOV_2GPR_Q, {.QPR_ELEM, .QPR_ELEM, .GPR, .GPR}, {.VD_Q, .VD_Q, .RT_T32, .RT2_T32}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, - }, // MVE saturating doubling MAC (LLVM-verified for .S8 sizes): // vqdmladh.s8 q1,q2,q3 = 0xEE04_2E06 -> base 0xEE000E00 @@ -3551,28 +3544,28 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // vqdmlsdh = top byte 0xFE (vs 0xEE) // vqrdmladh = bit 0 = 1 (vs 0) .VQDMLADH = { - {.VQDMLADH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQDMLADH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQDMLADHX = { - {.VQDMLADHX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQDMLADHX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQDMLSDH = { - {.VQDMLSDH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFE000E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQDMLSDH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFE000E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQDMLSDHX = { - {.VQDMLSDHX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFE001E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQDMLSDHX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFE001E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQRDMLADH = { - {.VQRDMLADH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE000E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRDMLADH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE000E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQRDMLADHX = { - {.VQRDMLADHX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xEE001E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRDMLADHX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xEE001E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQRDMLSDH = { - {.VQRDMLSDH, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRDMLSDH, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, .VQRDMLSDHX = { - {.VQRDMLSDHX, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VQRDMLSDHX, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_Q, .NONE, .NONE, .NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.S8, .NONE}}, }, // ---- MVE load/store -------------------------------------------------------- @@ -3582,249 +3575,254 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // vldrw.u32 q1, [r2] = 0xED92_3F00 -> base 0xED901F00 // vstrb.8 q1, [r2] = 0xED82_3E00 -> base 0xED801E00 .VLDRB = { - {.VLDRB, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLDRB, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, + {.VLDRB, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U8, .NONE}}, }, .VLDRH = { - {.VLDRH, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED901E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLDRH, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED901E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U16, .NONE}}, + {.VLDRH, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U16, .NONE}}, }, .VLDRW = { - {.VLDRW, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED901F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLDRW, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED901F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U32, .NONE}}, + {.VLDRW, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U32, .NONE}}, }, .VLDRD = { - {.VLDRD, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED901F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLDRD, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED901F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VLDRD, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.U64, .NONE}}, }, .VSTRB = { - {.VSTRB, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSTRB, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, + {.VSTRB, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xEC600E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VSTRH = { - {.VSTRH, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED801E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSTRH, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED801E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ16, .NONE}}, + {.VSTRH, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xEC600E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VSTRW = { - {.VSTRW, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED801F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSTRW, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED801F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ32, .NONE}}, + {.VSTRW, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xEC600F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, .VSTRD = { - {.VSTRD, {.QPR, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE}, 0xED801F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VSTRD, {.QPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM12_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xED801F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, + {.VSTRD, {.QPR, .MEM, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .RN_T32, .VM_Q, .NONE, .NONE, .NONE}, 0xEC600FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}}, }, // Interleaved load/store -- 2-vector .VLD20 = { - {.VLD20, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC901E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLD20, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC901E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VLD21 = { - {.VLD21, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC901E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLD21, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC901E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VLD40 = { - {.VLD40, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC901E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLD40, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC901E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VLD41 = { - {.VLD41, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC901E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLD41, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC901E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VLD42 = { - {.VLD42, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC901E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLD42, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC901E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VLD43 = { - {.VLD43, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC901E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VLD43, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC901E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VST20 = { - {.VST20, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC801E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VST20, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC801E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VST21 = { - {.VST21, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC801E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VST21, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC801E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VST40 = { - {.VST40, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC801E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VST40, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC801E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VST41 = { - {.VST41, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC801E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VST41, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC801E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VST42 = { - {.VST42, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC801E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VST42, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC801E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, .VST43 = { - {.VST43, {.QPR_MVE_LIST, .MEM, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE}, 0xFC801E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}}, + {.VST43, {.QPR_MVE_LIST, .MEM, .NONE, .NONE, .NONE, .NONE}, {.VD_Q, .MEM_IMM8_OFFSET, .NONE, .NONE, .NONE, .NONE}, 0xFC801E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {.SZ8, .NONE}}, }, // Unprivileged (translate) post-indexed loads/stores: the post-index form // with the W bit (21) set. Word/byte use imm12, half/signed use imm8 split. - .LDRT = { {.LDRT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04B00000, 0x0F700000, .BASE, .A32, {}} }, - .LDRBT = { {.LDRBT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04F00000, 0x0F700000, .BASE, .A32, {}} }, - .STRT = { {.STRT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04A00000, 0x0F700000, .BASE, .A32, {}} }, - .STRBT = { {.STRBT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x04E00000, 0x0F700000, .BASE, .A32, {}} }, - .LDRHT = { {.LDRHT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00F000B0, 0x0F7000F0, .BASE, .A32, {}} }, - .STRHT = { {.STRHT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00E000B0, 0x0F7000F0, .BASE, .A32, {}} }, - .LDRSBT = { {.LDRSBT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00F000D0, 0x0F7000F0, .BASE, .A32, {}} }, - .LDRSHT = { {.LDRSHT, {.GPR, .MEM, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE}, 0x00F000F0, 0x0F7000F0, .BASE, .A32, {}} }, + .LDRT = { {.LDRT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04300000, 0x0F700000, .BASE, .A32, {}, {}} }, + .LDRBT = { {.LDRBT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04700000, 0x0F700000, .BASE, .A32, {}, {}} }, + .STRT = { {.STRT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04200000, 0x0F700000, .BASE, .A32, {}, {}} }, + .STRBT = { {.STRBT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x04600000, 0x0F700000, .BASE, .A32, {}, {}} }, + .LDRHT = { {.LDRHT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x007000B0, 0x0F7000F0, .BASE, .A32, {}, {}} }, + .STRHT = { {.STRHT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x006000B0, 0x0F7000F0, .BASE, .A32, {}, {}} }, + .LDRSBT = { {.LDRSBT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x007000D0, 0x0F7000F0, .BASE, .A32, {}, {}} }, + .LDRSHT = { {.LDRSHT, {.GPR, .MEM, .NONE, .NONE, .NONE, .NONE}, {.RT_A32, .MEM_IMM8_POST_INDEX, .NONE, .NONE, .NONE, .NONE}, 0x007000F0, 0x0F7000F0, .BASE, .A32, {}, {}} }, // NEON rounding shift-right-accumulate (imm); FP reciprocal/rsqrt estimate; // FP pairwise add; VFP convert-to-integer using the FPSCR rounding mode. .VRSRA = { - {.VRSRA, {.DPR, .DPR, .IMM, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE}, 0xF2800310, 0xFE800F10, .NEON, .A32, {cond_in_28=false}}, - {.VRSRA, {.QPR, .QPR, .IMM, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE}, 0xF2800350, 0xFE800F50, .NEON, .A32, {cond_in_28=false}}, - }, - .VRECPE_F = { - {.VRECPE_F, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRECPE_F, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - }, - .VRSQRTE_F = { - {.VRSQRTE_F, {.DPR, .DPR, .NONE, .NONE}, {.VD_D, .VM_D, .NONE, .NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - {.VRSQRTE_F, {.QPR, .QPR, .NONE, .NONE}, {.VD_Q, .VM_Q, .NONE, .NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {cond_in_28=false}}, - }, - .VPADD_F = { - {.VPADD_F, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {cond_in_28=false}}, - {.VPADD_F, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VN_D, .VM_D, .NONE}, 0xF3100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {cond_in_28=false}}, + {.VRSRA, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800310, 0xFE800F10, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, + {.VRSRA, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .NEON_SHIFT_IMM6, .NONE, .NONE, .NONE}, 0xF2800350, 0xFE800F50, .NEON, .A32, {cond_in_28=false}, {.I32, .NONE}}, }, .VCVTR = { - {.VCVTR, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBD0A40, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VCVTR, {.SPR, .SPR, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE}, 0x0EBC0A40, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VCVTR, {.SPR, .DPR, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE}, 0x0EBD0B40, 0x0FBF0FD0, .VFPV2, .A32, {}}, - {.VCVTR, {.SPR, .DPR, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE}, 0x0EBC0B40, 0x0FBF0FD0, .VFPV2, .A32, {}}, + {.VCVTR, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EBD0A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32, .F32}}, + {.VCVTR, {.SPR, .SPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_S, .NONE, .NONE, .NONE, .NONE}, 0x0EBC0A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32, .F32}}, + {.VCVTR, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EBD0B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32, .F64}}, + {.VCVTR, {.SPR, .DPR, .NONE, .NONE, .NONE, .NONE}, {.VD_S, .VM_D, .NONE, .NONE, .NONE, .NONE}, 0x0EBC0B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32, .F64}}, }, // Debug change PE state (T32, fixed encoding, no operands). - .DCPS1 = { {.DCPS1, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF78F8001, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}} }, - .DCPS2 = { {.DCPS2, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF78F8002, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}} }, - .DCPS3 = { {.DCPS3, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xF78F8003, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}} }, + .DCPS1 = { {.DCPS1, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF78F8001, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}} }, + .DCPS2 = { {.DCPS2, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF78F8002, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}} }, + .DCPS3 = { {.DCPS3, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE, .NONE}, 0xF78F8003, 0xFFFFFFFF, .V8, .T32, {thumb32=true, cond_in_28=false}, {}} }, // NEON (saturating) doubling multiply-high by scalar Dm[lane]: // .16 -> Dm in D0..D7 (bits 2:0), lane at bit5:bit3; .32 -> D0..D15, lane bit5. - .VQDMULH_LANE = { - {.VQDMULH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR16, .NONE}, 0xF2900C40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR16, .NONE}, 0xF3900C40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR32, .NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQDMULH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR32, .NONE}, 0xF3A00C40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - }, - .VQRDMULH_LANE = { - {.VQRDMULH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR16, .NONE}, 0xF2900D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRDMULH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR16, .NONE}, 0xF3900D40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRDMULH_LANE, {.DPR, .DPR, .DPR_ELEM, .NONE}, {.VD_D, .VN_D, .NEON_VM_SCALAR32, .NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRDMULH_LANE, {.QPR, .QPR, .DPR_ELEM, .NONE}, {.VD_Q, .VN_Q, .NEON_VM_SCALAR32, .NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - }, // VMOV (ARM core register to scalar): Dd[lane], Rt. The lane bits depend on // the element size (see VMOV_LANE_8/16/32); bit22/bit5 carry the size. - .VMOV_LANE = { - {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_8, .RT_A32, .NONE, .NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {}}, - {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_16, .RT_A32, .NONE, .NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {}}, - {.VMOV_LANE, {.DPR_ELEM, .GPR, .NONE, .NONE}, {.VMOV_LANE_32, .RT_A32, .NONE, .NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {}}, - }, // MVE (M-profile vector) multiply-subtract-across-vector reduce, halving // complex add (saturating), and complex multiply-accumulate. T32; the // complex ops carry a rotation immediate (degrees). // One form per mnemonic with the element-size bits left variable in the // mask (the MVE convention); the complex ops encode the rotation immediate. - .VHCADD_SAT = { {.VHCADD_SAT, {.QPR, .QPR, .QPR, .IMM}, {.VD_Q, .VN_Q, .VM_Q, .MVE_ROT_HCADD}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}} }, - .VCMLA_MVE = { {.VCMLA_MVE, {.QPR, .QPR, .QPR, .IMM}, {.VD_Q, .VN_Q, .VM_Q, .MVE_ROT_CMLA}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true, cond_in_28=false}} }, // MVE multiply-subtract reduce (Rd at 15:12, Qn at 19:17, Qm at 3:1 -- the // proper 3-bit MVE Q fields, .s16 form). VMLSVA accumulates (bit 5). - .VMLSV = { {.VMLSV, {.GPR, .QPR, .QPR, .NONE}, {.RDLO_A32, .VN_Q_MVE, .VM_Q_MVE, .NONE}, 0xEEF00E01, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}} }, - .VMLSVA = { {.VMLSVA, {.GPR, .QPR, .QPR, .NONE}, {.RDLO_A32, .VN_Q_MVE, .VM_Q_MVE, .NONE}, 0xEEF00E21, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}} }, + .VMLSV = { {.VMLSV, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RDLO_A32, .VN_Q_MVE, .VM_Q_MVE, .NONE, .NONE, .NONE}, 0xEEF00E01, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}} }, + .VMLSVA = { {.VMLSVA, {.GPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.RDLO_A32, .VN_Q_MVE, .VM_Q_MVE, .NONE, .NONE, .NONE}, 0xEEF00E21, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true, cond_in_28=false}, {}} }, // SPECGEN:BEGIN .VADDL = { - {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, + {.VADDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VADDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VADDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VADDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VADDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VADDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00000, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VSUBL = { - {.VSUBL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, + {.VSUBL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSUBL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VSUBL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VSUBL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VSUBL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VSUBL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00200, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VABAL = { - {.VABAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABAL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, + {.VABAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VABAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VABAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VABAL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00500, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VABDL = { - {.VABDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2900700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF2A00700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3800700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3900700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, - {.VABDL, {.QPR, .DPR, .DPR, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE}, 0xF3A00700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}}, + {.VABDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VABDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2900700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VABDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VABDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3800700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VABDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3900700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VABDL, {.QPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_D, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00700, 0xFFB01F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VADDW = { - {.VADDW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF2900100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF2A00100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3800100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VADDW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, + {.VADDW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VADDW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF2900100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VADDW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VADDW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF3800100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VADDW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF3900100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VADDW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00100, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VSUBW = { - {.VSUBW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF2900300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF2A00300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3800300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3900300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, - {.VSUBW, {.QPR, .QPR, .DPR, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE}, 0xF3A00300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}}, + {.VSUBW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VSUBW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF2900300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VSUBW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF2A00300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VSUBW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF3800300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VSUBW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF3900300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VSUBW, {.QPR, .QPR, .DPR, .NONE, .NONE, .NONE}, {.VD_Q, .VN_Q, .VM_D, .NONE, .NONE, .NONE}, 0xF3A00300, 0xFFB11F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, }, .VCLE = { - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2200350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3100310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3100350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3200310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2200350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3100310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3100350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3200310, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VCLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCLE, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10180, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLE, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B101C0, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLE, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90580, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCLE, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B905C0, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VCLT = { - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2200340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3100300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3100340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3200300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3200E00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VCLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2200340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3100300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3100340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3200300, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VCLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3200E00, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCLT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10200, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLT, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B10240, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VCLT, {.DPR, .DPR, .IMM, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90600, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VCLT, {.QPR, .QPR, .IMM, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .IMPL, .NONE, .NONE, .NONE}, 0xF3B90640, 0xFFBB0FD0, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VACLE = { - {.VACLE, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000E10, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VACLE, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, + {.VACLE, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000E10, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VACLE, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VACLT = { - {.VACLT, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3200E10, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VACLT, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, + {.VACLT, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3200E10, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, + {.VACLT, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.F32, .NONE}}, }, .VQRSHL = { - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2000510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2200550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF2300510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF2300550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3000510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3100510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3100550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3200510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.DPR, .DPR, .DPR, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE}, 0xF3300510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}}, - {.VQRSHL, {.QPR, .QPR, .QPR, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE}, 0xF3300550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2000510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S8, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S16, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2200550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S32, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF2300510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF2300550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.S64, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3000510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U8, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3100510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3100550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U16, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3200510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U32, .NONE}}, + {.VQRSHL, {.DPR, .DPR, .DPR, .NONE, .NONE, .NONE}, {.VD_D, .VM_D, .VN_D, .NONE, .NONE, .NONE}, 0xF3300510, 0xFFB00F50, .NEON, .A32, {cond_in_28=false}, {.U64, .NONE}}, + {.VQRSHL, {.QPR, .QPR, .QPR, .NONE, .NONE, .NONE}, {.VD_Q, .VM_Q, .VN_Q, .NONE, .NONE, .NONE}, 0xF3300550, 0xFFB11F51, .NEON, .A32, {cond_in_28=false}, {.U64, .NONE}}, }, // SPECGEN:END + .LDMIB = { + {.LDMIB, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x09900000, 0x0FD00000, .BASE, .A32, {}, {}}, + }, + .LDMDA = { + {.LDMDA, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x08100000, 0x0FD00000, .BASE, .A32, {}, {}}, + }, + .LDMDB = { + {.LDMDB, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x09100000, 0x0FD00000, .BASE, .A32, {}, {}}, + {.LDMDB, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0xE9100000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + }, + .STMIB = { + {.STMIB, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x09800000, 0x0FD00000, .BASE, .A32, {}, {}}, + }, + .STMDA = { + {.STMDA, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x08000000, 0x0FD00000, .BASE, .A32, {}, {}}, + }, + .STMDB = { + {.STMDB, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_A32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0x09000000, 0x0FD00000, .BASE, .A32, {}, {}}, + {.STMDB, {.GPR, .GPR_LIST, .NONE, .NONE, .NONE, .NONE}, {.RN_T32, .A32_REG_LIST, .NONE, .NONE, .NONE, .NONE}, 0xE9000000, 0xFFD00000, .V6T2, .T32, {thumb32=true, cond_in_28=false}, {}}, + }, } diff --git a/core/rexcode/isa/arm32/tablegen/gen.odin b/core/rexcode/isa/arm32/tablegen/gen.odin index 8558edcee..3356e3de8 100644 --- a/core/rexcode/isa/arm32/tablegen/gen.odin +++ b/core/rexcode/isa/arm32/tablegen/gen.odin @@ -58,13 +58,14 @@ T32_SUB_BUCKETS :: 32 // bits[24:20] of u32 Entry :: struct { mnemonic: lib.Mnemonic, - ops: [4]lib.Operand_Type, - enc: [4]lib.Operand_Encoding, + ops: [6]lib.Operand_Type, + enc: [6]lib.Operand_Encoding, bits: u32, mask: u32, feature: lib.Feature, mode: lib.Mode, flags: lib.Encoding_Flags, + dt: lib.Data_Types, is_thumb32: bool, key: u16, // primary dispatch key (8 bits A32, 7 bits T32, 6 bits T16) ilen: u8, @@ -101,7 +102,7 @@ emit_encode_tables :: proc() -> (total: int) { if len(forms) == 0 { continue } fmt.sbprintfln(&sb, "\t// .%v", m) for f in forms { - write_row(&sb, f.mnemonic, f.ops, f.enc, f.bits, f.mask, f.feature, f.mode, f.flags) + write_row(&sb, f.mnemonic, f.ops, f.enc, f.bits, f.mask, f.feature, f.mode, f.flags, f.dt) } } strings.write_string(&sb, "}\n\n") @@ -170,6 +171,7 @@ emit_decode_tables :: proc() -> (total: int) { feature = f.feature, mode = f.mode, flags = f.flags, + dt = f.dt, is_thumb32 = f.flags.thumb32, ilen = ilen, form_idx = u16(fi), @@ -301,7 +303,7 @@ emit_decode_tables :: proc() -> (total: int) { strings.write_string(&sb, "@(rodata)\n") fmt.sbprintfln(&sb, "DECODE_ENTRIES := [%d]lib.Decode_Entry{{", len(all)) for e in all { - write_row(&sb, e.mnemonic, e.ops, e.enc, e.bits, e.mask, e.feature, e.mode, e.flags) + write_row(&sb, e.mnemonic, e.ops, e.enc, e.bits, e.mask, e.feature, e.mode, e.flags, e.dt) } strings.write_string(&sb, "}\n\n") @@ -349,12 +351,14 @@ emit_range :: proc(sb: ^strings.Builder, name: string, ranges: []Range) { // Shared row + flags formatting // ----------------------------------------------------------------------------- -write_row :: proc(sb: ^strings.Builder, mn: lib.Mnemonic, ops: [4]lib.Operand_Type, - enc: [4]lib.Operand_Encoding, bits, mask: u32, - feature: lib.Feature, mode: lib.Mode, flags: lib.Encoding_Flags) { - fmt.sbprintf(sb, "\t{{ .%v, {{.%v,.%v,.%v,.%v}}, {{.%v,.%v,.%v,.%v}}, 0x%08X, 0x%08X, .%v, .%v, {{%s}} }},\n", - mn, ops[0], ops[1], ops[2], ops[3], enc[0], enc[1], enc[2], enc[3], - bits, mask, feature, mode, flags_lit(flags)) +write_row :: proc(sb: ^strings.Builder, mn: lib.Mnemonic, ops: [6]lib.Operand_Type, + enc: [6]lib.Operand_Encoding, bits, mask: u32, + feature: lib.Feature, mode: lib.Mode, flags: lib.Encoding_Flags, + dt: lib.Data_Types) { + fmt.sbprintf(sb, "\t{{ .%v, {{.%v,.%v,.%v,.%v,.%v,.%v}}, {{.%v,.%v,.%v,.%v,.%v,.%v}}, 0x%08X, 0x%08X, .%v, .%v, {{%s}}, {{.%v,.%v}} }},\n", + mn, ops[0], ops[1], ops[2], ops[3], ops[4], ops[5], + enc[0], enc[1], enc[2], enc[3], enc[4], enc[5], + bits, mask, feature, mode, flags_lit(flags), dt[0], dt[1]) } flags_lit :: proc(f: lib.Encoding_Flags) -> string { @@ -367,6 +371,9 @@ flags_lit :: proc(f: lib.Encoding_Flags) -> string { if f.writes_pc { append(&parts, "writes_pc=true") } if f.thumb32 { append(&parts, "thumb32=true") } if f.deprecated { append(&parts, "deprecated=true") } + if f.cond_in_21 { append(&parts, "cond_in_21=true") } + // Every flag has to be named here: this is what re-emits the table, so a + // flag left out is a flag silently dropped on the next regeneration. return strings.join(parts[:], ", ", context.temp_allocator) } @@ -405,15 +412,16 @@ Encode_Run :: struct { Decode_Entry :: struct #packed { mnemonic: Mnemonic, // 2 - ops: [4]Operand_Type, // 4 - enc: [4]Operand_Encoding, // 4 + ops: [6]Operand_Type, // 6 + enc: [6]Operand_Encoding, // 6 bits: u32, // 4 mask: u32, // 4 feature: Feature, // 1 mode: Mode, // 1 flags: Encoding_Flags, // 1 + dt: Data_Types, // 2 -- see Data_Type in encoding_types.odin } -#assert(size_of(Decode_Entry) == 21) +#assert(size_of(Decode_Entry) == 27) Decode_Index :: struct #packed { start: u16, diff --git a/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin b/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin index cdc61797a..d34959e9d 100644 --- a/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin +++ b/core/rexcode/isa/arm32/tablegen/generated/decode_tables.odin @@ -8,1815 +8,1885 @@ package rexcode_arm32_generated import lib "../.." @(rodata) -DECODE_ENTRIES := [1680]lib.Decode_Entry{ - { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {} }, - { .AND, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {} }, - { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x00100090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .AND, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00100010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00100000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .MLA, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x00200090, 0x0FE000F0, .BASE, .A32, {} }, - { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00200010, 0x0FE00090, .BASE, .A32, {} }, - { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00200000, 0x0FE00010, .BASE, .A32, {} }, - { .MLA, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x00300090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00300010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00300000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .UMAAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00400090, 0x0FF000F0, .V6, .A32, {} }, - { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00400010, 0x0FE00090, .BASE, .A32, {} }, - { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00400000, 0x0FE00010, .BASE, .A32, {} }, - { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00500010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00500000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .MLS, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x00600090, 0x0FF000F0, .V6T2, .A32, {} }, - { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00600010, 0x0FE00090, .BASE, .A32, {} }, - { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00600000, 0x0FE00010, .BASE, .A32, {} }, - { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00700010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00700000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .UMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00800090, 0x0FE000F0, .BASE, .A32, {} }, - { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00800010, 0x0FE00090, .BASE, .A32, {} }, - { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00800000, 0x0FE00010, .BASE, .A32, {} }, - { .UMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00900090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00900010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00900000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .UMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00A00090, 0x0FE000F0, .BASE, .A32, {} }, - { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00A00010, 0x0FE00090, .BASE, .A32, {} }, - { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00A00000, 0x0FE00010, .BASE, .A32, {} }, - { .UMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00B00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00B00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00B00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .SMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00C00090, 0x0FE000F0, .BASE, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00C000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00C000D0, 0x0F7000F0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00C000F0, 0x0F7000F0, .V5TE, .A32, {} }, - { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00C00010, 0x0FE00090, .BASE, .A32, {} }, - { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00C00000, 0x0FE00010, .BASE, .A32, {} }, - { .SMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00D00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00D000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00D000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00D000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .SMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00E00090, 0x0FE000F0, .BASE, .A32, {} }, - { .STRHT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00E000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00E00010, 0x0FE00090, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00E00000, 0x0FE00010, .BASE, .A32, {} }, - { .SMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00F00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .LDRHT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00F000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSBT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00F000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSHT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00F000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00F00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00F00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .SETEND, {.IMM_ENDIAN,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF1010000, 0xFFFFFDFF, .V6, .A32, {deprecated=true} }, - { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x010F0000, 0x0FBF0FFF, .BASE, .A32, {} }, - { .CPS, {.IMM_IFLAGS,.NONE,.NONE,.NONE}, {.CPS_IFLAGS,.NONE,.NONE,.NONE}, 0xF1000000, 0xFFF1FE20, .V6, .A32, {} }, - { .HLT, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE1000070, 0xFFF000F0, .V8, .A32, {} }, - { .SWP, {.GPR,.GPR,.GPR,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE}, 0x01000090, 0x0FF00FF0, .BASE, .A32, {deprecated=true} }, - { .CRC32B, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01000040, 0x0FF00FF0, .CRC32, .A32, {} }, - { .CRC32CB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01000240, 0x0FF00FF0, .CRC32, .A32, {} }, - { .QADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01000050, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLABB, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x01000080, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLABT, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x010000C0, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLATB, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x010000A0, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLATT, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x010000E0, 0x0FF000F0, .V5TE, .A32, {} }, - { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0xF1100000, 0xFFFFFDFF, .V8, .A32, {} }, - { .TST, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01100010, 0x0FF0F090, .BASE, .A32, {} }, - { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01100000, 0x0FF0F010, .BASE, .A32, {} }, - { .BX, {.GPR,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE}, 0x012FFF10, 0x0FFFFFF0, .BASE, .A32, {branch=true, writes_pc=true} }, - { .BLX, {.GPR,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE}, 0x012FFF30, 0x0FFFFFF0, .V5T, .A32, {branch=true, writes_pc=true} }, - { .BXJ, {.GPR,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE}, 0x012FFF20, 0x0FFFFFF0, .V5TEJ, .A32, {branch=true, writes_pc=true, deprecated=true} }, - { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE}, {.PSR_FIELD_MASK,.RM_A32,.NONE,.NONE}, 0x0120F000, 0x0FB0FFF0, .BASE, .A32, {} }, - { .SMULWB, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x012000A0, 0x0FF0F0F0, .V5TE, .A32, {} }, - { .SMULWT, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x012000E0, 0x0FF0F0F0, .V5TE, .A32, {} }, - { .BKPT, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE1200070, 0xFFF000F0, .V5T, .A32, {} }, - { .CRC32H, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01200040, 0x0FF00FF0, .CRC32, .A32, {} }, - { .CRC32CH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01200240, 0x0FF00FF0, .CRC32, .A32, {} }, - { .QSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01200050, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLAWB, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x01200080, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLAWT, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x012000C0, 0x0FF000F0, .V5TE, .A32, {} }, - { .TEQ, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01300010, 0x0FF0F090, .BASE, .A32, {} }, - { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01300000, 0x0FF0F010, .BASE, .A32, {} }, - { .HVC, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE1400070, 0xFFF000F0, .V7VE, .A32, {} }, - { .SWPB, {.GPR,.GPR,.GPR,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE}, 0x01400090, 0x0FF00FF0, .BASE, .A32, {deprecated=true} }, - { .CRC32W, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01400040, 0x0FF00FF0, .CRC32, .A32, {} }, - { .CRC32CW, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01400240, 0x0FF00FF0, .CRC32, .A32, {} }, - { .QDADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01400050, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLALBB, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x01400080, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLALBT, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x014000C0, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLALTB, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x014000A0, 0x0FF000F0, .V5TE, .A32, {} }, - { .SMLALTT, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x014000E0, 0x0FF000F0, .V5TE, .A32, {} }, - { .CMP, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01500010, 0x0FF0F090, .BASE, .A32, {} }, - { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01500000, 0x0FF0F010, .BASE, .A32, {} }, - { .ERET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0160006E, 0x0FFFFFFF, .V7VE, .A32, {writes_pc=true} }, - { .SMC, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x01600070, 0x0FFFFFF0, .V7, .A32, {} }, - { .CLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x016F0F10, 0x0FFF0FF0, .V5T, .A32, {} }, - { .SMULBB, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x01600080, 0x0FF0F0F0, .V5TE, .A32, {} }, - { .SMULBT, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x016000C0, 0x0FF0F0F0, .V5TE, .A32, {} }, - { .SMULTB, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x016000A0, 0x0FF0F0F0, .V5TE, .A32, {} }, - { .SMULTT, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x016000E0, 0x0FF0F0F0, .V5TE, .A32, {} }, - { .QDSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01600050, 0x0FF000F0, .V5TE, .A32, {} }, - { .CMN, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01700010, 0x0FF0F090, .BASE, .A32, {} }, - { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01700000, 0x0FF0F010, .BASE, .A32, {} }, - { .STL, {.GPR,.MEM,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE}, 0x0180FC90, 0x0FF0FFF0, .V8, .A32, {} }, - { .STREX, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01800F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STLEX, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01800E90, 0x0FF00FF0, .V8, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x018000B0, 0x0F700FF0, .BASE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x018000D0, 0x0F700FF0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x018000F0, 0x0F700FF0, .V5TE, .A32, {} }, - { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01800010, 0x0FE00090, .BASE, .A32, {} }, - { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01800000, 0x0FE00010, .BASE, .A32, {} }, - { .LDA, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01900C9F, 0x0FF00FFF, .V8, .A32, {} }, - { .LDREX, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01900F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDAEX, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01900E9F, 0x0FF00FFF, .V8, .A32, {} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x019000B0, 0x0F700FF0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x019000D0, 0x0F700FF0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x019000F0, 0x0F700FF0, .BASE, .A32, {} }, - { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01900010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01900000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .RRX, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01A00060, 0x0FFF0FF0, .BASE, .A32, {} }, - { .LSL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00010, 0x0FFF00F0, .BASE, .A32, {} }, - { .LSR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00030, 0x0FFF00F0, .BASE, .A32, {} }, - { .ASR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00050, 0x0FFF00F0, .BASE, .A32, {} }, - { .ROR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00070, 0x0FFF00F0, .BASE, .A32, {} }, - { .STREXD, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01A00F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STLEXD, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01A00E90, 0x0FF00FF0, .V8, .A32, {} }, - { .LSL, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00000, 0x0FFF0070, .BASE, .A32, {} }, - { .LSR, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00020, 0x0FFF0070, .BASE, .A32, {} }, - { .ASR, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00040, 0x0FFF0070, .BASE, .A32, {} }, - { .ROR, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00060, 0x0FFF0070, .BASE, .A32, {} }, - { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01A00010, 0x0FEF0090, .BASE, .A32, {} }, - { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01A00000, 0x0FEF0010, .BASE, .A32, {} }, - { .LDREXD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01B00F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDAEXD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01B00E9F, 0x0FF00FFF, .V8, .A32, {} }, - { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01B00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true} }, - { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01B00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true} }, - { .STLB, {.GPR,.MEM,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE}, 0x01C0FC90, 0x0FF0FFF0, .V8, .A32, {} }, - { .STREXB, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01C00F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STLEXB, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01C00E90, 0x0FF00FF0, .V8, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01C000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01C000D0, 0x0F7000F0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01C000F0, 0x0F7000F0, .V5TE, .A32, {} }, - { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01C00010, 0x0FE00090, .BASE, .A32, {} }, - { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01C00000, 0x0FE00010, .BASE, .A32, {} }, - { .LDAB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01D00C9F, 0x0FF00FFF, .V8, .A32, {} }, - { .LDREXB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01D00F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDAEXB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01D00E9F, 0x0FF00FFF, .V8, .A32, {} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01D000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01D000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01D000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .STLH, {.GPR,.MEM,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE}, 0x01E0FC90, 0x0FF0FFF0, .V8, .A32, {} }, - { .STREXH, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01E00F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STLEXH, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01E00E90, 0x0FF00FF0, .V8, .A32, {} }, - { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01E00010, 0x0FEF0090, .BASE, .A32, {} }, - { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01E00000, 0x0FEF0010, .BASE, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01E000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01E000D0, 0x0F7000F0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01E000F0, 0x0F7000F0, .V5TE, .A32, {} }, - { .LDAH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01F00C9F, 0x0FF00FFF, .V8, .A32, {} }, - { .LDREXH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01F00F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDAEXH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01F00E9F, 0x0FF00FFF, .V8, .A32, {} }, - { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01F00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true} }, - { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01F00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01F000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01F000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01F000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {} }, - { .VFMA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {} }, - { .VRHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000140, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000250, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000740, 0xFFB00F50, .NEON, .A32, {} }, - { .VAND, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000150, 0xFFB00F50, .NEON, .A32, {} }, - { .VTST, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000E40, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {} }, - { .VRECPS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {} }, - { .VRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000540, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000450, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA1C, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {} }, - { .VFMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {} }, - { .VRHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000100, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000210, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000700, 0xFFB00F10, .NEON, .A32, {} }, - { .VAND, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000110, 0xFFB00F10, .NEON, .A32, {} }, - { .VTST, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000B10, 0xFFB00F10, .NEON, .A32, {} }, - { .VRECPS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000F10, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000400, 0xFFB00F10, .NEON, .A32, {} }, - { .VRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000500, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000410, 0xFFB00F10, .NEON, .A32, {} }, - { .AND, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100240, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100740, 0xFFB00F50, .NEON, .A32, {} }, - { .VBIC, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100150, 0xFFB00F50, .NEON, .A32, {} }, - { .VTST, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA1P, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100200, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100700, 0xFFB00F10, .NEON, .A32, {} }, - { .VBIC, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100110, 0xFFB00F10, .NEON, .A32, {} }, - { .VTST, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100B10, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100400, 0xFFB00F10, .NEON, .A32, {} }, - { .AND, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02100000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2200350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2200340, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2200550, 0xFFB11F51, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200840, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200D50, 0xFFB00F50, .NEON, .A32, {} }, - { .VFMS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200C50, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200240, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200740, 0xFFB00F50, .NEON, .A32, {} }, - { .VORR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200150, 0xFFB00F50, .NEON, .A32, {} }, - { .VTST, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {} }, - { .VRSQRTS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA1M, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200800, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200D10, 0xFFB00F10, .NEON, .A32, {} }, - { .VFMS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200C10, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200200, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200700, 0xFFB00F10, .NEON, .A32, {} }, - { .VORR, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200110, 0xFFB00F10, .NEON, .A32, {} }, - { .VTST, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {} }, - { .VRSQRTS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F10, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200400, 0xFFB00F10, .NEON, .A32, {} }, - { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02200000, 0x0FE00000, .BASE, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2300550, 0xFFB11F51, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300840, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300250, 0xFFB00F50, .NEON, .A32, {} }, - { .VORN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300150, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2300440, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2300510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA1SU0, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300800, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300210, 0xFFB00F10, .NEON, .A32, {} }, - { .VORN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300110, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2300400, 0xFFB00F10, .NEON, .A32, {} }, - { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02300000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02400000, 0x0FE00000, .BASE, .A32, {} }, - { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {} }, - { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800F50, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E70, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800850, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800050, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E50, 0xFEB80FD0, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800070, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800870, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800810, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800010, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800610, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800210, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800F10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800410, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800D10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800230, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800430, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800030, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800D30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800630, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800830, 0xFEB80F90, .NEON, .A32, {} }, - { .VQSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {} }, - { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {} }, - { .VRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800850, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800A10, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800050, 0xFE800F50, .NEON, .A32, {} }, - { .VSRA, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800150, 0xFE800F50, .NEON, .A32, {} }, - { .VRSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800250, 0xFE800F50, .NEON, .A32, {} }, - { .VRSRA, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800350, 0xFE800F50, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800750, 0xFE800F50, .NEON, .A32, {} }, - { .VSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800010, 0xFE800F10, .NEON, .A32, {} }, - { .VSRA, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800110, 0xFE800F10, .NEON, .A32, {} }, - { .VRSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800210, 0xFE800F10, .NEON, .A32, {} }, - { .VRSRA, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800310, 0xFE800F10, .NEON, .A32, {} }, - { .VQSHL, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800710, 0xFE800F10, .NEON, .A32, {} }, - { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02800000, 0x0FE00000, .BASE, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2900100, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2900300, 0xFFB11F50, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2900A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900000, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900200, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900700, 0xFFB01F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900D00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900900, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900B00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE}, 0xF2900C40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE}, 0xF2900D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900640, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900340, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900740, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMLAH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900F40, 0xFFB00F50, .V8, .A32, {} }, - { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02900000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2A00100, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2A00300, 0xFFB11F50, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2A00A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00000, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00200, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00700, 0xFFB01F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A008C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A000C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A004C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {} }, - { .VFMA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A000C0, 0xFFB00F50, .VFPV4, .A32, {} }, - { .VFMS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A004C0, 0xFFB00F50, .VFPV4, .A32, {} }, - { .VQRDMLAH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00F40, 0xFFB00F50, .V8, .A32, {} }, - { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02A00000, 0x0FE00000, .BASE, .A32, {} }, - { .VEXT, {.QPR,.QPR,.QPR,.IMM4}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2B00040, 0xFFB00050, .NEON, .A32, {} }, - { .VEXT, {.DPR,.DPR,.DPR,.IMM4}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2B00000, 0xFFB00010, .NEON, .A32, {} }, - { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02B00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02C00000, 0x0FE00000, .BASE, .A32, {} }, - { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {} }, - { .VACLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000D50, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000940, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000240, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000250, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {} }, - { .VEOR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000300, 0xFFB00F50, .NEON, .A32, {} }, - { .VACGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000E50, 0xFFB00F50, .NEON, .A32, {} }, - { .VACLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000E10, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000650, 0xFFB00F50, .NEON, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000440, 0xFFB00F50, .NEON, .A32, {} }, - { .VRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000540, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000450, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA256H, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000800, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D10, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000900, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000200, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000210, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {} }, - { .VEOR, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {} }, - { .VACGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {} }, - { .VRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000500, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000410, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD_F, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {} }, - { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x03000000, 0x0FF00000, .V6T2, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3100350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3100340, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3100550, 0xFFB11F51, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100D50, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100940, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100B50, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100C50, 0xFFB00F50, .V8, .A32, {} }, - { .VBSL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100150, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3100310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3100300, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3100510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA256H2, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100800, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100D10, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100900, 0xFFB00F10, .NEON, .A32, {} }, - { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100B10, 0xFFB00F10, .V8, .A32, {} }, - { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100C10, 0xFFB00F10, .V8, .A32, {} }, - { .VBSL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100110, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VPADD_F, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .TST, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03100000, 0x0FF0F000, .BASE, .A32, {} }, - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFFFF, .V6K, .A32, {} }, - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F001, 0x0FFFFFFF, .V6K, .A32, {} }, - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F002, 0x0FFFFFFF, .V6K, .A32, {} }, - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F003, 0x0FFFFFFF, .V6K, .A32, {} }, - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F004, 0x0FFFFFFF, .V6K, .A32, {} }, - { .SEVL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F005, 0x0FFFFFFF, .V8, .A32, {} }, - { .ESB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F010, 0x0FFFFFFF, .V8, .A32, {} }, - { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F011, 0x0FFFFFFF, .V8, .A32, {} }, - { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F012, 0x0FFFFFFF, .V8, .A32, {} }, - { .CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F014, 0x0FFFFFFF, .V8, .A32, {} }, - { .DBG, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {} }, - { .HINT, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {} }, - { .VACLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200940, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200B50, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200C50, 0xFFB00F50, .V8, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VBIT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200150, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200E40, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200E00, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200300, 0xFFB00F50, .NEON, .A32, {} }, - { .VACGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200E50, 0xFFB00F50, .NEON, .A32, {} }, - { .VACLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200E10, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200510, 0xFFB00F50, .NEON, .A32, {} }, - { .SHA256SU1, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200C40, 0xFFB00F50, .CRYPTO, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200800, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200900, 0xFFB00F10, .NEON, .A32, {} }, - { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200B10, 0xFFB00F10, .V8, .A32, {} }, - { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200C10, 0xFFB00F10, .V8, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VBIT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200110, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200E00, 0xFFB00F10, .NEON, .A32, {} }, - { .VACGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200E10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200F00, 0xFFB00F10, .NEON, .A32, {} }, - { .MSR, {.PSR_FIELD,.IMM_MOD,.NONE,.NONE}, {.PSR_FIELD_MASK,.A32_IMM_MOD,.NONE,.NONE}, 0x0320F000, 0x0FB0F000, .BASE, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3300550, 0xFFB11F51, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3300840, 0xFFB00F50, .NEON, .A32, {} }, - { .VBIF, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3300150, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3300E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3300510, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3300800, 0xFFB00F10, .NEON, .A32, {} }, - { .VBIF, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3300110, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3300E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .TEQ, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03300000, 0x0FF0F000, .BASE, .A32, {} }, - { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x03400000, 0x0FF00000, .V6T2, .A32, {} }, - { .CMP, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03500000, 0x0FF0F000, .BASE, .A32, {} }, - { .CMN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03700000, 0x0FF0F000, .BASE, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3800100, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3800300, 0xFFB11F50, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3880A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800000, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800200, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800700, 0xFFB01F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSHRUN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800810, 0xFF800FD0, .NEON, .A32, {} }, - { .VQRSHRUN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800850, 0xFF800FD0, .NEON, .A32, {} }, - { .VQSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800910, 0xFE800FD0, .NEON, .A32, {} }, - { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800950, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800A10, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800050, 0xFE800F50, .NEON, .A32, {} }, - { .VSRA, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800150, 0xFE800F50, .NEON, .A32, {} }, - { .VRSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800250, 0xFE800F50, .NEON, .A32, {} }, - { .VSLI, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800550, 0xFE800F50, .NEON, .A32, {} }, - { .VSRI, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800450, 0xFE800F50, .NEON, .A32, {} }, - { .VSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800010, 0xFE800F10, .NEON, .A32, {} }, - { .VSRA, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800110, 0xFE800F10, .NEON, .A32, {} }, - { .VRSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800210, 0xFE800F10, .NEON, .A32, {} }, - { .VSLI, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800510, 0xFE800F10, .NEON, .A32, {} }, - { .VSRI, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800410, 0xFE800F10, .NEON, .A32, {} }, - { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03800000, 0x0FE00000, .BASE, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900100, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900300, 0xFFB11F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE}, 0xF3900C40, 0xFFB11F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE}, 0xF3900D40, 0xFFB11F50, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3900A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900000, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900200, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900700, 0xFFB01F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900640, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMLAH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900F40, 0xFFB00F50, .V8, .A32, {} }, - { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03900000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00100, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00300, 0xFFB11F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE}, 0xF3A00C40, 0xFFB11F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3A00A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00000, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00200, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00700, 0xFFB01F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A008C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A000C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A004C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {} }, - { .VFMA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A000C0, 0xFFB00F50, .VFPV4, .A32, {} }, - { .VFMS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A004C0, 0xFFB00F50, .VFPV4, .A32, {} }, - { .VQRDMLAH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {} }, - { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {} }, - { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE_F, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE_F, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE_F, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE_F, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {} }, - { .SHA1H, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {} }, - { .SHA1SU1, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {} }, - { .SHA256SU0, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {} }, - { .VCVT_BF16, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B50340, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10340, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90340, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90700, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90740, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B903C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B907C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B503C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90780, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B103C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMVN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMVN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B202C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA02C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B602C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B20300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3BA0300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B60300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B804C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCNT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV16, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV16, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B400C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B200C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BA0080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B600C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B601C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA01C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B201C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSWP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSWP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {} }, - { .AESE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {} }, - { .AESD, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {} }, - { .AESMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {} }, - { .AESIMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {} }, - { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90540, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90500, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B100C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B904C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B905C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B101C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90580, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90640, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90600, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {} }, - { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00C00, 0xFFB00FD0, .NEON, .A32, {} }, - { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B00C40, 0xFFB00FD0, .NEON, .A32, {} }, - { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true} }, - { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {} }, - { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {} }, - { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000600, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000200, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000700, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000A00, 0xFFF00F00, .NEON, .A32, {} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000300, 0xFFF00F00, .NEON, .A32, {} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000900, 0xFFF00F00, .NEON, .A32, {} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000800, 0xFFF00F00, .NEON, .A32, {} }, - { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000500, 0xFFF00F00, .NEON, .A32, {} }, - { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000400, 0xFFF00F00, .NEON, .A32, {} }, - { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000000, 0xFFF00F00, .NEON, .A32, {} }, - { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000100, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200200, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200700, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200A00, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200600, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200900, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200300, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200800, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200400, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200500, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200100, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200000, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800800, 0xFFB00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00F00, .NEON, .A32, {} }, - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800500, 0xFFB00D00, .NEON, .A32, {} }, - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800900, 0xFFB00D00, .NEON, .A32, {} }, - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800100, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800A00, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800200, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800600, 0xFFB00D00, .NEON, .A32, {} }, - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800300, 0xFFB00D00, .NEON, .A32, {} }, - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800B00, 0xFFB00D00, .NEON, .A32, {} }, - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800700, 0xFFB00D00, .NEON, .A32, {} }, - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800800, 0xFFB00C00, .NEON, .A32, {} }, - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00C00, .NEON, .A32, {} }, - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00C00, .NEON, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04800000, 0x0F700000, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04900000, 0x0F700000, .BASE, .A32, {} }, - { .VLD2R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {} }, - { .VLD3R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {} }, - { .VLD4R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4A00C00, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00900, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00500, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00100, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00A00, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00200, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00600, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00300, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00B00, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00700, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00C00, .NEON, .A32, {} }, - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00C00, .NEON, .A32, {} }, - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00C00, .NEON, .A32, {} }, - { .STRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04A00000, 0x0F700000, .BASE, .A32, {} }, - { .LDRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04B00000, 0x0F700000, .BASE, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04C00000, 0x0F700000, .BASE, .A32, {} }, - { .PLI, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF4D0F000, 0xFF70F000, .V7, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04D00000, 0x0F700000, .BASE, .A32, {} }, - { .STRBT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04E00000, 0x0F700000, .BASE, .A32, {} }, - { .LDRBT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04F00000, 0x0F700000, .BASE, .A32, {} }, - { .CLREX, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF57FF01F, 0xFFFFFFFF, .V6K, .A32, {} }, - { .SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF57FF070, 0xFFFFFFFF, .V8, .A32, {} }, - { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF57FF050, 0xFFFFFFF0, .V7, .A32, {} }, - { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF57FF040, 0xFFFFFFF0, .V7, .A32, {} }, - { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF57FF060, 0xFFFFFFF0, .V7, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05800000, 0x0F700000, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05900000, 0x0F700000, .BASE, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05A00000, 0x0F700000, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05B00000, 0x0F700000, .BASE, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05C00000, 0x0F700000, .BASE, .A32, {} }, - { .PLD, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V5T, .A32, {} }, - { .PLDW, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V7, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05D00000, 0x0F700000, .BASE, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05E00000, 0x0F700000, .BASE, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05F00000, 0x0F700000, .BASE, .A32, {} }, - { .SADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F90, 0x0FF00FF0, .V6, .A32, {} }, - { .SADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F10, 0x0FF00FF0, .V6, .A32, {} }, - { .SASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F30, 0x0FF00FF0, .V6, .A32, {} }, - { .SSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F50, 0x0FF00FF0, .V6, .A32, {} }, - { .SSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .SSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F70, 0x0FF00FF0, .V6, .A32, {} }, - { .QADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F90, 0x0FF00FF0, .V6, .A32, {} }, - { .QADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F10, 0x0FF00FF0, .V6, .A32, {} }, - { .QASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F30, 0x0FF00FF0, .V6, .A32, {} }, - { .QSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F50, 0x0FF00FF0, .V6, .A32, {} }, - { .QSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .QSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F70, 0x0FF00FF0, .V6, .A32, {} }, - { .SHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F90, 0x0FF00FF0, .V6, .A32, {} }, - { .SHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F10, 0x0FF00FF0, .V6, .A32, {} }, - { .SHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F30, 0x0FF00FF0, .V6, .A32, {} }, - { .SHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F50, 0x0FF00FF0, .V6, .A32, {} }, - { .SHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .SHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F70, 0x0FF00FF0, .V6, .A32, {} }, - { .UADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F90, 0x0FF00FF0, .V6, .A32, {} }, - { .UADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F10, 0x0FF00FF0, .V6, .A32, {} }, - { .UASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F30, 0x0FF00FF0, .V6, .A32, {} }, - { .USAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F50, 0x0FF00FF0, .V6, .A32, {} }, - { .USUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .USUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F70, 0x0FF00FF0, .V6, .A32, {} }, - { .UQADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F90, 0x0FF00FF0, .V6, .A32, {} }, - { .UQADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F10, 0x0FF00FF0, .V6, .A32, {} }, - { .UQASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F30, 0x0FF00FF0, .V6, .A32, {} }, - { .UQSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F50, 0x0FF00FF0, .V6, .A32, {} }, - { .UQSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .UQSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F70, 0x0FF00FF0, .V6, .A32, {} }, - { .UHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F90, 0x0FF00FF0, .V6, .A32, {} }, - { .UHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F10, 0x0FF00FF0, .V6, .A32, {} }, - { .UHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F30, 0x0FF00FF0, .V6, .A32, {} }, - { .UHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F50, 0x0FF00FF0, .V6, .A32, {} }, - { .UHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .UHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F70, 0x0FF00FF0, .V6, .A32, {} }, - { .SEL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800FB0, 0x0FF00FF0, .V6, .A32, {} }, - { .SXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x068F0070, 0x0FFF0070, .V6, .A32, {} }, - { .SXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800070, 0x0FF00070, .V6, .A32, {} }, - { .PKHBT, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800010, 0x0FF00070, .V6, .A32, {} }, - { .PKHTB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800050, 0x0FF00070, .V6, .A32, {} }, - { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06A00F30, 0x0FF00FF0, .V6, .A32, {} }, - { .SXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06AF0070, 0x0FFF0070, .V6, .A32, {} }, - { .SXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06A00070, 0x0FF00070, .V6, .A32, {} }, - { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06A00010, 0x0FE00030, .V6, .A32, {} }, - { .REV, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06BF0F30, 0x0FFF0FF0, .V6, .A32, {} }, - { .REV16, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06BF0FB0, 0x0FFF0FF0, .V6, .A32, {} }, - { .SXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06BF0070, 0x0FFF0070, .V6, .A32, {} }, - { .SXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06B00070, 0x0FF00070, .V6, .A32, {} }, - { .UXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06CF0070, 0x0FFF0070, .V6, .A32, {} }, - { .UXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06C00070, 0x0FF00070, .V6, .A32, {} }, - { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06E00F30, 0x0FF00FF0, .V6, .A32, {} }, - { .UXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06EF0070, 0x0FFF0070, .V6, .A32, {} }, - { .UXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06E00070, 0x0FF00070, .V6, .A32, {} }, - { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06E00010, 0x0FE00030, .V6, .A32, {} }, - { .RBIT, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06FF0F30, 0x0FFF0FF0, .V6T2, .A32, {} }, - { .REVSH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06FF0FB0, 0x0FFF0FF0, .V6, .A32, {} }, - { .UXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06FF0070, 0x0FFF0070, .V6, .A32, {} }, - { .UXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06F00070, 0x0FF00070, .V6, .A32, {} }, - { .SMUAD, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F010, 0x0FF0F0F0, .V6, .A32, {} }, - { .SMUADX, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F030, 0x0FF0F0F0, .V6, .A32, {} }, - { .SMUSD, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F050, 0x0FF0F0F0, .V6, .A32, {} }, - { .SMUSDX, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F070, 0x0FF0F0F0, .V6, .A32, {} }, - { .SMLAD, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000010, 0x0FF000F0, .V6, .A32, {} }, - { .SMLADX, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000030, 0x0FF000F0, .V6, .A32, {} }, - { .SMLSD, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000050, 0x0FF000F0, .V6, .A32, {} }, - { .SMLSDX, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000070, 0x0FF000F0, .V6, .A32, {} }, - { .SDIV, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0710F010, 0x0FF0F0F0, .DIV, .A32, {} }, - { .UDIV, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0730F010, 0x0FF0F0F0, .DIV, .A32, {} }, - { .SMLALD, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400010, 0x0FF000F0, .V6, .A32, {} }, - { .SMLALDX, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400030, 0x0FF000F0, .V6, .A32, {} }, - { .SMLSLD, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400050, 0x0FF000F0, .V6, .A32, {} }, - { .SMLSLDX, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400070, 0x0FF000F0, .V6, .A32, {} }, - { .SMMUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0750F010, 0x0FF0F0F0, .V6, .A32, {} }, - { .SMMULR, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0750F030, 0x0FF0F0F0, .V6, .A32, {} }, - { .SMMLA, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07500010, 0x0FF000F0, .V6, .A32, {} }, - { .SMMLAR, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07500030, 0x0FF000F0, .V6, .A32, {} }, - { .SMMLS, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x075000D0, 0x0FF000F0, .V6, .A32, {} }, - { .SMMLSR, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x075000F0, 0x0FF000F0, .V6, .A32, {} }, - { .USAD8, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0780F010, 0x0FF0F0F0, .V6, .A32, {} }, - { .USADA8, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07800010, 0x0FF000F0, .V6, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07800000, 0x0F700010, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07900000, 0x0F700010, .BASE, .A32, {} }, - { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB}, 0x07A00050, 0x0FE00070, .V6T2, .A32, {} }, - { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE}, {.RD,.BFI_LSB,.BFI_MSB,.NONE}, 0x07C0001F, 0x0FE0007F, .V6T2, .A32, {} }, - { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB}, 0x07C00010, 0x0FE00070, .V6T2, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07C00000, 0x0F700010, .BASE, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07D00000, 0x0F700010, .BASE, .A32, {} }, - { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB}, 0x07E00050, 0x0FE00070, .V6T2, .A32, {} }, - { .UDF, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE7F000F0, 0xFFF000F0, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08000000, 0x0FD00000, .BASE, .A32, {} }, - { .RFE, {.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.NONE,.NONE,.NONE}, 0xF8100A00, 0xFE10FFFF, .V6, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08100000, 0x0FD00000, .BASE, .A32, {} }, - { .SRS, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF84D0500, 0xFE5FFFE0, .V6, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08800000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08900000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08A00000, 0x0FD00000, .BASE, .A32, {} }, - { .POP, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x08BD0000, 0x0FFF0000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08B00000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09000000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09100000, 0x0FD00000, .BASE, .A32, {} }, - { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x092D0000, 0x0FFF0000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09800000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09900000, 0x0FD00000, .BASE, .A32, {} }, - { .BLX, {.REL24,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE}, 0xFA000000, 0xFE000000, .V5T, .A32, {branch=true, writes_pc=true} }, - { .B, {.REL24,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE}, 0x0A000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true} }, - { .BL, {.REL24,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE}, 0x0B000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true} }, - { .VDOT_BF16, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC000D40, 0xFFB00F50, .BF16, .A32, {} }, - { .VMMLA_BF16, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC000C40, 0xFFB00F50, .BF16, .A32, {} }, - { .VDOT_BF16, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC000D00, 0xFFB00F10, .BF16, .A32, {} }, - { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0xFC000000, 0xFF100000, .V5T, .A32, {} }, - { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0x0C000000, 0x0F100000, .BASE, .A32, {} }, - { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0xFC100000, 0xFF100000, .V5T, .A32, {} }, - { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0x0C100000, 0x0F100000, .BASE, .A32, {} }, - { .VSDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200D40, 0xFFB00F50, .DOT, .A32, {} }, - { .VUDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200D50, 0xFFB00F50, .DOT, .A32, {} }, - { .VFMAL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200850, 0xFFB00F50, .FHM, .A32, {} }, - { .VSMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200C40, 0xFFB00F50, .V8, .A32, {} }, - { .VUMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200C50, 0xFFB00F50, .V8, .A32, {} }, - { .VSDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200D00, 0xFFB00F10, .DOT, .A32, {} }, - { .VUDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200D10, 0xFFB00F10, .DOT, .A32, {} }, - { .VFMAL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200810, 0xFFB00F10, .FHM, .A32, {} }, - { .VCMLA, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200840, 0xFC800F50, .FCMA, .A32, {} }, - { .VCMLA, {.DPR,.DPR,.DPR,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200800, 0xFC800F10, .FCMA, .A32, {} }, - { .VFMA_BF16, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC300850, 0xFFB00F50, .BF16, .A32, {} }, - { .VMOV, {.SPR,.SPR,.GPR,.GPR}, {.VM_S,.NONE,.RT_A32,.RT2_A32}, 0x0C400A10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .VMOV, {.DPR,.GPR,.GPR,.NONE}, {.VM_D,.RT_A32,.RT2_A32,.NONE}, 0x0C400B10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .MCRR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0xFC400000, 0xFFF00000, .V6, .A32, {} }, - { .MCRR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0x0C400000, 0x0FF00000, .V6, .A32, {} }, - { .VMOV, {.GPR,.GPR,.SPR,.SPR}, {.RT_A32,.RT2_A32,.VM_S,.NONE}, 0x0C500A10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .VMOV, {.GPR,.GPR,.DPR,.NONE}, {.RT_A32,.RT2_A32,.VM_D,.NONE}, 0x0C500B10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .MRRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0xFC500000, 0xFFF00000, .V6, .A32, {} }, - { .MRRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0x0C500000, 0x0FF00000, .V6, .A32, {} }, - { .VCADD, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC800840, 0xFE800F50, .FCMA, .A32, {} }, - { .VCADD, {.DPR,.DPR,.DPR,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC800800, 0xFE800F10, .FCMA, .A32, {} }, - { .VSTM, {.GPR,.SPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_S_LIST,.NONE,.NONE}, 0x0C800A00, 0x0F900F00, .VFPV2, .A32, {} }, - { .VSTM, {.GPR,.DPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_D_LIST,.NONE,.NONE}, 0x0C800B00, 0x0F900F00, .VFPV2, .A32, {} }, - { .VLDM, {.GPR,.SPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_S_LIST,.NONE,.NONE}, 0x0C900A00, 0x0F900F00, .VFPV2, .A32, {} }, - { .VLDM, {.GPR,.DPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_D_LIST,.NONE,.NONE}, 0x0C900B00, 0x0F900F00, .VFPV2, .A32, {} }, - { .VFMSL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {} }, - { .VUSMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {} }, - { .VSUDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D50, 0xFFB00F50, .V8, .A32, {} }, - { .VUSDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {} }, - { .VFMSL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {} }, - { .VUSDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {} }, - { .VPOP, {.DPR_LIST,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE}, 0x0CBD0B00, 0x0FFF0F00, .VFPV2, .A32, {} }, - { .VPOP, {.SPR_LIST,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE}, 0x0CBD0A00, 0x0FFF0F00, .VFPV2, .A32, {} }, - { .VSTR, {.DPR,.MEM,.NONE,.NONE}, {.VD_D,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D000B00, 0x0F300F00, .VFPV2, .A32, {} }, - { .VSTR, {.SPR,.MEM,.NONE,.NONE}, {.VD_S,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D000A00, 0x0F300F00, .VFPV2, .A32, {} }, - { .VLDR, {.SPR,.MEM,.NONE,.NONE}, {.VD_S,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D100A00, 0x0F300F00, .VFPV2, .A32, {} }, - { .VLDR, {.DPR,.MEM,.NONE,.NONE}, {.VD_D,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D100B00, 0x0F300F00, .VFPV2, .A32, {} }, - { .VPUSH, {.DPR_LIST,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {} }, - { .VPUSH, {.SPR_LIST,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {} }, - { .VMOV, {.SPR,.GPR,.NONE,.NONE}, {.VN_S,.RT_A32,.NONE,.NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {} }, - { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_32,.RT_A32,.NONE,.NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {} }, - { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_16,.RT_A32,.NONE,.NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {} }, - { .VCMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.IMM}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {} }, - { .VCMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {} }, - { .VSEL, {.DPR,.DPR,.DPR,.COND}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {} }, - { .VSEL, {.SPR,.SPR,.SPR,.COND}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE000A00, 0xFF800F50, .V8, .A32, {} }, - { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VN_D,.RT_A32,.NONE,.NONE}, 0x0E000B10, 0x0F100F1F, .NEON, .A32, {} }, - { .VMLA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VMLS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E000B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E000B40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .MCR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0xFE000010, 0xFF100010, .V5T, .A32, {} }, - { .CDP2, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD}, 0xFE000000, 0xFF000010, .V5T, .A32, {} }, - { .MCR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0x0E000010, 0x0F100010, .BASE, .A32, {} }, - { .CDP, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD}, 0x0E000000, 0x0F000010, .BASE, .A32, {} }, - { .VMOV, {.GPR,.SPR,.NONE,.NONE}, {.RT_A32,.VN_S,.NONE,.NONE}, 0x0E100A10, 0x0FF00F7F, .VFPV2, .A32, {} }, - { .VMOV, {.GPR,.DPR_ELEM,.NONE,.NONE}, {.RT_A32,.VN_D,.NONE,.NONE}, 0x0E100B10, 0x0F100F1F, .NEON, .A32, {} }, - { .VNMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E100B40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMLA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E100A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMLS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E100A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E100B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .MRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0xFE100010, 0xFF100010, .V5T, .A32, {} }, - { .MRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0x0E100010, 0x0F100010, .BASE, .A32, {} }, - { .VSDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE200D40, 0xFFB00F50, .DOT, .A32, {} }, - { .VUDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE200D50, 0xFFB00F50, .DOT, .A32, {} }, - { .VSDOT_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE200D00, 0xFFB00F10, .DOT, .A32, {} }, - { .VUDOT_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE200D10, 0xFFB00F10, .DOT, .A32, {} }, - { .VMUL, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E200900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VMUL, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E200A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E200B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E200B40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMUL, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E200A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VADD, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VSUB, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VADD, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VSUB, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_8,.RT_A32,.NONE,.NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {} }, - { .VSUDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {} }, - { .VUSDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {} }, - { .VMAXNM, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {} }, - { .VMAXNM, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE800B00, 0xFFB00B50, .V8, .A32, {} }, - { .VMINNM, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE800B40, 0xFFB00B50, .V8, .A32, {} }, - { .VMINNM, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE800A40, 0xFFB00B50, .V8, .A32, {} }, - { .VUSDOT_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE800D00, 0xFFB00F10, .V8, .A32, {} }, - { .VDIV, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E800900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VDIV, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E800B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VDIV, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E800A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VFNMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VFNMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VFNMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E900B40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900A40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E900B00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900A00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VFMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VFMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0EA00B00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00A00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0EA00B40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00A40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VCMP, {.SPR,.NONE,.NONE,.NONE}, {.VD_S,.NONE,.NONE,.NONE}, 0x0EB50A40, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCMP, {.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0x0EB50B40, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCMP, {.SPR,.NONE,.NONE,.NONE}, {.VD_S,.NONE,.NONE,.NONE}, 0x0EB50940, 0x0FBF0FFF, .HALF_FP, .A32, {} }, - { .VCMPE, {.SPR,.NONE,.NONE,.NONE}, {.VD_S,.NONE,.NONE,.NONE}, 0x0EB50AC0, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCMPE, {.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0x0EB50BC0, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCVTA, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBC0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTA, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBC0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBD0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTN, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBD0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBE0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBE0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTM, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBF0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTM, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBF0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTA, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB80A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTA, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEB80B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTN, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB90A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEB90B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBA0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBA0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTM, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBB0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTM, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBB0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB00BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VABS, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB00AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB10B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VNEG, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB10A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VSQRT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB109C0, 0x0FBF0FD0, .HALF_FP, .A32, {} }, - { .VSQRT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB10BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VSQRT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB10AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.DPR,.SPR,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE}, 0x0EB80B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB80A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB80AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.DPR,.SPR,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE}, 0x0EB80BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBC0AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBD0AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBD0BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.DPR,.SPR,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE}, 0x0EB70AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EB70BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBC0BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTB, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB20A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVTB, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB30A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVTT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB30AC0, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVTT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB20AC0, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVTR, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBC0B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTR, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBC0A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTR, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBD0A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTR, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBD0B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VMOV, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB00B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VMOV, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB00A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VRINTR, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB60A40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTR, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB60B40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB60BC0, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTZ, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB60AC0, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTX, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTX, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VJCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, - { .VCVT_FIXED, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCMP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40A40, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB40B40, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40940, 0x0FBF0F50, .HALF_FP, .A32, {} }, - { .VCMPE, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40AC0, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB40BC0, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FC0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FC0, .VFPV3, .A32, {} }, - { .VMOV, {.SPR,.IMM8,.NONE,.NONE}, {.VD_S,.VFP_IMM8,.NONE,.NONE}, 0x0EB00A00, 0x0FB00FF0, .VFPV3, .A32, {} }, - { .VMOV, {.DPR,.IMM8,.NONE,.NONE}, {.VD_D,.VFP_IMM8,.NONE,.NONE}, 0x0EB00B00, 0x0FB00FF0, .VFPV3, .A32, {} }, - { .VDUP, {.DPR,.GPR,.NONE,.NONE}, {.VD_D,.RT_A32,.NONE,.NONE}, 0x0EC00B10, 0x0FF00FD0, .NEON, .A32, {} }, - { .VMSR, {.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.NONE,.NONE,.NONE}, 0x0EE10A10, 0x0FFF0FFF, .VFPV2, .A32, {} }, - { .VDUP, {.QPR,.GPR,.NONE,.NONE}, {.VD_Q,.RT_A32,.NONE,.NONE}, 0x0EE00B10, 0x0FF00FD0, .NEON, .A32, {} }, - { .VMRS, {.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.NONE,.NONE,.NONE}, 0x0EF10A10, 0x0FFF0FFF, .VFPV2, .A32, {} }, - { .SVC, {.IMM,.NONE,.NONE,.NONE}, {.A32_IMM24,.NONE,.NONE,.NONE}, 0x0F000000, 0x0F000000, .BASE, .A32, {} }, - { .SG, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE97FE97F, 0xFFFFFFFF, .V8M_SE, .T32, {thumb32=true} }, - { .TBB, {.GPR,.GPR,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xE8D0F000, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true} }, - { .TBH, {.GPR,.GPR,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xE8D0F010, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true} }, - { .LDREXB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE}, 0xE8D00F4F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true} }, - { .LDREXH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE}, 0xE8D00F5F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true} }, - { .STREXB, {.GPR,.GPR,.MEM,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE}, 0xE8C00F40, 0xFFF00FF0, .V6T2, .T32, {thumb32=true} }, - { .STREXH, {.GPR,.GPR,.MEM,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE}, 0xE8C00F50, 0xFFF00FF0, .V6T2, .T32, {thumb32=true} }, - { .LDREXD, {.GPR,.GPR,.MEM,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE}, 0xE8D0007F, 0xFFF000FF, .V6T2, .T32, {thumb32=true} }, - { .TT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F000, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, - { .TTT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F040, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, - { .TTA, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F080, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, - { .TTAT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F0C0, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, - { .LDREX, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE}, 0xE8500F00, 0xFFF00F00, .V6T2, .T32, {thumb32=true} }, - { .STREXD, {.GPR,.GPR,.GPR,.MEM}, {.RD_T32,.RT_T32,.RT2_T32,.RN_T32}, 0xE8C00070, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0xE92D0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true} }, - { .POP, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0xE8BD0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true} }, - { .STREX, {.GPR,.GPR,.MEM,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE}, 0xE8400000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE8900000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE9100000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE8800000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE9000000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, - { .LDRD, {.GPR,.GPR,.MEM,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE}, 0xE9500000, 0xFE500000, .V6T2, .T32, {thumb32=true} }, - { .STRD, {.GPR,.GPR,.MEM,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE}, 0xE9400000, 0xFE500000, .V6T2, .T32, {thumb32=true} }, - { .LSL, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0000, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .LSR, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0010, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .ASR, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0020, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .ROR, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0030, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEA100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, - { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEA900F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, - { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEBB00F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, - { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEB100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, - { .MOV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA5F0000, 0xFFEF8000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, - { .MOV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true} }, - { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA6F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA100000, 0xFFE08000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA000000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA800000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEBC00000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEB400000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEB600000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA400000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA200000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .VSTRH_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRW_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRD_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRB_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRH, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRW, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRD, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRH, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRW, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRD, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, - { .VMOV_2GPR_Q, {.QPR_ELEM,.QPR_ELEM,.GPR,.GPR}, {.VD_Q,.VD_Q,.RT_T32,.RT2_T32}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, - { .VSTRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, - { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX1, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX2, {.IMM_COPROC,.SPR,.SPR,.IMM}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3, {.IMM_COPROC,.SPR,.SPR,.SPR}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VADDLV, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VADDLVA, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMAXNMV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VMAXNMAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEC0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VMINNMV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEE0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VMINNMAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEC0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VMLSV, {.GPR,.QPR,.QPR,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE}, 0xEEF00E01, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSVA, {.GPR,.QPR,.QPR,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE}, 0xEEF00E21, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VQMOVNB, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE330E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQMOVNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE331E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQMOVUNB, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQMOVUNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VADDV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEF10F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VADDVA, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEF10F20, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMAXV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE20F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMAXAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMINV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMINAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VHCADD_SAT, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_HCADD}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VDUP, {.QPR,.GPR,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSLDAV, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSLDAVA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VDDUP, {.QPR,.GPR,.IMM,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE}, 0xEE011F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true} }, - { .VIDUP, {.QPR,.GPR,.IMM,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE}, 0xEE010F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true} }, - { .VCMP, {.QPR,.QPR,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE310F00, 0xEFB10FF0, .MVE_FP, .T32, {thumb32=true} }, - { .VAND, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VBIC, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF100150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VORR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF200150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VORN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF300150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLADAVX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB01F00, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLADAVAX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB01F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLALDAVA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLALDAVAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLALDAVHA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLALDAVHAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, - { .VSHLC, {.QPR,.GPR,.IMM5,.NONE}, {.VD_Q,.RM_T32,.A32_IMM_SHIFT,.NONE}, 0xEE000FC0, 0xFFC00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VMOV_Q_R, {.QPR_ELEM,.GPR,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE}, 0xEE000B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true} }, - { .VMOV_R_Q, {.GPR,.QPR_ELEM,.NONE,.NONE}, {.RT_T32,.VD_Q,.NONE,.NONE}, 0xEE100B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true} }, - { .VADD, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE010F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true} }, - { .VSUB, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE011F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true} }, - { .VMUL, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE011E60, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true} }, - { .VFMA, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE310E40, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VMLADAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLADAVA, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLALDAV, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLALDAVX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLALDAVH, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLALDAVHX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLAVA, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VCMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE300E00, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VHCADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VBRSR, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE011E60, 0xEF811F71, .MVE_INT, .T32, {thumb32=true} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF200D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VMLA, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE010E40, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VFMA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VFMS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF200C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VDWDUP, {.QPR,.GPR,.GPR,.IMM}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEE011F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true} }, - { .VIWDUP, {.QPR,.GPR,.GPR,.IMM}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEE010F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true} }, - { .VSHLLB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VSHLLT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMULLB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMULLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLALB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLALT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSLB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQRSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQRSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQSHRUNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQSHRUNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQDMLADH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQDMLADHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQRDMLADH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQRDMLADHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000840, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000950, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000040, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000240, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000140, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000050, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000250, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000640, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000650, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000440, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000540, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000450, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSLDAVX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSLDAVAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VSHR, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEF800050, 0xEF800F51, .MVE_INT, .T32, {thumb32=true} }, - { .VSRA, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEF800150, 0xEF800F51, .MVE_INT, .T32, {thumb32=true} }, - { .VRSHR, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEF800250, 0xEF800F51, .MVE_INT, .T32, {thumb32=true} }, - { .VABAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEE800F01, 0xEFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .CX2, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEE400000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX2D, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX3, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xEE800000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX3D, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX1, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xEE000000, 0xFF800000, .CDE, .T32, {thumb32=true} }, - { .CX1D, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xEE800000, 0xFF800000, .CDE, .T32, {thumb32=true} }, - { .LCTP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF00FE001, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, - { .DLS, {.GPR,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE}, 0xF040E001, 0xFFF0FFFF, .V81M, .T32, {thumb32=true} }, - { .VCTP, {.GPR,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE}, 0xF000E801, 0xFFC0FFFF, .MVE_INT, .T32, {thumb32=true} }, - { .DLSTP, {.GPR,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE}, 0xF000E001, 0xFEC0FFFF, .V81M, .T32, {thumb32=true} }, - { .BFI_BR, {.REL_BF,.GPR,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE}, 0xF060E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true} }, - { .BFLX, {.REL_BF,.GPR,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE}, 0xF070E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true} }, - { .LE, {.REL11,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE}, 0xF00FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true} }, - { .LETP, {.REL11,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE}, 0xF01FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true} }, - { .WLS, {.GPR,.REL11,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE}, 0xF040C001, 0xFFF0F001, .V81M, .T32, {branch=true, thumb32=true} }, - { .BF, {.REL_BF,.REL_BF,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE}, 0xF040E001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true} }, - { .BFL, {.REL_BF,.REL_BF,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE}, 0xF000C001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true} }, - { .TST, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF0100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .TEQ, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF0900F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .CMP, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF1B00F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .CMN, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF1100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF04F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true} }, - { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF05F0000, 0xFBEF8000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, - { .MVN, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF06F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true} }, - { .WLSTP, {.GPR,.REL11,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE}, 0xF000C001, 0xFEC0F001, .V81M, .T32, {branch=true, thumb32=true} }, - { .BFCSEL, {.REL_BF,.REL_BF,.IMM4,.NONE}, {.BF_BOFF,.BF_BLOC,.BFCSEL_COND,.NONE}, 0xF002E001, 0xF843F001, .V81M, .T32, {branch=true, thumb32=true} }, - { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0000000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0100000, 0xFBE08000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, - { .EOR, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0800000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .RSB, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF1C00000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .ADC, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF1400000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .SBC, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF1600000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .ORR, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0400000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .BIC, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0200000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .B, {.REL24_T32,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE}, 0xF0009000, 0xF800D000, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true} }, - { .B, {.REL20,.COND,.NONE,.NONE}, {.BRANCH_20_T32,.NONE,.NONE,.NONE}, 0xF0008000, 0xF800D000, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, thumb32=true} }, - { .BL, {.REL24_T32,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE}, 0xF000D000, 0xF800D000, .THUMB, .T32, {branch=true, writes_pc=true, thumb32=true} }, - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8000, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8001, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8002, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8003, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8004, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, - { .CLREX, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F2F, 0xFFFFFFFF, .V6K, .T32, {thumb32=true} }, - { .ESB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8010, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8011, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8012, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8014, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F70, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .PAC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF801D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, - { .PACBTI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF800D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, - { .AUT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF802D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, - { .BTI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF80F0, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, - { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE}, 0xF3EF8000, 0xFFFFF0FF, .V6T2, .T32, {thumb32=true} }, - { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF3BF8F50, 0xFFFFFFF0, .V7, .T32, {thumb32=true} }, - { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF3BF8F40, 0xFFFFFFF0, .V7, .T32, {thumb32=true} }, - { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF3BF8F60, 0xFFFFFFF0, .V7, .T32, {thumb32=true} }, - { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE}, {.PSR_FIELD_MASK,.RN_T32,.NONE,.NONE}, 0xF3808000, 0xFFF0F0FF, .V6T2, .T32, {thumb32=true} }, - { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3200000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3A00000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE}, {.RD_T32,.BFI_LSB_T32,.BFI_MSB,.NONE}, 0xF36F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true} }, - { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB}, 0xF3600000, 0xFFF08000, .V6T2, .T32, {thumb32=true} }, - { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB}, 0xF3400000, 0xFFF08000, .V6T2, .T32, {thumb32=true} }, - { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB}, 0xF3C00000, 0xFFF08000, .V6T2, .T32, {thumb32=true} }, - { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3000000, 0xFFD08020, .V6T2, .T32, {thumb32=true} }, - { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3800000, 0xFFD08020, .V6T2, .T32, {thumb32=true} }, - { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE}, 0xF2400000, 0xFBF08000, .V6T2, .T32, {thumb32=true} }, - { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE}, 0xF2C00000, 0xFBF08000, .V6T2, .T32, {thumb32=true} }, - { .DCPS1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF78F8001, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .DCPS2, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF78F8002, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .DCPS3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF78F8003, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, - { .UDF, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF7F0A000, 0xFFF0F000, .V6T2, .T32, {thumb32=true} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8500000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8400000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8000000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8200000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF9100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF9300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .PLD, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF890F000, 0xFFF0F000, .V6T2, .T32, {thumb32=true} }, - { .PLDW, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF830F000, 0xFFF0F000, .V7, .T32, {thumb32=true} }, - { .PLI, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF990F000, 0xFFF0F000, .V7, .T32, {thumb32=true} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_LITERAL,.NONE,.NONE}, 0xF85F0000, 0xFF7F0000, .V6T2, .T32, {thumb32=true} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8D00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8C00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8900000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8800000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8A00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF9900000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF9B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .SXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA4FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, - { .SXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA2FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, - { .SXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA0FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, - { .UXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA5FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, - { .UXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA3FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, - { .UXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA1FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, - { .CLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFAB0F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .RBIT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .REV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .REV16, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .REVSH, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QADD, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QDADD, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QDSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .USAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .USUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .USUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .QSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UQADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UQADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UQASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UQSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UQSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UQSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .UHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFB00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFB90F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true} }, - { .UDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFBB0F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true} }, - { .AUTG, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFB50F000, 0xFFF0F0F0, .V81M, .T32, {thumb32=true} }, - { .LSL, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA00F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, - { .LSR, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA20F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, - { .ASR, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA40F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, - { .ROR, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA60F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, - { .SXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA40F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, - { .SXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA20F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, - { .SXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA00F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, - { .UXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA50F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, - { .UXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA30F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, - { .UXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA10F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, - { .MLA, {.GPR,.GPR,.GPR,.GPR}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32}, 0xFB000000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .MLS, {.GPR,.GPR,.GPR,.GPR}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32}, 0xFB000010, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .UMULL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFBA00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .UMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFBE00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .SMULL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFB800000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .SMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFBC00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, - { .VLD20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VLD21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VLD40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VLD41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VLD42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VLD43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VST20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VST21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VST40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VST41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VST42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VST43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRH_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRW_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VLDRD_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VCMLA_MVE, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_CMLA}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true} }, - { .VLDRB_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VCX1A, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX1A, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX2A, {.IMM_COPROC,.SPR,.SPR,.IMM}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD}, 0xFC600000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX2A, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xFC700000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3A, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xFC900000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3A, {.IMM_COPROC,.SPR,.SPR,.SPR}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S}, 0xFC800000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VPST, {.MVE_VPT_MASK,.NONE,.NONE,.NONE}, {.MVE_VPT_MASK_FIELD,.NONE,.NONE,.NONE}, 0xFE710F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true} }, - { .VPNOT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xFE310F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true} }, - { .VRINTA, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA0540, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VRINTN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA0440, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VRINTP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA07C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VRINTM, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA06C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VRINTZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA05C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VRINTX, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA04C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, - { .VMOVX, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB00A40, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true} }, - { .VINS, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB00AC0, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true} }, - { .VMOVNB, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VMOVNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB90740, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB907C0, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true} }, - { .VQABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB00740, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB007C0, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VPSEL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE010F01, 0xFFB10FF1, .MVE_INT, .T32, {thumb32=true} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB10340, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB103C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMVN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB005C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true} }, - { .VEOR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFF000D50, 0xFFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VCMP, {.QPR,.QPR,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE010F00, 0xFE818FF0, .MVE_INT, .T32, {thumb32=true} }, - { .VRSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE800EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VRSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE801EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQRSHRUNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE800FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQRSHRUNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE801FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, - { .VQDMLSDH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE000E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQDMLSDHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE001E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQRDMLSDH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VQRDMLSDHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFF000840, 0xFF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VPT, {.MVE_VPT_MASK,.COND,.QPR,.QPR}, {.MVE_VPT_MASK_FIELD,.NONE,.VN_Q,.VM_Q}, 0xFE010F00, 0xFE018FF0, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSDAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB00E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSDAVA, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB00E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSDAVX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB01E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VMLSDAVAX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB01E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLSLDAVH, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE800E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLSLDAVHA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE800E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLSLDAVHX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .VRMLSLDAVHAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, - { .CX2A, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xFE400000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX2DA, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX3A, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xFE800000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX3DA, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, - { .CX1A, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xFE000000, 0xFF800000, .CDE, .T32, {thumb32=true} }, - { .CX1DA, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xFE800000, 0xFF800000, .CDE, .T32, {thumb32=true} }, - { .LSL, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00000000, 0x0000F800, .THUMB, .T32, {} }, - { .LSR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00000800, 0x0000F800, .THUMB, .T32, {} }, - { .ASR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00001000, 0x0000F800, .THUMB, .T32, {} }, - { .SUB, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE}, 0x00001A00, 0x0000FE00, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE}, 0x00001800, 0x0000FE00, .THUMB, .T32, {} }, - { .SUB, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE}, 0x00001E00, 0x0000FE00, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE}, 0x00001C00, 0x0000FE00, .THUMB, .T32, {} }, - { .MOV, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00002000, 0x0000F800, .THUMB, .T32, {} }, - { .CMP, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00002800, 0x0000F800, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00003000, 0x0000F800, .THUMB, .T32, {} }, - { .SUB, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00003800, 0x0000F800, .THUMB, .T32, {} }, - { .AND, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004000, 0x0000FFC0, .THUMB, .T32, {} }, - { .EOR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004040, 0x0000FFC0, .THUMB, .T32, {} }, - { .ADC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004140, 0x0000FFC0, .THUMB, .T32, {} }, - { .SBC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004180, 0x0000FFC0, .THUMB, .T32, {} }, - { .TST, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004200, 0x0000FFC0, .THUMB, .T32, {} }, - { .CMP, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004280, 0x0000FFC0, .THUMB, .T32, {} }, - { .CMN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000042C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .ORR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004300, 0x0000FFC0, .THUMB, .T32, {} }, - { .BIC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004380, 0x0000FFC0, .THUMB, .T32, {} }, - { .MVN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000043C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .LSL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004080, 0x0000FFC0, .THUMB, .T32, {} }, - { .LSR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000040C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .ASR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004100, 0x0000FFC0, .THUMB, .T32, {} }, - { .ROR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000041C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .NEG, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004240, 0x0000FFC0, .THUMB, .T32, {} }, - { .MUL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004340, 0x0000FFC0, .THUMB, .T32, {} }, - { .BX, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004700, 0x0000FF87, .THUMB, .T32, {branch=true, writes_pc=true} }, - { .BLX, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004780, 0x0000FF87, .V5T, .T32, {branch=true, writes_pc=true} }, - { .BXNS, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004704, 0x0000FF87, .V8M_SE, .T32, {branch=true} }, - { .BLXNS, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004784, 0x0000FF87, .V8M_SE, .T32, {branch=true} }, - { .ADD, {.GPR,.GPR,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE}, 0x00004400, 0x0000FF00, .THUMB, .T32, {} }, - { .CMP, {.GPR,.GPR,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE}, 0x00004500, 0x0000FF00, .THUMB, .T32, {} }, - { .MOV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE}, 0x00004600, 0x0000FF00, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_HI,.MEM_LITERAL,.NONE,.NONE}, 0x00004800, 0x0000F800, .THUMB, .T32, {} }, - { .STR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005000, 0x0000FE00, .THUMB, .T32, {} }, - { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005200, 0x0000FE00, .THUMB, .T32, {} }, - { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005400, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRSB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005600, 0x0000FE00, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005800, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005A00, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005C00, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRSH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005E00, 0x0000FE00, .THUMB, .T32, {} }, - { .STR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00006000, 0x0000F800, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00006800, 0x0000F800, .THUMB, .T32, {} }, - { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00007000, 0x0000F800, .THUMB, .T32, {} }, - { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00007800, 0x0000F800, .THUMB, .T32, {} }, - { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00008000, 0x0000F800, .THUMB, .T32, {} }, - { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00008800, 0x0000F800, .THUMB, .T32, {} }, - { .STR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00009000, 0x0000F800, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00009800, 0x0000F800, .THUMB, .T32, {} }, - { .ADR, {.GPR_LOW,.REL8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x0000A000, 0x0000F800, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.GPR,.IMM8,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x0000A800, 0x0000F800, .THUMB, .T32, {} }, - { .SXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B240, 0x0000FFC0, .V6, .T32, {} }, - { .SXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B200, 0x0000FFC0, .V6, .T32, {} }, - { .UXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B2C0, 0x0000FFC0, .V6, .T32, {} }, - { .UXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B280, 0x0000FFC0, .V6, .T32, {} }, - { .SUB, {.GPR,.IMM8,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000B080, 0x0000FF80, .THUMB, .T32, {} }, - { .ADD, {.GPR,.IMM8,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000B000, 0x0000FF80, .THUMB, .T32, {} }, - { .CBZ, {.GPR_LOW,.REL8,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE}, 0x0000B100, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true} }, - { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0000B610, 0x0000FFF7, .V8, .T32, {} }, - { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x0000B400, 0x0000FE00, .THUMB, .T32, {} }, - { .REV, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000BA00, 0x0000FFC0, .V6, .T32, {} }, - { .REV16, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000BA40, 0x0000FFC0, .V6, .T32, {} }, - { .REVSH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000BAC0, 0x0000FFC0, .V6, .T32, {} }, - { .CBNZ, {.GPR_LOW,.REL8,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE}, 0x0000B900, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true} }, - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF00, 0x0000FFFF, .V6T2, .T32, {} }, - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF10, 0x0000FFFF, .V6T2, .T32, {} }, - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF20, 0x0000FFFF, .V6T2, .T32, {} }, - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF30, 0x0000FFFF, .V6T2, .T32, {} }, - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF40, 0x0000FFFF, .V6T2, .T32, {} }, - { .BKPT, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BE00, 0x0000FF00, .V5T, .T32, {} }, - { .IT, {.COND,.IMM4,.NONE,.NONE}, {.NONE,.IT_MASK,.NONE,.NONE}, 0x0000BF00, 0x0000FF00, .V6T2, .T32, {} }, - { .POP, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x0000BC00, 0x0000FE00, .THUMB, .T32, {} }, - { .STM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE}, 0x0000C000, 0x0000F800, .THUMB, .T32, {} }, - { .LDM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE}, 0x0000C800, 0x0000F800, .THUMB, .T32, {} }, - { .B, {.REL8,.COND,.NONE,.NONE}, {.BRANCH_8_T16,.NONE,.NONE,.NONE}, 0x0000D000, 0x0000F000, .THUMB, .T32, {branch=true, cond_branch=true, writes_pc=true} }, - { .SVC, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000DF00, 0x0000FF00, .THUMB, .T32, {} }, - { .UDF, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000DE00, 0x0000FF00, .THUMB, .T32, {} }, - { .B, {.REL11,.NONE,.NONE,.NONE}, {.BRANCH_11_T16,.NONE,.NONE,.NONE}, 0x0000E000, 0x0000F800, .THUMB, .T32, {branch=true, writes_pc=true} }, +DECODE_ENTRIES := [1745]lib.Decode_Entry{ + { .MUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x00100090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00100010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00100000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x00200090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00200010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00200000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x00300090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00300010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00300000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .UMAAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00400090, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x004000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE}, 0x004000D0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE}, 0x004000F0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00400010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00400000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x005000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x005000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x005000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00500010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00500000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MLS, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x00600090, 0x0FF000F0, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .STRHT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x006000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00600010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00600000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRHT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x007000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSBT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x007000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSHT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x007000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00700010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00700000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .UMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00800090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00800010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00800000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .UMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00900090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .UMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00A00090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00A00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00A00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .UMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00B00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00B00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00B00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00C00090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00C00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00C00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00D00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00E00090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00E00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00E00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00F00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00F00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00F00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SETEND, {.IMM_ENDIAN,.NONE,.NONE,.NONE,.NONE,.NONE}, {.SETEND_ENDIAN,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF1010000, 0xFFFFFDFF, .V6, .A32, {deprecated=true}, {.NONE,.NONE} }, + { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE,.NONE,.NONE}, {.RD,.MRS_SPEC_REG,.NONE,.NONE,.NONE,.NONE}, 0x010F0000, 0x0FBF0FFF, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CPS, {.IMM_IFLAGS,.NONE,.NONE,.NONE,.NONE,.NONE}, {.CPS_IFLAGS,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF1000000, 0xFFF1FE20, .V6, .A32, {}, {.NONE,.NONE} }, + { .CRC32B, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1000040, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, + { .CRC32CB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1000240, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, + { .HLT, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE1000070, 0xFFF000F0, .V8, .A32, {}, {.NONE,.NONE} }, + { .SWP, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01000090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x010000B0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_REG_OFFSET,.NONE,.NONE,.NONE}, 0x010000D0, 0x0F700FF0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_REG_OFFSET,.NONE,.NONE,.NONE}, 0x010000F0, 0x0F700FF0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .QADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01000050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLABB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x01000080, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLABT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x010000C0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLATB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x010000A0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLATT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x010000E0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF1100000, 0xFFFFFDFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x011000B0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x011000D0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x011000F0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TST, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01100010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01100000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .BX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x012FFF10, 0x0FFFFFF0, .BASE, .A32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BLX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x012FFF30, 0x0FFFFFF0, .V5T, .A32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BXJ, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x012FFF20, 0x0FFFFFF0, .V5TEJ, .A32, {branch=true, writes_pc=true, deprecated=true}, {.NONE,.NONE} }, + { .CRC32H, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1200040, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, + { .CRC32CH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1200240, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, + { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE,.NONE,.NONE}, {.PSR_FIELD_MASK,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x0120F000, 0x0FB0FFF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SMULWB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x012000A0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMULWT, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x012000E0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .BKPT, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE1200070, 0xFFF000F0, .V5T, .A32, {}, {.NONE,.NONE} }, + { .QSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01200050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLAWB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x01200080, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLAWT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x012000C0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01300010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01300000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CRC32W, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1400040, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, + { .CRC32CW, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1400240, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, + { .HVC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE1400070, 0xFFF000F0, .V7VE, .A32, {}, {.NONE,.NONE} }, + { .SWPB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01400090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}, {.NONE,.NONE} }, + { .QDADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01400050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLALBB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x01400080, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLALBT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x014000C0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLALTB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x014000A0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMLALTT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x014000E0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x014000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE}, 0x014000D0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE}, 0x014000F0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01500010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01500000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x015000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x015000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x015000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ERET, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0160006E, 0x0FFFFFFF, .V7VE, .A32, {writes_pc=true}, {.NONE,.NONE} }, + { .SMC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x01600070, 0x0FFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .CLZ, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x016F0F10, 0x0FFF0FF0, .V5T, .A32, {}, {.NONE,.NONE} }, + { .SMULBB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01600080, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMULBT, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x016000C0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMULTB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x016000A0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .SMULTT, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x016000E0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .QDSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01600050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x016000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE}, 0x016000D0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE}, 0x016000F0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01700010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01700000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x017000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x017000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x017000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STL, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x0180FC90, 0x0FF0FFF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .STREX, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01800F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STLEX, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01800E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01800010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01800000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDA, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01900C9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .LDREX, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01900F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDAEX, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01900E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RRX, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01A00060, 0x0FFF0FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00010, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00030, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00050, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00070, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STREXD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01A00F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STLEXD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01A00E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE,.NONE,.NONE}, 0x01A00000, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT_32,.NONE,.NONE,.NONE}, 0x01A00020, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT_32,.NONE,.NONE,.NONE}, 0x01A00040, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE,.NONE,.NONE}, 0x01A00060, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01A00010, 0x0FEF0090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01A00000, 0x0FEF0010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDREXD, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDAEXD, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .STLB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01C0FC90, 0x0FF0FFF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .STREXB, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01C00F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STLEXB, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01C00E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01C00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01C00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDAB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01D00C9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .LDREXB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01D00F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDAEXB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01D00E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .STLH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01E0FC90, 0x0FF0FFF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .STREXH, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01E00F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STLEXH, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01E00E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01E00010, 0x0FEF0090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01E00000, 0x0FEF0010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDAH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00C9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .LDREXH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDAEXH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {}, {.S8,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000140, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000050, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000250, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000750, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000740, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VAND, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VTST, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000850, 0xFFB00F50, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000E40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000350, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRECPS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000540, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000450, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000510, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .SHA1C, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000100, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000010, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000210, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000710, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000700, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VAND, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VTST, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000810, 0xFFB00F10, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000B10, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VRECPS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000F10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000400, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000500, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000410, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {}, {.S16,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100240, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100050, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100250, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100B40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100750, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100740, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VBIC, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VTST, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100850, 0xFFB00F50, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100350, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .SHA1P, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100200, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100010, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100210, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100B00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100710, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100700, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VBIC, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VTST, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100810, 0xFFB00F10, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100B10, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100400, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02100000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2200350, 0xFFB11F51, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2200340, 0xFFB11F51, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2200550, 0xFFB11F51, .NEON, .A32, {}, {.S32,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200D40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200950, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200940, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200D50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200C50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200040, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200240, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200050, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200250, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200750, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200740, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VORR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VTST, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200850, 0xFFB00F50, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200350, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200340, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRSQRTS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .SHA1M, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200800, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200910, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200900, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200D10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200C10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200000, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200200, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200010, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200210, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200B00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200710, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200700, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VORR, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VTST, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200810, 0xFFB00F10, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSQRTS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200F10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200400, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02200000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2300550, 0xFFB11F51, .NEON, .A32, {}, {.S64,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300840, 0xFFB00F50, .NEON, .A32, {}, {.I64,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300050, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300250, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VORN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2300440, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2300510, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .SHA1SU0, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300800, 0xFFB00F10, .NEON, .A32, {}, {.I64,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300010, 0xFFB00F10, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300210, 0xFFB00F10, .NEON, .A32, {}, {.S64,.NONE} }, + { .VORN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2300400, 0xFFB00F10, .NEON, .A32, {}, {.S64,.NONE} }, + { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02300000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02400000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800050, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800210, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E50, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800F50, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800F10, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800410, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800810, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800450, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800610, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800010, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800250, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800850, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E30, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E10, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E70, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800650, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800330, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800130, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800970, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800730, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800570, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800770, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800170, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800530, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800930, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800370, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800110, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800550, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800510, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800750, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800710, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800310, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800950, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800350, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800150, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800910, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800470, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800870, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800270, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800230, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800030, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D70, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800430, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800630, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800830, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C70, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800670, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800070, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {}, {.P8,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VRSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800850, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHR, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800050, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRA, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800150, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSHR, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800250, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSRA, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800350, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSLI, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800550, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRI, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800450, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VQSHL, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800750, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSHR, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800010, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRA, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800110, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSHR, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800210, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSRA, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800310, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSLI, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800510, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRI, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800410, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VQSHL, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800710, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02800000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2900100, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2900300, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF2900A10, 0xFFB80FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900000, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900200, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900500, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900700, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900040, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900440, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900C00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900A40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900240, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900800, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900A00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900640, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900B40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900D00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900900, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900340, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900B00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900740, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF2900C40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF2900D40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900E40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900F40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00100, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00300, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF2A00A10, 0xFFB80FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00000, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00200, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00500, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00700, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00C00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00800, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00A00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00F40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02A00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VEXT, {.QPR,.QPR,.QPR,.IMM4,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2B00040, 0xFFB00050, .NEON, .A32, {}, {.SZ64,.NONE} }, + { .VEXT, {.DPR,.DPR,.DPR,.IMM4,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2B00000, 0xFFB00010, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02B00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02C00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, + { .VACLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000840, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000D50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000950, 0xFFB00F50, .NEON, .A32, {}, {.P8,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000940, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000040, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000240, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000050, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000250, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000750, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VEOR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000300, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VACGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000E50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000E10, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000640, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000650, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000440, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000540, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000450, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000510, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .SHA256H, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000800, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000D10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000910, 0xFFB00F10, .NEON, .A32, {}, {.P8,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000900, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000000, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000200, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000010, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000210, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000710, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VEOR, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VACGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000500, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000410, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x03000000, 0x0FF00000, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3100350, 0xFFB11F51, .NEON, .A32, {}, {.U16,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3100340, 0xFFB11F51, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3100550, 0xFFB11F51, .NEON, .A32, {}, {.U16,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100D50, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100940, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100B40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100B50, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100C50, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VBSL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100850, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3100310, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3100300, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3100510, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .SHA256H2, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100800, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100D10, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100900, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100B00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100B10, 0xFFB00F10, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100C10, 0xFFB00F10, .V8, .A32, {}, {.S16,.NONE} }, + { .VBSL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100810, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .TST, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03100000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE320F011, 0xFFFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE320F012, 0xFFFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F001, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F002, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F003, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F004, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .SEVL, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F005, 0x0FFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .ESB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F010, 0x0FFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .CSDB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F014, 0x0FFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .DBG, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.DBG_OPTION,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .HINT, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {}, {.NONE,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {}, {.U32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {}, {.U32,.NONE} }, + { .VACLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {}, {.U32,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200940, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200B50, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200C50, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200D40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VBIT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200850, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200E40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200310, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200E00, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200300, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VACGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200E50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200E10, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200510, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .SHA256SU1, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200800, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200900, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200B00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200B10, 0xFFB00F10, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200C10, 0xFFB00F10, .V8, .A32, {}, {.S32,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VBIT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200810, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200E00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200E10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .MSR, {.PSR_FIELD,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.PSR_FIELD_MASK,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FB0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3300550, 0xFFB11F51, .NEON, .A32, {}, {.U64,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3300840, 0xFFB00F50, .NEON, .A32, {}, {.I64,.NONE} }, + { .VBIF, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3300150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3300E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3300510, 0xFFB00F50, .NEON, .A32, {}, {.U64,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3300800, 0xFFB00F10, .NEON, .A32, {}, {.I64,.NONE} }, + { .VBIF, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3300110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3300E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .TEQ, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03300000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x03400000, 0x0FF00000, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03500000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03700000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3800100, 0xFFB11F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3800300, 0xFFB11F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3880A10, 0xFFB80FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800000, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800200, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800500, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800700, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800C00, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800800, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800A00, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSHRUN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF3800810, 0xFF800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VQRSHRUN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF3800850, 0xFF800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03800000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3900100, 0xFFB11F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3900300, 0xFFB11F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF3900C40, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF3900D40, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3900A10, 0xFFB80FD0, .NEON, .A32, {}, {.U16,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900000, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900200, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900500, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900700, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMUL, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900040, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLS, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900440, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900A40, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900C00, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900240, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900800, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900640, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900A00, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900E40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900F40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00100, 0xFFB11F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00300, 0xFFB11F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF3A00C40, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3A00A10, 0xFFB80FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00000, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00200, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00500, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00700, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMUL, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B50340, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B10340, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B50300, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B90340, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B90740, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90700, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90300, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B10300, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B503C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90780, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B907C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B903C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B50380, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90380, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B103C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B10380, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCVT, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {}, {.F16,.F32} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20200, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60200, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0200, 0xFFBF0FD0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA02C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U64,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20280, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B602C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60280, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0280, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B202C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20240, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60240, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0240, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40200, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80200, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00280, 0xFFBF0FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00200, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRECPE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRECPE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRECPE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRECPE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_16,.NONE,.NONE,.NONE}, 0xF3B60300, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_32,.NONE,.NONE,.NONE}, 0xF3BA0300, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_8,.NONE,.NONE,.NONE}, 0xF3B20300, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00400, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80400, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40400, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B80440, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B40440, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00440, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00480, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B804C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80480, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B004C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B404C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40480, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B40040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B80040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B60080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B200C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA00C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B600C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B601C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B201C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA01C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .SHA1H, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .SHA1SU1, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .SHA256SU0, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, + { .VCEQ, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10140, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10100, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90500, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCEQ, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90540, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90480, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B100C0, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B904C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10080, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10040, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10000, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90400, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90440, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90580, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10180, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B905C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B101C0, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90640, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10200, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10240, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90600, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VREV32, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV32, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B000C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV32, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VREV32, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B400C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B60100, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20100, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VZIP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20180, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VZIP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B60180, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_32,.NONE,.NONE,.NONE,.NONE}, 0xF3B40C40, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_32,.NONE,.NONE,.NONE,.NONE}, 0xF3B40C00, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VMVN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VMVN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VPADDL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADDL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADAL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADAL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADAL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADAL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VCNT, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV16, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV16, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_16,.NONE,.NONE,.NONE,.NONE}, 0xF3B20C40, 0xFFB30FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_16,.NONE,.NONE,.NONE,.NONE}, 0xF3B20C00, 0xFFB30FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VSWP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VSWP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .AESE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, + { .AESD, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, + { .AESMC, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, + { .AESIMC, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_8,.NONE,.NONE,.NONE,.NONE}, 0xF3B10C40, 0xFFB10FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_8,.NONE,.NONE,.NONE,.NONE}, 0xF3B10C00, 0xFFB10FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_2,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_1,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_2,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_1,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400020F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4000A0F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400050F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400000F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4200A0F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420020F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420050F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420000F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .STRT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .PLI, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF450F000, 0xFF70F000, .V7, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04500000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRBT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRBT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480080F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480090F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4800A0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4800B0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480040F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480050F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480060F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480070F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480000F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480010F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480020F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480030F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0080F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0090F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00A0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00B0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0040F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0050F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0060F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0070F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0000F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0010F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0020F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0030F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00C0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05500000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CLREX, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF01F, 0xFFFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .SB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF070, 0xFFFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF050, 0xFFFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF040, 0xFFFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF060, 0xFFFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .PLD, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .PLDW, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V7, .A32, {}, {.NONE,.NONE} }, + { .SADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SEL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800FB0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x068F0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .PKHBT, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800010, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .PKHTB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800050, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE,.NONE,.NONE}, 0x06A00F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06AF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06A00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE,.NONE,.NONE}, 0x06A00010, 0x0FE00030, .V6, .A32, {}, {.NONE,.NONE} }, + { .REV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06BF0F30, 0x0FFF0FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .REV16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06BF0FB0, 0x0FFF0FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06BF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06B00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06CF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06C00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5_U,.RM_A32,.NONE,.NONE,.NONE}, 0x06E00F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06EF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06E00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5_U,.RM_A32,.NONE,.NONE,.NONE}, 0x06E00010, 0x0FE00030, .V6, .A32, {}, {.NONE,.NONE} }, + { .RBIT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06FF0F30, 0x0FFF0FF0, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .REVSH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06FF0FB0, 0x0FFF0FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06FF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06F00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMUAD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F010, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMUADX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F030, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMUSD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F050, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMUSDX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F070, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLAD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLADX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000030, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLSD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000050, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLSDX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000070, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07000000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0710F010, 0x0FF0F0F0, .DIV, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07100000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .UDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0730F010, 0x0FF0F0F0, .DIV, .A32, {}, {.NONE,.NONE} }, + { .SMLALD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLALDX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400030, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLSLD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400050, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMLSLDX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400070, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07400000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SMMUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0750F010, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMMULR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0750F030, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMMLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07500010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMMLAR, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07500030, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMMLS, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x075000D0, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SMMLSR, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x075000F0, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07500000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .USAD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0780F010, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USADA8, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07800010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD,.RM_A32,.BFI_LSB,.BFX_WIDTH,.NONE,.NONE}, 0x07A00050, 0x0FE00070, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE,.NONE,.NONE}, {.RD,.BFI_LSB,.BFI_MSB,.NONE,.NONE,.NONE}, 0x07C0001F, 0x0FE0007F, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB,.NONE,.NONE}, 0x07C00010, 0x0FE00070, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD,.RM_A32,.BFI_LSB,.BFX_WIDTH,.NONE,.NONE}, 0x07E00050, 0x0FE00070, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .UDF, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE7F000F0, 0xFFF000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STMDA, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08000000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEDA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8100A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .LDMDA, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08100000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEDA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8300A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSDA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF84D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSDA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF86D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .STM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08800000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEIA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8900A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08900000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08A00000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEIA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8B00A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .POP, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x08BD0000, 0x0FFF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08B00000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SRSIA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF8CD0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSIA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF8ED0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .STMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09000000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEDB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9100A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .LDMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09100000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x092D0000, 0x0FFF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEDB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9300A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSDB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF94D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSDB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF96D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .STMIB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09800000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEIB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9900A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .LDMIB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09900000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RFEIB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9B00A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSIB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF9CD0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSIB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF9ED0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .BLX, {.REL24,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xFA000000, 0xFE000000, .V5T, .A32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .B, {.REL24,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0A000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BL, {.REL24,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0B000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .VDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC000D40, 0xFFB00F50, .BF16, .A32, {}, {.BF16,.NONE} }, + { .VMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC000C40, 0xFFB00F50, .BF16, .A32, {}, {.BF16,.NONE} }, + { .VDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC000D00, 0xFFB00F10, .BF16, .A32, {}, {.BF16,.NONE} }, + { .VSDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200D40, 0xFFB00F50, .DOT, .A32, {}, {.S8,.NONE} }, + { .VUDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200D50, 0xFFB00F50, .DOT, .A32, {}, {.U8,.NONE} }, + { .VFMAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC200850, 0xFFB00F50, .FHM, .A32, {}, {.F16,.NONE} }, + { .VSMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200C40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, + { .VUMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200C50, 0xFFB00F50, .V8, .A32, {}, {.U8,.NONE} }, + { .VSDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC200D00, 0xFFB00F10, .DOT, .A32, {}, {.S8,.NONE} }, + { .VUDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC200D10, 0xFFB00F10, .DOT, .A32, {}, {.U8,.NONE} }, + { .VFMAL, {.DPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFC200810, 0xFFB00F10, .FHM, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NEON_ROT_4_HI,.NONE,.NONE}, 0xFC200840, 0xFC800F50, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.DPR,.DPR,.DPR,.IMM,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NEON_ROT_4_HI,.NONE,.NONE}, 0xFC200800, 0xFC800F10, .FCMA, .A32, {}, {.F16,.NONE} }, + { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC200000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VFMAB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC300810, 0xFFB00F70, .BF16, .A32, {}, {.BF16,.NONE} }, + { .VFMAT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC300850, 0xFFB00F70, .BF16, .A32, {}, {.BF16,.NONE} }, + { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC300000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.SPR,.SPR,.GPR,.GPR,.NONE,.NONE}, {.VM_S,.VM_S_PLUS1,.RT_A32,.RT2_A32,.NONE,.NONE}, 0x0C400A10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.DPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.VM_D,.RT_A32,.RT2_A32,.NONE,.NONE,.NONE}, 0x0C400B10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .MCRR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0xFC400000, 0xFFF00000, .V6, .A32, {}, {.NONE,.NONE} }, + { .MCRR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0x0C400000, 0x0FF00000, .V6, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.GPR,.SPR,.SPR,.NONE,.NONE}, {.RT_A32,.RT2_A32,.VM_S,.VM_S_PLUS1,.NONE,.NONE}, 0x0C500A10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.GPR,.DPR,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32,.VM_D,.NONE,.NONE,.NONE}, 0x0C500B10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .MRRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0xFC500000, 0xFFF00000, .V6, .A32, {}, {.NONE,.NONE} }, + { .MRRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0x0C500000, 0x0FF00000, .V6, .A32, {}, {.NONE,.NONE} }, + { .STC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC600000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC700000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VCADD, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NEON_ROT_2,.NONE,.NONE}, 0xFC800840, 0xFE800F50, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCADD, {.DPR,.DPR,.DPR,.IMM,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NEON_ROT_2,.NONE,.NONE}, 0xFC800800, 0xFE800F10, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VSTMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C800A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C800B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C900A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C900B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VFMSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {}, {.F16,.NONE} }, + { .VUSMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, + { .VUSDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, + { .VFMSL, {.DPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {}, {.F16,.NONE} }, + { .VUSDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {}, {.S8,.NONE} }, + { .VSTMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CA00B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CA00A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VPOP, {.DPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0CBD0B00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VPOP, {.SPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0CBD0A00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CB00B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CB00A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD000000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .VSTR, {.DPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D000B00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTR, {.SPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D000A00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD100000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .VLDR, {.DPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D100B00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDR, {.SPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D100A00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VPUSH, {.DPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VPUSH, {.SPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD200000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .VSTMDB, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D200A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMDB, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D200B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD300000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .VLDMDB, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D300A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMDB, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D300B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD400000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD500000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D500000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD600000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD700000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.SPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VN_S,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VMOV_LANE_32,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {}, {.SZ32,.NONE} }, + { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VMOV_LANE_16,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {}, {.SZ16,.NONE} }, + { .VCMLA, {.QPR,.QPR,.DPR_ELEM,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NEON_ROT_4,.NONE,.NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.DPR,.DPR,.DPR_ELEM,.IMM,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NEON_ROT_4,.NONE,.NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VSEL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFE000A00, 0xFF800F50, .V8, .A32, {cond_in_21=true}, {.F32,.NONE} }, + { .VSEL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {cond_in_21=true}, {.F64,.NONE} }, + { .VMLA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMLS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMLA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E000B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E000B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMLS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .MCR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0xFE000010, 0xFF100010, .V5T, .A32, {}, {.NONE,.NONE} }, + { .CDP2, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRD_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0xFE000000, 0xFF000010, .V5T, .A32, {}, {.NONE,.NONE} }, + { .MCR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0x0E000010, 0x0F100010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CDP, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRD_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0x0E000000, 0x0F000010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.VN_S,.NONE,.NONE,.NONE,.NONE}, 0x0E100A10, 0x0FF00F7F, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.NEON_LANE_VN_32,.NONE,.NONE,.NONE,.NONE}, 0x0E100B10, 0x0F100F1F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VNMLA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E100A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VNMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E100B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VNMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E100B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VNMLS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E100A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .MRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0xFE100010, 0xFF100010, .V5T, .A32, {}, {.NONE,.NONE} }, + { .MRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0x0E100010, 0x0F100010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .VSDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D40, 0xFFB00F50, .DOT, .A32, {}, {.S8,.NONE} }, + { .VUDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D50, 0xFFB00F50, .DOT, .A32, {}, {.U8,.NONE} }, + { .VSDOT, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D00, 0xFFB00F10, .DOT, .A32, {}, {.S8,.NONE} }, + { .VUDOT, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D10, 0xFFB00F10, .DOT, .A32, {}, {.U8,.NONE} }, + { .VMUL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E200900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E200B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMUL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E200A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VNMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E200B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VNMUL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E200A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VADD, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSUB, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VADD, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VSUB, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VMOV_LANE_8,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {}, {.SZ8,.NONE} }, + { .VSUDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {}, {.U8,.NONE} }, + { .VUSDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, + { .VMAXNM, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFE800B00, 0xFFB00B50, .V8, .A32, {}, {.F64,.NONE} }, + { .VMAXNM, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {}, {.F32,.NONE} }, + { .VMINNM, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFE800B40, 0xFFB00B50, .V8, .A32, {}, {.F64,.NONE} }, + { .VMINNM, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFE800A40, 0xFFB00B50, .V8, .A32, {}, {.F32,.NONE} }, + { .VUSDOT, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE800D00, 0xFFB00F10, .V8, .A32, {}, {.S8,.NONE} }, + { .VDIV, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E800900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VDIV, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E800A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VDIV, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E800B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VFNMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VFNMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VFNMA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E900B40, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFNMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900A40, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFNMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900A00, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFNMS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E900B00, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VFMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VFMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00A00, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFMA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0EA00B00, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00A40, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFMS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0EA00B40, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VCMP, {.SPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50940, 0x0FBF0FFF, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCMP, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50B40, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCMP, {.SPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50A40, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMPE, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50BC0, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCMPE, {.SPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50AC0, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCVTA, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBC0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTA, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBC0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, + { .VCVTN, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBD0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, + { .VCVTN, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBD0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTP, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBE0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, + { .VCVTP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBE0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTM, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBF0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, + { .VCVTM, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBF0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VRINTA, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEB80B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTA, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB80A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTN, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB90A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEB90B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBA0A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBA0B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTM, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBB0A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTM, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBB0B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VABS, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB00AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB00BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB10B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VNEG, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB10A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VSQRT, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB10BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VSQRT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB109C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSQRT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB10AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB40940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCMP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB40A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB40B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCMPE, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB40AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMPE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB40BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U32,.F64} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.U32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.S32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S32,.F64} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.U16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U32,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S32,.F32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.S16} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S16,.F64} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U16,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S16,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.S32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.S16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.S32,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.U32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.U32,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.U16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.U32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U16,.F64} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.S16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.U16} }, + { .VCVT, {.DPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.S32} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.S32} }, + { .VCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F64} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.U32} }, + { .VCVT, {.DPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.U32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.S16,.F16} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F32} }, + { .VCVT, {.DPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB70AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.F32} }, + { .VCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB70BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.F64} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F32} }, + { .VCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F64} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.U16,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.S32} }, + { .VCVTB, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB30A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F16,.F32} }, + { .VCVTB, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB20A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.F16} }, + { .VCVTT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB20AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.F16} }, + { .VCVTT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB30AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F16,.F32} }, + { .VCVTR, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F64} }, + { .VCVTR, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F32} }, + { .VCVTR, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F32} }, + { .VCVTR, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F64} }, + { .VMOV, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB00A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB00B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VRINTR, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB60B40, 0x0FBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTR, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB60A40, 0x0FBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTZ, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB60AC0, 0x0FBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB60BC0, 0x0FBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTX, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTX, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VJCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {}, {.S32,.F64} }, + { .VMOV, {.SPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VFP_IMM8,.NONE,.NONE,.NONE,.NONE}, 0x0EB00A00, 0x0FB00FF0, .VFPV3, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.DPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VFP_IMM8,.NONE,.NONE,.NONE,.NONE}, 0x0EB00B00, 0x0FB00FF0, .VFPV3, .A32, {}, {.F64,.NONE} }, + { .VDUP, {.DPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VN_D,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0EC00B10, 0x0FF00FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VMSR, {.PSR_FIELD,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VFP_SPEC_REG,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0EE10A10, 0x0FF00FFF, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VDUP, {.QPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VN_Q,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0EE00B10, 0x0FF00FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VMRS, {.GPR,.PSR_FIELD,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.VFP_SPEC_REG,.NONE,.NONE,.NONE,.NONE}, 0x0EF10A10, 0x0FF00FFF, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .SVC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_IMM24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0F000000, 0x0F000000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SG, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE97FE97F, 0xFFFFFFFF, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TBB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D0F000, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, + { .TBH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D0F010, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, + { .LDREXB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D00F4F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDREXH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D00F5F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STREXB, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8C00F40, 0xFFF00FF0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STREXH, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8C00F50, 0xFFF00FF0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDREXD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8D0007F, 0xFFF000FF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F000, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TTT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F040, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TTA, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F080, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TTAT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F0C0, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDREX, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8500F00, 0xFFF00F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STREXD, {.GPR,.GPR,.GPR,.MEM,.NONE,.NONE}, {.RD_T32,.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE}, 0xE8C00070, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE92D0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .POP, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE8BD0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STREX, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8400000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE8900000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE8800000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE9100000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE9000000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE9500000, 0xFE500000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE9400000, 0xFE500000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0000, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0010, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0020, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0030, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA900F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEBB00F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEB100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA5F0000, 0xFFFF8000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA6F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA100000, 0xFFF08000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA000000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA800000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEBC00000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEB400000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEB600000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA400000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA200000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSTRH, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSTRW, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSTRD, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSTRB, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VLDRH, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.U16,.NONE} }, + { .VLDRW, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.U32,.NONE} }, + { .VLDRD, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSTRH, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.SZ16,.NONE} }, + { .VSTRW, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VSTRD, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMOV, {.QPR_ELEM,.QPR_ELEM,.GPR,.GPR,.NONE,.NONE}, {.VD_Q,.VD_Q,.RT_T32,.RT2_T32,.NONE,.NONE}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VLDRB, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VSTRB, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VCX1, {.IMM_COPROC,.SPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2, {.IMM_COPROC,.SPR,.SPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX3, {.IMM_COPROC,.SPR,.SPR,.SPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S,.NONE,.NONE}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D,.NONE,.NONE}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VADDLV, {.GPR,.GPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VADDLVA, {.GPR,.GPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMAXNMV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMAXNMAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEC0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMINNMV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEE0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMINNMAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEC0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMLSV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE,.NONE,.NONE}, 0xEEF00E01, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMLSVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE,.NONE,.NONE}, 0xEEF00E21, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQMOVNB, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE330E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VQMOVNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE331E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VQMOVUNB, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VQMOVUNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VADDV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEF10F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VADDVA, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEF10F20, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMAXV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE20F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMAXAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMINV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMINAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VHCADD, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_HCADD,.NONE,.NONE}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VDUP, {.QPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE,.NONE,.NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VMLSLDAV, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VMLSLDAVA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VDDUP, {.QPR,.GPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE011F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VIDUP, {.QPR,.GPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE010F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VCMP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE310F00, 0xEFB10FF0, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMOV, {.QPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE,.NONE,.NONE}, 0xEE000B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VMOV, {.GPR,.QPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.VD_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE100B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VAND, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VBIC, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF100150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VORR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF200150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VORN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF300150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMLADAVX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB01F00, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLADAVAX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB01F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLALDAVA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VMLALDAVAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VRMLALDAVHA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VRMLALDAVHAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VSHLC, {.QPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.RM_T32,.A32_IMM_SHIFT,.NONE,.NONE,.NONE}, 0xEE000FC0, 0xFFC00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VADD, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE010F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VSUB, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE011F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VMUL, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE011E60, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VFMA, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE310E40, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMLADAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLADAVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLALDAV, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VMLALDAVX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VRMLALDAVH, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VRMLALDAVHX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLAVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VCMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE300E00, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true}, {.F16,.NONE} }, + { .VHCADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VBRSR, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE011E60, 0xEF811F71, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF200D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMLA, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE010E40, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VFMA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VFMS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF200C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VDWDUP, {.QPR,.GPR,.GPR,.IMM,.NONE,.NONE}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEE011F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VIWDUP, {.QPR,.GPR,.GPR,.IMM,.NONE,.NONE}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEE010F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VSHLLB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSHLLT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMULLB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMULLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMLALB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMLALT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMLSLB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMLSLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQRSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQRSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQSHRUNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQSHRUNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQDMLADH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQDMLADHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQRDMLADH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQRDMLADHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000840, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000950, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000040, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000240, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VRHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000140, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000050, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000250, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000640, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000650, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000440, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000540, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000450, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMLSLDAVX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VMLSLDAVAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, + { .VSHR, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEF800050, 0xEF800F51, .MVE_INT, .T32, {thumb32=true}, {.I32,.NONE} }, + { .VSRA, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEF800150, 0xEF800F51, .MVE_INT, .T32, {thumb32=true}, {.I32,.NONE} }, + { .VRSHR, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEF800250, 0xEF800F51, .MVE_INT, .T32, {thumb32=true}, {.I32,.NONE} }, + { .VABAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE800F01, 0xEFB11051, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .CX2, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEE400000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX2D, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX3, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xEE800000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX3D, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX1, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE000000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX1D, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE800000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LCTP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF00FE001, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .DLS, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF040E001, 0xFFF0FFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCTP, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF000E801, 0xFFC0FFFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .DLSTP, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF000E001, 0xFEC0FFFF, .V81M, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .BFX, {.REL_BF,.GPR,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE,.NONE,.NONE}, 0xF060E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + { .BFLX, {.REL_BF,.GPR,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE,.NONE,.NONE}, 0xF070E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + { .LE, {.REL11,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF00FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + { .LETP, {.REL11,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF01FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + { .WLS, {.GPR,.REL11,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE}, 0xF040C001, 0xFFF0F001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + { .BF, {.REL_BF,.REL_BF,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE,.NONE,.NONE}, 0xF040E001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + { .BFL, {.REL_BF,.REL_BF,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE,.NONE,.NONE}, 0xF000C001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true}, {.SZ8,.NONE} }, + { .TST, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF0100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF0900F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CMP, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF1B00F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CMN, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF1100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF04F0000, 0xFBFF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF05F0000, 0xFBFF8000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF06F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .WLSTP, {.GPR,.REL11,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE}, 0xF000C001, 0xFEC0F001, .V81M, .T32, {branch=true, thumb32=true}, {.SZ8,.NONE} }, + { .BFCSEL, {.REL_BF,.REL_BF,.IMM4,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.BFCSEL_COND,.NONE,.NONE,.NONE}, 0xF002E001, 0xF843F001, .V81M, .T32, {branch=true, thumb32=true}, {.SZ8,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0000000, 0xFBF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0100000, 0xFBF08000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0800000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF1C00000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF1400000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF1600000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0400000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0200000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .B, {.REL24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF0009000, 0xF800D000, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, + { .B, {.REL20,.COND,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_20_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF0008000, 0xF800D000, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, + { .BL, {.REL24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF000D000, 0xF800D000, .THUMB, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8000, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8001, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8002, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8003, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8004, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CLREX, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F2F, 0xFFFFFFFF, .V6K, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ESB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8010, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8011, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8012, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CSDB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8014, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F70, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PAC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF801D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PACBTI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF800D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .AUT, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF802D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .BTI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF80F0, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3EF8000, 0xFFFFF0FF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F50, 0xFFFFFFF0, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F40, 0xFFFFFFF0, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F60, 0xFFFFFFF0, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE,.NONE,.NONE}, {.PSR_FIELD_MASK,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xF3808000, 0xFFF0F0FF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3200000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_U_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3A00000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE,.NONE,.NONE}, {.RD_T32,.BFI_LSB_T32,.BFI_MSB,.NONE,.NONE,.NONE}, 0xF36F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB,.NONE,.NONE}, 0xF3600000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFX_WIDTH,.NONE,.NONE}, 0xF3400000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFX_WIDTH,.NONE,.NONE}, 0xF3C00000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3000000, 0xFFD08020, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_U_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3800000, 0xFFD08020, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF2400000, 0xFBF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF2C00000, 0xFBF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .DCPS1, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF78F8001, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .DCPS2, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF78F8002, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .DCPS3, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF78F8003, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UDF, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF7F0A000, 0xFFF0F000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8500000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8400000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8000000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8200000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PLD, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF890F000, 0xFFF0F000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PLDW, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF830F000, 0xFFF0F000, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .PLI, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF990F000, 0xFFF0F000, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_LITERAL,.NONE,.NONE,.NONE,.NONE}, 0xF85F0000, 0xFF7F0000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8D00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8C00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8900000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8800000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8A00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9900000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA4FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA2FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA0FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA5FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA3FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA1FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA20F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA40F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA60F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CLZ, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFAB0F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .RBIT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .REV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .REV16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .REVSH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QDADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QDSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .USAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .USUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .USUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .QSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UQADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UQADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UQASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UQSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UQSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UQSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFB00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFB90F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFBB0F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .AUTG, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFB50F000, 0xFFF0F0F0, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA40F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA20F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA00F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA50F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA30F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA10F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32,.NONE,.NONE}, 0xFB000000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MLS, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32,.NONE,.NONE}, 0xFB000010, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFBA00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .UMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFBE00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFB800000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFBC00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VLD20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VLD21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VLD40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VLD41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VLD42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VLD43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VST20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VST21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VST40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VST41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VST42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VST43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VCMLA, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_CMLA,.NONE,.NONE}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true}, {.F16,.NONE} }, + { .VLDRH, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.U16,.NONE} }, + { .VLDRW, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.U32,.NONE} }, + { .VLDRD, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.U64,.NONE} }, + { .VLDRB, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VCX1A, {.IMM_COPROC,.DPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX1A, {.IMM_COPROC,.SPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2A, {.IMM_COPROC,.SPR,.SPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFC600000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2A, {.IMM_COPROC,.DPR,.DPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFC700000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX3A, {.IMM_COPROC,.DPR,.DPR,.DPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D,.NONE,.NONE}, 0xFC900000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX3A, {.IMM_COPROC,.SPR,.SPR,.SPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S,.NONE,.NONE}, 0xFC800000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VPST, {.MVE_VPT_MASK,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MVE_VPT_MASK_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xFE710F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VPNOT, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xFE310F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VRINTA, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA0540, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VRINTN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA0440, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VRINTP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA07C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VRINTM, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA06C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VRINTZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA05C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VRINTX, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA04C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMOVX, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB00A40, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true}, {.F16,.NONE} }, + { .VINS, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB00AC0, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true}, {.F16,.NONE} }, + { .VMOVNB, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.I16,.NONE} }, + { .VMOVNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.I16,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB90740, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB907C0, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VQABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB00740, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB007C0, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VPSEL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE010F01, 0xFFB10FF1, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB10340, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB103C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VMVN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB005C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VEOR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFF000D50, 0xFFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VCMP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFE010F00, 0xFE818FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VRSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE800EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VRSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE801EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQRSHRUNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE800FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQRSHRUNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE801FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VQDMLSDH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE000E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQDMLSDHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE001E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQRDMLSDH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VQRDMLSDHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFF000840, 0xFF810F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VPT, {.MVE_VPT_MASK,.COND,.QPR,.QPR,.NONE,.NONE}, {.MVE_VPT_MASK_FIELD,.NONE,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE010F00, 0xFE018FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VMLSDAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB00E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLSDAVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB00E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLSDAVX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB01E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VMLSDAVAX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB01E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VRMLSLDAVH, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE800E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VRMLSLDAVHA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE800E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VRMLSLDAVHX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .VRMLSLDAVHAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, + { .CX2A, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFE400000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX2DA, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX3A, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFE800000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX3DA, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX1A, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFE000000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CX1DA, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFE800000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSL, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00000000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00000800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00001000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE}, 0x00001A00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE}, 0x00001800, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00001E00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00001C00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00002000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00002800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00003000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00003800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .AND, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004000, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004040, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004140, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004180, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .TST, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004200, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004280, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000042C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004300, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004380, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000043C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004080, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000040C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004100, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ROR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000041C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .NEG, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004240, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MUL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004340, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .BX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004700, 0x0000FF87, .THUMB, .T32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BLX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004780, 0x0000FF87, .V5T, .T32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BXNS, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004704, 0x0000FF87, .V8M_SE, .T32, {branch=true}, {.NONE,.NONE} }, + { .BLXNS, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004784, 0x0000FF87, .V8M_SE, .T32, {branch=true}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE,.NONE,.NONE}, 0x00004400, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE,.NONE,.NONE}, 0x00004500, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE,.NONE,.NONE}, 0x00004600, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.MEM_LITERAL,.NONE,.NONE,.NONE,.NONE}, 0x00004800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005000, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005200, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005400, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005600, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005800, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005A00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005C00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005E00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00006000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00006800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00007000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00007800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00008000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00008800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00009000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00009800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADR, {.GPR_LOW,.REL8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000A000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.GPR,.IMM8,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000A800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B240, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .SXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B200, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .UXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B2C0, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .UXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B280, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B080, 0x0000FF80, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B000, 0x0000FF80, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CBZ, {.GPR_LOW,.REL8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE,.NONE,.NONE}, 0x0000B100, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B610, 0x0000FFF7, .V8, .T32, {}, {.NONE,.NONE} }, + { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B400, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .REV, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000BA00, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .REV16, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000BA40, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .REVSH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000BAC0, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .CBNZ, {.GPR_LOW,.REL8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE,.NONE,.NONE}, 0x0000B900, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF00, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF10, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF20, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF30, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF40, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .BKPT, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BE00, 0x0000FF00, .V5T, .T32, {}, {.NONE,.NONE} }, + { .IT, {.COND,.IMM4,.NONE,.NONE,.NONE,.NONE}, {.NONE,.IT_MASK,.NONE,.NONE,.NONE,.NONE}, 0x0000BF00, 0x0000FF00, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .POP, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BC00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0000C000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0000C800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .B, {.REL8,.COND,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_8_T16,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000D000, 0x0000F000, .THUMB, .T32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .SVC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000DF00, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .UDF, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000DE00, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .B, {.REL11,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_11_T16,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000E000, 0x0000F800, .THUMB, .T32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, } @(rodata) -DECODE_FORM_IDX := [1680]u16{ - 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 1, 5, - 4, 0, 2, 1, 5, 4, 0, 2, 1, 1, 5, 4, 0, 2, 1, 1, - 5, 4, 0, 2, 2, 2, 2, 1, 1, 2, 2, 2, 5, 4, 0, 0, - 2, 1, 1, 0, 0, 0, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 3, 3, 3, - 2, 1, 0, 0, 0, 3, 3, 3, 5, 4, 0, 1, 1, 1, 1, 0, - 0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 4, 0, 0, 0, 0, 0, - 0, 2, 1, 0, 0, 0, 0, 0, 0, 5, 4, 0, 0, 0, 2, 1, - 1, 1, 1, 0, 0, 0, 5, 4, 1, 1, 1, 1, 1, 1, 14, 9, +DECODE_FORM_IDX := [1745]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, + 5, 4, 0, 2, 1, 1, 5, 4, 0, 0, 0, 0, 0, 0, 0, 3, + 3, 3, 0, 0, 0, 0, 0, 0, 3, 3, 3, 2, 1, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0, 0, 2, + 1, 0, 0, 0, 5, 4, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, + 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, 6, 10, 4, 3, 3, 1, 4, 4, 3, 3, 1, 3, 7, 3, 3, - 0, 0, 9, 3, 3, 1, 4, 1, 1, 0, 0, 13, 5, 5, 9, 3, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 8, 0, + 0, 0, 9, 3, 3, 1, 4, 1, 1, 0, 0, 5, 13, 5, 3, 9, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 10, 9, 7, 4, - 4, 5, 5, 2, 4, 4, 1, 4, 9, 4, 4, 2, 2, 11, 4, 4, - 2, 0, 6, 3, 6, 4, 1, 1, 1, 1, 0, 1, 1, 0, 1, 8, - 1, 1, 1, 10, 1, 1, 1, 1, 1, 3, 5, 5, 5, 11, 14, 10, - 8, 10, 4, 5, 5, 6, 6, 3, 5, 5, 1, 5, 5, 5, 4, 4, - 5, 9, 5, 1, 4, 0, 7, 13, 7, 5, 9, 3, 2, 2, 2, 2, - 1, 2, 2, 0, 2, 2, 2, 2, 2, 8, 2, 2, 2, 0, 2, 0, + 4, 5, 5, 2, 4, 4, 13, 4, 9, 4, 4, 2, 2, 11, 4, 4, + 2, 0, 6, 3, 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, 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, 0, 0, 0, 24, 25, 22, 21, 23, 0, 0, - 0, 0, 10, 11, 14, 10, 13, 11, 19, 16, 12, 15, 20, 17, 18, 6, - 0, 0, 0, 3, 4, 2, 9, 8, 5, 7, 6, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 5, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 1, 2, 2, 1, 4, 1, 4, 4, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 1, 1, 0, 1, 0, 3, 0, 3, 0, 3, 7, 13, 7, - 1, 9, 9, 14, 12, 6, 7, 7, 9, 9, 7, 7, 1, 3, 9, 7, - 7, 6, 12, 6, 1, 0, 7, 7, 7, 3, 3, 8, 0, 5, 11, 13, - 3, 6, 6, 8, 8, 6, 6, 0, 0, 8, 6, 6, 0, 6, 6, 4, - 3, 3, 3, 6, 2, 2, 0, 0, 9, 9, 11, 10, 4, 7, 2, 2, - 2, 1, 4, 11, 8, 8, 10, 0, 6, 3, 4, 0, 0, 0, 0, 1, - 10, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 11, 13, 1, 13, 11, 8, 3, 3, 3, 9, 1, 5, 9, 10, 12, 10, - 1, 0, 12, 0, 7, 5, 1, 1, 1, 8, 0, 2, 8, 0, 4, 0, - 15, 12, 1, 11, 14, 8, 0, 10, 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 0, 0, 1, 1, 1, 3, 3, 3, 1, 1, - 2, 2, 2, 0, 0, 0, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, - 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 3, 5, 5, 3, 3, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 3, 5, 3, 5, 3, 3, 3, 3, - 1, 1, 3, 3, 0, 3, 2, 1, 0, 1, 3, 2, 0, 0, 1, 1, - 0, 0, 0, 0, 0, 6, 5, 3, 4, 7, 8, 9, 2, 7, 9, 2, - 6, 8, 3, 5, 4, 1, 0, 0, 1, 2, 3, 5, 2, 0, 1, 4, - 2, 0, 1, 4, 2, 1, 0, 5, 3, 0, 1, 2, 3, 2, 4, 3, - 1, 0, 5, 3, 4, 2, 5, 1, 3, 0, 2, 4, 1, 0, 1, 0, - 1, 0, 2, 3, 2, 4, 0, 3, 5, 1, 3, 2, 5, 0, 1, 4, - 3, 1, 0, 2, 4, 3, 0, 4, 1, 2, 1, 0, 0, 0, 0, 0, - 0, 1, 3, 2, 0, 1, 2, 3, 2, 0, 1, 3, 3, 1, 2, 0, - 0, 3, 1, 2, 1, 3, 0, 2, 2, 1, 3, 0, 2, 3, 3, 0, - 3, 0, 3, 2, 3, 0, 1, 2, 1, 0, 1, 0, 0, 1, 3, 0, - 1, 2, 1, 2, 0, 0, 1, 1, 0, 6, 4, 5, 1, 2, 0, 2, - 0, 1, 0, 2, 1, 2, 1, 0, 2, 2, 0, 0, 0, 5, 4, 7, - 6, 2, 1, 0, 2, 0, 1, 0, 2, 1, 2, 1, 0, 0, 0, 2, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, - 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 3, 0, 3, 0, 3, 24, 22, 11, 12, 27, 29, 25, 28, 14, 23, + 18, 15, 16, 10, 13, 19, 30, 26, 21, 31, 20, 17, 0, 0, 2, 0, + 9, 10, 6, 5, 7, 1, 4, 8, 11, 3, 0, 5, 11, 4, 7, 6, + 2, 9, 10, 3, 1, 8, 14, 12, 7, 11, 5, 4, 2, 17, 6, 8, + 10, 16, 15, 9, 3, 13, 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, 2, 0, 0, 2, 0, 2, 4, 4, 4, 4, 3, 2, 2, + 2, 2, 2, 2, 2, 19, 13, 12, 2, 8, 7, 2, 7, 2, 3, 1, + 1, 3, 1, 3, 6, 6, 5, 5, 0, 1, 0, 3, 0, 3, 0, 3, + 7, 13, 7, 1, 9, 9, 14, 12, 6, 7, 7, 9, 9, 7, 7, 1, + 3, 7, 9, 7, 6, 12, 6, 1, 0, 7, 7, 7, 3, 3, 8, 0, + 5, 13, 11, 3, 6, 6, 8, 8, 6, 6, 0, 0, 6, 8, 6, 0, + 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, + 12, 10, 1, 0, 12, 0, 7, 5, 1, 1, 1, 8, 0, 2, 8, 0, + 4, 0, 15, 12, 1, 11, 14, 8, 0, 10, 0, 0, 0, 0, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 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, 5, 9, + 9, 5, 7, 7, 0, 6, 5, 3, 7, 9, 8, 4, 2, 6, 8, 9, + 7, 3, 4, 5, 2, 10, 0, 1, 2, 5, 0, 4, 1, 2, 3, 0, + 1, 2, 1, 2, 4, 0, 1, 3, 2, 0, 2, 3, 0, 1, 2, 3, + 1, 0, 2, 1, 5, 4, 3, 0, 5, 2, 3, 4, 1, 1, 3, 4, + 5, 2, 0, 2, 0, 1, 3, 5, 4, 3, 4, 2, 3, 2, 4, 0, + 0, 0, 11, 10, 12, 13, 14, 13, 15, 12, 13, 12, 14, 15, 16, 14, + 17, 15, 17, 14, 15, 16, 0, 2, 1, 3, 1, 0, 0, 1, 7, 6, + 0, 1, 5, 3, 3, 2, 1, 0, 1, 0, 0, 1, 5, 4, 1, 0, + 0, 0, 0, 0, 3, 2, 1, 3, 2, 0, 2, 1, 3, 0, 3, 0, + 3, 0, 3, 3, 2, 1, 0, 0, 2, 1, 1, 0, 1, 0, 2, 2, + 2, 0, 1, 3, 2, 0, 1, 1, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 0, 0, 0, 3, 3, 0, 0, 3, 0, 3, - 0, 0, 0, 1, 0, 1, 4, 4, 0, 2, 2, 1, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, - 9, 7, 0, 0, 8, 6, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, - 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 4, 2, 1, 1, - 0, 1, 0, 27, 2, 2, 1, 0, 0, 1, 0, 0, 0, 0, 5, 26, - 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 2, 0, 1, 1, 0, 2, - 2, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 2, 1, 0, - 2, 2, 1, 0, 1, 0, 2, 2, 1, 0, 1, 0, 2, 3, 5, 2, - 3, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, - 0, 1, 0, 1, 0, 2, 1, 0, 9, 7, 6, 8, 3, 2, 4, 0, - 1, 5, 0, 1, 1, 0, 3, 1, 0, 2, 1, 0, 0, 1, 1, 0, - 1, 0, 0, 8, 9, 7, 2, 1, 3, 6, 0, 0, 1, 4, 0, 1, - 4, 5, 2, 3, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 1, 1, 2, 2, 1, 6, 7, 6, 7, 4, 4, - 4, 4, 4, 3, 5, 4, 7, 5, 11, 10, 8, 10, 9, 8, 7, 8, - 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 7, 2, - 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 6, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 11, 5, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 15, 8, 8, 2, 10, 10, 12, 12, 8, - 4, 6, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 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, 1, 1, 2, 2, 2, 1, 1, + 3, 0, 3, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, + 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, 1, 1, 1, 0, 0, 0, 0, + 0, 1, 0, 2, 2, 0, 0, 2, 2, 9, 7, 0, 0, 8, 6, 0, + 0, 2, 2, 2, 2, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, + 3, 2, 1, 0, 3, 2, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, + 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, + 4, 38, 37, 3, 2, 0, 1, 2, 2, 0, 1, 1, 0, 0, 0, 0, + 0, 5, 32, 0, 1, 1, 0, 0, 0, 3, 3, 2, 2, 2, 1, 0, + 1, 0, 2, 2, 1, 0, 0, 1, 36, 0, 3, 1, 0, 1, 0, 2, + 2, 0, 1, 2, 2, 1, 0, 0, 1, 2, 2, 0, 1, 0, 1, 5, + 3, 2, 3, 2, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, + 0, 1, 0, 1, 0, 1, 1, 0, 1, 2, 0, 4, 0, 1, 0, 1, + 34, 32, 31, 33, 28, 26, 25, 27, 29, 22, 21, 23, 19, 17, 16, 18, + 20, 24, 30, 11, 12, 8, 6, 5, 7, 9, 13, 2, 0, 1, 3, 4, + 14, 15, 1, 0, 0, 1, 3, 0, 1, 2, 0, 1, 1, 0, 0, 1, + 1, 0, 0, 2, 3, 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, 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, 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, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 1, 1, 0, 5, 5, 5, 4, 1, 1, - 1, 1, 1, 1, 2, 1, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, - 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 11, 11, 0, - 0, 0, 10, 10, 12, 2, 16, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 6, 6, 7, 7, 6, 3, 8, 8, 6, 6, 6, 6, 3, - 4, 3, 6, 6, 6, 3, 3, 3, 2, 0, 2, 1, 2, 0, 0, 9, - 5, 7, 4, 4, 4, 4, 4, 5, 4, 4, 4, 5, 6, 5, 5, 5, - 5, 6, 7, 0, 10, 1, 1, 1, 1, 9, 11, 0, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 5, 5, 1, 1, 1, 2, + 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, + 1, 0, 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 := [5553]u16{ +DECODE_BUCKET_LIST := [5531]u16{ 0, 1, 2, 3, 0, 4, 1, 5, 2, 6, 7, 8, 9, 6, 10, 7, - 11, 8, 12, 35, 36, 37, 13, 14, 41, 42, 43, 15, 13, 16, 14, 17, - 47, 18, 19, 51, 52, 53, 20, 21, 18, 19, 22, 23, 24, 25, 22, 26, - 23, 27, 24, 28, 29, 30, 31, 28, 32, 33, 29, 30, 34, 35, 36, 37, - 38, 39, 40, 34, 41, 42, 43, 44, 38, 45, 39, 46, 47, 48, 49, 50, - 46, 51, 52, 53, 54, 48, 55, 49, 56, 57, 58, 59, 60, 61, 62, 109, - 110, 111, 63, 64, 65, 66, 67, 68, 117, 118, 119, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 57, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 142, 143, 144, 94, 95, 150, 151, 152, 96, 97, 98, - 74, 99, 100, 101, 102, 103, 160, 161, 162, 104, 105, 168, 169, 170, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 112, 113, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 133, 138, 134, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 145, 154, 146, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 158, 167, 159, 168, 169, 170, 171, 172, 173, 175, 174, 176, 177, 178, 179, + 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, + 37, 33, 34, 38, 39, 40, 41, 38, 42, 43, 39, 40, 44, 13, 14, 15, + 45, 46, 47, 44, 18, 19, 20, 48, 49, 45, 46, 50, 24, 51, 52, 53, + 50, 27, 28, 29, 54, 51, 55, 52, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 57, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 82, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 63, 64, 65, 127, 128, 129, 130, 131, 72, 73, 74, 132, 127, 133, 128, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 145, 146, 151, 152, 153, 100, 101, 102, 154, 155, 156, 157, 158, 105, 106, + 107, 159, 160, 154, 155, 161, 162, 163, 164, 165, 116, 117, 118, 166, 167, 168, + 169, 170, 164, 165, 121, 122, 123, 171, 172, 173, 175, 174, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 204, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, @@ -1839,317 +1909,315 @@ DECODE_BUCKET_LIST := [5553]u16{ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 329, 328, 330, 331, 332, 333, 334, 356, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 357, 356, 358, 359, 360, 362, 361, 363, 365, - 364, 366, 367, 368, 369, 371, 370, 374, 372, 382, 380, 377, 381, 375, 379, 373, - 376, 378, 384, 383, 385, 386, 388, 394, 392, 389, 387, 391, 393, 390, 395, 632, - 396, 633, 397, 398, 399, 634, 400, 635, 636, 401, 402, 637, 403, 638, 639, 404, - 640, 405, 406, 641, 407, 642, 408, 643, 644, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, - 432, 433, 434, 435, 436, 632, 395, 396, 633, 397, 398, 399, 634, 635, 400, 401, - 636, 402, 637, 403, 638, 639, 404, 640, 405, 641, 406, 407, 642, 408, 643, 644, - 409, 437, 410, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, - 451, 452, 454, 453, 455, 456, 458, 457, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 395, 632, 396, 633, 397, 398, 399, 634, 635, 400, 636, 401, 637, 402, - 403, 638, 639, 404, 640, 405, 641, 406, 407, 642, 408, 643, 644, 409, 469, 395, - 632, 396, 633, 397, 398, 634, 399, 400, 635, 401, 636, 637, 402, 403, 638, 639, - 404, 405, 640, 406, 641, 642, 407, 408, 643, 644, 409, 470, 471, 472, 469, 358, - 359, 360, 365, 364, 363, 362, 361, 366, 367, 368, 369, 370, 371, 382, 381, 380, - 379, 378, 377, 376, 374, 373, 372, 375, 383, 384, 385, 386, 394, 393, 392, 391, - 389, 390, 388, 387, 395, 632, 396, 633, 397, 398, 399, 634, 400, 635, 401, 636, - 637, 402, 403, 638, 639, 404, 640, 405, 641, 406, 407, 642, 408, 643, 644, 409, - 473, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 395, 632, 396, 633, 397, - 398, 399, 634, 400, 635, 401, 636, 402, 637, 403, 638, 639, 404, 640, 405, 641, - 406, 407, 642, 408, 643, 644, 409, 474, 473, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 456, 455, 458, 457, 459, 460, - 461, 462, 463, 464, 465, 466, 467, 468, 395, 632, 396, 633, 397, 398, 634, 399, - 400, 635, 401, 636, 402, 637, 403, 638, 639, 404, 405, 640, 406, 641, 407, 642, - 408, 643, 644, 409, 475, 395, 632, 396, 633, 397, 398, 399, 634, 400, 635, 636, - 401, 402, 637, 403, 638, 639, 404, 405, 640, 641, 406, 407, 642, 408, 643, 644, - 409, 470, 471, 476, 475, 478, 477, 479, 480, 481, 482, 484, 483, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 511, 510, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 528, 527, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 570, 571, 572, 573, 574, 575, 577, 576, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 477, 478, 479, 480, 481, 482, 484, 483, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 524, 525, 526, 528, 527, 529, 530, 531, 532, 533, 534, 617, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, - 556, 557, 558, 559, 560, 561, 618, 575, 576, 577, 578, 579, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 619, 620, 621, 622, 365, 364, 363, 361, 362, 623, 624, 625, 626, 370, 371, 382, - 380, 379, 381, 378, 375, 376, 377, 374, 373, 372, 627, 628, 629, 394, 393, 390, - 391, 392, 389, 388, 387, 630, 631, 632, 395, 396, 633, 397, 398, 399, 634, 400, - 635, 401, 636, 637, 402, 403, 638, 639, 404, 640, 405, 641, 406, 407, 642, 408, - 643, 644, 409, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 664, 665, 630, 631, 632, 395, 396, 633, 397, 398, - 399, 634, 400, 635, 401, 636, 402, 637, 403, 638, 639, 404, 640, 405, 406, 641, - 407, 642, 408, 643, 644, 409, 666, 645, 667, 668, 669, 670, 671, 672, 673, 674, - 675, 676, 677, 678, 679, 680, 682, 681, 684, 683, 685, 686, 687, 688, 689, 690, - 691, 630, 631, 395, 632, 633, 396, 397, 398, 399, 634, 635, 400, 636, 401, 402, - 637, 403, 638, 639, 404, 405, 640, 406, 641, 407, 642, 408, 643, 644, 409, 692, - 696, 694, 695, 693, 697, 700, 698, 699, 701, 702, 703, 704, 705, 706, 707, 708, - 716, 709, 714, 711, 713, 710, 712, 715, 717, 719, 722, 718, 720, 721, 724, 723, - 726, 725, 727, 728, 729, 733, 732, 734, 730, 735, 731, 738, 736, 737, 739, 744, - 741, 743, 742, 740, 748, 746, 745, 747, 749, 751, 750, 756, 755, 757, 753, 754, - 752, 759, 763, 758, 761, 760, 762, 765, 764, 766, 767, 768, 770, 769, 771, 777, - 776, 773, 774, 775, 772, 780, 778, 782, 781, 783, 779, 788, 786, 787, 784, 785, - 792, 790, 791, 793, 789, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 807, - 804, 806, 805, 810, 811, 809, 808, 812, 815, 813, 814, 816, 819, 817, 818, 823, - 821, 822, 820, 827, 825, 824, 826, 829, 828, 630, 631, 395, 632, 396, 633, 397, - 398, 399, 634, 400, 635, 401, 636, 402, 637, 403, 638, 639, 404, 405, 640, 406, - 641, 407, 642, 408, 643, 644, 409, 830, 692, 620, 621, 622, 365, 364, 363, 361, - 362, 623, 624, 625, 626, 371, 370, 382, 380, 379, 378, 376, 375, 374, 372, 373, - 377, 381, 627, 628, 629, 394, 392, 393, 391, 390, 387, 388, 389, 630, 631, 395, - 632, 396, 633, 397, 398, 399, 634, 400, 635, 401, 636, 402, 637, 403, 638, 639, - 404, 405, 640, 406, 641, 407, 642, 408, 643, 644, 409, 831, 646, 647, 648, 649, - 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, - 630, 631, 395, 632, 396, 633, 397, 398, 399, 634, 400, 635, 401, 636, 402, 637, - 403, 638, 639, 404, 405, 640, 406, 641, 407, 642, 408, 643, 644, 409, 832, 831, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, - 684, 683, 685, 686, 687, 688, 689, 690, 691, 630, 631, 395, 632, 396, 633, 397, - 398, 399, 634, 400, 635, 401, 636, 402, 637, 403, 638, 639, 404, 405, 640, 406, - 641, 407, 642, 408, 643, 644, 409, 833, 695, 696, 693, 694, 700, 698, 697, 699, - 701, 702, 703, 704, 705, 706, 707, 708, 716, 713, 714, 712, 711, 709, 710, 715, - 724, 722, 721, 719, 717, 718, 720, 723, 726, 725, 729, 727, 728, 733, 734, 735, - 731, 732, 730, 737, 738, 736, 743, 742, 740, 739, 741, 744, 747, 748, 746, 745, - 751, 750, 749, 754, 755, 756, 752, 753, 757, 762, 763, 760, 761, 759, 758, 765, - 764, 766, 767, 770, 768, 769, 771, 777, 776, 774, 772, 773, 775, 781, 782, 780, - 779, 778, 783, 788, 786, 787, 785, 784, 789, 790, 791, 793, 792, 794, 795, 796, - 797, 798, 799, 800, 802, 801, 803, 806, 807, 804, 805, 808, 811, 810, 809, 814, - 813, 815, 812, 817, 816, 819, 818, 822, 821, 820, 823, 825, 824, 826, 827, 828, - 829, 630, 631, 395, 632, 396, 633, 397, 398, 399, 634, 400, 635, 401, 636, 402, - 637, 403, 638, 639, 404, 640, 405, 641, 406, 642, 407, 408, 643, 644, 409, 834, - 833, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 872, 873, 846, 847, - 849, 848, 851, 850, 852, 854, 853, 855, 856, 893, 894, 895, 896, 897, 898, 899, - 858, 857, 859, 860, 862, 861, 864, 863, 865, 868, 867, 866, 869, 871, 870, 872, - 873, 874, 875, 876, 878, 880, 879, 877, 883, 882, 881, 886, 884, 885, 887, 888, - 889, 892, 890, 891, 893, 894, 858, 857, 859, 860, 861, 862, 865, 863, 864, 868, - 866, 867, 870, 871, 869, 895, 896, 897, 874, 875, 876, 879, 878, 877, 880, 883, - 882, 881, 886, 884, 885, 888, 889, 887, 890, 891, 892, 898, 899, 905, 906, 907, - 908, 909, 912, 913, 900, 901, 902, 903, 904, 914, 905, 906, 907, 908, 909, 910, - 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, - 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, - 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, - 959, 960, 961, 962, 963, 959, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, - 969, 974, 975, 976, 977, 978, 979, 980, 981, 996, 982, 997, 983, 984, 985, 986, - 987, 1001, 988, 989, 990, 991, 992, 993, 1002, 994, 995, 996, 997, 998, 998, 999, - 1000, 1001, 999, 1000, 1002, 1003, 1004, 1003, 1005, 1006, 1007, 1005, 1006, 1007, 1008, 1006, - 1008, 1006, 1009, 1011, 1006, 1010, 1013, 1011, 1009, 1006, 1012, 1013, 1010, 1008, 1006, 1008, - 1006, 1014, 1006, 1015, 1016, 1014, 1006, 1015, 1008, 1006, 1008, 1006, 1017, 1006, 1018, 1017, - 1006, 1018, 1008, 1006, 1008, 1006, 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, - 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1020, - 1019, 1020, 1019, 1020, 1019, 1020, 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, - 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, 1019, 1021, - 1019, 1021, 1019, 1021, 1019, 1021, 1022, 1023, 1024, 1037, 1038, 1025, 1026, 1037, 1038, 1027, - 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1025, 1026, 1039, 1037, 1038, - 1027, 1028, 1022, 1023, 1024, 1041, 1040, 1037, 1042, 1038, 1025, 1043, 1026, 1044, 1045, 1037, - 1046, 1038, 1027, 1047, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1025, - 1026, 1039, 1037, 1038, 1027, 1028, 1048, 1049, 1051, 1050, 1025, 1026, 1048, 1049, 1052, 1053, - 1027, 1028, 1054, 1055, 1056, 1057, 1058, 1059, 1048, 1049, 1051, 1050, 1025, 1026, 1060, 1061, - 1048, 1049, 1052, 1053, 1027, 1028, 1048, 1049, 1051, 1050, 1025, 1026, 1048, 1049, 1053, 1052, - 1027, 1028, 1054, 1055, 1056, 1057, 1058, 1059, 1048, 1049, 1051, 1050, 1025, 1026, 1048, 1049, - 1052, 1053, 1027, 1028, 1037, 1038, 1062, 1063, 1037, 1038, 1065, 1064, 1066, 1067, 1037, 1038, - 1037, 1038, 1037, 1038, 1063, 1062, 1037, 1038, 1065, 1064, 1037, 1038, 1037, 1038, 1048, 1049, - 1063, 1062, 1048, 1049, 1064, 1065, 1048, 1049, 1048, 1049, 1048, 1049, 1063, 1062, 1048, 1049, - 1065, 1064, 1048, 1049, 1048, 1049, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, - 1037, 1078, 1079, 1081, 1080, 1038, 1082, 1083, 1084, 1085, 1086, 1073, 1074, 1087, 1037, 1088, - 1089, 1090, 1091, 1038, 1092, 1083, 1093, 1085, 1069, 1070, 1094, 1095, 1096, 1097, 1074, 1073, - 1075, 1098, 1037, 1100, 1099, 1102, 1101, 1038, 1082, 1083, 1084, 1085, 1073, 1074, 1087, 1103, - 1104, 1037, 1106, 1105, 1107, 1108, 1038, 1092, 1083, 1093, 1085, 1071, 1109, 1072, 1074, 1073, - 1075, 1076, 1077, 1037, 1078, 1079, 1080, 1081, 1038, 1082, 1083, 1084, 1085, 1074, 1073, 1087, - 1037, 1088, 1089, 1090, 1091, 1038, 1092, 1083, 1093, 1085, 1094, 1095, 1109, 1096, 1097, 1074, - 1073, 1075, 1098, 1037, 1099, 1100, 1101, 1102, 1038, 1082, 1083, 1084, 1085, 1074, 1073, 1087, - 1103, 1104, 1037, 1106, 1105, 1107, 1108, 1038, 1092, 1083, 1093, 1085, 1110, 1111, 1112, 1113, - 1114, 1115, 1116, 1075, 1117, 1119, 1118, 1082, 1083, 1084, 1085, 1087, 1120, 1121, 1123, 1122, - 1124, 1125, 1092, 1083, 1093, 1085, 1075, 1126, 1127, 1129, 1128, 1130, 1131, 1082, 1083, 1084, - 1085, 1134, 1133, 1132, 1136, 1135, 1137, 1138, 1139, 1140, 1142, 1141, 1144, 1143, 1145, 1146, - 1147, 1148, 1149, 1150, 1152, 1151, 1154, 1153, 1156, 1155, 1157, 1159, 1158, 1163, 1162, 1167, - 1160, 1168, 1161, 1164, 1169, 1165, 1166, 1170, 1171, 1173, 1172, 1177, 1174, 1175, 1176, 1179, - 1178, 1181, 1180, 1182, 1183, 1185, 1184, 1186, 1188, 1190, 1192, 1187, 1194, 1191, 1193, 1189, - 1196, 1197, 1195, 1199, 1198, 1200, 1201, 1202, 1203, 1087, 1092, 1083, 1093, 1085, 1110, 1111, - 1112, 1113, 1115, 1114, 1116, 1204, 1075, 1117, 1118, 1119, 1082, 1083, 1084, 1085, 1087, 1120, - 1121, 1123, 1122, 1124, 1125, 1092, 1083, 1093, 1085, 1205, 1206, 1075, 1126, 1127, 1129, 1128, - 1131, 1130, 1082, 1083, 1084, 1085, 1207, 1134, 1132, 1133, 1135, 1136, 1137, 1138, 1139, 1140, - 1142, 1141, 1144, 1143, 1145, 1146, 1147, 1148, 1150, 1149, 1152, 1151, 1153, 1154, 1156, 1155, - 1157, 1158, 1159, 1169, 1168, 1166, 1165, 1163, 1160, 1161, 1162, 1164, 1167, 1170, 1171, 1172, - 1173, 1177, 1175, 1176, 1174, 1178, 1179, 1180, 1181, 1182, 1183, 1185, 1184, 1186, 1194, 1190, - 1193, 1188, 1189, 1192, 1191, 1187, 1197, 1195, 1196, 1199, 1198, 1201, 1200, 1203, 1202, 1087, - 1092, 1083, 1093, 1085, 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, - 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, 1037, 1038, 1208, 1208, 1208, 1208, 1208, - 1208, 1208, 1208, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, - 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, - 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, - 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, - 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, - 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, - 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, - 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, - 1381, 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, 1378, 1379, 1425, 1426, - 1427, 1383, 1384, 1428, 1429, 1430, 1431, 1432, 1393, 1433, 1434, 1403, 1402, 1404, 1378, 1379, - 1383, 1384, 1385, 1386, 1387, 1388, 1390, 1389, 1391, 1393, 1394, 1395, 1396, 1397, 1398, 1399, - 1400, 1401, 1403, 1402, 1404, 1435, 1436, 1437, 1378, 1379, 1383, 1384, 1438, 1393, 1433, 1434, - 1403, 1402, 1404, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, - 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, - 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, - 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, - 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, - 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, - 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1548, - 1547, 1550, 1549, 1552, 1551, 1553, 1554, 1270, 1271, 1272, 1273, 1274, 1275, 1555, 1556, 1557, - 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1282, 1283, 1284, 1285, - 1286, 1287, 1570, 1571, 1572, 1292, 1293, 1294, 1573, 1299, 1300, 1301, 1302, 1303, 1304, 1308, - 1309, 1574, 1310, 1311, 1575, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, - 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1323, 1584, 1324, 1325, 1326, 1327, 1585, 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, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1364, 1365, 1366, 1367, 1594, 1595, 1596, - 1597, 1598, 1599, 1600, 1600, 1601, 1601, 1602, 1602, 1603, 1604, 1605, 1606, 1607, 1607, 1608, - 1608, 1609, 1609, 1610, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, - 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1634, 1635, 1636, - 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1643, 1644, 1644, 1645, 1645, 1646, 1646, 1647, 1647, - 1648, 1648, 1649, 1649, 1650, 1650, 1651, 1651, 1652, 1652, 1653, 1654, 1655, 1656, 1657, 1658, - 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, - 1674, 1675, 1675, 1676, 1676, 1676, 1677, 1678, 1676, 1679, 1679, 1217, 1218, 1219, 1220, 1225, - 1231, 1221, 1230, 1231, 1230, 1228, 1226, 1228, 1224, 1226, 1214, 1215, 1222, 1231, 1210, 1211, - 1212, 1213, 1216, 1230, 1231, 1230, 1229, 1227, 1223, 1229, 1227, 1231, 1230, 1231, 1209, 1230, - 1231, 1230, 1231, 1230, 1244, 1243, 1236, 1244, 1243, 1250, 1250, 1232, 1233, 1234, 1235, 1241, - 1240, 1249, 1232, 1233, 1234, 1235, 1240, 1241, 1249, 1242, 1242, 1245, 1237, 1245, 1239, 1247, - 1247, 1248, 1248, 1238, 1246, 1246, 1261, 1268, 1269, 1261, 1265, 1267, 1264, 1266, 1261, 1268, - 1269, 1251, 1252, 1253, 1254, 1261, 1265, 1267, 1264, 1266, 1268, 1269, 1265, 1267, 1264, 1266, - 1268, 1269, 1265, 1267, 1264, 1266, 1251, 1252, 1253, 1254, 1258, 1259, 1260, 1263, 1255, 1256, - 1257, 1262, 1258, 1259, 1260, 1263, 1255, 1256, 1257, 1262, 1288, 1292, 1293, 1305, 1306, 1308, - 1309, 1310, 1321, 1322, 1325, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, - 1349, 1372, 1288, 1292, 1293, 1305, 1307, 1308, 1309, 1310, 1322, 1325, 1328, 1329, 1332, 1333, - 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1372, 1292, 1293, 1305, 1306, 1308, 1309, 1310, - 1322, 1325, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1372, 1278, - 1279, 1280, 1281, 1292, 1293, 1294, 1305, 1307, 1308, 1309, 1310, 1311, 1320, 1322, 1325, 1328, - 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1372, 1292, 1293, 1306, 1308, - 1309, 1310, 1321, 1322, 1325, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, - 1349, 1368, 1372, 1292, 1293, 1307, 1308, 1309, 1310, 1322, 1325, 1328, 1329, 1332, 1333, 1334, - 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1368, 1372, 1292, 1293, 1306, 1308, 1309, 1310, 1322, - 1325, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1368, 1372, 1278, - 1279, 1280, 1281, 1292, 1293, 1294, 1307, 1308, 1309, 1310, 1311, 1320, 1322, 1325, 1328, 1329, - 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1368, 1372, 1270, 1271, 1289, 1290, - 1291, 1301, 1302, 1303, 1304, 1314, 1315, 1316, 1317, 1330, 1331, 1338, 1339, 1340, 1341, 1342, - 1343, 1344, 1345, 1362, 1363, 1367, 1370, 1373, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, - 1344, 1345, 1370, 1373, 1289, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1370, - 1373, 1299, 1300, 1312, 1313, 1318, 1319, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, 1344, - 1345, 1370, 1373, 1289, 1290, 1291, 1301, 1302, 1303, 1304, 1314, 1315, 1316, 1317, 1330, 1331, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1362, 1363, 1367, 1369, 1371, 1373, 1330, 1331, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1369, 1371, 1373, 1272, 1273, 1274, 1275, 1284, - 1285, 1286, 1287, 1289, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1369, 1371, - 1373, 1276, 1277, 1282, 1283, 1299, 1300, 1312, 1313, 1318, 1319, 1330, 1331, 1338, 1339, 1340, - 1341, 1342, 1343, 1344, 1345, 1369, 1371, 1373, 1295, 1323, 1326, 1350, 1351, 1352, 1353, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1296, 1323, 1326, 1350, 1351, 1352, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1297, 1324, 1327, 1350, 1351, 1352, 1353, 1354, 1355, 1356, - 1357, 1358, 1359, 1360, 1361, 1298, 1324, 1327, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, - 1358, 1359, 1360, 1361, 1295, 1323, 1326, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, - 1359, 1360, 1361, 1296, 1323, 1326, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, - 1360, 1361, 1297, 1324, 1327, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, - 1361, 1298, 1324, 1327, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, - 1364, 1365, 1366, 1364, 1365, 1366, 1364, 1365, 1366, 1364, 1365, 1366, 1364, 1365, 1366, 1364, - 1365, 1366, 1364, 1365, 1366, 1364, 1365, 1366, 1374, 1376, 1377, 1380, 1384, 1392, 1393, 1394, - 1395, 1403, 1402, 1404, 1376, 1377, 1381, 1385, 1392, 1393, 1394, 1395, 1402, 1403, 1404, 1376, - 1377, 1392, 1393, 1401, 1403, 1402, 1404, 1376, 1377, 1392, 1393, 1401, 1402, 1403, 1404, 1375, - 1382, 1383, 1390, 1389, 1400, 1402, 1403, 1404, 1389, 1390, 1400, 1403, 1402, 1404, 1378, 1391, - 1402, 1403, 1404, 1379, 1391, 1403, 1402, 1404, 1384, 1393, 1396, 1403, 1402, 1404, 1386, 1393, - 1396, 1402, 1403, 1404, 1393, 1403, 1402, 1404, 1393, 1403, 1402, 1404, 1383, 1402, 1403, 1404, - 1403, 1402, 1404, 1378, 1403, 1402, 1404, 1379, 1403, 1402, 1404, 1377, 1384, 1392, 1393, 1403, - 1402, 1404, 1377, 1388, 1392, 1393, 1402, 1403, 1404, 1377, 1392, 1393, 1403, 1402, 1404, 1377, - 1392, 1393, 1402, 1403, 1404, 1383, 1398, 1403, 1402, 1404, 1398, 1402, 1403, 1404, 1378, 1399, - 1403, 1402, 1404, 1379, 1399, 1402, 1403, 1404, 1384, 1393, 1402, 1403, 1404, 1393, 1403, 1402, - 1404, 1393, 1403, 1402, 1404, 1387, 1393, 1402, 1403, 1404, 1383, 1397, 1403, 1402, 1404, 1397, - 1402, 1403, 1404, 1378, 1402, 1403, 1404, 1379, 1402, 1403, 1404, 1384, 1393, 1402, 1403, 1404, - 1393, 1402, 1403, 1404, 1393, 1403, 1402, 1404, 1393, 1402, 1403, 1404, 1383, 1433, 1402, 1403, - 1404, 1402, 1403, 1404, 1378, 1403, 1402, 1404, 1379, 1403, 1402, 1404, 1384, 1393, 1402, 1403, - 1404, 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1383, 1434, 1402, - 1403, 1404, 1402, 1403, 1404, 1378, 1402, 1403, 1404, 1379, 1402, 1403, 1404, 1384, 1431, 1393, - 1403, 1402, 1404, 1393, 1402, 1403, 1404, 1425, 1431, 1393, 1402, 1403, 1404, 1393, 1402, 1403, - 1404, 1383, 1429, 1403, 1402, 1404, 1403, 1402, 1404, 1378, 1427, 1428, 1402, 1403, 1404, 1379, - 1402, 1403, 1404, 1424, 1384, 1432, 1393, 1403, 1402, 1404, 1393, 1402, 1403, 1404, 1405, 1406, - 1407, 1408, 1409, 1411, 1412, 1413, 1414, 1416, 1417, 1418, 1419, 1426, 1432, 1393, 1403, 1402, - 1404, 1410, 1415, 1421, 1422, 1423, 1393, 1403, 1402, 1404, 1383, 1430, 1402, 1403, 1404, 1403, - 1402, 1404, 1420, 1378, 1403, 1402, 1404, 1379, 1402, 1403, 1404, 1384, 1393, 1394, 1395, 1403, - 1402, 1404, 1385, 1393, 1394, 1395, 1402, 1403, 1404, 1393, 1401, 1402, 1403, 1404, 1393, 1401, - 1403, 1402, 1404, 1383, 1390, 1389, 1400, 1403, 1402, 1404, 1389, 1390, 1400, 1403, 1402, 1404, - 1378, 1391, 1402, 1403, 1404, 1379, 1391, 1402, 1403, 1404, 1384, 1393, 1396, 1403, 1402, 1404, - 1386, 1393, 1396, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1383, 1402, - 1403, 1404, 1402, 1403, 1404, 1378, 1402, 1403, 1404, 1379, 1403, 1402, 1404, 1384, 1393, 1403, - 1402, 1404, 1388, 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1383, - 1398, 1402, 1403, 1404, 1398, 1403, 1402, 1404, 1378, 1399, 1403, 1402, 1404, 1379, 1399, 1403, - 1402, 1404, 1384, 1393, 1403, 1402, 1404, 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1387, - 1393, 1402, 1403, 1404, 1383, 1397, 1403, 1402, 1404, 1397, 1403, 1402, 1404, 1378, 1403, 1402, - 1404, 1379, 1402, 1403, 1404, 1384, 1393, 1402, 1403, 1404, 1393, 1403, 1402, 1404, 1393, 1403, - 1402, 1404, 1393, 1402, 1403, 1404, 1383, 1433, 1403, 1402, 1404, 1402, 1403, 1404, 1378, 1403, - 1402, 1404, 1379, 1402, 1403, 1404, 1384, 1393, 1402, 1403, 1404, 1393, 1403, 1402, 1404, 1393, - 1403, 1402, 1404, 1393, 1402, 1403, 1404, 1383, 1434, 1403, 1402, 1404, 1402, 1403, 1404, 1378, - 1402, 1403, 1404, 1379, 1403, 1402, 1404, 1384, 1393, 1403, 1402, 1404, 1393, 1402, 1403, 1404, - 1393, 1402, 1403, 1404, 1393, 1402, 1403, 1404, 1383, 1403, 1402, 1404, 1403, 1402, 1404, 1378, - 1402, 1403, 1404, 1379, 1402, 1403, 1404, 1435, 1436, 1437, 1384, 1393, 1403, 1402, 1404, 1393, - 1403, 1402, 1404, 1393, 1403, 1402, 1404, 1393, 1403, 1402, 1404, 1383, 1402, 1403, 1404, 1403, - 1402, 1404, 1378, 1402, 1403, 1404, 1379, 1438, 1403, 1402, 1404, 1442, 1441, 1444, 1443, 1448, - 1440, 1439, 1450, 1454, 1447, 1453, 1456, 1455, 1452, 1450, 1451, 1445, 1446, 1449, 1457, 1458, - 1461, 1514, 1520, 1464, 1514, 1523, 1460, 1515, 1519, 1463, 1515, 1522, 1459, 1516, 1518, 1462, - 1516, 1521, 1517, 1517, 1470, 1471, 1472, 1473, 1474, 1480, 1486, 1492, 1498, 1504, 1466, 1467, - 1468, 1469, 1475, 1481, 1487, 1493, 1499, 1505, 1476, 1482, 1488, 1494, 1500, 1506, 1465, 1478, - 1484, 1490, 1496, 1502, 1508, 1479, 1485, 1491, 1497, 1503, 1509, 1477, 1483, 1489, 1495, 1501, - 1507, 1510, 1524, 1525, 1513, 1528, 1511, 1526, 1512, 1529, 1527, 1552, 1551, 1545, 1548, 1549, - 1545, 1547, 1550, 1552, 1551, 1548, 1549, 1547, 1550, 1536, 1537, 1538, 1539, 1540, 1541, 1552, - 1530, 1531, 1532, 1533, 1534, 1535, 1542, 1543, 1544, 1546, 1551, 1545, 1548, 1549, 1545, 1547, - 1550, 1536, 1537, 1538, 1539, 1540, 1541, 1552, 1530, 1531, 1532, 1533, 1534, 1535, 1551, 1548, - 1549, 1547, 1550, 1545, 1545, 1542, 1543, 1544, 1546, 1545, 1545, 1569, 1292, 1293, 1308, 1309, - 1310, 1575, 1321, 1322, 1580, 1581, 1582, 1583, 1325, 1585, 1328, 1329, 1332, 1333, 1334, 1335, - 1336, 1337, 1346, 1347, 1348, 1349, 1598, 1292, 1293, 1308, 1309, 1310, 1575, 1322, 1580, 1581, - 1582, 1583, 1325, 1585, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, - 1598, 1292, 1293, 1308, 1309, 1310, 1575, 1322, 1580, 1581, 1582, 1583, 1325, 1585, 1328, 1329, - 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1598, 1554, 1563, 1564, 1292, 1293, - 1294, 1308, 1309, 1310, 1311, 1575, 1320, 1322, 1580, 1581, 1582, 1583, 1325, 1585, 1328, 1329, - 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1598, 1569, 1292, 1293, 1308, 1309, - 1310, 1575, 1321, 1322, 1580, 1581, 1582, 1583, 1325, 1585, 1328, 1329, 1332, 1333, 1334, 1335, - 1336, 1337, 1346, 1347, 1348, 1349, 1594, 1598, 1292, 1293, 1308, 1309, 1310, 1575, 1322, 1580, - 1581, 1582, 1583, 1325, 1585, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, - 1349, 1594, 1598, 1292, 1293, 1308, 1309, 1310, 1575, 1322, 1580, 1581, 1582, 1583, 1325, 1585, - 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1594, 1598, 1553, 1563, - 1564, 1292, 1293, 1294, 1308, 1309, 1310, 1311, 1575, 1320, 1322, 1580, 1581, 1582, 1583, 1325, - 1585, 1328, 1329, 1332, 1333, 1334, 1335, 1336, 1337, 1346, 1347, 1348, 1349, 1594, 1598, 1270, - 1271, 1301, 1302, 1303, 1304, 1314, 1315, 1316, 1317, 1576, 1577, 1578, 1579, 1585, 1330, 1331, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1590, 1591, 1592, 1593, 1367, 1596, 1599, 1576, - 1577, 1578, 1579, 1585, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1596, 1599, - 1576, 1577, 1578, 1579, 1585, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1596, - 1599, 1561, 1562, 1299, 1300, 1312, 1313, 1318, 1319, 1576, 1577, 1578, 1579, 1585, 1330, 1331, - 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1586, 1587, 1588, 1589, 1596, 1599, 1301, 1302, - 1303, 1304, 1314, 1315, 1316, 1317, 1576, 1577, 1578, 1579, 1585, 1330, 1331, 1338, 1339, 1340, - 1341, 1342, 1343, 1344, 1345, 1590, 1591, 1592, 1593, 1367, 1595, 1597, 1599, 1576, 1577, 1578, - 1579, 1585, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1595, 1597, 1599, 1272, - 1273, 1274, 1275, 1284, 1285, 1286, 1287, 1576, 1577, 1578, 1579, 1585, 1330, 1331, 1338, 1339, - 1340, 1341, 1342, 1343, 1344, 1345, 1595, 1597, 1599, 1561, 1562, 1282, 1283, 1299, 1300, 1312, - 1313, 1318, 1319, 1576, 1577, 1578, 1579, 1585, 1330, 1331, 1338, 1339, 1340, 1341, 1342, 1343, - 1344, 1345, 1586, 1587, 1588, 1589, 1595, 1597, 1599, 1573, 1574, 1575, 1323, 1584, 1326, 1585, - 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1574, 1575, 1323, 1584, - 1326, 1585, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1575, 1584, - 1324, 1327, 1585, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1575, - 1584, 1324, 1327, 1585, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, - 1573, 1574, 1575, 1323, 1584, 1326, 1585, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, - 1359, 1360, 1361, 1574, 1575, 1323, 1584, 1326, 1585, 1350, 1351, 1352, 1353, 1354, 1355, 1356, - 1357, 1358, 1359, 1360, 1361, 1575, 1324, 1584, 1327, 1585, 1350, 1351, 1352, 1353, 1354, 1355, - 1356, 1357, 1358, 1359, 1360, 1361, 1575, 1584, 1324, 1327, 1585, 1350, 1351, 1352, 1353, 1354, - 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1585, 1364, 1365, 1366, 1585, 1364, 1365, 1366, 1585, - 1364, 1365, 1366, 1555, 1556, 1557, 1558, 1559, 1560, 1565, 1566, 1567, 1568, 1570, 1571, 1572, - 1585, 1364, 1365, 1366, 1585, 1364, 1365, 1366, 1585, 1364, 1365, 1366, 1585, 1364, 1365, 1366, - 1555, 1556, 1557, 1558, 1559, 1560, 1565, 1566, 1567, 1568, 1570, 1571, 1572, 1585, 1364, 1365, - 1366, + 346, 347, 348, 349, 350, 351, 352, 357, 356, 358, 361, 377, 375, 359, 370, 367, + 371, 360, 366, 368, 378, 376, 364, 379, 362, 373, 374, 369, 365, 363, 372, 380, + 381, 391, 384, 387, 392, 386, 388, 393, 382, 389, 383, 390, 385, 394, 403, 400, + 401, 397, 399, 404, 396, 402, 395, 398, 405, 413, 417, 416, 407, 406, 415, 409, + 421, 411, 418, 410, 408, 420, 414, 419, 412, 422, 423, 424, 425, 426, 428, 427, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 466, 465, 468, 467, 470, 469, 472, 471, 473, 474, 475, 476, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 477, 450, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 489, + 488, 491, 490, 493, 492, 495, 494, 496, 497, 499, 498, 500, 501, 502, 503, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 504, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 505, 506, 507, 504, 379, 377, 376, 375, 373, 372, + 371, 374, 369, 368, 370, 378, 366, 365, 367, 364, 363, 362, 360, 361, 359, 358, + 380, 381, 393, 392, 391, 390, 389, 388, 387, 386, 384, 383, 385, 382, 395, 396, + 394, 404, 403, 405, 402, 401, 400, 399, 398, 397, 421, 420, 419, 418, 416, 415, + 414, 417, 412, 411, 410, 413, 408, 407, 409, 406, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 508, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 468, 467, 469, 470, 471, 472, 473, 474, 475, + 476, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 447, 448, 449, 509, 508, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 491, 490, 493, 492, 495, 494, 497, 496, 499, 498, 500, 501, 502, 503, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 447, 448, 449, 510, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 505, 506, 511, 510, 512, 513, 514, 515, 516, + 517, 519, 518, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, + 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, + 549, 550, 551, 552, 553, 554, 555, 557, 556, 558, 559, 560, 561, 562, 563, 564, + 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, + 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 610, 612, + 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, + 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 650, 513, 512, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 556, 557, 558, 559, 560, 561, 563, 562, 564, 565, 566, 567, 568, 651, + 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 652, 609, 610, 611, 612, 613, + 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, + 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, + 646, 647, 648, 649, 653, 378, 379, 377, 374, 375, 376, 373, 372, 370, 371, 369, + 368, 366, 365, 364, 361, 362, 363, 367, 360, 359, 358, 654, 655, 393, 392, 391, + 390, 388, 387, 389, 386, 384, 383, 382, 385, 405, 404, 403, 402, 401, 399, 398, + 400, 397, 394, 395, 396, 421, 420, 417, 418, 419, 416, 415, 414, 412, 411, 409, + 410, 408, 407, 406, 413, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 431, + 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 680, + 679, 681, 682, 684, 683, 685, 686, 664, 665, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 687, 666, 688, 689, + 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 701, 700, 702, 703, 704, 705, + 706, 707, 664, 665, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 708, 716, 715, 710, 714, 711, 713, 709, 712, + 717, 724, 723, 720, 718, 719, 722, 721, 725, 727, 726, 728, 730, 731, 732, 729, + 734, 733, 737, 735, 736, 740, 741, 739, 738, 745, 744, 743, 742, 748, 747, 746, + 749, 750, 751, 752, 756, 758, 757, 755, 753, 754, 764, 762, 761, 763, 759, 760, + 768, 767, 769, 770, 765, 766, 776, 771, 775, 774, 772, 773, 779, 778, 777, 780, + 781, 782, 783, 784, 785, 789, 787, 788, 786, 792, 790, 791, 793, 794, 795, 796, + 797, 799, 800, 801, 798, 805, 802, 804, 803, 806, 807, 809, 808, 810, 811, 812, + 813, 814, 815, 817, 816, 819, 818, 822, 821, 823, 820, 825, 824, 827, 826, 829, + 828, 831, 830, 832, 833, 834, 835, 836, 837, 840, 839, 841, 838, 843, 845, 842, + 844, 664, 665, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 449, 846, 708, 379, 378, 376, 377, 375, 374, 373, 372, + 370, 369, 368, 371, 366, 365, 363, 364, 362, 361, 359, 360, 358, 367, 654, 655, + 393, 392, 389, 390, 391, 388, 387, 386, 384, 383, 382, 385, 405, 404, 403, 400, + 401, 402, 399, 398, 397, 394, 395, 396, 421, 420, 418, 417, 416, 413, 414, 415, + 419, 412, 411, 409, 408, 407, 410, 406, 656, 657, 658, 659, 660, 661, 662, 663, + 664, 665, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 847, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, + 677, 678, 679, 680, 682, 681, 683, 684, 685, 686, 664, 665, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 848, + 847, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 703, + 702, 704, 705, 706, 707, 664, 665, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 849, 709, 714, 715, 716, 712, + 713, 711, 710, 722, 723, 724, 720, 717, 718, 719, 721, 725, 728, 727, 726, 733, + 730, 731, 732, 734, 729, 736, 735, 737, 740, 741, 739, 738, 743, 744, 745, 742, + 749, 748, 746, 747, 752, 751, 750, 758, 757, 756, 753, 754, 755, 760, 761, 762, + 759, 763, 764, 770, 769, 767, 765, 766, 768, 774, 775, 773, 772, 771, 776, 779, + 778, 777, 781, 782, 780, 783, 784, 785, 789, 787, 788, 786, 792, 793, 790, 791, + 797, 795, 794, 796, 801, 798, 799, 800, 804, 803, 802, 805, 808, 809, 807, 806, + 811, 810, 813, 812, 815, 814, 816, 817, 818, 819, 821, 823, 822, 820, 825, 824, + 827, 826, 828, 829, 831, 830, 832, 833, 834, 835, 837, 836, 838, 840, 841, 839, + 843, 845, 844, 842, 664, 665, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 850, 849, 851, 852, 853, 854, 855, + 856, 857, 858, 859, 860, 861, 862, 863, 867, 866, 864, 865, 870, 868, 869, 872, + 871, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, + 888, 889, 890, 891, 892, 893, 862, 863, 894, 895, 896, 897, 898, 899, 900, 901, + 902, 903, 904, 905, 906, 907, 908, 909, 875, 876, 882, 883, 884, 885, 886, 887, + 888, 889, 890, 891, 892, 893, 877, 878, 879, 894, 895, 896, 897, 898, 899, 900, + 901, 902, 903, 904, 905, 906, 907, 908, 909, 880, 881, 910, 911, 912, 913, 914, + 915, 916, 917, 918, 919, 920, 921, 922, 910, 911, 912, 913, 914, 923, 924, 915, + 916, 922, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, + 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, + 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, + 971, 972, 973, 969, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 979, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 992, 994, 1010, 1010, 1011, 1012, 1000, + 1011, 1012, 1007, 1013, 1014, 1013, 1015, 1016, 1017, 1015, 1018, 1017, 1019, 1020, 1021, 1022, + 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1030, 1034, 1032, 1035, 1036, + 1037, 1038, 1039, 1037, 1040, 1039, 1041, 1042, 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, + 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, + 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1044, 1043, 1045, 1043, 1045, 1043, 1045, 1043, 1045, + 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, 1057, 1058, 1057, 1058, 1049, + 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1057, 1058, 1063, + 1064, 1046, 1047, 1048, 1066, 1065, 1057, 1067, 1058, 1068, 1070, 1069, 1057, 1071, 1058, 1072, + 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1073, 1074, 1061, 1062, 1057, 1058, + 1075, 1076, 1077, 1078, 1080, 1079, 1077, 1078, 1082, 1081, 1083, 1084, 1085, 1086, 1087, 1077, + 1078, 1059, 1089, 1088, 1060, 1091, 1090, 1077, 1078, 1063, 1093, 1092, 1064, 1077, 1078, 1080, + 1079, 1077, 1078, 1082, 1081, 1083, 1084, 1085, 1086, 1087, 1077, 1078, 1073, 1089, 1088, 1074, + 1077, 1078, 1075, 1092, 1093, 1076, 1057, 1058, 1094, 1096, 1095, 1097, 1057, 1058, 1098, 1100, + 1099, 1101, 1102, 1103, 1057, 1058, 1104, 1105, 1106, 1107, 1057, 1058, 1108, 1110, 1109, 1111, + 1057, 1058, 1112, 1096, 1095, 1113, 1057, 1058, 1114, 1100, 1099, 1115, 1057, 1058, 1116, 1106, + 1105, 1117, 1057, 1058, 1118, 1109, 1110, 1119, 1077, 1078, 1094, 1095, 1096, 1097, 1077, 1078, + 1098, 1100, 1099, 1101, 1077, 1078, 1104, 1107, 1077, 1078, 1108, 1111, 1077, 1078, 1112, 1096, + 1095, 1113, 1077, 1078, 1114, 1099, 1100, 1115, 1077, 1078, 1116, 1117, 1077, 1078, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1057, 1129, 1130, 1132, 1131, 1058, 1133, + 1134, 1135, 1136, 1137, 1125, 1126, 1138, 1057, 1140, 1139, 1141, 1142, 1058, 1143, 1134, 1144, + 1136, 1121, 1122, 1145, 1146, 1147, 1148, 1126, 1125, 1149, 1057, 1150, 1151, 1153, 1152, 1058, + 1133, 1134, 1135, 1136, 1126, 1125, 1138, 1154, 1155, 1057, 1156, 1157, 1158, 1159, 1058, 1143, + 1134, 1144, 1136, 1123, 1160, 1124, 1126, 1125, 1127, 1128, 1057, 1129, 1130, 1131, 1132, 1058, + 1133, 1134, 1135, 1136, 1126, 1125, 1138, 1057, 1139, 1140, 1141, 1142, 1058, 1143, 1134, 1144, + 1136, 1145, 1146, 1160, 1147, 1148, 1126, 1125, 1149, 1057, 1150, 1151, 1153, 1152, 1058, 1133, + 1134, 1135, 1136, 1125, 1126, 1138, 1154, 1155, 1057, 1156, 1157, 1158, 1159, 1058, 1143, 1134, + 1144, 1136, 1161, 1162, 1164, 1163, 1166, 1165, 1167, 1168, 1170, 1169, 1133, 1134, 1135, 1136, + 1138, 1171, 1172, 1173, 1174, 1175, 1176, 1143, 1134, 1144, 1136, 1177, 1178, 1180, 1179, 1182, + 1181, 1133, 1134, 1135, 1136, 1183, 1185, 1184, 1186, 1187, 1189, 1188, 1191, 1190, 1192, 1193, + 1194, 1195, 1196, 1197, 1198, 1199, 1201, 1200, 1202, 1203, 1204, 1205, 1206, 1207, 1210, 1209, + 1208, 1211, 1213, 1212, 1215, 1214, 1244, 1229, 1245, 1222, 1247, 1248, 1224, 1241, 1221, 1235, + 1233, 1227, 1236, 1226, 1218, 1219, 1231, 1239, 1237, 1225, 1246, 1228, 1242, 1230, 1240, 1243, + 1223, 1220, 1249, 1216, 1217, 1234, 1238, 1232, 1251, 1250, 1252, 1253, 1257, 1255, 1256, 1254, + 1258, 1259, 1261, 1260, 1263, 1262, 1265, 1264, 1266, 1267, 1268, 1138, 1143, 1134, 1144, 1136, + 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1269, 1168, 1169, 1170, 1133, 1134, 1135, 1136, 1138, + 1171, 1172, 1173, 1174, 1175, 1176, 1143, 1134, 1144, 1136, 1270, 1271, 1177, 1178, 1179, 1180, + 1181, 1182, 1133, 1134, 1135, 1136, 1183, 1184, 1185, 1186, 1187, 1189, 1188, 1190, 1191, 1192, + 1193, 1195, 1194, 1197, 1196, 1198, 1199, 1200, 1201, 1203, 1202, 1272, 1205, 1204, 1206, 1207, + 1210, 1208, 1209, 1213, 1211, 1212, 1214, 1215, 1223, 1224, 1222, 1221, 1219, 1235, 1236, 1237, + 1234, 1232, 1231, 1229, 1226, 1227, 1228, 1230, 1233, 1238, 1241, 1242, 1240, 1243, 1244, 1245, + 1239, 1246, 1218, 1216, 1217, 1220, 1225, 1249, 1247, 1248, 1251, 1250, 1252, 1253, 1255, 1254, + 1257, 1256, 1259, 1258, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1138, 1143, 1134, + 1144, 1136, 1057, 1058, 1273, 1057, 1058, 1273, 1057, 1058, 1273, 1057, 1058, 1273, 1057, 1058, + 1273, 1057, 1058, 1273, 1057, 1058, 1273, 1057, 1058, 1273, 1273, 1273, 1273, 1273, 1273, 1273, + 1273, 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, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, + 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1443, 1444, 1490, 1491, 1492, 1448, + 1449, 1493, 1494, 1495, 1496, 1497, 1458, 1498, 1499, 1468, 1467, 1469, 1443, 1444, 1448, 1449, + 1450, 1451, 1452, 1453, 1455, 1454, 1456, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, + 1468, 1467, 1469, 1500, 1501, 1502, 1443, 1444, 1448, 1449, 1503, 1458, 1498, 1499, 1468, 1467, + 1469, 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, 1593, 1594, 1595, 1596, 1597, 1598, + 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1613, 1612, 1615, + 1614, 1617, 1616, 1618, 1619, 1335, 1336, 1337, 1338, 1339, 1340, 1620, 1621, 1622, 1623, 1624, + 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1347, 1348, 1349, 1350, 1351, 1352, + 1635, 1636, 1637, 1357, 1358, 1359, 1638, 1366, 1367, 1368, 1369, 1370, 1371, 1373, 1374, 1639, + 1375, 1376, 1640, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1641, 1642, + 1643, 1644, 1645, 1646, 1647, 1648, 1388, 1649, 1389, 1390, 1391, 1392, 1650, 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, 1651, + 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1429, 1430, 1431, 1432, 1659, 1660, 1661, 1662, 1663, + 1664, 1665, 1665, 1666, 1666, 1667, 1667, 1668, 1669, 1670, 1671, 1672, 1672, 1673, 1673, 1674, + 1674, 1675, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, + 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1699, 1700, 1701, 1702, 1703, + 1704, 1705, 1706, 1707, 1708, 1708, 1709, 1709, 1710, 1710, 1711, 1711, 1712, 1712, 1713, 1713, + 1714, 1714, 1715, 1715, 1716, 1716, 1717, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, + 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1739, 1740, + 1740, 1741, 1741, 1741, 1742, 1743, 1741, 1744, 1744, 1282, 1283, 1284, 1285, 1290, 1296, 1286, + 1295, 1296, 1295, 1292, 1291, 1292, 1289, 1291, 1279, 1280, 1287, 1296, 1275, 1276, 1277, 1278, + 1281, 1295, 1296, 1295, 1294, 1293, 1288, 1294, 1293, 1296, 1295, 1296, 1274, 1295, 1296, 1295, + 1296, 1295, 1309, 1301, 1308, 1315, 1315, 1297, 1298, 1299, 1300, 1306, 1314, 1305, 1314, 1307, + 1307, 1310, 1302, 1310, 1304, 1312, 1312, 1313, 1313, 1303, 1311, 1311, 1326, 1333, 1334, 1326, + 1329, 1332, 1330, 1331, 1326, 1333, 1334, 1316, 1317, 1318, 1319, 1326, 1329, 1332, 1330, 1331, + 1333, 1334, 1329, 1332, 1330, 1331, 1333, 1334, 1329, 1332, 1330, 1331, 1316, 1317, 1318, 1319, + 1323, 1324, 1325, 1328, 1320, 1321, 1322, 1327, 1323, 1324, 1325, 1328, 1320, 1321, 1322, 1327, + 1353, 1357, 1358, 1360, 1372, 1373, 1374, 1375, 1386, 1387, 1390, 1393, 1394, 1397, 1398, 1399, + 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1437, 1353, 1357, 1358, 1361, 1372, 1373, 1374, 1375, + 1387, 1390, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1437, 1357, + 1358, 1360, 1372, 1373, 1374, 1375, 1387, 1390, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, + 1411, 1412, 1413, 1414, 1437, 1343, 1344, 1345, 1346, 1357, 1358, 1359, 1361, 1372, 1373, 1374, + 1375, 1376, 1385, 1387, 1390, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, + 1414, 1437, 1357, 1358, 1360, 1373, 1374, 1375, 1386, 1387, 1390, 1393, 1394, 1397, 1398, 1399, + 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1433, 1437, 1357, 1358, 1361, 1373, 1374, 1375, 1387, + 1390, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1433, 1437, 1357, + 1358, 1360, 1373, 1374, 1375, 1387, 1390, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, + 1412, 1413, 1414, 1433, 1437, 1343, 1344, 1345, 1346, 1357, 1358, 1359, 1361, 1373, 1374, 1375, + 1376, 1385, 1387, 1390, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, + 1433, 1437, 1335, 1336, 1354, 1355, 1356, 1368, 1369, 1370, 1371, 1379, 1380, 1381, 1382, 1395, + 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1427, 1428, 1432, 1435, 1438, 1395, 1396, + 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1435, 1438, 1354, 1395, 1396, 1403, 1404, 1405, + 1406, 1407, 1408, 1409, 1410, 1435, 1438, 1366, 1367, 1377, 1378, 1383, 1384, 1395, 1396, 1403, + 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1435, 1438, 1354, 1355, 1356, 1368, 1369, 1370, 1371, + 1379, 1380, 1381, 1382, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1427, 1428, + 1432, 1434, 1436, 1438, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1434, 1436, + 1438, 1337, 1338, 1339, 1340, 1349, 1350, 1351, 1352, 1354, 1395, 1396, 1403, 1404, 1405, 1406, + 1407, 1408, 1409, 1410, 1434, 1436, 1438, 1341, 1342, 1347, 1348, 1366, 1367, 1377, 1378, 1383, + 1384, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1434, 1436, 1438, 1362, 1388, + 1391, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1363, 1388, 1391, + 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1364, 1389, 1392, 1415, + 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1365, 1389, 1392, 1415, 1416, + 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1362, 1388, 1391, 1415, 1416, 1417, + 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1363, 1388, 1391, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1364, 1389, 1392, 1415, 1416, 1417, 1418, 1419, + 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1365, 1389, 1392, 1415, 1416, 1417, 1418, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1426, 1429, 1430, 1431, 1429, 1430, 1431, 1429, 1430, 1431, 1429, + 1430, 1431, 1429, 1430, 1431, 1429, 1430, 1431, 1429, 1430, 1431, 1429, 1430, 1431, 1439, 1441, + 1442, 1445, 1449, 1457, 1458, 1459, 1467, 1468, 1469, 1441, 1442, 1446, 1450, 1457, 1458, 1460, + 1467, 1468, 1469, 1441, 1442, 1457, 1458, 1466, 1467, 1468, 1469, 1441, 1442, 1457, 1458, 1466, + 1468, 1467, 1469, 1440, 1447, 1448, 1454, 1465, 1468, 1467, 1469, 1455, 1465, 1467, 1468, 1469, + 1443, 1456, 1467, 1468, 1469, 1444, 1456, 1468, 1467, 1469, 1449, 1458, 1461, 1467, 1468, 1469, + 1451, 1458, 1461, 1467, 1468, 1469, 1458, 1468, 1467, 1469, 1458, 1467, 1468, 1469, 1448, 1468, + 1467, 1469, 1467, 1468, 1469, 1443, 1467, 1468, 1469, 1444, 1468, 1467, 1469, 1442, 1449, 1457, + 1458, 1468, 1467, 1469, 1442, 1453, 1457, 1458, 1468, 1467, 1469, 1442, 1457, 1458, 1468, 1467, + 1469, 1442, 1457, 1458, 1468, 1467, 1469, 1448, 1463, 1467, 1468, 1469, 1463, 1467, 1468, 1469, + 1443, 1464, 1468, 1467, 1469, 1444, 1464, 1468, 1467, 1469, 1449, 1458, 1467, 1468, 1469, 1458, + 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1452, 1458, 1467, 1468, 1469, 1448, 1462, 1467, 1468, + 1469, 1462, 1467, 1468, 1469, 1443, 1467, 1468, 1469, 1444, 1467, 1468, 1469, 1449, 1458, 1467, + 1468, 1469, 1458, 1467, 1468, 1469, 1458, 1467, 1468, 1469, 1458, 1468, 1467, 1469, 1448, 1498, + 1467, 1468, 1469, 1467, 1468, 1469, 1443, 1467, 1468, 1469, 1444, 1467, 1468, 1469, 1449, 1458, + 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1458, 1467, 1468, 1469, 1458, 1467, 1468, 1469, 1448, + 1499, 1467, 1468, 1469, 1467, 1468, 1469, 1443, 1467, 1468, 1469, 1444, 1467, 1468, 1469, 1449, + 1496, 1458, 1467, 1468, 1469, 1458, 1468, 1467, 1469, 1490, 1496, 1458, 1467, 1468, 1469, 1458, + 1467, 1468, 1469, 1448, 1494, 1468, 1467, 1469, 1468, 1467, 1469, 1443, 1492, 1493, 1467, 1468, + 1469, 1444, 1468, 1467, 1469, 1489, 1449, 1497, 1458, 1468, 1467, 1469, 1458, 1468, 1467, 1469, + 1470, 1471, 1472, 1473, 1474, 1476, 1477, 1478, 1479, 1481, 1482, 1483, 1484, 1491, 1497, 1458, + 1468, 1467, 1469, 1475, 1480, 1486, 1487, 1488, 1458, 1467, 1468, 1469, 1448, 1495, 1468, 1467, + 1469, 1468, 1467, 1469, 1485, 1443, 1468, 1467, 1469, 1444, 1468, 1467, 1469, 1449, 1458, 1459, + 1468, 1467, 1469, 1450, 1458, 1460, 1468, 1467, 1469, 1458, 1466, 1467, 1468, 1469, 1458, 1466, + 1467, 1468, 1469, 1448, 1454, 1465, 1468, 1467, 1469, 1455, 1465, 1467, 1468, 1469, 1443, 1456, + 1467, 1468, 1469, 1444, 1456, 1468, 1467, 1469, 1449, 1458, 1461, 1467, 1468, 1469, 1451, 1458, + 1461, 1468, 1467, 1469, 1458, 1467, 1468, 1469, 1458, 1468, 1467, 1469, 1448, 1467, 1468, 1469, + 1467, 1468, 1469, 1443, 1468, 1467, 1469, 1444, 1468, 1467, 1469, 1449, 1458, 1467, 1468, 1469, + 1453, 1458, 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1448, 1463, 1468, + 1467, 1469, 1463, 1468, 1467, 1469, 1443, 1464, 1468, 1467, 1469, 1444, 1464, 1468, 1467, 1469, + 1449, 1458, 1468, 1467, 1469, 1458, 1467, 1468, 1469, 1458, 1468, 1467, 1469, 1452, 1458, 1468, + 1467, 1469, 1448, 1462, 1467, 1468, 1469, 1462, 1467, 1468, 1469, 1443, 1467, 1468, 1469, 1444, + 1468, 1467, 1469, 1449, 1458, 1467, 1468, 1469, 1458, 1468, 1467, 1469, 1458, 1467, 1468, 1469, + 1458, 1467, 1468, 1469, 1448, 1498, 1468, 1467, 1469, 1467, 1468, 1469, 1443, 1467, 1468, 1469, + 1444, 1467, 1468, 1469, 1449, 1458, 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1458, 1468, 1467, + 1469, 1458, 1468, 1467, 1469, 1448, 1499, 1467, 1468, 1469, 1467, 1468, 1469, 1443, 1468, 1467, + 1469, 1444, 1467, 1468, 1469, 1449, 1458, 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1458, 1468, + 1467, 1469, 1458, 1468, 1467, 1469, 1448, 1467, 1468, 1469, 1468, 1467, 1469, 1443, 1468, 1467, + 1469, 1444, 1467, 1468, 1469, 1500, 1501, 1502, 1449, 1458, 1468, 1467, 1469, 1458, 1468, 1467, + 1469, 1458, 1468, 1467, 1469, 1458, 1468, 1467, 1469, 1448, 1468, 1467, 1469, 1468, 1467, 1469, + 1443, 1468, 1467, 1469, 1444, 1503, 1467, 1468, 1469, 1507, 1506, 1509, 1508, 1513, 1505, 1504, + 1515, 1519, 1512, 1518, 1521, 1520, 1517, 1515, 1516, 1510, 1511, 1514, 1522, 1523, 1526, 1530, + 1585, 1529, 1588, 1525, 1531, 1584, 1528, 1587, 1524, 1532, 1583, 1527, 1586, 1533, 1539, 1540, + 1541, 1542, 1543, 1549, 1555, 1561, 1567, 1573, 1535, 1536, 1537, 1538, 1544, 1550, 1556, 1562, + 1568, 1574, 1545, 1551, 1557, 1563, 1569, 1575, 1534, 1547, 1553, 1559, 1565, 1571, 1577, 1548, + 1554, 1560, 1566, 1572, 1578, 1546, 1552, 1558, 1564, 1570, 1576, 1579, 1589, 1590, 1582, 1593, + 1580, 1591, 1581, 1594, 1592, 1617, 1616, 1607, 1613, 1614, 1607, 1612, 1615, 1617, 1616, 1613, + 1614, 1612, 1615, 1601, 1602, 1603, 1604, 1605, 1606, 1617, 1595, 1596, 1597, 1598, 1599, 1600, + 1608, 1609, 1610, 1611, 1616, 1607, 1613, 1614, 1607, 1612, 1615, 1601, 1602, 1603, 1604, 1605, + 1606, 1617, 1595, 1596, 1597, 1598, 1599, 1600, 1616, 1613, 1614, 1612, 1615, 1607, 1607, 1608, + 1609, 1610, 1611, 1607, 1607, 1634, 1357, 1358, 1373, 1374, 1375, 1640, 1386, 1387, 1645, 1646, + 1647, 1648, 1390, 1650, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, + 1663, 1357, 1358, 1373, 1374, 1375, 1640, 1387, 1645, 1646, 1647, 1648, 1390, 1650, 1393, 1394, + 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1663, 1357, 1358, 1373, 1374, 1375, + 1640, 1387, 1645, 1646, 1647, 1648, 1390, 1650, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, + 1411, 1412, 1413, 1414, 1663, 1619, 1628, 1629, 1357, 1358, 1359, 1373, 1374, 1375, 1376, 1640, + 1385, 1387, 1645, 1646, 1647, 1648, 1390, 1650, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, + 1411, 1412, 1413, 1414, 1663, 1634, 1357, 1358, 1373, 1374, 1375, 1640, 1386, 1387, 1645, 1646, + 1647, 1648, 1390, 1650, 1393, 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, + 1659, 1663, 1357, 1358, 1373, 1374, 1375, 1640, 1387, 1645, 1646, 1647, 1648, 1390, 1650, 1393, + 1394, 1397, 1398, 1399, 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1659, 1663, 1357, 1358, 1373, + 1374, 1375, 1640, 1387, 1645, 1646, 1647, 1648, 1390, 1650, 1393, 1394, 1397, 1398, 1399, 1400, + 1401, 1402, 1411, 1412, 1413, 1414, 1659, 1663, 1618, 1628, 1629, 1357, 1358, 1359, 1373, 1374, + 1375, 1376, 1640, 1385, 1387, 1645, 1646, 1647, 1648, 1390, 1650, 1393, 1394, 1397, 1398, 1399, + 1400, 1401, 1402, 1411, 1412, 1413, 1414, 1659, 1663, 1335, 1336, 1368, 1369, 1370, 1371, 1379, + 1380, 1381, 1382, 1641, 1642, 1643, 1644, 1650, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1655, 1656, 1657, 1658, 1432, 1661, 1664, 1641, 1642, 1643, 1644, 1650, 1395, 1396, + 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1661, 1664, 1641, 1642, 1643, 1644, 1650, 1395, + 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1661, 1664, 1626, 1627, 1366, 1367, 1377, + 1378, 1383, 1384, 1641, 1642, 1643, 1644, 1650, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, + 1409, 1410, 1651, 1652, 1653, 1654, 1661, 1664, 1368, 1369, 1370, 1371, 1379, 1380, 1381, 1382, + 1641, 1642, 1643, 1644, 1650, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1655, + 1656, 1657, 1658, 1432, 1660, 1662, 1664, 1641, 1642, 1643, 1644, 1650, 1395, 1396, 1403, 1404, + 1405, 1406, 1407, 1408, 1409, 1410, 1660, 1662, 1664, 1337, 1338, 1339, 1340, 1349, 1350, 1351, + 1352, 1641, 1642, 1643, 1644, 1650, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, + 1660, 1662, 1664, 1626, 1627, 1347, 1348, 1366, 1367, 1377, 1378, 1383, 1384, 1641, 1642, 1643, + 1644, 1650, 1395, 1396, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1651, 1652, 1653, 1654, + 1660, 1662, 1664, 1638, 1639, 1640, 1388, 1649, 1391, 1650, 1415, 1416, 1417, 1418, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1426, 1639, 1640, 1388, 1649, 1391, 1650, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1640, 1649, 1389, 1392, 1650, 1415, 1416, 1417, + 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1640, 1389, 1649, 1392, 1650, 1415, 1416, + 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1638, 1639, 1640, 1388, 1649, 1391, + 1650, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1639, 1640, 1388, + 1649, 1391, 1650, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1640, + 1649, 1389, 1392, 1650, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, + 1640, 1649, 1389, 1392, 1650, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, + 1426, 1650, 1429, 1430, 1431, 1650, 1429, 1430, 1431, 1650, 1429, 1430, 1431, 1620, 1621, 1622, + 1623, 1624, 1625, 1630, 1631, 1632, 1633, 1635, 1636, 1637, 1650, 1429, 1430, 1431, 1650, 1429, + 1430, 1431, 1650, 1429, 1430, 1431, 1650, 1429, 1430, 1431, 1620, 1621, 1622, 1623, 1624, 1625, + 1630, 1631, 1632, 1633, 1635, 1636, 1637, 1650, 1429, 1430, 1431, } DECODE_INDEX_A32 := [256]lib.Decode_Index{ @@ -2193,608 +2261,599 @@ DECODE_INDEX_A32 := [256]lib.Decode_Index{ 0x25 = { 477, 51}, 0x26 = { 528, 54}, 0x27 = { 582, 19}, - 0x28 = { 601, 66}, - 0x29 = { 667, 56}, - 0x2A = { 723, 60}, - 0x2B = { 783, 32}, - 0x2C = { 815, 66}, - 0x2D = { 881, 56}, - 0x2E = { 937, 60}, - 0x2F = { 997, 32}, - 0x30 = { 1029, 59}, - 0x31 = { 1088, 27}, - 0x32 = { 1115, 45}, - 0x33 = { 1160, 9}, - 0x34 = { 1169, 59}, - 0x35 = { 1228, 27}, - 0x36 = { 1255, 33}, - 0x37 = { 1288, 9}, - 0x38 = { 1297, 67}, - 0x39 = { 1364, 52}, - 0x3A = { 1416, 56}, - 0x3B = { 1472, 169}, - 0x3C = { 1641, 67}, - 0x3D = { 1708, 52}, - 0x3E = { 1760, 56}, - 0x3F = { 1816, 169}, - 0x40 = { 1985, 12}, - 0x41 = { 1997, 1}, - 0x42 = { 1998, 12}, - 0x43 = { 2010, 1}, - 0x44 = { 2011, 1}, - 0x45 = { 2012, 2}, - 0x46 = { 2014, 1}, - 0x47 = { 2015, 1}, - 0x48 = { 2016, 16}, - 0x49 = { 2032, 1}, - 0x4A = { 2033, 20}, - 0x4B = { 2053, 1}, - 0x4C = { 2054, 16}, - 0x4D = { 2070, 2}, - 0x4E = { 2072, 20}, - 0x4F = { 2092, 1}, - 0x50 = { 2093, 1}, - 0x51 = { 2094, 1}, - 0x52 = { 2095, 1}, - 0x53 = { 2096, 1}, - 0x54 = { 2097, 1}, - 0x55 = { 2098, 1}, - 0x56 = { 2099, 1}, - 0x57 = { 2100, 6}, - 0x58 = { 2106, 1}, - 0x59 = { 2107, 1}, - 0x5A = { 2108, 1}, - 0x5B = { 2109, 1}, - 0x5C = { 2110, 1}, - 0x5D = { 2111, 3}, - 0x5E = { 2114, 1}, - 0x5F = { 2115, 1}, - 0x61 = { 2116, 6}, - 0x62 = { 2122, 6}, - 0x63 = { 2128, 6}, - 0x65 = { 2134, 6}, - 0x66 = { 2140, 6}, - 0x67 = { 2146, 6}, - 0x68 = { 2152, 5}, - 0x6A = { 2157, 4}, - 0x6B = { 2161, 5}, - 0x6C = { 2166, 2}, - 0x6E = { 2168, 4}, - 0x6F = { 2172, 5}, - 0x70 = { 2177, 9}, - 0x71 = { 2186, 2}, - 0x73 = { 2188, 1}, - 0x74 = { 2189, 5}, - 0x75 = { 2194, 7}, - 0x78 = { 2201, 3}, - 0x79 = { 2204, 1}, - 0x7A = { 2205, 1}, - 0x7B = { 2206, 1}, - 0x7C = { 2207, 3}, - 0x7D = { 2210, 3}, - 0x7E = { 2213, 1}, - 0x7F = { 2214, 2}, - 0x80 = { 2216, 1}, - 0x81 = { 2217, 2}, - 0x82 = { 2219, 1}, - 0x83 = { 2220, 2}, - 0x84 = { 2222, 1}, - 0x85 = { 2223, 1}, - 0x86 = { 2224, 1}, - 0x87 = { 2225, 1}, - 0x88 = { 2226, 2}, - 0x89 = { 2228, 3}, - 0x8A = { 2231, 2}, - 0x8B = { 2233, 4}, - 0x8C = { 2237, 1}, - 0x8D = { 2238, 1}, - 0x8E = { 2239, 1}, - 0x8F = { 2240, 1}, - 0x90 = { 2241, 1}, - 0x91 = { 2242, 2}, - 0x92 = { 2244, 2}, - 0x93 = { 2246, 2}, - 0x94 = { 2248, 1}, - 0x95 = { 2249, 1}, - 0x96 = { 2250, 1}, - 0x97 = { 2251, 1}, - 0x98 = { 2252, 1}, - 0x99 = { 2253, 2}, - 0x9A = { 2255, 1}, - 0x9B = { 2256, 2}, - 0x9C = { 2258, 1}, - 0x9D = { 2259, 1}, - 0x9E = { 2260, 1}, - 0x9F = { 2261, 1}, - 0xA0 = { 2262, 2}, - 0xA1 = { 2264, 2}, - 0xA2 = { 2266, 2}, - 0xA3 = { 2268, 2}, - 0xA4 = { 2270, 2}, - 0xA5 = { 2272, 2}, - 0xA6 = { 2274, 2}, - 0xA7 = { 2276, 2}, - 0xA8 = { 2278, 2}, - 0xA9 = { 2280, 2}, - 0xAA = { 2282, 2}, - 0xAB = { 2284, 2}, - 0xAC = { 2286, 2}, - 0xAD = { 2288, 2}, - 0xAE = { 2290, 2}, - 0xAF = { 2292, 2}, - 0xB0 = { 2294, 2}, - 0xB1 = { 2296, 2}, - 0xB2 = { 2298, 2}, - 0xB3 = { 2300, 2}, - 0xB4 = { 2302, 2}, - 0xB5 = { 2304, 2}, - 0xB6 = { 2306, 2}, - 0xB7 = { 2308, 2}, - 0xB8 = { 2310, 2}, - 0xB9 = { 2312, 2}, - 0xBA = { 2314, 2}, - 0xBB = { 2316, 2}, - 0xBC = { 2318, 2}, - 0xBD = { 2320, 2}, - 0xBE = { 2322, 2}, - 0xBF = { 2324, 2}, - 0xC0 = { 2326, 7}, - 0xC1 = { 2333, 4}, - 0xC2 = { 2337, 12}, - 0xC3 = { 2349, 5}, - 0xC4 = { 2354, 11}, - 0xC5 = { 2365, 8}, - 0xC6 = { 2373, 12}, - 0xC7 = { 2385, 5}, - 0xC8 = { 2390, 6}, - 0xC9 = { 2396, 6}, - 0xCA = { 2402, 12}, - 0xCB = { 2414, 8}, - 0xCC = { 2422, 6}, - 0xCD = { 2428, 6}, - 0xCE = { 2434, 12}, - 0xCF = { 2446, 6}, - 0xD0 = { 2452, 4}, - 0xD1 = { 2456, 4}, - 0xD2 = { 2460, 4}, - 0xD3 = { 2464, 2}, - 0xD4 = { 2466, 4}, - 0xD5 = { 2470, 4}, - 0xD6 = { 2474, 2}, - 0xD7 = { 2476, 2}, - 0xD8 = { 2478, 4}, - 0xD9 = { 2482, 4}, - 0xDA = { 2486, 2}, - 0xDB = { 2488, 2}, - 0xDC = { 2490, 4}, - 0xDD = { 2494, 4}, - 0xDE = { 2498, 2}, - 0xDF = { 2500, 2}, - 0xE0 = { 2502, 20}, - 0xE1 = { 2522, 14}, - 0xE2 = { 2536, 20}, - 0xE3 = { 2556, 15}, - 0xE4 = { 2571, 18}, - 0xE5 = { 2589, 13}, - 0xE6 = { 2602, 19}, - 0xE7 = { 2621, 15}, - 0xE8 = { 2636, 15}, - 0xE9 = { 2651, 11}, - 0xEA = { 2662, 11}, - 0xEB = { 2673, 77}, - 0xEC = { 2750, 16}, - 0xED = { 2766, 11}, - 0xEE = { 2777, 13}, - 0xEF = { 2790, 78}, - 0xF0 = { 2868, 3}, - 0xF1 = { 2871, 3}, - 0xF2 = { 2874, 3}, - 0xF3 = { 2877, 3}, - 0xF4 = { 2880, 3}, - 0xF5 = { 2883, 3}, - 0xF6 = { 2886, 3}, - 0xF7 = { 2889, 3}, - 0xF8 = { 2892, 1}, - 0xF9 = { 2893, 1}, - 0xFA = { 2894, 1}, - 0xFB = { 2895, 1}, - 0xFC = { 2896, 1}, - 0xFD = { 2897, 1}, - 0xFE = { 2898, 1}, - 0xFF = { 2899, 1}, + 0x28 = { 601, 93}, + 0x29 = { 694, 47}, + 0x2A = { 741, 46}, + 0x2B = { 787, 23}, + 0x2C = { 810, 93}, + 0x2D = { 903, 47}, + 0x2E = { 950, 46}, + 0x2F = { 996, 23}, + 0x30 = { 1019, 58}, + 0x31 = { 1077, 27}, + 0x32 = { 1104, 45}, + 0x33 = { 1149, 9}, + 0x34 = { 1158, 58}, + 0x35 = { 1216, 27}, + 0x36 = { 1243, 33}, + 0x37 = { 1276, 9}, + 0x38 = { 1285, 94}, + 0x39 = { 1379, 43}, + 0x3A = { 1422, 42}, + 0x3B = { 1464, 160}, + 0x3C = { 1624, 94}, + 0x3D = { 1718, 43}, + 0x3E = { 1761, 42}, + 0x3F = { 1803, 160}, + 0x40 = { 1963, 12}, + 0x41 = { 1975, 1}, + 0x42 = { 1976, 12}, + 0x43 = { 1988, 1}, + 0x44 = { 1989, 1}, + 0x45 = { 1990, 2}, + 0x46 = { 1992, 1}, + 0x47 = { 1993, 1}, + 0x48 = { 1994, 13}, + 0x49 = { 2007, 1}, + 0x4A = { 2008, 17}, + 0x4B = { 2025, 1}, + 0x4C = { 2026, 13}, + 0x4D = { 2039, 2}, + 0x4E = { 2041, 17}, + 0x4F = { 2058, 1}, + 0x50 = { 2059, 1}, + 0x51 = { 2060, 1}, + 0x52 = { 2061, 1}, + 0x53 = { 2062, 1}, + 0x54 = { 2063, 1}, + 0x55 = { 2064, 1}, + 0x56 = { 2065, 1}, + 0x57 = { 2066, 6}, + 0x58 = { 2072, 1}, + 0x59 = { 2073, 1}, + 0x5A = { 2074, 1}, + 0x5B = { 2075, 1}, + 0x5C = { 2076, 1}, + 0x5D = { 2077, 3}, + 0x5E = { 2080, 1}, + 0x5F = { 2081, 1}, + 0x61 = { 2082, 6}, + 0x62 = { 2088, 6}, + 0x63 = { 2094, 6}, + 0x65 = { 2100, 6}, + 0x66 = { 2106, 6}, + 0x67 = { 2112, 6}, + 0x68 = { 2118, 5}, + 0x6A = { 2123, 4}, + 0x6B = { 2127, 5}, + 0x6C = { 2132, 2}, + 0x6E = { 2134, 4}, + 0x6F = { 2138, 5}, + 0x70 = { 2143, 9}, + 0x71 = { 2152, 2}, + 0x73 = { 2154, 1}, + 0x74 = { 2155, 5}, + 0x75 = { 2160, 7}, + 0x78 = { 2167, 3}, + 0x79 = { 2170, 1}, + 0x7A = { 2171, 1}, + 0x7B = { 2172, 1}, + 0x7C = { 2173, 3}, + 0x7D = { 2176, 3}, + 0x7E = { 2179, 1}, + 0x7F = { 2180, 2}, + 0x80 = { 2182, 1}, + 0x81 = { 2183, 2}, + 0x82 = { 2185, 1}, + 0x83 = { 2186, 2}, + 0x84 = { 2188, 1}, + 0x86 = { 2189, 1}, + 0x88 = { 2190, 1}, + 0x89 = { 2191, 2}, + 0x8A = { 2193, 1}, + 0x8B = { 2194, 3}, + 0x8C = { 2197, 1}, + 0x8E = { 2198, 1}, + 0x90 = { 2199, 1}, + 0x91 = { 2200, 2}, + 0x92 = { 2202, 2}, + 0x93 = { 2204, 2}, + 0x94 = { 2206, 1}, + 0x96 = { 2207, 1}, + 0x98 = { 2208, 1}, + 0x99 = { 2209, 2}, + 0x9A = { 2211, 1}, + 0x9B = { 2212, 2}, + 0x9C = { 2214, 1}, + 0x9E = { 2215, 1}, + 0xA0 = { 2216, 2}, + 0xA1 = { 2218, 2}, + 0xA2 = { 2220, 2}, + 0xA3 = { 2222, 2}, + 0xA4 = { 2224, 2}, + 0xA5 = { 2226, 2}, + 0xA6 = { 2228, 2}, + 0xA7 = { 2230, 2}, + 0xA8 = { 2232, 2}, + 0xA9 = { 2234, 2}, + 0xAA = { 2236, 2}, + 0xAB = { 2238, 2}, + 0xAC = { 2240, 2}, + 0xAD = { 2242, 2}, + 0xAE = { 2244, 2}, + 0xAF = { 2246, 2}, + 0xB0 = { 2248, 2}, + 0xB1 = { 2250, 2}, + 0xB2 = { 2252, 2}, + 0xB3 = { 2254, 2}, + 0xB4 = { 2256, 2}, + 0xB5 = { 2258, 2}, + 0xB6 = { 2260, 2}, + 0xB7 = { 2262, 2}, + 0xB8 = { 2264, 2}, + 0xB9 = { 2266, 2}, + 0xBA = { 2268, 2}, + 0xBB = { 2270, 2}, + 0xBC = { 2272, 2}, + 0xBD = { 2274, 2}, + 0xBE = { 2276, 2}, + 0xBF = { 2278, 2}, + 0xC0 = { 2280, 5}, + 0xC1 = { 2285, 2}, + 0xC2 = { 2287, 12}, + 0xC3 = { 2299, 6}, + 0xC4 = { 2305, 9}, + 0xC5 = { 2314, 6}, + 0xC6 = { 2320, 12}, + 0xC7 = { 2332, 6}, + 0xC8 = { 2338, 4}, + 0xC9 = { 2342, 4}, + 0xCA = { 2346, 11}, + 0xCB = { 2357, 8}, + 0xCC = { 2365, 4}, + 0xCD = { 2369, 4}, + 0xCE = { 2373, 11}, + 0xCF = { 2384, 6}, + 0xD0 = { 2390, 6}, + 0xD1 = { 2396, 6}, + 0xD2 = { 2402, 8}, + 0xD3 = { 2410, 6}, + 0xD4 = { 2416, 6}, + 0xD5 = { 2422, 6}, + 0xD6 = { 2428, 6}, + 0xD7 = { 2434, 6}, + 0xD8 = { 2440, 6}, + 0xD9 = { 2446, 6}, + 0xDA = { 2452, 4}, + 0xDB = { 2456, 4}, + 0xDC = { 2460, 6}, + 0xDD = { 2466, 6}, + 0xDE = { 2472, 4}, + 0xDF = { 2476, 4}, + 0xE0 = { 2480, 19}, + 0xE1 = { 2499, 14}, + 0xE2 = { 2513, 19}, + 0xE3 = { 2532, 15}, + 0xE4 = { 2547, 17}, + 0xE5 = { 2564, 13}, + 0xE6 = { 2577, 18}, + 0xE7 = { 2595, 15}, + 0xE8 = { 2610, 14}, + 0xE9 = { 2624, 11}, + 0xEA = { 2635, 10}, + 0xEB = { 2645, 91}, + 0xEC = { 2736, 15}, + 0xED = { 2751, 11}, + 0xEE = { 2762, 12}, + 0xEF = { 2774, 92}, + 0xF0 = { 2866, 3}, + 0xF1 = { 2869, 3}, + 0xF2 = { 2872, 3}, + 0xF3 = { 2875, 3}, + 0xF4 = { 2878, 3}, + 0xF5 = { 2881, 3}, + 0xF6 = { 2884, 3}, + 0xF7 = { 2887, 3}, + 0xF8 = { 2890, 1}, + 0xF9 = { 2891, 1}, + 0xFA = { 2892, 1}, + 0xFB = { 2893, 1}, + 0xFC = { 2894, 1}, + 0xFD = { 2895, 1}, + 0xFE = { 2896, 1}, + 0xFF = { 2897, 1}, } DECODE_INDEX_T32 := [128]lib.Decode_Index{ - 0x74 = { 2900, 23}, - 0x75 = { 2923, 19}, - 0x76 = { 2942, 19}, - 0x77 = { 2961, 104}, - 0x78 = { 3065, 31}, - 0x79 = { 3096, 38}, - 0x7A = { 3134, 23}, - 0x7B = { 3157, 14}, - 0x7C = { 3171, 20}, - 0x7D = { 3191, 71}, - 0x7E = { 3262, 23}, - 0x7F = { 3285, 126}, + 0x74 = { 2898, 23}, + 0x75 = { 2921, 19}, + 0x76 = { 2940, 19}, + 0x77 = { 2959, 104}, + 0x78 = { 3063, 31}, + 0x79 = { 3094, 38}, + 0x7A = { 3132, 23}, + 0x7B = { 3155, 14}, + 0x7C = { 3169, 20}, + 0x7D = { 3189, 71}, + 0x7E = { 3260, 23}, + 0x7F = { 3283, 126}, } DECODE_INDEX_T16 := [64]lib.Decode_Index{ - 0x00 = { 3411, 1}, - 0x01 = { 3412, 1}, - 0x02 = { 3413, 1}, - 0x03 = { 3414, 1}, - 0x04 = { 3415, 1}, - 0x05 = { 3416, 1}, - 0x06 = { 3417, 2}, - 0x07 = { 3419, 2}, - 0x08 = { 3421, 1}, - 0x09 = { 3422, 1}, - 0x0A = { 3423, 1}, - 0x0B = { 3424, 1}, - 0x0C = { 3425, 1}, - 0x0D = { 3426, 1}, - 0x0E = { 3427, 1}, - 0x0F = { 3428, 1}, - 0x10 = { 3429, 16}, - 0x11 = { 3445, 7}, - 0x12 = { 3452, 1}, - 0x13 = { 3453, 1}, - 0x14 = { 3454, 2}, - 0x15 = { 3456, 2}, - 0x16 = { 3458, 2}, - 0x17 = { 3460, 2}, - 0x18 = { 3462, 1}, - 0x19 = { 3463, 1}, - 0x1A = { 3464, 1}, - 0x1B = { 3465, 1}, - 0x1C = { 3466, 1}, - 0x1D = { 3467, 1}, - 0x1E = { 3468, 1}, - 0x1F = { 3469, 1}, - 0x20 = { 3470, 1}, - 0x21 = { 3471, 1}, - 0x22 = { 3472, 1}, - 0x23 = { 3473, 1}, - 0x24 = { 3474, 1}, - 0x25 = { 3475, 1}, - 0x26 = { 3476, 1}, - 0x27 = { 3477, 1}, - 0x28 = { 3478, 1}, - 0x29 = { 3479, 1}, - 0x2A = { 3480, 1}, - 0x2B = { 3481, 1}, - 0x2C = { 3482, 7}, - 0x2D = { 3489, 2}, - 0x2E = { 3491, 4}, - 0x2F = { 3495, 8}, - 0x30 = { 3503, 1}, - 0x31 = { 3504, 1}, - 0x32 = { 3505, 1}, - 0x33 = { 3506, 1}, - 0x34 = { 3507, 1}, - 0x35 = { 3508, 1}, - 0x36 = { 3509, 1}, - 0x37 = { 3510, 3}, - 0x38 = { 3513, 1}, - 0x39 = { 3514, 1}, + 0x00 = { 3409, 1}, + 0x01 = { 3410, 1}, + 0x02 = { 3411, 1}, + 0x03 = { 3412, 1}, + 0x04 = { 3413, 1}, + 0x05 = { 3414, 1}, + 0x06 = { 3415, 2}, + 0x07 = { 3417, 2}, + 0x08 = { 3419, 1}, + 0x09 = { 3420, 1}, + 0x0A = { 3421, 1}, + 0x0B = { 3422, 1}, + 0x0C = { 3423, 1}, + 0x0D = { 3424, 1}, + 0x0E = { 3425, 1}, + 0x0F = { 3426, 1}, + 0x10 = { 3427, 16}, + 0x11 = { 3443, 7}, + 0x12 = { 3450, 1}, + 0x13 = { 3451, 1}, + 0x14 = { 3452, 2}, + 0x15 = { 3454, 2}, + 0x16 = { 3456, 2}, + 0x17 = { 3458, 2}, + 0x18 = { 3460, 1}, + 0x19 = { 3461, 1}, + 0x1A = { 3462, 1}, + 0x1B = { 3463, 1}, + 0x1C = { 3464, 1}, + 0x1D = { 3465, 1}, + 0x1E = { 3466, 1}, + 0x1F = { 3467, 1}, + 0x20 = { 3468, 1}, + 0x21 = { 3469, 1}, + 0x22 = { 3470, 1}, + 0x23 = { 3471, 1}, + 0x24 = { 3472, 1}, + 0x25 = { 3473, 1}, + 0x26 = { 3474, 1}, + 0x27 = { 3475, 1}, + 0x28 = { 3476, 1}, + 0x29 = { 3477, 1}, + 0x2A = { 3478, 1}, + 0x2B = { 3479, 1}, + 0x2C = { 3480, 7}, + 0x2D = { 3487, 2}, + 0x2E = { 3489, 4}, + 0x2F = { 3493, 8}, + 0x30 = { 3501, 1}, + 0x31 = { 3502, 1}, + 0x32 = { 3503, 1}, + 0x33 = { 3504, 1}, + 0x34 = { 3505, 1}, + 0x35 = { 3506, 1}, + 0x36 = { 3507, 1}, + 0x37 = { 3508, 3}, + 0x38 = { 3511, 1}, + 0x39 = { 3512, 1}, } DECODE_INDEX_T32_SUB := [4096]lib.Decode_Index{ - 0xE84 = { 3515, 6}, - 0xE85 = { 3521, 2}, - 0xE86 = { 3523, 1}, - 0xE87 = { 3524, 1}, - 0xE88 = { 3525, 1}, - 0xE89 = { 3526, 1}, - 0xE8A = { 3527, 1}, - 0xE8B = { 3528, 2}, - 0xE8C = { 3530, 4}, - 0xE8D = { 3534, 6}, - 0xE8E = { 3540, 1}, - 0xE8F = { 3541, 1}, - 0xE90 = { 3542, 1}, - 0xE91 = { 3543, 1}, - 0xE92 = { 3544, 2}, - 0xE93 = { 3546, 1}, - 0xE94 = { 3547, 1}, - 0xE95 = { 3548, 1}, - 0xE96 = { 3549, 1}, - 0xE97 = { 3550, 2}, - 0xE9C = { 3552, 1}, - 0xE9D = { 3553, 1}, - 0xE9E = { 3554, 1}, - 0xE9F = { 3555, 1}, - 0xEA0 = { 3556, 2}, - 0xEA1 = { 3558, 3}, - 0xEA2 = { 3561, 1}, - 0xEA3 = { 3562, 1}, - 0xEA4 = { 3563, 7}, - 0xEA5 = { 3570, 7}, - 0xEA6 = { 3577, 1}, - 0xEA7 = { 3578, 1}, - 0xEA8 = { 3579, 1}, - 0xEA9 = { 3580, 2}, - 0xEB1 = { 3582, 1}, - 0xEB4 = { 3583, 1}, - 0xEB5 = { 3584, 1}, - 0xEB6 = { 3585, 1}, - 0xEB7 = { 3586, 1}, - 0xEBB = { 3587, 1}, - 0xEBC = { 3588, 1}, - 0xEBD = { 3589, 1}, - 0xEC0 = { 3590, 2}, - 0xEC1 = { 3592, 1}, - 0xEC2 = { 3593, 3}, - 0xEC3 = { 3596, 2}, - 0xEC4 = { 3598, 2}, - 0xEC5 = { 3600, 1}, - 0xEC6 = { 3601, 7}, - 0xEC7 = { 3608, 2}, - 0xEC8 = { 3610, 1}, - 0xEC9 = { 3611, 1}, - 0xECA = { 3612, 2}, - 0xECB = { 3614, 2}, - 0xECC = { 3616, 1}, - 0xECD = { 3617, 1}, - 0xECE = { 3618, 2}, - 0xECF = { 3620, 2}, - 0xED6 = { 3622, 4}, - 0xED8 = { 3626, 4}, - 0xED9 = { 3630, 4}, - 0xEDC = { 3634, 4}, - 0xEDD = { 3638, 4}, - 0xEE0 = { 3642, 24}, - 0xEE1 = { 3666, 23}, - 0xEE2 = { 3689, 22}, - 0xEE3 = { 3711, 29}, - 0xEE4 = { 3740, 23}, - 0xEE5 = { 3763, 22}, - 0xEE6 = { 3785, 22}, - 0xEE7 = { 3807, 29}, - 0xEE8 = { 3836, 28}, - 0xEE9 = { 3864, 12}, - 0xEEA = { 3876, 13}, - 0xEEB = { 3889, 18}, - 0xEEC = { 3907, 27}, - 0xEED = { 3934, 13}, - 0xEEE = { 3947, 22}, - 0xEEF = { 3969, 23}, - 0xEF0 = { 3992, 15}, - 0xEF1 = { 4007, 15}, - 0xEF2 = { 4022, 15}, - 0xEF3 = { 4037, 15}, - 0xEF4 = { 4052, 15}, - 0xEF5 = { 4067, 15}, - 0xEF6 = { 4082, 15}, - 0xEF7 = { 4097, 15}, - 0xEF8 = { 4112, 3}, - 0xEF9 = { 4115, 3}, - 0xEFA = { 4118, 3}, - 0xEFB = { 4121, 3}, - 0xEFC = { 4124, 3}, - 0xEFD = { 4127, 3}, - 0xEFE = { 4130, 3}, - 0xEFF = { 4133, 3}, - 0xF00 = { 4136, 12}, - 0xF01 = { 4148, 11}, - 0xF02 = { 4159, 8}, - 0xF03 = { 4167, 8}, - 0xF04 = { 4175, 9}, - 0xF05 = { 4184, 6}, - 0xF06 = { 4190, 5}, - 0xF07 = { 4195, 5}, - 0xF08 = { 4200, 6}, - 0xF09 = { 4206, 6}, - 0xF0A = { 4212, 4}, - 0xF0B = { 4216, 4}, - 0xF0C = { 4220, 4}, - 0xF0D = { 4224, 3}, - 0xF0E = { 4227, 4}, - 0xF0F = { 4231, 4}, - 0xF10 = { 4235, 7}, - 0xF11 = { 4242, 7}, - 0xF12 = { 4249, 6}, - 0xF13 = { 4255, 6}, - 0xF14 = { 4261, 5}, - 0xF15 = { 4266, 4}, - 0xF16 = { 4270, 5}, - 0xF17 = { 4275, 5}, - 0xF18 = { 4280, 5}, - 0xF19 = { 4285, 4}, - 0xF1A = { 4289, 4}, - 0xF1B = { 4293, 5}, - 0xF1C = { 4298, 5}, - 0xF1D = { 4303, 4}, - 0xF1E = { 4307, 4}, - 0xF1F = { 4311, 4}, - 0xF20 = { 4315, 5}, - 0xF21 = { 4320, 4}, - 0xF22 = { 4324, 4}, - 0xF23 = { 4328, 4}, - 0xF24 = { 4332, 5}, - 0xF25 = { 4337, 3}, - 0xF26 = { 4340, 4}, - 0xF27 = { 4344, 4}, - 0xF28 = { 4348, 5}, - 0xF29 = { 4353, 4}, - 0xF2A = { 4357, 4}, - 0xF2B = { 4361, 4}, - 0xF2C = { 4365, 5}, - 0xF2D = { 4370, 3}, - 0xF2E = { 4373, 4}, - 0xF2F = { 4377, 4}, - 0xF30 = { 4381, 6}, - 0xF31 = { 4387, 4}, - 0xF32 = { 4391, 6}, - 0xF33 = { 4397, 4}, - 0xF34 = { 4401, 5}, - 0xF35 = { 4406, 3}, - 0xF36 = { 4409, 6}, - 0xF37 = { 4415, 4}, - 0xF38 = { 4419, 7}, - 0xF39 = { 4426, 4}, - 0xF3A = { 4430, 19}, - 0xF3B = { 4449, 9}, - 0xF3C = { 4458, 5}, - 0xF3D = { 4463, 3}, - 0xF3E = { 4466, 5}, - 0xF3F = { 4471, 4}, - 0xF40 = { 4475, 7}, - 0xF41 = { 4482, 7}, - 0xF42 = { 4489, 5}, - 0xF43 = { 4494, 5}, - 0xF44 = { 4499, 7}, - 0xF45 = { 4506, 6}, - 0xF46 = { 4512, 5}, - 0xF47 = { 4517, 5}, - 0xF48 = { 4522, 6}, - 0xF49 = { 4528, 6}, - 0xF4A = { 4534, 4}, - 0xF4B = { 4538, 4}, - 0xF4C = { 4542, 4}, - 0xF4D = { 4546, 3}, - 0xF4E = { 4549, 4}, - 0xF4F = { 4553, 4}, - 0xF50 = { 4557, 5}, - 0xF51 = { 4562, 5}, - 0xF52 = { 4567, 4}, - 0xF53 = { 4571, 4}, - 0xF54 = { 4575, 5}, - 0xF55 = { 4580, 4}, - 0xF56 = { 4584, 5}, - 0xF57 = { 4589, 5}, - 0xF58 = { 4594, 5}, - 0xF59 = { 4599, 4}, - 0xF5A = { 4603, 4}, - 0xF5B = { 4607, 5}, - 0xF5C = { 4612, 5}, - 0xF5D = { 4617, 4}, - 0xF5E = { 4621, 4}, - 0xF5F = { 4625, 4}, - 0xF60 = { 4629, 5}, - 0xF61 = { 4634, 4}, - 0xF62 = { 4638, 4}, - 0xF63 = { 4642, 4}, - 0xF64 = { 4646, 5}, - 0xF65 = { 4651, 3}, - 0xF66 = { 4654, 4}, - 0xF67 = { 4658, 4}, - 0xF68 = { 4662, 5}, - 0xF69 = { 4667, 4}, - 0xF6A = { 4671, 4}, - 0xF6B = { 4675, 4}, - 0xF6C = { 4679, 5}, - 0xF6D = { 4684, 3}, - 0xF6E = { 4687, 4}, - 0xF6F = { 4691, 4}, - 0xF70 = { 4695, 5}, - 0xF71 = { 4700, 4}, - 0xF72 = { 4704, 4}, - 0xF73 = { 4708, 4}, - 0xF74 = { 4712, 4}, - 0xF75 = { 4716, 3}, - 0xF76 = { 4719, 4}, - 0xF77 = { 4723, 4}, - 0xF78 = { 4727, 8}, - 0xF79 = { 4735, 4}, - 0xF7A = { 4739, 4}, - 0xF7B = { 4743, 4}, - 0xF7C = { 4747, 4}, - 0xF7D = { 4751, 3}, - 0xF7E = { 4754, 4}, - 0xF7F = { 4758, 5}, - 0xF80 = { 4763, 1}, - 0xF81 = { 4764, 1}, - 0xF82 = { 4765, 1}, - 0xF83 = { 4766, 2}, - 0xF84 = { 4768, 1}, - 0xF85 = { 4769, 2}, - 0xF88 = { 4771, 1}, - 0xF89 = { 4772, 2}, - 0xF8A = { 4774, 1}, - 0xF8B = { 4775, 1}, - 0xF8C = { 4776, 1}, - 0xF8D = { 4777, 2}, - 0xF91 = { 4779, 1}, - 0xF93 = { 4780, 1}, - 0xF99 = { 4781, 2}, - 0xF9B = { 4783, 1}, - 0xFA0 = { 4784, 3}, - 0xFA1 = { 4787, 3}, - 0xFA2 = { 4790, 3}, - 0xFA3 = { 4793, 3}, - 0xFA4 = { 4796, 3}, - 0xFA5 = { 4799, 3}, - 0xFA6 = { 4802, 1}, - 0xFA7 = { 4803, 1}, - 0xFA8 = { 4804, 10}, - 0xFA9 = { 4814, 10}, - 0xFAA = { 4824, 6}, - 0xFAB = { 4830, 1}, - 0xFAC = { 4831, 6}, - 0xFAD = { 4837, 6}, - 0xFAE = { 4843, 6}, - 0xFB0 = { 4849, 3}, - 0xFB5 = { 4852, 1}, - 0xFB8 = { 4853, 1}, - 0xFB9 = { 4854, 1}, - 0xFBA = { 4855, 1}, - 0xFBB = { 4856, 1}, - 0xFBC = { 4857, 1}, - 0xFBE = { 4858, 1}, - 0xFC0 = { 4859, 1}, - 0xFC1 = { 4860, 1}, - 0xFC2 = { 4861, 3}, - 0xFC3 = { 4864, 3}, - 0xFC4 = { 4867, 1}, - 0xFC5 = { 4868, 1}, - 0xFC6 = { 4869, 2}, - 0xFC7 = { 4871, 2}, - 0xFC8 = { 4873, 7}, - 0xFC9 = { 4880, 11}, - 0xFCA = { 4891, 3}, - 0xFCB = { 4894, 3}, - 0xFCC = { 4897, 7}, - 0xFCD = { 4904, 7}, - 0xFCE = { 4911, 2}, - 0xFCF = { 4913, 2}, - 0xFD2 = { 4915, 1}, - 0xFD3 = { 4916, 1}, - 0xFD9 = { 4917, 4}, - 0xFDA = { 4921, 1}, - 0xFDB = { 4922, 1}, - 0xFE0 = { 4923, 28}, - 0xFE1 = { 4951, 26}, - 0xFE2 = { 4977, 26}, - 0xFE3 = { 5003, 32}, - 0xFE4 = { 5035, 29}, - 0xFE5 = { 5064, 27}, - 0xFE6 = { 5091, 27}, - 0xFE7 = { 5118, 33}, - 0xFE8 = { 5151, 32}, - 0xFE9 = { 5183, 17}, - 0xFEA = { 5200, 17}, - 0xFEB = { 5217, 29}, - 0xFEC = { 5246, 31}, - 0xFED = { 5277, 18}, - 0xFEE = { 5295, 26}, - 0xFEF = { 5321, 32}, - 0xFF0 = { 5353, 19}, - 0xFF1 = { 5372, 18}, - 0xFF2 = { 5390, 17}, - 0xFF3 = { 5407, 17}, - 0xFF4 = { 5424, 19}, - 0xFF5 = { 5443, 18}, - 0xFF6 = { 5461, 17}, - 0xFF7 = { 5478, 17}, - 0xFF8 = { 5495, 4}, - 0xFF9 = { 5499, 4}, - 0xFFA = { 5503, 4}, - 0xFFB = { 5507, 17}, - 0xFFC = { 5524, 4}, - 0xFFD = { 5528, 4}, - 0xFFE = { 5532, 4}, - 0xFFF = { 5536, 17}, + 0xE84 = { 3513, 6}, + 0xE85 = { 3519, 2}, + 0xE86 = { 3521, 1}, + 0xE87 = { 3522, 1}, + 0xE88 = { 3523, 1}, + 0xE89 = { 3524, 1}, + 0xE8A = { 3525, 1}, + 0xE8B = { 3526, 2}, + 0xE8C = { 3528, 4}, + 0xE8D = { 3532, 6}, + 0xE8E = { 3538, 1}, + 0xE8F = { 3539, 1}, + 0xE90 = { 3540, 1}, + 0xE91 = { 3541, 1}, + 0xE92 = { 3542, 2}, + 0xE93 = { 3544, 1}, + 0xE94 = { 3545, 1}, + 0xE95 = { 3546, 1}, + 0xE96 = { 3547, 1}, + 0xE97 = { 3548, 2}, + 0xE9C = { 3550, 1}, + 0xE9D = { 3551, 1}, + 0xE9E = { 3552, 1}, + 0xE9F = { 3553, 1}, + 0xEA0 = { 3554, 1}, + 0xEA1 = { 3555, 2}, + 0xEA2 = { 3557, 1}, + 0xEA3 = { 3558, 1}, + 0xEA4 = { 3559, 6}, + 0xEA5 = { 3565, 2}, + 0xEA6 = { 3567, 1}, + 0xEA7 = { 3568, 1}, + 0xEA8 = { 3569, 1}, + 0xEA9 = { 3570, 2}, + 0xEB1 = { 3572, 1}, + 0xEB4 = { 3573, 1}, + 0xEB5 = { 3574, 1}, + 0xEB6 = { 3575, 1}, + 0xEB7 = { 3576, 1}, + 0xEBB = { 3577, 1}, + 0xEBC = { 3578, 1}, + 0xEBD = { 3579, 1}, + 0xEC0 = { 3580, 2}, + 0xEC1 = { 3582, 1}, + 0xEC2 = { 3583, 3}, + 0xEC3 = { 3586, 2}, + 0xEC4 = { 3588, 2}, + 0xEC5 = { 3590, 1}, + 0xEC6 = { 3591, 7}, + 0xEC7 = { 3598, 2}, + 0xEC8 = { 3600, 1}, + 0xEC9 = { 3601, 1}, + 0xECA = { 3602, 2}, + 0xECB = { 3604, 2}, + 0xECC = { 3606, 1}, + 0xECD = { 3607, 1}, + 0xECE = { 3608, 2}, + 0xECF = { 3610, 2}, + 0xED6 = { 3612, 4}, + 0xED8 = { 3616, 4}, + 0xED9 = { 3620, 4}, + 0xEDC = { 3624, 4}, + 0xEDD = { 3628, 4}, + 0xEE0 = { 3632, 24}, + 0xEE1 = { 3656, 23}, + 0xEE2 = { 3679, 22}, + 0xEE3 = { 3701, 29}, + 0xEE4 = { 3730, 23}, + 0xEE5 = { 3753, 22}, + 0xEE6 = { 3775, 22}, + 0xEE7 = { 3797, 29}, + 0xEE8 = { 3826, 28}, + 0xEE9 = { 3854, 12}, + 0xEEA = { 3866, 13}, + 0xEEB = { 3879, 18}, + 0xEEC = { 3897, 27}, + 0xEED = { 3924, 13}, + 0xEEE = { 3937, 22}, + 0xEEF = { 3959, 23}, + 0xEF0 = { 3982, 15}, + 0xEF1 = { 3997, 15}, + 0xEF2 = { 4012, 15}, + 0xEF3 = { 4027, 15}, + 0xEF4 = { 4042, 15}, + 0xEF5 = { 4057, 15}, + 0xEF6 = { 4072, 15}, + 0xEF7 = { 4087, 15}, + 0xEF8 = { 4102, 3}, + 0xEF9 = { 4105, 3}, + 0xEFA = { 4108, 3}, + 0xEFB = { 4111, 3}, + 0xEFC = { 4114, 3}, + 0xEFD = { 4117, 3}, + 0xEFE = { 4120, 3}, + 0xEFF = { 4123, 3}, + 0xF00 = { 4126, 11}, + 0xF01 = { 4137, 10}, + 0xF02 = { 4147, 8}, + 0xF03 = { 4155, 8}, + 0xF04 = { 4163, 8}, + 0xF05 = { 4171, 5}, + 0xF06 = { 4176, 5}, + 0xF07 = { 4181, 5}, + 0xF08 = { 4186, 6}, + 0xF09 = { 4192, 6}, + 0xF0A = { 4198, 4}, + 0xF0B = { 4202, 4}, + 0xF0C = { 4206, 4}, + 0xF0D = { 4210, 3}, + 0xF0E = { 4213, 4}, + 0xF0F = { 4217, 4}, + 0xF10 = { 4221, 7}, + 0xF11 = { 4228, 7}, + 0xF12 = { 4235, 6}, + 0xF13 = { 4241, 6}, + 0xF14 = { 4247, 5}, + 0xF15 = { 4252, 4}, + 0xF16 = { 4256, 5}, + 0xF17 = { 4261, 5}, + 0xF18 = { 4266, 5}, + 0xF19 = { 4271, 4}, + 0xF1A = { 4275, 4}, + 0xF1B = { 4279, 5}, + 0xF1C = { 4284, 5}, + 0xF1D = { 4289, 4}, + 0xF1E = { 4293, 4}, + 0xF1F = { 4297, 4}, + 0xF20 = { 4301, 5}, + 0xF21 = { 4306, 4}, + 0xF22 = { 4310, 4}, + 0xF23 = { 4314, 4}, + 0xF24 = { 4318, 5}, + 0xF25 = { 4323, 3}, + 0xF26 = { 4326, 4}, + 0xF27 = { 4330, 4}, + 0xF28 = { 4334, 5}, + 0xF29 = { 4339, 4}, + 0xF2A = { 4343, 4}, + 0xF2B = { 4347, 4}, + 0xF2C = { 4351, 5}, + 0xF2D = { 4356, 3}, + 0xF2E = { 4359, 4}, + 0xF2F = { 4363, 4}, + 0xF30 = { 4367, 6}, + 0xF31 = { 4373, 4}, + 0xF32 = { 4377, 6}, + 0xF33 = { 4383, 4}, + 0xF34 = { 4387, 5}, + 0xF35 = { 4392, 3}, + 0xF36 = { 4395, 6}, + 0xF37 = { 4401, 4}, + 0xF38 = { 4405, 7}, + 0xF39 = { 4412, 4}, + 0xF3A = { 4416, 19}, + 0xF3B = { 4435, 9}, + 0xF3C = { 4444, 5}, + 0xF3D = { 4449, 3}, + 0xF3E = { 4452, 5}, + 0xF3F = { 4457, 4}, + 0xF40 = { 4461, 6}, + 0xF41 = { 4467, 6}, + 0xF42 = { 4473, 5}, + 0xF43 = { 4478, 5}, + 0xF44 = { 4483, 6}, + 0xF45 = { 4489, 5}, + 0xF46 = { 4494, 5}, + 0xF47 = { 4499, 5}, + 0xF48 = { 4504, 6}, + 0xF49 = { 4510, 6}, + 0xF4A = { 4516, 4}, + 0xF4B = { 4520, 4}, + 0xF4C = { 4524, 4}, + 0xF4D = { 4528, 3}, + 0xF4E = { 4531, 4}, + 0xF4F = { 4535, 4}, + 0xF50 = { 4539, 5}, + 0xF51 = { 4544, 5}, + 0xF52 = { 4549, 4}, + 0xF53 = { 4553, 4}, + 0xF54 = { 4557, 5}, + 0xF55 = { 4562, 4}, + 0xF56 = { 4566, 5}, + 0xF57 = { 4571, 5}, + 0xF58 = { 4576, 5}, + 0xF59 = { 4581, 4}, + 0xF5A = { 4585, 4}, + 0xF5B = { 4589, 5}, + 0xF5C = { 4594, 5}, + 0xF5D = { 4599, 4}, + 0xF5E = { 4603, 4}, + 0xF5F = { 4607, 4}, + 0xF60 = { 4611, 5}, + 0xF61 = { 4616, 4}, + 0xF62 = { 4620, 4}, + 0xF63 = { 4624, 4}, + 0xF64 = { 4628, 5}, + 0xF65 = { 4633, 3}, + 0xF66 = { 4636, 4}, + 0xF67 = { 4640, 4}, + 0xF68 = { 4644, 5}, + 0xF69 = { 4649, 4}, + 0xF6A = { 4653, 4}, + 0xF6B = { 4657, 4}, + 0xF6C = { 4661, 5}, + 0xF6D = { 4666, 3}, + 0xF6E = { 4669, 4}, + 0xF6F = { 4673, 4}, + 0xF70 = { 4677, 5}, + 0xF71 = { 4682, 4}, + 0xF72 = { 4686, 4}, + 0xF73 = { 4690, 4}, + 0xF74 = { 4694, 4}, + 0xF75 = { 4698, 3}, + 0xF76 = { 4701, 4}, + 0xF77 = { 4705, 4}, + 0xF78 = { 4709, 8}, + 0xF79 = { 4717, 4}, + 0xF7A = { 4721, 4}, + 0xF7B = { 4725, 4}, + 0xF7C = { 4729, 4}, + 0xF7D = { 4733, 3}, + 0xF7E = { 4736, 4}, + 0xF7F = { 4740, 5}, + 0xF80 = { 4745, 1}, + 0xF81 = { 4746, 1}, + 0xF82 = { 4747, 1}, + 0xF83 = { 4748, 2}, + 0xF84 = { 4750, 1}, + 0xF85 = { 4751, 2}, + 0xF88 = { 4753, 1}, + 0xF89 = { 4754, 2}, + 0xF8A = { 4756, 1}, + 0xF8B = { 4757, 1}, + 0xF8C = { 4758, 1}, + 0xF8D = { 4759, 2}, + 0xF91 = { 4761, 1}, + 0xF93 = { 4762, 1}, + 0xF99 = { 4763, 2}, + 0xF9B = { 4765, 1}, + 0xFA0 = { 4766, 3}, + 0xFA1 = { 4769, 2}, + 0xFA2 = { 4771, 3}, + 0xFA3 = { 4774, 2}, + 0xFA4 = { 4776, 3}, + 0xFA5 = { 4779, 2}, + 0xFA6 = { 4781, 1}, + 0xFA8 = { 4782, 10}, + 0xFA9 = { 4792, 10}, + 0xFAA = { 4802, 6}, + 0xFAB = { 4808, 1}, + 0xFAC = { 4809, 6}, + 0xFAD = { 4815, 6}, + 0xFAE = { 4821, 6}, + 0xFB0 = { 4827, 3}, + 0xFB5 = { 4830, 1}, + 0xFB8 = { 4831, 1}, + 0xFB9 = { 4832, 1}, + 0xFBA = { 4833, 1}, + 0xFBB = { 4834, 1}, + 0xFBC = { 4835, 1}, + 0xFBE = { 4836, 1}, + 0xFC0 = { 4837, 1}, + 0xFC1 = { 4838, 1}, + 0xFC2 = { 4839, 3}, + 0xFC3 = { 4842, 3}, + 0xFC4 = { 4845, 1}, + 0xFC5 = { 4846, 1}, + 0xFC6 = { 4847, 2}, + 0xFC7 = { 4849, 2}, + 0xFC8 = { 4851, 7}, + 0xFC9 = { 4858, 11}, + 0xFCA = { 4869, 3}, + 0xFCB = { 4872, 3}, + 0xFCC = { 4875, 7}, + 0xFCD = { 4882, 7}, + 0xFCE = { 4889, 2}, + 0xFCF = { 4891, 2}, + 0xFD2 = { 4893, 1}, + 0xFD3 = { 4894, 1}, + 0xFD9 = { 4895, 4}, + 0xFDA = { 4899, 1}, + 0xFDB = { 4900, 1}, + 0xFE0 = { 4901, 28}, + 0xFE1 = { 4929, 26}, + 0xFE2 = { 4955, 26}, + 0xFE3 = { 4981, 32}, + 0xFE4 = { 5013, 29}, + 0xFE5 = { 5042, 27}, + 0xFE6 = { 5069, 27}, + 0xFE7 = { 5096, 33}, + 0xFE8 = { 5129, 32}, + 0xFE9 = { 5161, 17}, + 0xFEA = { 5178, 17}, + 0xFEB = { 5195, 29}, + 0xFEC = { 5224, 31}, + 0xFED = { 5255, 18}, + 0xFEE = { 5273, 26}, + 0xFEF = { 5299, 32}, + 0xFF0 = { 5331, 19}, + 0xFF1 = { 5350, 18}, + 0xFF2 = { 5368, 17}, + 0xFF3 = { 5385, 17}, + 0xFF4 = { 5402, 19}, + 0xFF5 = { 5421, 18}, + 0xFF6 = { 5439, 17}, + 0xFF7 = { 5456, 17}, + 0xFF8 = { 5473, 4}, + 0xFF9 = { 5477, 4}, + 0xFFA = { 5481, 4}, + 0xFFB = { 5485, 17}, + 0xFFC = { 5502, 4}, + 0xFFD = { 5506, 4}, + 0xFFE = { 5510, 4}, + 0xFFF = { 5514, 17}, } diff --git a/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin b/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin index b6b8063c3..6731e2023 100644 --- a/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin +++ b/core/rexcode/isa/arm32/tablegen/generated/encode_tables.odin @@ -8,2952 +8,2945 @@ package rexcode_arm32_generated import lib "../.." @(rodata) -ENCODE_FORMS := [1680]lib.Encoding{ +ENCODE_FORMS := [1745]lib.Encoding{ // .AND - { .AND, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {} }, - { .AND, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {} }, - { .AND, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02100000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00100000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .AND, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00100010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .AND, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004000, 0x0000FFC0, .THUMB, .T32, {} }, - { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0000000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0100000, 0xFBE08000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA000000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, - { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA100000, 0xFFE08000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, + { .AND, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02000000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00000000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00000010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02100000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00100000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00100010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .AND, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004000, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0000000, 0xFBF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0100000, 0xFBF08000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA000000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .AND, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA100000, 0xFFF08000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, // .EOR - { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02200000, 0x0FE00000, .BASE, .A32, {} }, - { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00200000, 0x0FE00010, .BASE, .A32, {} }, - { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00200010, 0x0FE00090, .BASE, .A32, {} }, - { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02300000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00300000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00300010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .EOR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004040, 0x0000FFC0, .THUMB, .T32, {} }, - { .EOR, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0800000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA800000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, + { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02200000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00200000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00200010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02300000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00300000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00300010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .EOR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004040, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0800000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .EOR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA800000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SUB - { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02400000, 0x0FE00000, .BASE, .A32, {} }, - { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00400000, 0x0FE00010, .BASE, .A32, {} }, - { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00400010, 0x0FE00090, .BASE, .A32, {} }, - { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00500000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00500010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .SUB, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE}, 0x00001A00, 0x0000FE00, .THUMB, .T32, {} }, - { .SUB, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE}, 0x00001E00, 0x0000FE00, .THUMB, .T32, {} }, - { .SUB, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00003800, 0x0000F800, .THUMB, .T32, {} }, - { .SUB, {.GPR,.IMM8,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000B080, 0x0000FF80, .THUMB, .T32, {} }, + { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02400000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00400000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00400010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02500000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00500000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SUB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00500010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SUB, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE}, 0x00001A00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00001E00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00003800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SUB, {.GPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B080, 0x0000FF80, .THUMB, .T32, {}, {.NONE,.NONE} }, // .RSB - { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {} }, - { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00600000, 0x0FE00010, .BASE, .A32, {} }, - { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00600010, 0x0FE00090, .BASE, .A32, {} }, - { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00700000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00700010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .RSB, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF1C00000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEBC00000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, + { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02600000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00600000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00600010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02700000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00700000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00700010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF1C00000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .RSB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEBC00000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .ADD - { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02800000, 0x0FE00000, .BASE, .A32, {} }, - { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00800000, 0x0FE00010, .BASE, .A32, {} }, - { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00800010, 0x0FE00090, .BASE, .A32, {} }, - { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02900000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00900000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00900010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .ADD, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE}, 0x00001800, 0x0000FE00, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE}, 0x00001C00, 0x0000FE00, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00003000, 0x0000F800, .THUMB, .T32, {} }, - { .ADD, {.GPR,.GPR,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE}, 0x00004400, 0x0000FF00, .THUMB, .T32, {} }, - { .ADD, {.GPR_LOW,.GPR,.IMM8,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x0000A800, 0x0000F800, .THUMB, .T32, {} }, - { .ADD, {.GPR,.IMM8,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000B000, 0x0000FF80, .THUMB, .T32, {} }, + { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02800000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00800000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00800010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE}, 0x00001800, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.GPR_LOW,.IMM3,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RN_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00001C00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00003000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE,.NONE,.NONE}, 0x00004400, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR_LOW,.GPR,.IMM8,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000A800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADD, {.GPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B000, 0x0000FF80, .THUMB, .T32, {}, {.NONE,.NONE} }, // .ADC - { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02A00000, 0x0FE00000, .BASE, .A32, {} }, - { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00A00000, 0x0FE00010, .BASE, .A32, {} }, - { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00A00010, 0x0FE00090, .BASE, .A32, {} }, - { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02B00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00B00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00B00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .ADC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004140, 0x0000FFC0, .THUMB, .T32, {} }, - { .ADC, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF1400000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEB400000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, + { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02A00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00A00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00A00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02B00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00B00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00B00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ADC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004140, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF1400000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ADC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEB400000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SBC - { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02C00000, 0x0FE00000, .BASE, .A32, {} }, - { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00C00000, 0x0FE00010, .BASE, .A32, {} }, - { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00C00010, 0x0FE00090, .BASE, .A32, {} }, - { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .SBC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004180, 0x0000FFC0, .THUMB, .T32, {} }, - { .SBC, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF1600000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEB600000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, + { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02C00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00C00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00C00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SBC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004180, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF1600000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .SBC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEB600000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .RSC - { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00E00000, 0x0FE00010, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00E00010, 0x0FE00090, .BASE, .A32, {} }, - { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00F00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x00F00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, + { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02E00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00E00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00E00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x02F00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00F00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .RSC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x00F00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, // .TST - { .TST, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03100000, 0x0FF0F000, .BASE, .A32, {} }, - { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01100000, 0x0FF0F010, .BASE, .A32, {} }, - { .TST, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01100010, 0x0FF0F090, .BASE, .A32, {} }, - { .TST, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004200, 0x0000FFC0, .THUMB, .T32, {} }, - { .TST, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF0100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEA100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, + { .TST, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03100000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01100000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TST, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01100010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TST, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004200, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .TST, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF0100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TST, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .TEQ - { .TEQ, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03300000, 0x0FF0F000, .BASE, .A32, {} }, - { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01300000, 0x0FF0F010, .BASE, .A32, {} }, - { .TEQ, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01300010, 0x0FF0F090, .BASE, .A32, {} }, - { .TEQ, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF0900F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEA900F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, + { .TEQ, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03300000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01300000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01300010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF0900F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .TEQ, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA900F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CMP - { .CMP, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03500000, 0x0FF0F000, .BASE, .A32, {} }, - { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01500000, 0x0FF0F010, .BASE, .A32, {} }, - { .CMP, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01500010, 0x0FF0F090, .BASE, .A32, {} }, - { .CMP, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00002800, 0x0000F800, .THUMB, .T32, {} }, - { .CMP, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004280, 0x0000FFC0, .THUMB, .T32, {} }, - { .CMP, {.GPR,.GPR,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE}, 0x00004500, 0x0000FF00, .THUMB, .T32, {} }, - { .CMP, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF1B00F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEBB00F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, + { .CMP, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03500000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01500000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01500010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00002800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004280, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE,.NONE,.NONE}, 0x00004500, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMP, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF1B00F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CMP, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEBB00F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CMN - { .CMN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE}, 0x03700000, 0x0FF0F000, .BASE, .A32, {} }, - { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01700000, 0x0FF0F010, .BASE, .A32, {} }, - { .CMN, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE}, 0x01700010, 0x0FF0F090, .BASE, .A32, {} }, - { .CMN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000042C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .CMN, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF1100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true} }, - { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xEB100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true} }, + { .CMN, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03700000, 0x0FF0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01700000, 0x0FF0F010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01700010, 0x0FF0F090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RN_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000042C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .CMN, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF1100F00, 0xFBF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .CMN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEB100F00, 0xFFF08F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .ORR - { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03800000, 0x0FE00000, .BASE, .A32, {} }, - { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01800000, 0x0FE00010, .BASE, .A32, {} }, - { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01800010, 0x0FE00090, .BASE, .A32, {} }, - { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03900000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01900000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01900010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .ORR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004300, 0x0000FFC0, .THUMB, .T32, {} }, - { .ORR, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0400000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA400000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, + { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03800000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01800000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01800010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03900000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01900000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01900010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .ORR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004300, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0400000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ORR, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA400000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .MOV - { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {} }, - { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01A00000, 0x0FEF0010, .BASE, .A32, {} }, - { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01A00010, 0x0FEF0090, .BASE, .A32, {} }, - { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true} }, - { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01B00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true} }, - { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01B00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true} }, - { .MOV, {.GPR_LOW,.IMM8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x00002000, 0x0000F800, .THUMB, .T32, {} }, - { .MOV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE}, 0x00004600, 0x0000FF00, .THUMB, .T32, {} }, - { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF04F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true} }, - { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF05F0000, 0xFBEF8000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, - { .MOV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true} }, - { .MOV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA5F0000, 0xFFEF8000, .V6T2, .T32, {sets_flags=true, thumb32=true} }, + { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03A00000, 0x0FEF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01A00000, 0x0FEF0010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01A00010, 0x0FEF0090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03B00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MOV, {.GPR_LOW,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00002000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.RM_T16_HI,.NONE,.NONE,.NONE,.NONE}, 0x00004600, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF04F0000, 0xFBFF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF05F0000, 0xFBFF8000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MOV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA5F0000, 0xFFFF8000, .V6T2, .T32, {sets_flags=true, thumb32=true}, {.NONE,.NONE} }, // .BIC - { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {} }, - { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01C00000, 0x0FE00010, .BASE, .A32, {} }, - { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01C00010, 0x0FE00090, .BASE, .A32, {} }, - { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true} }, - { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true} }, - { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true} }, - { .BIC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004380, 0x0000FFC0, .THUMB, .T32, {} }, - { .BIC, {.GPR,.GPR,.IMM_T32_MOD,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE}, 0xF0200000, 0xFBE08000, .V6T2, .T32, {thumb32=true} }, - { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xEA200000, 0xFFE08000, .V6T2, .T32, {thumb32=true} }, + { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03C00000, 0x0FE00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01C00000, 0x0FE00010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01C00010, 0x0FE00090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.IMM_MOD,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.A32_IMM_MOD,.NONE,.NONE,.NONE}, 0x03D00000, 0x0FF00000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01D00000, 0x0FF00010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_RSR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x01D00010, 0x0FF00090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .BIC, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004380, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE}, 0xF0200000, 0xFBE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .BIC, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xEA200000, 0xFFE08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .MVN - { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {} }, - { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01E00000, 0x0FEF0010, .BASE, .A32, {} }, - { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01E00010, 0x0FEF0090, .BASE, .A32, {} }, - { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true} }, - { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01F00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true} }, - { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01F00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true} }, - { .MVN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000043C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .MVN, {.GPR,.IMM_T32_MOD,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE}, 0xF06F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true} }, - { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA6F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true} }, + { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03E00000, 0x0FEF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01E00000, 0x0FEF0010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01E00010, 0x0FEF0090, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x03F00000, 0x0FFF0000, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00000, 0x0FFF0010, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_RSR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00010, 0x0FFF0090, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MVN, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000043C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MVN, {.GPR,.IMM_T32_MOD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.T32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0xF06F0000, 0xFBEF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .MVN, {.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA6F0000, 0xFFEF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LSL - { .LSL, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00000, 0x0FFF0070, .BASE, .A32, {} }, - { .LSL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00010, 0x0FFF00F0, .BASE, .A32, {} }, - { .LSL, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00000000, 0x0000F800, .THUMB, .T32, {} }, - { .LSL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004080, 0x0000FFC0, .THUMB, .T32, {} }, - { .LSL, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0000, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .LSL, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA00F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, + { .LSL, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE,.NONE,.NONE}, 0x01A00000, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00010, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00000000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004080, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0000, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LSR - { .LSR, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00020, 0x0FFF0070, .BASE, .A32, {} }, - { .LSR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00030, 0x0FFF00F0, .BASE, .A32, {} }, - { .LSR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00000800, 0x0000F800, .THUMB, .T32, {} }, - { .LSR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000040C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .LSR, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0010, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .LSR, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA20F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, + { .LSR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT_32,.NONE,.NONE,.NONE}, 0x01A00020, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00030, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00000800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000040C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0010, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LSR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA20F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .ASR - { .ASR, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00040, 0x0FFF0070, .BASE, .A32, {} }, - { .ASR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00050, 0x0FFF00F0, .BASE, .A32, {} }, - { .ASR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00001000, 0x0000F800, .THUMB, .T32, {} }, - { .ASR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004100, 0x0000FFC0, .THUMB, .T32, {} }, - { .ASR, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0020, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .ASR, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA40F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, + { .ASR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT_32,.NONE,.NONE,.NONE}, 0x01A00040, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00050, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR_LOW,.GPR_LOW,.IMM5,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00001000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004100, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0020, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ASR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA40F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .ROR - { .ROR, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE}, 0x01A00060, 0x0FFF0070, .BASE, .A32, {} }, - { .ROR, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE}, 0x01A00070, 0x0FFF00F0, .BASE, .A32, {} }, - { .ROR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x000041C0, 0x0000FFC0, .THUMB, .T32, {} }, - { .ROR, {.GPR,.GPR,.IMM5,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xEA4F0030, 0xFFEF8030, .V6T2, .T32, {thumb32=true} }, - { .ROR, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA60F000, 0xFFE0F0F0, .V6T2, .T32, {thumb32=true} }, + { .ROR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.A32_IMM_SHIFT,.NONE,.NONE,.NONE}, 0x01A00060, 0x0FFF0070, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01A00070, 0x0FFF00F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .ROR, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x000041C0, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xEA4F0030, 0xFFFF8030, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .ROR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA60F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .RRX - { .RRX, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x01A00060, 0x0FFF0FF0, .BASE, .A32, {} }, + { .RRX, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x01A00060, 0x0FFF0FF0, .BASE, .A32, {}, {.NONE,.NONE} }, // .ADR - { .ADR, {.GPR_LOW,.REL8,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE}, 0x0000A000, 0x0000F800, .THUMB, .T32, {} }, + { .ADR, {.GPR_LOW,.REL8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000A000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, // .NEG - { .NEG, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004240, 0x0000FFC0, .THUMB, .T32, {} }, + { .NEG, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004240, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, // .MOVW - { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x03000000, 0x0FF00000, .V6T2, .A32, {} }, - { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE}, 0xF2400000, 0xFBF08000, .V6T2, .T32, {thumb32=true} }, + { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x03000000, 0x0FF00000, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .MOVW, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF2400000, 0xFBF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .MOVT - { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x03400000, 0x0FF00000, .V6T2, .A32, {} }, - { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE}, 0xF2C00000, 0xFBF08000, .V6T2, .T32, {thumb32=true} }, + { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x03400000, 0x0FF00000, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .MOVT, {.GPR,.IMM16_LO_HI,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF2C00000, 0xFBF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .BFC - { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE}, {.RD,.BFI_LSB,.BFI_MSB,.NONE}, 0x07C0001F, 0x0FE0007F, .V6T2, .A32, {} }, - { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE}, {.RD_T32,.BFI_LSB_T32,.BFI_MSB,.NONE}, 0xF36F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true} }, + { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE,.NONE,.NONE}, {.RD,.BFI_LSB,.BFI_MSB,.NONE,.NONE,.NONE}, 0x07C0001F, 0x0FE0007F, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .BFC, {.GPR,.IMM5,.IMM5_W,.NONE,.NONE,.NONE}, {.RD_T32,.BFI_LSB_T32,.BFI_MSB,.NONE,.NONE,.NONE}, 0xF36F0000, 0xFFFF8000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .BFI - { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB}, 0x07C00010, 0x0FE00070, .V6T2, .A32, {} }, - { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB}, 0xF3600000, 0xFFF08000, .V6T2, .T32, {thumb32=true} }, + { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB,.NONE,.NONE}, 0x07C00010, 0x0FE00070, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .BFI, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB,.NONE,.NONE}, 0xF3600000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SBFX - { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB}, 0x07A00050, 0x0FE00070, .V6T2, .A32, {} }, - { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB}, 0xF3400000, 0xFFF08000, .V6T2, .T32, {thumb32=true} }, + { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD,.RM_A32,.BFI_LSB,.BFX_WIDTH,.NONE,.NONE}, 0x07A00050, 0x0FE00070, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .SBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFX_WIDTH,.NONE,.NONE}, 0xF3400000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UBFX - { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD,.RM_A32,.BFI_LSB,.BFI_MSB}, 0x07E00050, 0x0FE00070, .V6T2, .A32, {} }, - { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFI_MSB}, 0xF3C00000, 0xFFF08000, .V6T2, .T32, {thumb32=true} }, + { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD,.RM_A32,.BFI_LSB,.BFX_WIDTH,.NONE,.NONE}, 0x07E00050, 0x0FE00070, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .UBFX, {.GPR,.GPR,.IMM5,.IMM5_W,.NONE,.NONE}, {.RD_T32,.RN_T32,.BFI_LSB_T32,.BFX_WIDTH,.NONE,.NONE}, 0xF3C00000, 0xFFF08000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SXTB - { .SXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06AF0070, 0x0FFF0070, .V6, .A32, {} }, - { .SXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B240, 0x0000FFC0, .V6, .T32, {} }, - { .SXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA4FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, + { .SXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06AF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B240, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .SXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA4FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SXTB16 - { .SXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x068F0070, 0x0FFF0070, .V6, .A32, {} }, - { .SXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA2FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, + { .SXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x068F0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA2FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SXTH - { .SXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06BF0070, 0x0FFF0070, .V6, .A32, {} }, - { .SXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B200, 0x0000FFC0, .V6, .T32, {} }, - { .SXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA0FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, + { .SXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06BF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B200, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .SXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA0FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UXTB - { .UXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06EF0070, 0x0FFF0070, .V6, .A32, {} }, - { .UXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B2C0, 0x0000FFC0, .V6, .T32, {} }, - { .UXTB, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA5FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, + { .UXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06EF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTB, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B2C0, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .UXTB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA5FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UXTB16 - { .UXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06CF0070, 0x0FFF0070, .V6, .A32, {} }, - { .UXTB16, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA3FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, + { .UXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06CF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTB16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA3FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UXTH - { .UXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06FF0070, 0x0FFF0070, .V6, .A32, {} }, - { .UXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000B280, 0x0000FFC0, .V6, .T32, {} }, - { .UXTH, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA1FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true} }, + { .UXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06FF0070, 0x0FFF0070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000B280, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .UXTH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA1FF080, 0xFFFFF0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SXTAB - { .SXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06A00070, 0x0FF00070, .V6, .A32, {} }, - { .SXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA40F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, + { .SXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06A00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA40F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SXTAB16 - { .SXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800070, 0x0FF00070, .V6, .A32, {} }, - { .SXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA20F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, + { .SXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA20F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SXTAH - { .SXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06B00070, 0x0FF00070, .V6, .A32, {} }, - { .SXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA00F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, + { .SXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06B00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .SXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA00F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UXTAB - { .UXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06E00070, 0x0FF00070, .V6, .A32, {} }, - { .UXTAB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA50F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, + { .UXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06E00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTAB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA50F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UXTAB16 - { .UXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06C00070, 0x0FF00070, .V6, .A32, {} }, - { .UXTAB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA30F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, + { .UXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06C00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTAB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA30F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UXTAH - { .UXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06F00070, 0x0FF00070, .V6, .A32, {} }, - { .UXTAH, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA10F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true} }, + { .UXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06F00070, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, + { .UXTAH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA10F080, 0xFFF0F0C0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CLZ - { .CLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x016F0F10, 0x0FFF0FF0, .V5T, .A32, {} }, - { .CLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFAB0F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .CLZ, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x016F0F10, 0x0FFF0FF0, .V5T, .A32, {}, {.NONE,.NONE} }, + { .CLZ, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFAB0F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .RBIT - { .RBIT, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06FF0F30, 0x0FFF0FF0, .V6T2, .A32, {} }, - { .RBIT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .RBIT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06FF0F30, 0x0FFF0FF0, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .RBIT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .REV - { .REV, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06BF0F30, 0x0FFF0FF0, .V6, .A32, {} }, - { .REV, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000BA00, 0x0000FFC0, .V6, .T32, {} }, - { .REV, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .REV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06BF0F30, 0x0FFF0FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .REV, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000BA00, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .REV, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .REV16 - { .REV16, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06BF0FB0, 0x0FFF0FF0, .V6, .A32, {} }, - { .REV16, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000BA40, 0x0000FFC0, .V6, .T32, {} }, - { .REV16, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .REV16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06BF0FB0, 0x0FFF0FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .REV16, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000BA40, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .REV16, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .REVSH - { .REVSH, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE}, 0x06FF0FB0, 0x0FFF0FF0, .V6, .A32, {} }, - { .REVSH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x0000BAC0, 0x0000FFC0, .V6, .T32, {} }, - { .REVSH, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE}, 0xFA90F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .REVSH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x06FF0FB0, 0x0FFF0FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .REVSH, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x0000BAC0, 0x0000FFC0, .V6, .T32, {}, {.NONE,.NONE} }, + { .REVSH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xFA90F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SEL - { .SEL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800FB0, 0x0FF00FF0, .V6, .A32, {} }, + { .SEL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800FB0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, // .PKHBT - { .PKHBT, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800010, 0x0FF00070, .V6, .A32, {} }, + { .PKHBT, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800010, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, // .PKHTB - { .PKHTB, {.GPR,.GPR,.GPR_SHIFTED,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06800050, 0x0FF00070, .V6, .A32, {} }, + { .PKHTB, {.GPR,.GPR,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06800050, 0x0FF00070, .V6, .A32, {}, {.NONE,.NONE} }, // .USAD8 - { .USAD8, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0780F010, 0x0FF0F0F0, .V6, .A32, {} }, + { .USAD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0780F010, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .USADA8 - { .USADA8, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07800010, 0x0FF000F0, .V6, .A32, {} }, + { .USADA8, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07800010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SSAT - { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06A00010, 0x0FE00030, .V6, .A32, {} }, - { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3000000, 0xFFD08020, .V6T2, .T32, {thumb32=true} }, + { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE,.NONE,.NONE}, 0x06A00010, 0x0FE00030, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3000000, 0xFFD08020, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .USAT - { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06E00010, 0x0FE00030, .V6, .A32, {} }, - { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3800000, 0xFFD08020, .V6T2, .T32, {thumb32=true} }, + { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5_U,.RM_A32,.NONE,.NONE,.NONE}, 0x06E00010, 0x0FE00030, .V6, .A32, {}, {.NONE,.NONE} }, + { .USAT, {.GPR,.IMM4_SAT,.GPR_SHIFTED,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_U_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3800000, 0xFFD08020, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SSAT16 - { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06A00F30, 0x0FF00FF0, .V6, .A32, {} }, - { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3200000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE,.NONE,.NONE}, 0x06A00F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3200000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .USAT16 - { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD,.SAT_IMM5,.RM_A32,.NONE}, 0x06E00F30, 0x0FF00FF0, .V6, .A32, {} }, - { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE}, {.RD_T32,.SAT_IMM5_T32,.RN_T32,.NONE}, 0xF3A00000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD,.SAT_IMM5_U,.RM_A32,.NONE,.NONE,.NONE}, 0x06E00F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USAT16, {.GPR,.IMM4_SAT,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.SAT_IMM5_U_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xF3A00000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QADD - { .QADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01000050, 0x0FF000F0, .V5TE, .A32, {} }, - { .QADD, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01000050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .QADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F080, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QSUB - { .QSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01200050, 0x0FF000F0, .V5TE, .A32, {} }, - { .QSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01200050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .QSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F0A0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QDADD - { .QDADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01400050, 0x0FF000F0, .V5TE, .A32, {} }, - { .QDADD, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QDADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01400050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .QDADD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F090, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QDSUB - { .QDSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE}, 0x01600050, 0x0FF000F0, .V5TE, .A32, {} }, - { .QDSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE}, 0xFA80F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QDSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01600050, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .QDSUB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RM_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xFA80F0B0, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SADD8 - { .SADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F90, 0x0FF00FF0, .V6, .A32, {} }, - { .SADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SADD16 - { .SADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F10, 0x0FF00FF0, .V6, .A32, {} }, - { .SADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SASX - { .SASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F30, 0x0FF00FF0, .V6, .A32, {} }, - { .SASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SSAX - { .SSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F50, 0x0FF00FF0, .V6, .A32, {} }, - { .SSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SSUB8 - { .SSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .SSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SSUB16 - { .SSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06100F70, 0x0FF00FF0, .V6, .A32, {} }, - { .SSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06100F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UADD8 - { .UADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F90, 0x0FF00FF0, .V6, .A32, {} }, - { .UADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UADD16 - { .UADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F10, 0x0FF00FF0, .V6, .A32, {} }, - { .UADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UASX - { .UASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F30, 0x0FF00FF0, .V6, .A32, {} }, - { .UASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .USAX - { .USAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F50, 0x0FF00FF0, .V6, .A32, {} }, - { .USAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .USAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .USUB8 - { .USUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .USUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .USUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .USUB16 - { .USUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06500F70, 0x0FF00FF0, .V6, .A32, {} }, - { .USUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .USUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06500F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .USUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F040, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QADD8 - { .QADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F90, 0x0FF00FF0, .V6, .A32, {} }, - { .QADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QADD16 - { .QADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F10, 0x0FF00FF0, .V6, .A32, {} }, - { .QADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QASX - { .QASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F30, 0x0FF00FF0, .V6, .A32, {} }, - { .QASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QSAX - { .QSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F50, 0x0FF00FF0, .V6, .A32, {} }, - { .QSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QSUB8 - { .QSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .QSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .QSUB16 - { .QSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06200F70, 0x0FF00FF0, .V6, .A32, {} }, - { .QSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .QSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06200F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .QSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F010, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UQADD8 - { .UQADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F90, 0x0FF00FF0, .V6, .A32, {} }, - { .UQADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UQADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UQADD16 - { .UQADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F10, 0x0FF00FF0, .V6, .A32, {} }, - { .UQADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UQADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UQASX - { .UQASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F30, 0x0FF00FF0, .V6, .A32, {} }, - { .UQASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UQASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UQSAX - { .UQSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F50, 0x0FF00FF0, .V6, .A32, {} }, - { .UQSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UQSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UQSUB8 - { .UQSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .UQSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UQSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UQSUB16 - { .UQSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06600F70, 0x0FF00FF0, .V6, .A32, {} }, - { .UQSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UQSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06600F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UQSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F050, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SHADD8 - { .SHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F90, 0x0FF00FF0, .V6, .A32, {} }, - { .SHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SHADD16 - { .SHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F10, 0x0FF00FF0, .V6, .A32, {} }, - { .SHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SHASX - { .SHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F30, 0x0FF00FF0, .V6, .A32, {} }, - { .SHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SHSAX - { .SHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F50, 0x0FF00FF0, .V6, .A32, {} }, - { .SHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SHSUB8 - { .SHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .SHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SHSUB16 - { .SHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06300F70, 0x0FF00FF0, .V6, .A32, {} }, - { .SHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .SHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06300F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F020, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UHADD8 - { .UHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F90, 0x0FF00FF0, .V6, .A32, {} }, - { .UHADD8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA80F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F90, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHADD8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA80F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UHADD16 - { .UHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F10, 0x0FF00FF0, .V6, .A32, {} }, - { .UHADD16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFA90F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F10, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHADD16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFA90F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UHASX - { .UHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F30, 0x0FF00FF0, .V6, .A32, {} }, - { .UHASX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAA0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F30, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHASX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAA0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UHSAX - { .UHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F50, 0x0FF00FF0, .V6, .A32, {} }, - { .UHSAX, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAE0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F50, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHSAX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAE0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UHSUB8 - { .UHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700FF0, 0x0FF00FF0, .V6, .A32, {} }, - { .UHSUB8, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAC0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700FF0, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHSUB8, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAC0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UHSUB16 - { .UHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x06700F70, 0x0FF00FF0, .V6, .A32, {} }, - { .UHSUB16, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFAD0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .UHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0x06700F70, 0x0FF00FF0, .V6, .A32, {}, {.NONE,.NONE} }, + { .UHSUB16, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFAD0F060, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SMUAD - { .SMUAD, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F010, 0x0FF0F0F0, .V6, .A32, {} }, + { .SMUAD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F010, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMUADX - { .SMUADX, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F030, 0x0FF0F0F0, .V6, .A32, {} }, + { .SMUADX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F030, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMUSD - { .SMUSD, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F050, 0x0FF0F0F0, .V6, .A32, {} }, + { .SMUSD, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F050, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMUSDX - { .SMUSDX, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0700F070, 0x0FF0F0F0, .V6, .A32, {} }, + { .SMUSDX, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0700F070, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLAD - { .SMLAD, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000010, 0x0FF000F0, .V6, .A32, {} }, + { .SMLAD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLADX - { .SMLADX, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000030, 0x0FF000F0, .V6, .A32, {} }, + { .SMLADX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000030, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLSD - { .SMLSD, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000050, 0x0FF000F0, .V6, .A32, {} }, + { .SMLSD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000050, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLSDX - { .SMLSDX, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07000070, 0x0FF000F0, .V6, .A32, {} }, + { .SMLSDX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07000070, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLALD - { .SMLALD, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400010, 0x0FF000F0, .V6, .A32, {} }, + { .SMLALD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLALDX - { .SMLALDX, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400030, 0x0FF000F0, .V6, .A32, {} }, + { .SMLALDX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400030, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLSLD - { .SMLSLD, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400050, 0x0FF000F0, .V6, .A32, {} }, + { .SMLSLD, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400050, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLSLDX - { .SMLSLDX, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x07400070, 0x0FF000F0, .V6, .A32, {} }, + { .SMLSLDX, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x07400070, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMMUL - { .SMMUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0750F010, 0x0FF0F0F0, .V6, .A32, {} }, + { .SMMUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0750F010, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMMULR - { .SMMULR, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0750F030, 0x0FF0F0F0, .V6, .A32, {} }, + { .SMMULR, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0750F030, 0x0FF0F0F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMMLA - { .SMMLA, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07500010, 0x0FF000F0, .V6, .A32, {} }, + { .SMMLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07500010, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMMLAR - { .SMMLAR, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x07500030, 0x0FF000F0, .V6, .A32, {} }, + { .SMMLAR, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x07500030, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMMLS - { .SMMLS, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x075000D0, 0x0FF000F0, .V6, .A32, {} }, + { .SMMLS, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x075000D0, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMMLSR - { .SMMLSR, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x075000F0, 0x0FF000F0, .V6, .A32, {} }, + { .SMMLSR, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x075000F0, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .MUL - { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {} }, - { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x00100090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .MUL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE}, 0x00004340, 0x0000FFC0, .THUMB, .T32, {} }, - { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFB00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x00000090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x00100090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MUL, {.GPR_LOW,.GPR_LOW,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.RM_T16_LO,.NONE,.NONE,.NONE,.NONE}, 0x00004340, 0x0000FFC0, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFB00F000, 0xFFF0F0F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .MLA - { .MLA, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x00200090, 0x0FE000F0, .BASE, .A32, {} }, - { .MLA, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x00300090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .MLA, {.GPR,.GPR,.GPR,.GPR}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32}, 0xFB000000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .MLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x00200090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x00300090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .MLA, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32,.NONE,.NONE}, 0xFB000000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .MLS - { .MLS, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x00600090, 0x0FF000F0, .V6T2, .A32, {} }, - { .MLS, {.GPR,.GPR,.GPR,.GPR}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32}, 0xFB000010, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .MLS, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x00600090, 0x0FF000F0, .V6T2, .A32, {}, {.NONE,.NONE} }, + { .MLS, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.RA_T32,.NONE,.NONE}, 0xFB000010, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UMULL - { .UMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00800090, 0x0FE000F0, .BASE, .A32, {} }, - { .UMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00900090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .UMULL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFBA00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .UMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00800090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .UMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00900090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .UMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFBA00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UMLAL - { .UMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00A00090, 0x0FE000F0, .BASE, .A32, {} }, - { .UMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00B00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .UMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFBE00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .UMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00A00090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .UMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00B00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .UMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFBE00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SMULL - { .SMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00C00090, 0x0FE000F0, .BASE, .A32, {} }, - { .SMULL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00D00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .SMULL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFB800000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .SMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00C00090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00D00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SMULL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFB800000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SMLAL - { .SMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00E00090, 0x0FE000F0, .BASE, .A32, {} }, - { .SMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00F00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true} }, - { .SMLAL, {.GPR,.GPR,.GPR,.GPR}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32}, 0xFBC00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .SMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00E00090, 0x0FE000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00F00090, 0x0FF000F0, .BASE, .A32, {sets_flags=true}, {.NONE,.NONE} }, + { .SMLAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RT_T32,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFBC00000, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UMAAL - { .UMAAL, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x00400090, 0x0FF000F0, .V6, .A32, {} }, + { .UMAAL, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x00400090, 0x0FF000F0, .V6, .A32, {}, {.NONE,.NONE} }, // .SMLABB - { .SMLABB, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x01000080, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLABB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x01000080, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLABT - { .SMLABT, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x010000C0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLABT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x010000C0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLATB - { .SMLATB, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x010000A0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLATB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x010000A0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLATT - { .SMLATT, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x010000E0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLATT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x010000E0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLAWB - { .SMLAWB, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x01200080, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLAWB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x01200080, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLAWT - { .SMLAWT, {.GPR,.GPR,.GPR,.GPR}, {.RN_A32,.RM_A32,.RS_A32,.RD}, 0x012000C0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLAWT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.RD,.NONE,.NONE}, 0x012000C0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMULBB - { .SMULBB, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x01600080, 0x0FF0F0F0, .V5TE, .A32, {} }, + { .SMULBB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x01600080, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMULBT - { .SMULBT, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x016000C0, 0x0FF0F0F0, .V5TE, .A32, {} }, + { .SMULBT, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x016000C0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMULTB - { .SMULTB, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x016000A0, 0x0FF0F0F0, .V5TE, .A32, {} }, + { .SMULTB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x016000A0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMULTT - { .SMULTT, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x016000E0, 0x0FF0F0F0, .V5TE, .A32, {} }, + { .SMULTT, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x016000E0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMULWB - { .SMULWB, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x012000A0, 0x0FF0F0F0, .V5TE, .A32, {} }, + { .SMULWB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x012000A0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMULWT - { .SMULWT, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x012000E0, 0x0FF0F0F0, .V5TE, .A32, {} }, + { .SMULWT, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x012000E0, 0x0FF0F0F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLALBB - { .SMLALBB, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x01400080, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLALBB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x01400080, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLALBT - { .SMLALBT, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x014000C0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLALBT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x014000C0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLALTB - { .SMLALTB, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x014000A0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLALTB, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x014000A0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SMLALTT - { .SMLALTT, {.GPR,.GPR,.GPR,.GPR}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32}, 0x014000E0, 0x0FF000F0, .V5TE, .A32, {} }, + { .SMLALTT, {.GPR,.GPR,.GPR,.GPR,.NONE,.NONE}, {.RDLO_A32,.RDHI_A32,.RM_A32,.RS_A32,.NONE,.NONE}, 0x014000E0, 0x0FF000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, // .SDIV - { .SDIV, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0710F010, 0x0FF0F0F0, .DIV, .A32, {} }, - { .SDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFB90F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true} }, + { .SDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0710F010, 0x0FF0F0F0, .DIV, .A32, {}, {.NONE,.NONE} }, + { .SDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFB90F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true}, {.NONE,.NONE} }, // .UDIV - { .UDIV, {.GPR,.GPR,.GPR,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE}, 0x0730F010, 0x0FF0F0F0, .DIV, .A32, {} }, - { .UDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFBB0F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true} }, + { .UDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.RM_A32,.RS_A32,.NONE,.NONE,.NONE}, 0x0730F010, 0x0FF0F0F0, .DIV, .A32, {}, {.NONE,.NONE} }, + { .UDIV, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFBB0F0F0, 0xFFF0F0F0, .DIV, .T32, {thumb32=true}, {.NONE,.NONE} }, // .B - { .B, {.REL24,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE}, 0x0A000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true} }, - { .B, {.REL8,.COND,.NONE,.NONE}, {.BRANCH_8_T16,.NONE,.NONE,.NONE}, 0x0000D000, 0x0000F000, .THUMB, .T32, {branch=true, cond_branch=true, writes_pc=true} }, - { .B, {.REL11,.NONE,.NONE,.NONE}, {.BRANCH_11_T16,.NONE,.NONE,.NONE}, 0x0000E000, 0x0000F800, .THUMB, .T32, {branch=true, writes_pc=true} }, - { .B, {.REL20,.COND,.NONE,.NONE}, {.BRANCH_20_T32,.NONE,.NONE,.NONE}, 0xF0008000, 0xF800D000, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, thumb32=true} }, - { .B, {.REL24_T32,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE}, 0xF0009000, 0xF800D000, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true} }, + { .B, {.REL24,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0A000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .B, {.REL8,.COND,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_8_T16,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000D000, 0x0000F000, .THUMB, .T32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .B, {.REL11,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_11_T16,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000E000, 0x0000F800, .THUMB, .T32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .B, {.REL20,.COND,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_20_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF0008000, 0xF800D000, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, + { .B, {.REL24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF0009000, 0xF800D000, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, // .BL - { .BL, {.REL24,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE}, 0x0B000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true} }, - { .BL, {.REL24_T32,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE}, 0xF000D000, 0xF800D000, .THUMB, .T32, {branch=true, writes_pc=true, thumb32=true} }, + { .BL, {.REL24,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0B000000, 0x0F000000, .BASE, .A32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BL, {.REL24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF000D000, 0xF800D000, .THUMB, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, // .BX - { .BX, {.GPR,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE}, 0x012FFF10, 0x0FFFFFF0, .BASE, .A32, {branch=true, writes_pc=true} }, - { .BX, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004700, 0x0000FF87, .THUMB, .T32, {branch=true, writes_pc=true} }, + { .BX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x012FFF10, 0x0FFFFFF0, .BASE, .A32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004700, 0x0000FF87, .THUMB, .T32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, // .BLX - { .BLX, {.GPR,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE}, 0x012FFF30, 0x0FFFFFF0, .V5T, .A32, {branch=true, writes_pc=true} }, - { .BLX, {.REL24,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE}, 0xFA000000, 0xFE000000, .V5T, .A32, {branch=true, writes_pc=true} }, - { .BLX, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004780, 0x0000FF87, .V5T, .T32, {branch=true, writes_pc=true} }, + { .BLX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x012FFF30, 0x0FFFFFF0, .V5T, .A32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BLX, {.REL24,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xFA000000, 0xFE000000, .V5T, .A32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, + { .BLX, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004780, 0x0000FF87, .V5T, .T32, {branch=true, writes_pc=true}, {.NONE,.NONE} }, // .BXJ - { .BXJ, {.GPR,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE}, 0x012FFF20, 0x0FFFFFF0, .V5TEJ, .A32, {branch=true, writes_pc=true, deprecated=true} }, + { .BXJ, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x012FFF20, 0x0FFFFFF0, .V5TEJ, .A32, {branch=true, writes_pc=true, deprecated=true}, {.NONE,.NONE} }, // .CBZ - { .CBZ, {.GPR_LOW,.REL8,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE}, 0x0000B100, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true} }, + { .CBZ, {.GPR_LOW,.REL8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE,.NONE,.NONE}, 0x0000B100, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, // .CBNZ - { .CBNZ, {.GPR_LOW,.REL8,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE}, 0x0000B900, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true} }, + { .CBNZ, {.GPR_LOW,.REL8,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.BRANCH_CBZ,.NONE,.NONE,.NONE,.NONE}, 0x0000B900, 0x0000FD00, .V6T2, .T32, {branch=true, cond_branch=true, writes_pc=true}, {.NONE,.NONE} }, // .TBB - { .TBB, {.GPR,.GPR,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xE8D0F000, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true} }, + { .TBB, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D0F000, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, // .TBH - { .TBH, {.GPR,.GPR,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE}, 0xE8D0F010, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true} }, + { .TBH, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.RM_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D0F010, 0xFFF0FFF0, .V6T2, .T32, {branch=true, writes_pc=true, thumb32=true}, {.NONE,.NONE} }, // .MSR - { .MSR, {.PSR_FIELD,.IMM_MOD,.NONE,.NONE}, {.PSR_FIELD_MASK,.A32_IMM_MOD,.NONE,.NONE}, 0x0320F000, 0x0FB0F000, .BASE, .A32, {} }, - { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE}, {.PSR_FIELD_MASK,.RM_A32,.NONE,.NONE}, 0x0120F000, 0x0FB0FFF0, .BASE, .A32, {} }, - { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE}, {.PSR_FIELD_MASK,.RN_T32,.NONE,.NONE}, 0xF3808000, 0xFFF0F0FF, .V6T2, .T32, {thumb32=true} }, + { .MSR, {.PSR_FIELD,.IMM_MOD,.NONE,.NONE,.NONE,.NONE}, {.PSR_FIELD_MASK,.A32_IMM_MOD,.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FB0F000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE,.NONE,.NONE}, {.PSR_FIELD_MASK,.RM_A32,.NONE,.NONE,.NONE,.NONE}, 0x0120F000, 0x0FB0FFF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MSR, {.PSR_FIELD,.GPR,.NONE,.NONE,.NONE,.NONE}, {.PSR_FIELD_MASK,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xF3808000, 0xFFF0F0FF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .MRS - { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x010F0000, 0x0FBF0FFF, .BASE, .A32, {} }, - { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE}, 0xF3EF8000, 0xFFFFF0FF, .V6T2, .T32, {thumb32=true} }, + { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE,.NONE,.NONE}, {.RD,.MRS_SPEC_REG,.NONE,.NONE,.NONE,.NONE}, 0x010F0000, 0x0FBF0FFF, .BASE, .A32, {}, {.NONE,.NONE} }, + { .MRS, {.GPR,.PSR_FIELD,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3EF8000, 0xFFFFF0FF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CPS - { .CPS, {.IMM_IFLAGS,.NONE,.NONE,.NONE}, {.CPS_IFLAGS,.NONE,.NONE,.NONE}, 0xF1000000, 0xFFF1FE20, .V6, .A32, {} }, + { .CPS, {.IMM_IFLAGS,.NONE,.NONE,.NONE,.NONE,.NONE}, {.CPS_IFLAGS,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF1000000, 0xFFF1FE20, .V6, .A32, {}, {.NONE,.NONE} }, // .SETEND - { .SETEND, {.IMM_ENDIAN,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF1010000, 0xFFFFFDFF, .V6, .A32, {deprecated=true} }, + { .SETEND, {.IMM_ENDIAN,.NONE,.NONE,.NONE,.NONE,.NONE}, {.SETEND_ENDIAN,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF1010000, 0xFFFFFDFF, .V6, .A32, {deprecated=true}, {.NONE,.NONE} }, // .NOP - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFFFF, .V6K, .A32, {} }, - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF00, 0x0000FFFF, .V6T2, .T32, {} }, - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8000, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF00, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8000, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .YIELD - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F001, 0x0FFFFFFF, .V6K, .A32, {} }, - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF10, 0x0000FFFF, .V6T2, .T32, {} }, - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8001, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F001, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF10, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8001, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .WFE - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F002, 0x0FFFFFFF, .V6K, .A32, {} }, - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF20, 0x0000FFFF, .V6T2, .T32, {} }, - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8002, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F002, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF20, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8002, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .WFI - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F003, 0x0FFFFFFF, .V6K, .A32, {} }, - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF30, 0x0000FFFF, .V6T2, .T32, {} }, - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8003, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F003, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF30, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8003, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SEV - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F004, 0x0FFFFFFF, .V6K, .A32, {} }, - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BF40, 0x0000FFFF, .V6T2, .T32, {} }, - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8004, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F004, 0x0FFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BF40, 0x0000FFFF, .V6T2, .T32, {}, {.NONE,.NONE} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8004, 0xFFFFFFFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SEVL - { .SEVL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F005, 0x0FFFFFFF, .V8, .A32, {} }, + { .SEVL, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F005, 0x0FFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, // .DBG - { .DBG, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {} }, + { .DBG, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.DBG_OPTION,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F0F0, 0x0FFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, // .HINT - { .HINT, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {} }, + { .HINT, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F000, 0x0FFFFF00, .V6K, .A32, {}, {.NONE,.NONE} }, // .DMB - { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF57FF050, 0xFFFFFFF0, .V7, .A32, {} }, - { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF3BF8F50, 0xFFFFFFF0, .V7, .T32, {thumb32=true} }, + { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF050, 0xFFFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .DMB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F50, 0xFFFFFFF0, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, // .DSB - { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF57FF040, 0xFFFFFFF0, .V7, .A32, {} }, - { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF3BF8F40, 0xFFFFFFF0, .V7, .T32, {thumb32=true} }, + { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF040, 0xFFFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .DSB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F40, 0xFFFFFFF0, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, // .ISB - { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF57FF060, 0xFFFFFFF0, .V7, .A32, {} }, - { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE}, 0xF3BF8F60, 0xFFFFFFF0, .V7, .T32, {thumb32=true} }, + { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF060, 0xFFFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, + { .ISB, {.IMM_BARRIER,.NONE,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_TYPE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F60, 0xFFFFFFF0, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CLREX - { .CLREX, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF57FF01F, 0xFFFFFFFF, .V6K, .A32, {} }, - { .CLREX, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F2F, 0xFFFFFFFF, .V6K, .T32, {thumb32=true} }, + { .CLREX, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF01F, 0xFFFFFFFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .CLREX, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F2F, 0xFFFFFFFF, .V6K, .T32, {thumb32=true}, {.NONE,.NONE} }, // .PLD - { .PLD, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V5T, .A32, {} }, - { .PLD, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF890F000, 0xFFF0F000, .V6T2, .T32, {thumb32=true} }, + { .PLD, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .PLD, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF890F000, 0xFFF0F000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .PLDW - { .PLDW, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V7, .A32, {} }, - { .PLDW, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF830F000, 0xFFF0F000, .V7, .T32, {thumb32=true} }, + { .PLDW, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF5D0F000, 0xFFF0F000, .V7, .A32, {}, {.NONE,.NONE} }, + { .PLDW, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF830F000, 0xFFF0F000, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, // .PLI - { .PLI, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF4D0F000, 0xFF70F000, .V7, .A32, {} }, - { .PLI, {.MEM,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE}, 0xF990F000, 0xFFF0F000, .V7, .T32, {thumb32=true} }, + { .PLI, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF450F000, 0xFF70F000, .V7, .A32, {}, {.NONE,.NONE} }, + { .PLI, {.MEM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF990F000, 0xFFF0F000, .V7, .T32, {thumb32=true}, {.NONE,.NONE} }, // .HLT - { .HLT, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE1000070, 0xFFF000F0, .V8, .A32, {} }, + { .HLT, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE1000070, 0xFFF000F0, .V8, .A32, {}, {.NONE,.NONE} }, // .DCPS1 - { .DCPS1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF78F8001, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .DCPS1, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF78F8001, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .DCPS2 - { .DCPS2, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF78F8002, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .DCPS2, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF78F8002, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .DCPS3 - { .DCPS3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF78F8003, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .DCPS3, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF78F8003, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .ERET - { .ERET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0160006E, 0x0FFFFFFF, .V7VE, .A32, {writes_pc=true} }, + { .ERET, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0160006E, 0x0FFFFFFF, .V7VE, .A32, {writes_pc=true}, {.NONE,.NONE} }, // .ESB - { .ESB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F010, 0x0FFFFFFF, .V8, .A32, {} }, - { .ESB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8010, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .ESB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F010, 0x0FFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .ESB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8010, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .PSB_CSYNC - { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F011, 0x0FFFFFFF, .V8, .A32, {} }, - { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8011, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE320F011, 0xFFFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8011, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .TSB_CSYNC - { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F012, 0x0FFFFFFF, .V8, .A32, {} }, - { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8012, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE320F012, 0xFFFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8012, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CSDB - { .CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0320F014, 0x0FFFFFFF, .V8, .A32, {} }, - { .CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF8014, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .CSDB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0320F014, 0x0FFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .CSDB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF8014, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SB - { .SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF57FF070, 0xFFFFFFFF, .V8, .A32, {} }, - { .SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F70, 0xFFFFFFFF, .V8, .T32, {thumb32=true} }, + { .SB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF57FF070, 0xFFFFFFFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .SB, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3BF8F70, 0xFFFFFFFF, .V8, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SETPAN - { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0xF1100000, 0xFFFFFDFF, .V8, .A32, {} }, - { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0x0000B610, 0x0000FFF7, .V8, .T32, {} }, + { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF1100000, 0xFFFFFDFF, .V8, .A32, {}, {.NONE,.NONE} }, + { .SETPAN, {.IMM_HINT,.NONE,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B610, 0x0000FFF7, .V8, .T32, {}, {.NONE,.NONE} }, // .SVC - { .SVC, {.IMM,.NONE,.NONE,.NONE}, {.A32_IMM24,.NONE,.NONE,.NONE}, 0x0F000000, 0x0F000000, .BASE, .A32, {} }, - { .SVC, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000DF00, 0x0000FF00, .THUMB, .T32, {} }, + { .SVC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_IMM24,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0F000000, 0x0F000000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .SVC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000DF00, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, // .BKPT - { .BKPT, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE1200070, 0xFFF000F0, .V5T, .A32, {} }, - { .BKPT, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000BE00, 0x0000FF00, .V5T, .T32, {} }, + { .BKPT, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE1200070, 0xFFF000F0, .V5T, .A32, {}, {.NONE,.NONE} }, + { .BKPT, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BE00, 0x0000FF00, .V5T, .T32, {}, {.NONE,.NONE} }, // .HVC - { .HVC, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE1400070, 0xFFF000F0, .V7VE, .A32, {} }, + { .HVC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE1400070, 0xFFF000F0, .V7VE, .A32, {}, {.NONE,.NONE} }, // .SMC - { .SMC, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x01600070, 0x0FFFFFF0, .V7, .A32, {} }, + { .SMC, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x01600070, 0x0FFFFFF0, .V7, .A32, {}, {.NONE,.NONE} }, // .UDF - { .UDF, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE7F000F0, 0xFFF000F0, .BASE, .A32, {} }, - { .UDF, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x0000DE00, 0x0000FF00, .THUMB, .T32, {} }, - { .UDF, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF7F0A000, 0xFFF0F000, .V6T2, .T32, {thumb32=true} }, + { .UDF, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE7F000F0, 0xFFF000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .UDF, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000DE00, 0x0000FF00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .UDF, {.IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF7F0A000, 0xFFF0F000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDR - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05900000, 0x0F700000, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05B00000, 0x0F700000, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04900000, 0x0F700000, .BASE, .A32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07900000, 0x0F700010, .BASE, .A32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_HI,.MEM_LITERAL,.NONE,.NONE}, 0x00004800, 0x0000F800, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005800, 0x0000FE00, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00006800, 0x0000F800, .THUMB, .T32, {} }, - { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00009800, 0x0000F800, .THUMB, .T32, {} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8D00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8500000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, - { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_LITERAL,.NONE,.NONE}, 0xF85F0000, 0xFF7F0000, .V6T2, .T32, {thumb32=true} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07100000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.MEM_LITERAL,.NONE,.NONE,.NONE,.NONE}, 0x00004800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005800, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00006800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00009800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8D00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8500000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_LITERAL,.NONE,.NONE,.NONE,.NONE}, 0xF85F0000, 0xFF7F0000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STR - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05800000, 0x0F700000, .BASE, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05A00000, 0x0F700000, .BASE, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04800000, 0x0F700000, .BASE, .A32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07800000, 0x0F700010, .BASE, .A32, {} }, - { .STR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005000, 0x0000FE00, .THUMB, .T32, {} }, - { .STR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00006000, 0x0000F800, .THUMB, .T32, {} }, - { .STR, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00009000, 0x0000F800, .THUMB, .T32, {} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8C00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .STR, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8400000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07000000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005000, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00006000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STR, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00009000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8C00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STR, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8400000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDRB - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05D00000, 0x0F700000, .BASE, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05F00000, 0x0F700000, .BASE, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04D00000, 0x0F700000, .BASE, .A32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07D00000, 0x0F700010, .BASE, .A32, {} }, - { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005C00, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00007800, 0x0000F800, .THUMB, .T32, {} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8900000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05500000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04500000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07500000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005C00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00007800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8900000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STRB - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0x05C00000, 0x0F700000, .BASE, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x05E00000, 0x0F700000, .BASE, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04C00000, 0x0F700000, .BASE, .A32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x07C00000, 0x0F700010, .BASE, .A32, {} }, - { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005400, 0x0000FE00, .THUMB, .T32, {} }, - { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00007000, 0x0000F800, .THUMB, .T32, {} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8800000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .STRB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8000000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x05400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x05600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x07400000, 0x0F700010, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005400, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00007000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8800000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8000000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDRH - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01D000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01F000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00D000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x019000B0, 0x0F700FF0, .BASE, .A32, {} }, - { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005A00, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00008800, 0x0000F800, .THUMB, .T32, {} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x015000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x017000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x005000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x011000B0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005A00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00008800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STRH - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01C000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01E000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00C000B0, 0x0F7000F0, .BASE, .A32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x018000B0, 0x0F700FF0, .BASE, .A32, {} }, - { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005200, 0x0000FE00, .THUMB, .T32, {} }, - { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x00008000, 0x0000F800, .THUMB, .T32, {} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF8A00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .STRH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF8200000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x014000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x016000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x004000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x010000B0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005200, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00008000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8A00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .STRH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF8200000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDRSB - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01D000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01F000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00D000D0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x019000D0, 0x0F700FF0, .BASE, .A32, {} }, - { .LDRSB, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005600, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF9900000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRSB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF9100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x015000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x017000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x005000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x011000D0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005600, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9900000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRSB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9100000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDRSH - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01D000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01F000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00D000F0, 0x0F7000F0, .BASE, .A32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x019000F0, 0x0F700FF0, .BASE, .A32, {} }, - { .LDRSH, {.GPR_LOW,.MEM,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE}, 0x00005E00, 0x0000FE00, .THUMB, .T32, {} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xF9B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, - { .LDRSH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE}, 0xF9300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x015000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x017000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x005000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x011000F0, 0x0F700FF0, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR_LOW,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_LO,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0x00005E00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9B00000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .LDRSH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.MEM_REG_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xF9300000, 0xFFF00FC0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDRD - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01C000D0, 0x0F7000F0, .V5TE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01E000D0, 0x0F7000F0, .V5TE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00C000D0, 0x0F7000F0, .V5TE, .A32, {} }, - { .LDRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x018000D0, 0x0F700FF0, .V5TE, .A32, {} }, - { .LDRD, {.GPR,.GPR,.MEM,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE}, 0xE9500000, 0xFE500000, .V6T2, .T32, {thumb32=true} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE}, 0x014000D0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE}, 0x016000D0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE}, 0x004000D0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_REG_OFFSET,.NONE,.NONE,.NONE}, 0x010000D0, 0x0F700FF0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .LDRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE9500000, 0xFE500000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STRD - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x01C000F0, 0x0F7000F0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_PRE_INDEX,.NONE,.NONE}, 0x01E000F0, 0x0F7000F0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00C000F0, 0x0F7000F0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_REG_OFFSET,.NONE,.NONE}, 0x018000F0, 0x0F700FF0, .V5TE, .A32, {} }, - { .STRD, {.GPR,.GPR,.MEM,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE}, 0xE9400000, 0xFE500000, .V6T2, .T32, {thumb32=true} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE}, 0x014000F0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_PRE_INDEX,.NONE,.NONE,.NONE}, 0x016000F0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE}, 0x004000F0, 0x0F7000F0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32_PAIR,.MEM_REG_OFFSET,.NONE,.NONE,.NONE}, 0x010000F0, 0x0F700FF0, .V5TE, .A32, {}, {.NONE,.NONE} }, + { .STRD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE9400000, 0xFE500000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDRT - { .LDRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04B00000, 0x0F700000, .BASE, .A32, {} }, + { .LDRT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, // .STRT - { .STRT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04A00000, 0x0F700000, .BASE, .A32, {} }, + { .STRT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, // .LDRBT - { .LDRBT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04F00000, 0x0F700000, .BASE, .A32, {} }, + { .LDRBT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, // .STRBT - { .STRBT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x04E00000, 0x0F700000, .BASE, .A32, {} }, + { .STRBT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x04600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, // .LDRHT - { .LDRHT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00F000B0, 0x0F7000F0, .BASE, .A32, {} }, + { .LDRHT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x007000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, // .STRHT - { .STRHT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00E000B0, 0x0F7000F0, .BASE, .A32, {} }, + { .STRHT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x006000B0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, // .LDRSBT - { .LDRSBT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00F000D0, 0x0F7000F0, .BASE, .A32, {} }, + { .LDRSBT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x007000D0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, // .LDRSHT - { .LDRSHT, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.MEM_POST_INDEX,.NONE,.NONE}, 0x00F000F0, 0x0F7000F0, .BASE, .A32, {} }, + { .LDRSHT, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.MEM_IMM8_POST_INDEX,.NONE,.NONE,.NONE,.NONE}, 0x007000F0, 0x0F7000F0, .BASE, .A32, {}, {.NONE,.NONE} }, // .LDA - { .LDA, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01900C9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDA, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01900C9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STL - { .STL, {.GPR,.MEM,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE}, 0x0180FC90, 0x0FF0FFF0, .V8, .A32, {} }, + { .STL, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x0180FC90, 0x0FF0FFF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDAB - { .LDAB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01D00C9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDAB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01D00C9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STLB - { .STLB, {.GPR,.MEM,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE}, 0x01C0FC90, 0x0FF0FFF0, .V8, .A32, {} }, + { .STLB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01C0FC90, 0x0FF0FFF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDAH - { .LDAH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01F00C9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDAH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00C9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STLH - { .STLH, {.GPR,.MEM,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE}, 0x01E0FC90, 0x0FF0FFF0, .V8, .A32, {} }, + { .STLH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RM_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01E0FC90, 0x0FF0FFF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDREX - { .LDREX, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01900F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDREX, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE}, 0xE8500F00, 0xFFF00F00, .V6T2, .T32, {thumb32=true} }, + { .LDREX, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01900F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDREX, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8500F00, 0xFFF00F00, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STREX - { .STREX, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01800F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STREX, {.GPR,.GPR,.MEM,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE}, 0xE8400000, 0xFFF00000, .V6T2, .T32, {thumb32=true} }, + { .STREX, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01800F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STREX, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8400000, 0xFFF00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDREXB - { .LDREXB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01D00F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDREXB, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE}, 0xE8D00F4F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true} }, + { .LDREXB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01D00F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDREXB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D00F4F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STREXB - { .STREXB, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01C00F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STREXB, {.GPR,.GPR,.MEM,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE}, 0xE8C00F40, 0xFFF00FF0, .V6T2, .T32, {thumb32=true} }, + { .STREXB, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01C00F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STREXB, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8C00F40, 0xFFF00FF0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDREXH - { .LDREXH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01F00F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDREXH, {.GPR,.MEM,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE}, 0xE8D00F5F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true} }, + { .LDREXH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDREXH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE8D00F5F, 0xFFF00FFF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STREXH - { .STREXH, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01E00F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STREXH, {.GPR,.GPR,.MEM,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE}, 0xE8C00F50, 0xFFF00FF0, .V6T2, .T32, {thumb32=true} }, + { .STREXH, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01E00F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STREXH, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD_T32,.RT_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8C00F50, 0xFFF00FF0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDREXD - { .LDREXD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01B00F9F, 0x0FF00FFF, .V6K, .A32, {} }, - { .LDREXD, {.GPR,.GPR,.MEM,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE}, 0xE8D0007F, 0xFFF000FF, .V6T2, .T32, {thumb32=true} }, + { .LDREXD, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00F9F, 0x0FF00FFF, .V6K, .A32, {}, {.NONE,.NONE} }, + { .LDREXD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE,.NONE}, 0xE8D0007F, 0xFFF000FF, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STREXD - { .STREXD, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01A00F90, 0x0FF00FF0, .V6K, .A32, {} }, - { .STREXD, {.GPR,.GPR,.GPR,.MEM}, {.RD_T32,.RT_T32,.RT2_T32,.RN_T32}, 0xE8C00070, 0xFFF000F0, .V6T2, .T32, {thumb32=true} }, + { .STREXD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01A00F90, 0x0FF00FF0, .V6K, .A32, {}, {.NONE,.NONE} }, + { .STREXD, {.GPR,.GPR,.GPR,.MEM,.NONE,.NONE}, {.RD_T32,.RT_T32,.RT2_T32,.RN_T32,.NONE,.NONE}, 0xE8C00070, 0xFFF000F0, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .LDAEX - { .LDAEX, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01900E9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDAEX, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01900E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STLEX - { .STLEX, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01800E90, 0x0FF00FF0, .V8, .A32, {} }, + { .STLEX, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01800E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDAEXB - { .LDAEXB, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01D00E9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDAEXB, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01D00E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STLEXB - { .STLEXB, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01C00E90, 0x0FF00FF0, .V8, .A32, {} }, + { .STLEXB, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01C00E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDAEXH - { .LDAEXH, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01F00E9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDAEXH, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01F00E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STLEXH - { .STLEXH, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01E00E90, 0x0FF00FF0, .V8, .A32, {} }, + { .STLEXH, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01E00E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDAEXD - { .LDAEXD, {.GPR,.MEM,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE}, 0x01B00E9F, 0x0FF00FFF, .V8, .A32, {} }, + { .LDAEXD, {.GPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0x01B00E9F, 0x0FF00FFF, .V8, .A32, {}, {.NONE,.NONE} }, // .STLEXD - { .STLEXD, {.GPR,.GPR,.MEM,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE}, 0x01A00E90, 0x0FF00FF0, .V8, .A32, {} }, + { .STLEXD, {.GPR,.GPR,.MEM,.NONE,.NONE,.NONE}, {.RD,.RT_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01A00E90, 0x0FF00FF0, .V8, .A32, {}, {.NONE,.NONE} }, // .LDM - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08900000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08B00000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09900000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08100000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09100000, 0x0FD00000, .BASE, .A32, {} }, - { .LDM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE}, 0x0000C800, 0x0000F800, .THUMB, .T32, {} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE8900000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, - { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE9100000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, + { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08900000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08B00000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0000C800, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .LDM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE8900000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .STM - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08800000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08A00000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09800000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x08000000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE}, 0x09000000, 0x0FD00000, .BASE, .A32, {} }, - { .STM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE}, 0x0000C000, 0x0000F800, .THUMB, .T32, {} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE8800000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, - { .STM, {.GPR,.GPR_LIST,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE}, 0xE9000000, 0xFFD00000, .V6T2, .T32, {thumb32=true} }, + { .STM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08800000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08A00000, 0x0FF00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STM, {.GPR_LOW,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RD_T16_HI,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0000C000, 0x0000F800, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .STM, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE8800000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + // .LDMIB + { .LDMIB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09900000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + // .LDMDA + { .LDMDA, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08100000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + // .LDMDB + { .LDMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09100000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE9100000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, + // .STMIB + { .STMIB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09800000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + // .STMDA + { .STMDA, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x08000000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + // .STMDB + { .STMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0x09000000, 0x0FD00000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STMDB, {.GPR,.GPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE}, 0xE9000000, 0xFFD00000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .PUSH - { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x092D0000, 0x0FFF0000, .BASE, .A32, {} }, - { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x0000B400, 0x0000FE00, .THUMB, .T32, {} }, - { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0xE92D0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true} }, + { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x092D0000, 0x0FFF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000B400, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .PUSH, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE92D0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .POP - { .POP, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x08BD0000, 0x0FFF0000, .BASE, .A32, {} }, - { .POP, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0x0000BC00, 0x0000FE00, .THUMB, .T32, {} }, - { .POP, {.GPR_LIST,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE}, 0xE8BD0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true} }, + { .POP, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x08BD0000, 0x0FFF0000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .POP, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0000BC00, 0x0000FE00, .THUMB, .T32, {}, {.NONE,.NONE} }, + { .POP, {.GPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.A32_REG_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE8BD0000, 0xFFFF0000, .V6T2, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SWP - { .SWP, {.GPR,.GPR,.GPR,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE}, 0x01000090, 0x0FF00FF0, .BASE, .A32, {deprecated=true} }, + { .SWP, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01000090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}, {.NONE,.NONE} }, // .SWPB - { .SWPB, {.GPR,.GPR,.GPR,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE}, 0x01400090, 0x0FF00FF0, .BASE, .A32, {deprecated=true} }, - // .RFE - { .RFE, {.GPR,.NONE,.NONE,.NONE}, {.RN_A32,.NONE,.NONE,.NONE}, 0xF8100A00, 0xFE10FFFF, .V6, .A32, {} }, - // .SRS - { .SRS, {.IMM,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF84D0500, 0xFE5FFFE0, .V6, .A32, {} }, + { .SWPB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.RM_A32,.RN_A32,.NONE,.NONE,.NONE}, 0x01400090, 0x0FF00FF0, .BASE, .A32, {deprecated=true}, {.NONE,.NONE} }, + // .RFEDA + { .RFEDA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8100A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .RFEDA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8300A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + // .RFEDB + { .RFEDB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9100A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .RFEDB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9300A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + // .RFEIA + { .RFEIA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8900A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .RFEIA, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF8B00A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + // .RFEIB + { .RFEIB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9900A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + { .RFEIB, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF9B00A00, 0xFFF0FFFF, .V6, .A32, {}, {.NONE,.NONE} }, + // .SRSDA + { .SRSDA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF84D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSDA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF86D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + // .SRSDB + { .SRSDB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF94D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSDB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF96D0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + // .SRSIA + { .SRSIA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF8CD0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSIA, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF8ED0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + // .SRSIB + { .SRSIB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF9CD0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, + { .SRSIB, {.GPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.IMPL_SP,.MODE_IMM5,.NONE,.NONE,.NONE,.NONE}, 0xF9ED0500, 0xFFFFFFE0, .V6, .A32, {}, {.NONE,.NONE} }, // .CDP - { .CDP, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD}, 0x0E000000, 0x0F000010, .BASE, .A32, {} }, + { .CDP, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRD_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0x0E000000, 0x0F000010, .BASE, .A32, {}, {.NONE,.NONE} }, // .CDP2 - { .CDP2, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD}, 0xFE000000, 0xFF000010, .V5T, .A32, {} }, + { .CDP2, {.COPROC_NUM,.IMM_COPROC_OP,.COPROC_REG,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.COPROC_CRD_FIELD,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0xFE000000, 0xFF000010, .V5T, .A32, {}, {.NONE,.NONE} }, // .MCR - { .MCR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0x0E000010, 0x0F100010, .BASE, .A32, {} }, + { .MCR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0x0E000010, 0x0F100010, .BASE, .A32, {}, {.NONE,.NONE} }, // .MCR2 - { .MCR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0xFE000010, 0xFF100010, .V5T, .A32, {} }, + { .MCR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0xFE000010, 0xFF100010, .V5T, .A32, {}, {.NONE,.NONE} }, // .MRC - { .MRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0x0E100010, 0x0F100010, .BASE, .A32, {} }, + { .MRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0x0E100010, 0x0F100010, .BASE, .A32, {}, {.NONE,.NONE} }, // .MRC2 - { .MRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG}, {.COPROC_NUM_FIELD,.COPROC_OPC1_FIELD,.RT_A32,.COPROC_CRM_FIELD}, 0xFE100010, 0xFF100010, .V5T, .A32, {} }, + { .MRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.COPROC_REG,.COPROC_REG,.IMM_COPROC_OP}, {.COPROC_NUM_FIELD,.COPROC_OPC1_MCR,.RT_A32,.COPROC_CRN_FIELD,.COPROC_CRM_FIELD,.COPROC_OPC2_FIELD}, 0xFE100010, 0xFF100010, .V5T, .A32, {}, {.NONE,.NONE} }, // .MCRR - { .MCRR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0x0C400000, 0x0FF00000, .V6, .A32, {} }, + { .MCRR, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0x0C400000, 0x0FF00000, .V6, .A32, {}, {.NONE,.NONE} }, // .MCRR2 - { .MCRR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0xFC400000, 0xFFF00000, .V6, .A32, {} }, + { .MCRR2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0xFC400000, 0xFFF00000, .V6, .A32, {}, {.NONE,.NONE} }, // .MRRC - { .MRRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0x0C500000, 0x0FF00000, .V6, .A32, {} }, + { .MRRC, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0x0C500000, 0x0FF00000, .V6, .A32, {}, {.NONE,.NONE} }, // .MRRC2 - { .MRRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32}, 0xFC500000, 0xFFF00000, .V6, .A32, {} }, + { .MRRC2, {.COPROC_NUM,.IMM_COPROC_OP,.GPR,.GPR,.COPROC_REG,.NONE}, {.COPROC_NUM_FIELD,.COPROC_OPC_MCRR,.RT_A32,.RT2_A32,.COPROC_CRM_FIELD,.NONE}, 0xFC500000, 0xFFF00000, .V6, .A32, {}, {.NONE,.NONE} }, // .LDC - { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0x0C100000, 0x0F100000, .BASE, .A32, {} }, + { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D100000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C300000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, // .LDC2 - { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0xFC100000, 0xFF100000, .V5T, .A32, {} }, + { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD100000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD300000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC300000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, // .STC - { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0x0C000000, 0x0F100000, .BASE, .A32, {} }, + { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D000000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STC, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C200000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, // .STC2 - { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRN_FIELD,.MEM_IMM8_OFFSET,.NONE}, 0xFC000000, 0xFF100000, .V5T, .A32, {} }, + { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD000000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD200000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STC2, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC200000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + // .LDCL + { .LDCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D500000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .LDCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C700000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + // .LDC2L + { .LDC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD500000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD700000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .LDC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC700000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + // .STCL + { .STCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0x0D400000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0x0D600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + { .STCL, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0x0C600000, 0x0F700000, .BASE, .A32, {}, {.NONE,.NONE} }, + // .STC2L + { .STC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE}, 0xFD400000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_PRE,.NONE,.NONE,.NONE}, 0xFD600000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, + { .STC2L, {.COPROC_NUM,.COPROC_REG,.MEM,.NONE,.NONE,.NONE}, {.COPROC_NUM_FIELD,.COPROC_CRD_FIELD,.MEM_IMM8_SCALED4_POST,.NONE,.NONE,.NONE}, 0xFC600000, 0xFF700000, .V5T, .A32, {}, {.NONE,.NONE} }, // .CRC32B - { .CRC32B, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01000040, 0x0FF00FF0, .CRC32, .A32, {} }, + { .CRC32B, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1000040, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, // .CRC32H - { .CRC32H, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01200040, 0x0FF00FF0, .CRC32, .A32, {} }, + { .CRC32H, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1200040, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, // .CRC32W - { .CRC32W, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01400040, 0x0FF00FF0, .CRC32, .A32, {} }, + { .CRC32W, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1400040, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, // .CRC32CB - { .CRC32CB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01000240, 0x0FF00FF0, .CRC32, .A32, {} }, + { .CRC32CB, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1000240, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, // .CRC32CH - { .CRC32CH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01200240, 0x0FF00FF0, .CRC32, .A32, {} }, + { .CRC32CH, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1200240, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, // .CRC32CW - { .CRC32CW, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE}, 0x01400240, 0x0FF00FF0, .CRC32, .A32, {} }, + { .CRC32CW, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD,.RN_A32,.RM_A32,.NONE,.NONE,.NONE}, 0xE1400240, 0xFFF00FF0, .CRC32, .A32, {}, {.NONE,.NONE} }, // .VADD - { .VADD, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VADD, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200800, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300800, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200840, 0xFFB00F50, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300840, 0xFFB00F50, .NEON, .A32, {} }, - { .VADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000840, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VADD, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE010F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true} }, + { .VADD, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E300B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VADD, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000800, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100800, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200800, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300800, 0xFFB00F10, .NEON, .A32, {}, {.I64,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000840, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300840, 0xFFB00F50, .NEON, .A32, {}, {.I64,.NONE} }, + { .VADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000D40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000840, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VADD, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE010F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, // .VSUB - { .VSUB, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VSUB, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E300940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000800, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100800, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200800, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3300800, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000840, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100840, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3300840, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFF000840, 0xFF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF200D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VSUB, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE011F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true} }, + { .VSUB, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E300B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VSUB, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E300940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300D40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000800, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100800, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200800, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3300800, 0xFFB00F10, .NEON, .A32, {}, {.I64,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000840, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3300840, 0xFFB00F50, .NEON, .A32, {}, {.I64,.NONE} }, + { .VSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200D40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFF000840, 0xFF810F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF200D40, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VSUB, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE011F40, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, // .VMUL - { .VMUL, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E200A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E200B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMUL, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E200900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100D10, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100D50, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000910, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000950, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D10, 0xFFB00F10, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000D50, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000950, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, - { .VMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFF000D50, 0xFFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VMUL, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE011E60, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true} }, + { .VMUL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E200A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E200B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMUL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E200900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100D10, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100D50, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000910, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100910, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200910, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000950, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100950, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200950, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000910, 0xFFB00F10, .NEON, .A32, {}, {.P8,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000950, 0xFFB00F50, .NEON, .A32, {}, {.P8,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000D10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000D50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000950, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFF000D50, 0xFFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VMUL, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE011E60, 0xEF811FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMUL, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900840, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMUL, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, // .VDIV - { .VDIV, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E800A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VDIV, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E800B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VDIV, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E800900, 0x0FB00F50, .HALF_FP, .A32, {} }, + { .VDIV, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E800A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VDIV, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E800B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VDIV, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E800900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, // .VMLA - { .VMLA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E000B00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE010E40, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E000B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMLA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000900, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100900, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200900, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000940, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100940, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200940, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000D10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000D50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMLA, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE010E40, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900040, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLA, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900040, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLA, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, // .VMLS - { .VMLS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E000B40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VMLS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E000940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200900, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200940, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200D10, 0xFFB00F10, .NEON, .A32, {} }, - { .VMLS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200D50, 0xFFB00F50, .NEON, .A32, {} }, + { .VMLS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E000B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMLS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E000940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000900, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100900, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200900, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000940, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100940, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200940, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200D10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMLS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200D50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900440, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLS, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMLS, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900440, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMLS, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, // .VNMUL - { .VNMUL, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E200A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMUL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E200B40, 0x0FB00B50, .VFPV2, .A32, {} }, + { .VNMUL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E200A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VNMUL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E200B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, // .VNMLA - { .VNMLA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E100A40, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMLA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E100B40, 0x0FB00B50, .VFPV2, .A32, {} }, + { .VNMLA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E100A40, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VNMLA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E100B40, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, // .VNMLS - { .VNMLS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E100A00, 0x0FB00B50, .VFPV2, .A32, {} }, - { .VNMLS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E100B00, 0x0FB00B50, .VFPV2, .A32, {} }, + { .VNMLS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E100A00, 0x0FB00B50, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VNMLS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E100B00, 0x0FB00B50, .VFPV2, .A32, {}, {.F64,.NONE} }, // .VFMA - { .VFMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00A00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0EA00B00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00900, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VFMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {} }, - { .VFMA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {} }, - { .VFMA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, - { .VFMA, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE310E40, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true} }, + { .VFMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00A00, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFMA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0EA00B00, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VFMA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000C10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000C50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, + { .VFMA, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE310E40, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VFMS - { .VFMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00A40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0EA00B40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0EA00940, 0x0FB00F50, .HALF_FP, .A32, {} }, - { .VFMS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200C10, 0xFFB00F10, .NEON, .A32, {} }, - { .VFMS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200C50, 0xFFB00F50, .NEON, .A32, {} }, - { .VFMS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF200C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true} }, + { .VFMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00A40, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFMS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0EA00B40, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0EA00940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VFMS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200C10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200C50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VFMS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF200C50, 0xEFA10F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VFNMA - { .VFNMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900A40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E900B40, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMA, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900940, 0x0FB00F50, .HALF_FP, .A32, {} }, + { .VFNMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900A40, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFNMA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E900B40, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFNMA, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900940, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, // .VFNMS - { .VFNMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900A00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0x0E900B00, 0x0FB00B50, .VFPV4, .A32, {} }, - { .VFNMS, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0x0E900900, 0x0FB00F50, .HALF_FP, .A32, {} }, + { .VFNMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900A00, 0x0FB00B50, .VFPV4, .A32, {}, {.F32,.NONE} }, + { .VFNMS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0x0E900B00, 0x0FB00B50, .VFPV4, .A32, {}, {.F64,.NONE} }, + { .VFNMS, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0x0E900900, 0x0FB00F50, .HALF_FP, .A32, {}, {.F16,.NONE} }, + // .VFMAB + { .VFMAB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC300810, 0xFFB00F70, .BF16, .A32, {}, {.BF16,.NONE} }, + // .VFMAT + { .VFMAT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC300850, 0xFFB00F70, .BF16, .A32, {}, {.BF16,.NONE} }, // .VABS - { .VABS, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB00AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB00BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10340, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B50340, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90340, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90700, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90740, 0xFFB30FD0, .NEON, .A32, {} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB10340, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true} }, - { .VABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB90740, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true} }, + { .VABS, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB00AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB00BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B10300, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B50300, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90300, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B10340, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B50340, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B90340, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90700, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B90740, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB10340, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB90740, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VNEG - { .VNEG, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB10A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB10B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B50380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90380, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B103C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B503C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B903C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90780, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B907C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB103C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true} }, - { .VNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB907C0, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true} }, + { .VNEG, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB10A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB10B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B10380, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B50380, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90380, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B103C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B503C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B903C0, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VNEG, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B90780, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B907C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB103C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB907C0, 0xFFBB0F51, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VSQRT - { .VSQRT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB10AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VSQRT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB10BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VSQRT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB109C0, 0x0FBF0FD0, .HALF_FP, .A32, {} }, + { .VSQRT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB10AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VSQRT, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB10BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VSQRT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB109C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.NONE} }, // .VCMP - { .VCMP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40A40, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB40B40, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMP, {.SPR,.NONE,.NONE,.NONE}, {.VD_S,.NONE,.NONE,.NONE}, 0x0EB50A40, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCMP, {.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0x0EB50B40, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCMP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40940, 0x0FBF0F50, .HALF_FP, .A32, {} }, - { .VCMP, {.SPR,.NONE,.NONE,.NONE}, {.VD_S,.NONE,.NONE,.NONE}, 0x0EB50940, 0x0FBF0FFF, .HALF_FP, .A32, {} }, - { .VCMP, {.QPR,.QPR,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE010F00, 0xFE818FF0, .MVE_INT, .T32, {thumb32=true} }, - { .VCMP, {.QPR,.QPR,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE310F00, 0xEFB10FF0, .MVE_FP, .T32, {thumb32=true} }, + { .VCMP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB40A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB40B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCMP, {.SPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50A40, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMP, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50B40, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCMP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB40940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCMP, {.SPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50940, 0x0FBF0FFF, .HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCMP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFE010F00, 0xFE818FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, + { .VCMP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VN_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE310F00, 0xEFB10FF0, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VCMPE - { .VCMPE, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB40AC0, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB40BC0, 0x0FBF0F50, .VFPV2, .A32, {} }, - { .VCMPE, {.SPR,.NONE,.NONE,.NONE}, {.VD_S,.NONE,.NONE,.NONE}, 0x0EB50AC0, 0x0FBF0FFF, .VFPV2, .A32, {} }, - { .VCMPE, {.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0x0EB50BC0, 0x0FBF0FFF, .VFPV2, .A32, {} }, + { .VCMPE, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB40AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMPE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB40BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VCMPE, {.SPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50AC0, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VCMPE, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.IMPL,.NONE,.NONE,.NONE,.NONE}, 0x0EB50BC0, 0x0FBF0FFF, .VFPV2, .A32, {}, {.F64,.NONE} }, // .VCVT - { .VCVT, {.DPR,.SPR,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE}, 0x0EB70AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EB70BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBD0AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBC0AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBD0BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBC0BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB80AC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB80A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.DPR,.SPR,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE}, 0x0EB80BC0, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVT, {.DPR,.SPR,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE}, 0x0EB80B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, + { .VCVT, {.DPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB70AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.F32} }, + { .VCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB70BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.F64} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F32} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F32} }, + { .VCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F64} }, + { .VCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F64} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80AC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.S32} }, + { .VCVT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.U32} }, + { .VCVT, {.DPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80BC0, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.S32} }, + { .VCVT, {.DPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB80B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.U32} }, + { .VCVT, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {}, {.F16,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.S16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.U16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.S16,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0940, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.U16,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.S32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.F16,.U32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.S32,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF09C0, 0x0FBF0FD0, .HALF_FP, .A32, {}, {.U32,.F16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.S16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.U16} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S16,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U16,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.S32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.U32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S32,.F32} }, + { .VCVT, {.SPR,.SPR,.IMM,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U32,.F32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.S16} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.U16} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S16,.F64} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0B40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U16,.F64} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBA0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.S32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBB0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F64,.U32} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBE0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.S32,.F64} }, + { .VCVT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VFP_FBITS,.NONE,.NONE,.NONE}, 0x0EBF0BC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.U32,.F64} }, // .VCVTB - { .VCVTB, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB20A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVTB, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB30A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, + { .VCVTB, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB20A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.F16} }, + { .VCVTB, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB30A40, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F16,.F32} }, // .VCVTT - { .VCVTT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB20AC0, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVTT, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB30AC0, 0x0FBF0FD0, .VFPV3, .A32, {} }, + { .VCVTT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB20AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F32,.F16} }, + { .VCVTT, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB30AC0, 0x0FBF0FD0, .VFPV3, .A32, {}, {.F16,.F32} }, // .VCVTA - { .VCVTA, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBC0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTA, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBC0B40, 0xFFBF0FD0, .V8, .A32, {} }, + { .VCVTA, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBC0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTA, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBC0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, // .VCVTN - { .VCVTN, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBD0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBD0B40, 0xFFBF0FD0, .V8, .A32, {} }, + { .VCVTN, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBD0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTN, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBD0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, // .VCVTP - { .VCVTP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBE0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBE0B40, 0xFFBF0FD0, .V8, .A32, {} }, + { .VCVTP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBE0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTP, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBE0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, // .VCVTM - { .VCVTM, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBF0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VCVTM, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBF0B40, 0xFFBF0FD0, .V8, .A32, {} }, + { .VCVTM, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBF0A40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F32} }, + { .VCVTM, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBF0B40, 0xFFBF0FD0, .V8, .A32, {}, {.U32,.F64} }, // .VCVTR - { .VCVTR, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBD0A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTR, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBC0A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTR, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBD0B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VCVTR, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EBC0B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, + { .VCVTR, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F32} }, + { .VCVTR, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F32} }, + { .VCVTR, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBD0B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.S32,.F64} }, + { .VCVTR, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EBC0B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.U32,.F64} }, // .VMOV - { .VMOV, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB00A40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VMOV, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB00B40, 0x0FBF0FD0, .VFPV2, .A32, {} }, - { .VMOV, {.SPR,.IMM8,.NONE,.NONE}, {.VD_S,.VFP_IMM8,.NONE,.NONE}, 0x0EB00A00, 0x0FB00FF0, .VFPV3, .A32, {} }, - { .VMOV, {.DPR,.IMM8,.NONE,.NONE}, {.VD_D,.VFP_IMM8,.NONE,.NONE}, 0x0EB00B00, 0x0FB00FF0, .VFPV3, .A32, {} }, - { .VMOV, {.SPR,.GPR,.NONE,.NONE}, {.VN_S,.RT_A32,.NONE,.NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {} }, - { .VMOV, {.GPR,.SPR,.NONE,.NONE}, {.RT_A32,.VN_S,.NONE,.NONE}, 0x0E100A10, 0x0FF00F7F, .VFPV2, .A32, {} }, - { .VMOV, {.GPR,.GPR,.DPR,.NONE}, {.RT_A32,.RT2_A32,.VM_D,.NONE}, 0x0C500B10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .VMOV, {.DPR,.GPR,.GPR,.NONE}, {.VM_D,.RT_A32,.RT2_A32,.NONE}, 0x0C400B10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .VMOV, {.GPR,.GPR,.SPR,.SPR}, {.RT_A32,.RT2_A32,.VM_S,.NONE}, 0x0C500A10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .VMOV, {.SPR,.SPR,.GPR,.GPR}, {.VM_S,.NONE,.RT_A32,.RT2_A32}, 0x0C400A10, 0x0FF00FD0, .VFPV2, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800010, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800210, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800410, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800610, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800810, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800D10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800F10, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800E30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800050, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800850, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E50, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800F50, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800E70, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMOV, {.GPR,.DPR_ELEM,.NONE,.NONE}, {.RT_A32,.VN_D,.NONE,.NONE}, 0x0E100B10, 0x0F100F1F, .NEON, .A32, {} }, - { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VN_D,.RT_A32,.NONE,.NONE}, 0x0E000B10, 0x0F100F1F, .NEON, .A32, {} }, + { .VMOV, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB00A40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB00B40, 0x0FBF0FD0, .VFPV2, .A32, {}, {.F64,.NONE} }, + { .VMOV, {.SPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VFP_IMM8,.NONE,.NONE,.NONE,.NONE}, 0x0EB00A00, 0x0FB00FF0, .VFPV3, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.DPR,.IMM8,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VFP_IMM8,.NONE,.NONE,.NONE,.NONE}, 0x0EB00B00, 0x0FB00FF0, .VFPV3, .A32, {}, {.F64,.NONE} }, + { .VMOV, {.SPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VN_S,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E000A10, 0x0FF00F7F, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.VN_S,.NONE,.NONE,.NONE,.NONE}, 0x0E100A10, 0x0FF00F7F, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.GPR,.DPR,.NONE,.NONE,.NONE}, {.RT_A32,.RT2_A32,.VM_D,.NONE,.NONE,.NONE}, 0x0C500B10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.DPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.VM_D,.RT_A32,.RT2_A32,.NONE,.NONE,.NONE}, 0x0C400B10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.GPR,.GPR,.SPR,.SPR,.NONE,.NONE}, {.RT_A32,.RT2_A32,.VM_S,.VM_S_PLUS1,.NONE,.NONE}, 0x0C500A10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.SPR,.SPR,.GPR,.GPR,.NONE,.NONE}, {.VM_S,.VM_S_PLUS1,.RT_A32,.RT2_A32,.NONE,.NONE}, 0x0C400A10, 0x0FF00FD0, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800010, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800050, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800210, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800250, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800410, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800450, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800610, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800650, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800810, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800850, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D10, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D50, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E10, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E50, 0xFEB80FF0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800F10, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800F50, 0xFEB80FF0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMOV, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E30, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VMOV, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800E70, 0xFEB80FF0, .NEON, .A32, {}, {.I64,.NONE} }, + { .VMOV, {.GPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.NEON_LANE_VN_32,.NONE,.NONE,.NONE,.NONE}, 0x0E100B10, 0x0F100F1F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VMOV, {.QPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE,.NONE,.NONE}, 0xEE000B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VMOV, {.GPR,.QPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.RT_T32,.VD_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE100B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VMOV, {.QPR_ELEM,.QPR_ELEM,.GPR,.GPR,.NONE,.NONE}, {.VD_Q,.VD_Q,.RT_T32,.RT2_T32,.NONE,.NONE}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VMOV_LANE_8,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {}, {.SZ8,.NONE} }, + { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VMOV_LANE_16,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {}, {.SZ16,.NONE} }, + { .VMOV, {.DPR_ELEM,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VMOV_LANE_32,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {}, {.SZ32,.NONE} }, // .VMRS - { .VMRS, {.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.NONE,.NONE,.NONE}, 0x0EF10A10, 0x0FFF0FFF, .VFPV2, .A32, {} }, + { .VMRS, {.GPR,.PSR_FIELD,.NONE,.NONE,.NONE,.NONE}, {.RT_A32,.VFP_SPEC_REG,.NONE,.NONE,.NONE,.NONE}, 0x0EF10A10, 0x0FF00FFF, .VFPV2, .A32, {}, {.NONE,.NONE} }, // .VMSR - { .VMSR, {.GPR,.NONE,.NONE,.NONE}, {.RT_A32,.NONE,.NONE,.NONE}, 0x0EE10A10, 0x0FFF0FFF, .VFPV2, .A32, {} }, + { .VMSR, {.PSR_FIELD,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VFP_SPEC_REG,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0EE10A10, 0x0FF00FFF, .VFPV2, .A32, {}, {.NONE,.NONE} }, // .VLDR - { .VLDR, {.SPR,.MEM,.NONE,.NONE}, {.VD_S,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D100A00, 0x0F300F00, .VFPV2, .A32, {} }, - { .VLDR, {.DPR,.MEM,.NONE,.NONE}, {.VD_D,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D100B00, 0x0F300F00, .VFPV2, .A32, {} }, + { .VLDR, {.SPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D100A00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDR, {.DPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D100B00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, // .VSTR - { .VSTR, {.SPR,.MEM,.NONE,.NONE}, {.VD_S,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D000A00, 0x0F300F00, .VFPV2, .A32, {} }, - { .VSTR, {.DPR,.MEM,.NONE,.NONE}, {.VD_D,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0x0D000B00, 0x0F300F00, .VFPV2, .A32, {} }, - // .VLDM - { .VLDM, {.GPR,.SPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_S_LIST,.NONE,.NONE}, 0x0C900A00, 0x0F900F00, .VFPV2, .A32, {} }, - { .VLDM, {.GPR,.DPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_D_LIST,.NONE,.NONE}, 0x0C900B00, 0x0F900F00, .VFPV2, .A32, {} }, - // .VSTM - { .VSTM, {.GPR,.SPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_S_LIST,.NONE,.NONE}, 0x0C800A00, 0x0F900F00, .VFPV2, .A32, {} }, - { .VSTM, {.GPR,.DPR_LIST,.NONE,.NONE}, {.RN_A32,.VFP_D_LIST,.NONE,.NONE}, 0x0C800B00, 0x0F900F00, .VFPV2, .A32, {} }, + { .VSTR, {.SPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D000A00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTR, {.DPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.MEM_IMM8_SCALED4,.NONE,.NONE,.NONE,.NONE}, 0x0D000B00, 0x0F300F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + // .VLDMIA + { .VLDMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C900A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C900B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CB00A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CB00B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + // .VLDMDB + { .VLDMDB, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D300A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VLDMDB, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D300B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + // .VSTMIA + { .VSTMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C800A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0C800B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMIA, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CA00A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMIA, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0CA00B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + // .VSTMDB + { .VSTMDB, {.GPR,.SPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D200A00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VSTMDB, {.GPR,.DPR_LIST,.NONE,.NONE,.NONE,.NONE}, {.RN_A32_WB,.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE}, 0x0D200B00, 0x0FB00F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, // .VPUSH - { .VPUSH, {.SPR_LIST,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {} }, - { .VPUSH, {.DPR_LIST,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {} }, + { .VPUSH, {.SPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0D2D0A00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VPUSH, {.DPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0D2D0B00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, // .VPOP - { .VPOP, {.SPR_LIST,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE}, 0x0CBD0A00, 0x0FFF0F00, .VFPV2, .A32, {} }, - { .VPOP, {.DPR_LIST,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE}, 0x0CBD0B00, 0x0FFF0F00, .VFPV2, .A32, {} }, + { .VPOP, {.SPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_S_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0CBD0A00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, + { .VPOP, {.DPR_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, {.VFP_D_LIST,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x0CBD0B00, 0x0FFF0F00, .VFPV2, .A32, {}, {.NONE,.NONE} }, // .VSEL - { .VSEL, {.SPR,.SPR,.SPR,.COND}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE000A00, 0xFF800F50, .V8, .A32, {} }, - { .VSEL, {.DPR,.DPR,.DPR,.COND}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {} }, + { .VSEL, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFE000A00, 0xFF800F50, .V8, .A32, {cond_in_21=true}, {.F32,.NONE} }, + { .VSEL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFE000B00, 0xFF800F50, .V8, .A32, {cond_in_21=true}, {.F64,.NONE} }, // .VMAXNM - { .VMAXNM, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {} }, - { .VMAXNM, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE800B00, 0xFFB00B50, .V8, .A32, {} }, + { .VMAXNM, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFE800A00, 0xFFB00B50, .V8, .A32, {}, {.F32,.NONE} }, + { .VMAXNM, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFE800B00, 0xFFB00B50, .V8, .A32, {}, {.F64,.NONE} }, // .VMINNM - { .VMINNM, {.SPR,.SPR,.SPR,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE}, 0xFE800A40, 0xFFB00B50, .V8, .A32, {} }, - { .VMINNM, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE800B40, 0xFFB00B50, .V8, .A32, {} }, + { .VMINNM, {.SPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_S,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFE800A40, 0xFFB00B50, .V8, .A32, {}, {.F32,.NONE} }, + { .VMINNM, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFE800B40, 0xFFB00B50, .V8, .A32, {}, {.F64,.NONE} }, // .VRINTA - { .VRINTA, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB80A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTA, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEB80B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTA, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA0540, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VRINTA, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB80A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTA, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEB80B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTA, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA0540, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VRINTN - { .VRINTN, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB90A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEB90B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA0440, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VRINTN, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB90A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEB90B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA0440, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VRINTP - { .VRINTP, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBA0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBA0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA07C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VRINTP, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBA0A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBA0B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA07C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VRINTM - { .VRINTM, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEBB0A40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTM, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xFEBB0B40, 0xFFBF0FD0, .V8, .A32, {} }, - { .VRINTM, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA06C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VRINTM, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEBB0A40, 0xFFBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTM, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xFEBB0B40, 0xFFBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTM, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA06C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VRINTR - { .VRINTR, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB60A40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTR, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB60B40, 0x0FBF0FD0, .V8, .A32, {} }, + { .VRINTR, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB60A40, 0x0FBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTR, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB60B40, 0x0FBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, // .VRINTZ - { .VRINTZ, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB60AC0, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB60BC0, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA05C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VRINTZ, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB60AC0, 0x0FBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB60BC0, 0x0FBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA05C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VRINTX - { .VRINTX, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTX, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {} }, - { .VRINTX, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFBA04C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VRINTX, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0x0EB70A40, 0x0FBF0FD0, .V8, .A32, {}, {.F32,.NONE} }, + { .VRINTX, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB70B40, 0x0FBF0FD0, .V8, .A32, {}, {.F64,.NONE} }, + { .VRINTX, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFBA04C0, 0xFFBB0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VADDL - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900000, 0xFFB01F50, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00000, 0xFFB01F50, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800000, 0xFFB01F50, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900000, 0xFFB01F50, .NEON, .A32, {} }, - { .VADDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00000, 0xFFB01F50, .NEON, .A32, {} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800000, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900000, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00000, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800000, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900000, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VADDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00000, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VADDW - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2900100, 0xFFB11F50, .NEON, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2A00100, 0xFFB11F50, .NEON, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3800100, 0xFFB11F50, .NEON, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900100, 0xFFB11F50, .NEON, .A32, {} }, - { .VADDW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00100, 0xFFB11F50, .NEON, .A32, {} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2800100, 0xFFB11F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2900100, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00100, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3800100, 0xFFB11F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3900100, 0xFFB11F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VADDW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00100, 0xFFB11F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VSUBL - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900200, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00200, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800200, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900200, 0xFFB01F50, .NEON, .A32, {} }, - { .VSUBL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00200, 0xFFB01F50, .NEON, .A32, {} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800200, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900200, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00200, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800200, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900200, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VSUBL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00200, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VSUBW - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2900300, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF2A00300, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3800300, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900300, 0xFFB11F50, .NEON, .A32, {} }, - { .VSUBW, {.QPR,.QPR,.DPR,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00300, 0xFFB11F50, .NEON, .A32, {} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2800300, 0xFFB11F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2900300, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00300, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3800300, 0xFFB11F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3900300, 0xFFB11F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VSUBW, {.QPR,.QPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00300, 0xFFB11F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VHADD - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000000, 0xFFB00F10, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000040, 0xFFB00F50, .NEON, .A32, {} }, - { .VHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000040, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000000, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100000, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200000, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000040, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100040, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200040, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000000, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000040, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000040, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VHSUB - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100200, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200200, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100240, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200240, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000200, 0xFFB00F10, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000240, 0xFFB00F50, .NEON, .A32, {} }, - { .VHSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000240, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000200, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100200, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200200, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000240, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100240, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200240, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VHSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000200, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000240, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VHSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000240, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VRHADD - { .VRHADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000100, 0xFFB00F10, .NEON, .A32, {} }, - { .VRHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000140, 0xFFB00F50, .NEON, .A32, {} }, - { .VRHADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000140, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRHADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000100, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000140, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRHADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000140, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQADD - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000010, 0xFFB00F10, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000050, 0xFFB00F50, .NEON, .A32, {} }, - { .VQADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000050, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000010, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100010, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200010, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300010, 0xFFB00F10, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000050, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100050, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200050, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300050, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000010, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000050, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000050, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQSUB - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000210, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000250, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSUB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000250, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000210, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100210, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200210, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300210, 0xFFB00F10, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000250, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100250, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200250, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300250, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQSUB, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000210, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000250, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSUB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000250, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMULL - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800C00, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900C00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00C00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800C00, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900C00, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00C00, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800E00, 0xFFB00F50, .NEON, .A32, {}, {.P8,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900A40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900A40, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VMLAL - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900800, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800800, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900800, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00800, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800800, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900800, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00800, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900240, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900240, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VMLSL - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900A00, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800A00, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900A00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00A00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800A00, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900A00, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00A00, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900640, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900640, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VQDMULL - { .VQDMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900D00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {} }, + { .VQDMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900D00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00D00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900B40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, // .VQDMLAL - { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900900, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {} }, + { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900900, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00900, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900340, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLAL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, // .VQDMLSL - { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900B00, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {} }, + { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900B00, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00B00, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900740, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMLSL, {.QPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, // .VQDMULH - { .VQDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VQDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VQDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200B40, 0xFFB00F50, .NEON, .A32, {} }, + { .VQDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100B00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200B00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100B40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF2900C40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF3900C40, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF3A00C40, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, // .VQRDMULH - { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200B00, 0xFFB00F10, .NEON, .A32, {} }, - { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200B40, 0xFFB00F50, .NEON, .A32, {} }, - // .VQDMULH_LANE - { .VQDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE}, 0xF2900C40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE}, 0xF3900C40, 0xFFB11F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE}, 0xF2A00C40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE}, 0xF3A00C40, 0xFFB11F50, .NEON, .A32, {} }, - // .VQRDMULH_LANE - { .VQRDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE}, 0xF2900D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE}, 0xF3900D40, 0xFFB11F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRDMULH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {} }, + { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100B00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200B00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100B40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200B40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF2900D40, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR16,.NONE,.NONE,.NONE}, 0xF3900D40, 0xFFB11F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRDMULH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF2A00D40, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRDMULH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR32,.NONE,.NONE,.NONE}, 0xF3A00D40, 0xFFB11F50, .NEON, .A32, {}, {.S32,.NONE} }, // .VQRDMLAH - { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100B10, 0xFFB00F10, .V8, .A32, {} }, - { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200B10, 0xFFB00F10, .V8, .A32, {} }, - { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100B50, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200B50, 0xFFB00F50, .V8, .A32, {} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100B10, 0xFFB00F10, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200B10, 0xFFB00F10, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100B50, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200B50, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900E40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900E40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLAH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, // .VQRDMLSH - { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100C10, 0xFFB00F10, .V8, .A32, {} }, - { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200C10, 0xFFB00F10, .V8, .A32, {} }, - { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100C50, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200C50, 0xFFB00F50, .V8, .A32, {} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100C10, 0xFFB00F10, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200C10, 0xFFB00F10, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100C50, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200C50, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF2900F40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF2A00F40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_16,.NONE,.NONE,.NONE}, 0xF3900F40, 0xFFB00F50, .V8, .A32, {}, {.S16,.NONE} }, + { .VQRDMLSH, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {}, {.S32,.NONE} }, // .VABA - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200750, 0xFFB00F50, .NEON, .A32, {} }, - { .VABA, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000710, 0xFFB00F10, .NEON, .A32, {} }, - { .VABA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000750, 0xFFB00F50, .NEON, .A32, {} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000710, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100710, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200710, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000750, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100750, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200750, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABA, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000710, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000750, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, // .VABAL - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900500, 0xFFB01F50, .NEON, .A32, {} }, - { .VABAL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00500, 0xFFB01F50, .NEON, .A32, {} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800500, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900500, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00500, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800500, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900500, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VABAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00500, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VABD - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000700, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100700, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200700, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000740, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100740, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200740, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {} }, - { .VABD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VABD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200D40, 0xFFB00F50, .NEON, .A32, {} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000700, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100700, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200700, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000740, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100740, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200740, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000700, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000740, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VABD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200D40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, // .VABDL - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900700, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00700, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3800700, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900700, 0xFFB01F50, .NEON, .A32, {} }, - { .VABDL, {.QPR,.DPR,.DPR,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00700, 0xFFB01F50, .NEON, .A32, {} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2800700, 0xFFB01F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2900700, 0xFFB01F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2A00700, 0xFFB01F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3800700, 0xFFB01F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3900700, 0xFFB01F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VABDL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3A00700, 0xFFB01F50, .NEON, .A32, {}, {.U32,.NONE} }, // .VAND - { .VAND, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000110, 0xFFB00F10, .NEON, .A32, {} }, - { .VAND, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000150, 0xFFB00F50, .NEON, .A32, {} }, - { .VAND, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VAND, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VAND, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VAND, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VBIC - { .VBIC, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100110, 0xFFB00F10, .NEON, .A32, {} }, - { .VBIC, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100150, 0xFFB00F50, .NEON, .A32, {} }, - { .VBIC, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF100150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800130, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800170, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800330, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800370, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800530, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800570, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800730, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800770, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800930, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800970, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VBIC, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VBIC, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VBIC, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF100150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VORR - { .VORR, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200110, 0xFFB00F10, .NEON, .A32, {} }, - { .VORR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200150, 0xFFB00F50, .NEON, .A32, {} }, - { .VORR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF200150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800110, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800150, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800310, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800350, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800510, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800550, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800710, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800750, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800910, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800950, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B10, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800B50, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VORR, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VORR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VORR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF200150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VORN - { .VORN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300110, 0xFFB00F10, .NEON, .A32, {} }, - { .VORN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300150, 0xFFB00F50, .NEON, .A32, {} }, - { .VORN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF300150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VORN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VORN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VORN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF300150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VEOR - { .VEOR, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {} }, - { .VEOR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {} }, - { .VEOR, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VEOR, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VEOR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VEOR, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFF000150, 0xFFB10F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VBSL - { .VBSL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100110, 0xFFB00F10, .NEON, .A32, {} }, - { .VBSL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100150, 0xFFB00F50, .NEON, .A32, {} }, + { .VBSL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VBSL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, // .VBIT - { .VBIT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200110, 0xFFB00F10, .NEON, .A32, {} }, - { .VBIT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200150, 0xFFB00F50, .NEON, .A32, {} }, + { .VBIT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VBIT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, // .VBIF - { .VBIF, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3300110, 0xFFB00F10, .NEON, .A32, {} }, - { .VBIF, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3300150, 0xFFB00F50, .NEON, .A32, {} }, + { .VBIF, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3300110, 0xFFB00F10, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VBIF, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3300150, 0xFFB00F50, .NEON, .A32, {}, {.NONE,.NONE} }, // .VMVN - { .VMVN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMVN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800030, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800230, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800430, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800630, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800830, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800A30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800C30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.DPR,.IMM,.NONE,.NONE}, {.VD_D,.NONE,.NONE,.NONE}, 0xF2800D30, 0xFEB80F90, .NEON, .A32, {} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800070, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMVN, {.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.NONE,.NONE,.NONE}, 0xF2800870, 0xFEB80FD0, .NEON, .A32, {} }, - { .VMVN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB005C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMVN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00580, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VMVN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B005C0, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800030, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800070, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800230, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800270, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800430, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800470, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800630, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800670, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800830, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800870, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A30, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800A70, 0xFEB80FF0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800C70, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.DPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D30, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.IMM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_IMM8_ABCDEFGH,.NONE,.NONE,.NONE,.NONE}, 0xF2800D70, 0xFEB80FF0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMVN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB005C0, 0xFFB30F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VMOVN - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0200, 0xFFB30FD0, .NEON, .A32, {} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20200, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60200, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0200, 0xFFBF0FD0, .NEON, .A32, {}, {.I64,.NONE} }, // .VQMOVN - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B202C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B602C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA02C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20280, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60280, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0280, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B202C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B602C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQMOVN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA02C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U64,.NONE} }, // .VQMOVUN - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B20240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3BA0240, 0xFFB30FD0, .NEON, .A32, {} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20240, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60240, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQMOVUN, {.DPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0240, 0xFFBF0FD0, .NEON, .A32, {}, {.S64,.NONE} }, // .VMOVL - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2900A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF2A00A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3880A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3900A10, 0xFFB80FD0, .NEON, .A32, {} }, - { .VMOVL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3A00A10, 0xFFB80FD0, .NEON, .A32, {} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF2880A10, 0xFFB80FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF2900A10, 0xFFB80FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF2A00A10, 0xFFB80FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3880A10, 0xFFB80FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3900A10, 0xFFB80FD0, .NEON, .A32, {}, {.U16,.NONE} }, + { .VMOVL, {.QPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3A00A10, 0xFFB80FD0, .NEON, .A32, {}, {.U32,.NONE} }, // .VTST - { .VTST, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000810, 0xFFB00F10, .NEON, .A32, {} }, - { .VTST, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100810, 0xFFB00F10, .NEON, .A32, {} }, - { .VTST, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200810, 0xFFB00F10, .NEON, .A32, {} }, - { .VTST, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000850, 0xFFB00F50, .NEON, .A32, {} }, - { .VTST, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100850, 0xFFB00F50, .NEON, .A32, {} }, - { .VTST, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200850, 0xFFB00F50, .NEON, .A32, {} }, + { .VTST, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000810, 0xFFB00F10, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTST, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100810, 0xFFB00F10, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VTST, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200810, 0xFFB00F10, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VTST, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000850, 0xFFB00F50, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTST, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100850, 0xFFB00F50, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VTST, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200850, 0xFFB00F50, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VCEQ - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200810, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200850, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000E40, 0xFFB00F50, .NEON, .A32, {} }, - { .VCEQ, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VCEQ, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000810, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100810, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200810, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000850, 0xFFB00F50, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100850, 0xFFB00F50, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200850, 0xFFB00F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000E00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000E40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCEQ, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCEQ, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCEQ, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10100, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10140, 0xFFBB0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCEQ, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90500, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCEQ, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90540, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VCGE - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VCGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000310, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100310, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200310, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000350, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100350, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200350, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000310, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000350, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000E00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000E40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCGE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10080, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B100C0, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90480, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B904C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VCGT - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200E00, 0xFFB00F10, .NEON, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200E40, 0xFFB00F50, .NEON, .A32, {} }, - { .VCGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3300E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VCGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3300E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000300, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100300, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200300, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000340, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100340, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200340, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000300, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000340, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200E00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200E40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3300E00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3300E40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VCGT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10000, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10040, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCGT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90400, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCGT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90440, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VCLE - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2200350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3100310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3100350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200310, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000310, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000350, 0xFFB11F51, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100310, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2100350, 0xFFB11F51, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200310, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2200350, 0xFFB11F51, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000310, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000350, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3100310, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3100350, 0xFFB11F51, .NEON, .A32, {}, {.U16,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200310, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200350, 0xFFB11F51, .NEON, .A32, {}, {.U32,.NONE} }, + { .VCLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000E00, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000E40, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10180, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B101C0, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLE, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90580, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLE, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B905C0, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VCLT - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2200340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000300, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3100300, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3100340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200300, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {} }, - { .VCLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200E00, 0xFFB00F50, .NEON, .A32, {} }, - { .VCLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000300, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000340, 0xFFB11F51, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100300, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2100340, 0xFFB11F51, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200300, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2200340, 0xFFB11F51, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000300, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000340, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3100300, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3100340, 0xFFB11F51, .NEON, .A32, {}, {.U16,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200300, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200340, 0xFFB11F51, .NEON, .A32, {}, {.U32,.NONE} }, + { .VCLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200E00, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200E40, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10200, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B10240, 0xFFBB0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLT, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90600, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VCLT, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.IMPL,.NONE,.NONE,.NONE}, 0xF3B90640, 0xFFBB0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VACGE - { .VACGE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {} }, - { .VACGE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000E50, 0xFFB00F50, .NEON, .A32, {} }, + { .VACGE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000E10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACGE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000E50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, // .VACGT - { .VACGT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200E10, 0xFFB00F10, .NEON, .A32, {} }, - { .VACGT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200E50, 0xFFB00F50, .NEON, .A32, {} }, + { .VACGT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200E10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACGT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200E50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, // .VACLE - { .VACLE, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000E10, 0xFFB00F50, .NEON, .A32, {} }, - { .VACLE, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {} }, + { .VACLE, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000E10, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACLE, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000E50, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, // .VACLT - { .VACLT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200E10, 0xFFB00F50, .NEON, .A32, {} }, - { .VACLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {} }, + { .VACLT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200E10, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VACLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200E50, 0xFFB11F51, .NEON, .A32, {}, {.F32,.NONE} }, // .VMAX - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VMAX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000640, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000600, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100600, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200600, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000640, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100640, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200640, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000600, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000640, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMAX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000640, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMIN - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000650, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2300F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {} }, - { .VMIN, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000650, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000610, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100610, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200610, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000650, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100650, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200650, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000610, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000650, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200F40, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, + { .VMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2300F00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300F40, 0xFFB00F50, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, + { .VMIN, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000650, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VPMAX - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMAX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000A00, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100A00, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200A00, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000A00, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPMAX, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, // .VPMIN - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPMIN, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3200F00, 0xFFB00F10, .NEON, .A32, {} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000A10, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100A10, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200A10, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000A10, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPMIN, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3200F00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, // .VPADD - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000B10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2100B10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000B10, 0xFFB00F10, .NEON, .A32, {}, {.I8,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2100B10, 0xFFB00F10, .NEON, .A32, {}, {.I16,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200B10, 0xFFB00F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VPADD, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF3100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {}, {.F16,.NONE} }, // .VPADDL - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00280, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADDL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00200, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40200, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80200, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VPADDL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00240, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADDL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00280, 0xFFBF0FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADDL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B002C0, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, // .VPADAL - { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {} }, - { .VPADAL, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VPADAL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00600, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADAL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00640, 0xFFB30FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VPADAL, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00680, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, + { .VPADAL, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B006C0, 0xFFB30FD0, .NEON, .A32, {}, {.U8,.NONE} }, // .VRECPE - { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {} }, + { .VRECPE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0400, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRECPE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0440, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRECPE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRECPE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VRECPS - { .VRECPS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2000F10, 0xFFB00F10, .NEON, .A32, {} }, - { .VRECPS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {} }, + { .VRECPS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2000F10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRECPS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000F50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, // .VRSQRTE - { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, + { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0480, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB04C0, 0xFFBF0FD0, .NEON, .A32, {}, {.U32,.NONE} }, + { .VRSQRTE, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRSQRTE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {}, {.F32,.NONE} }, // .VRSQRTS - { .VRSQRTS, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2200F10, 0xFFB00F10, .NEON, .A32, {} }, - { .VRSQRTS, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {} }, + { .VRSQRTS, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2200F10, 0xFFB00F10, .NEON, .A32, {}, {.F32,.NONE} }, + { .VRSQRTS, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200F50, 0xFFB00F50, .NEON, .A32, {}, {.F32,.NONE} }, // .VSHL - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000400, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100400, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200400, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2300400, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2300440, 0xFFB00F50, .NEON, .A32, {} }, - { .VSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000440, 0xFFB00F50, .NEON, .A32, {} }, - { .VSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000440, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000400, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100400, 0xFFB00F10, .NEON, .A32, {}, {.S16,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200400, 0xFFB00F10, .NEON, .A32, {}, {.S32,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2300400, 0xFFB00F10, .NEON, .A32, {}, {.S64,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000440, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2300440, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000400, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000440, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000440, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VSHR - { .VSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800010, 0xFE800F10, .NEON, .A32, {} }, - { .VSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800050, 0xFE800F50, .NEON, .A32, {} }, - { .VSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800010, 0xFE800F10, .NEON, .A32, {} }, - { .VSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800050, 0xFE800F50, .NEON, .A32, {} }, - { .VSHR, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEF800050, 0xEF800F51, .MVE_INT, .T32, {thumb32=true} }, + { .VSHR, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800010, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSHR, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800050, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSHR, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEF800050, 0xEF800F51, .MVE_INT, .T32, {thumb32=true}, {.I32,.NONE} }, // .VSRA - { .VSRA, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800110, 0xFE800F10, .NEON, .A32, {} }, - { .VSRA, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800150, 0xFE800F50, .NEON, .A32, {} }, - { .VSRA, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800110, 0xFE800F10, .NEON, .A32, {} }, - { .VSRA, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800150, 0xFE800F50, .NEON, .A32, {} }, - { .VSRA, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEF800150, 0xEF800F51, .MVE_INT, .T32, {thumb32=true} }, + { .VSRA, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800110, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRA, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800150, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRA, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEF800150, 0xEF800F51, .MVE_INT, .T32, {thumb32=true}, {.I32,.NONE} }, // .VRSHL - { .VRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000500, 0xFFB00F10, .NEON, .A32, {} }, - { .VRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000540, 0xFFB00F50, .NEON, .A32, {} }, - { .VRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000500, 0xFFB00F10, .NEON, .A32, {} }, - { .VRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000540, 0xFFB00F50, .NEON, .A32, {} }, - { .VRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000540, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000500, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000540, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000500, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000540, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000540, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VRSHR - { .VRSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800210, 0xFE800F10, .NEON, .A32, {} }, - { .VRSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800250, 0xFE800F50, .NEON, .A32, {} }, - { .VRSHR, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800210, 0xFE800F10, .NEON, .A32, {} }, - { .VRSHR, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800250, 0xFE800F50, .NEON, .A32, {} }, - { .VRSHR, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEF800250, 0xEF800F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRSHR, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800210, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSHR, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800250, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSHR, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEF800250, 0xEF800F51, .MVE_INT, .T32, {thumb32=true}, {.I32,.NONE} }, // .VRSRA - { .VRSRA, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800310, 0xFE800F10, .NEON, .A32, {} }, - { .VRSRA, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800350, 0xFE800F50, .NEON, .A32, {} }, + { .VRSRA, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800310, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VRSRA, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800350, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, // .VSLI - { .VSLI, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800510, 0xFE800F10, .NEON, .A32, {} }, - { .VSLI, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800550, 0xFE800F50, .NEON, .A32, {} }, + { .VSLI, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800510, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSLI, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800550, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, // .VSRI - { .VSRI, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800410, 0xFE800F10, .NEON, .A32, {} }, - { .VSRI, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800450, 0xFE800F50, .NEON, .A32, {} }, + { .VSRI, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800410, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VSRI, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800450, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, // .VQSHL - { .VQSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000410, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000450, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000410, 0xFFB00F10, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000450, 0xFFB00F50, .NEON, .A32, {} }, - { .VQSHL, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800710, 0xFE800F10, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.IMM,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800750, 0xFE800F50, .NEON, .A32, {} }, - { .VQSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEF000450, 0xEF810F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000410, 0xFFB00F10, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000450, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000410, 0xFFB00F10, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000450, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQSHL, {.DPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800710, 0xFE800F10, .NEON, .A32, {}, {.I32,.NONE} }, + { .VQSHL, {.QPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800750, 0xFE800F50, .NEON, .A32, {}, {.I32,.NONE} }, + { .VQSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEF000450, 0xEF810F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQSHRN - { .VQSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {} }, - { .VQSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800910, 0xFE800FD0, .NEON, .A32, {} }, + { .VQSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800910, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, // .VQSHRUN - { .VQSHRUN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800810, 0xFF800FD0, .NEON, .A32, {} }, + { .VQSHRUN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF3800810, 0xFF800FD0, .NEON, .A32, {}, {.I16,.NONE} }, // .VQRSHL - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2000510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2200550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF2300510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF2300550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3000510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3100510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3100550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3200510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {} }, - { .VQRSHL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE}, 0xF3300510, 0xFFB00F50, .NEON, .A32, {} }, - { .VQRSHL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE}, 0xF3300550, 0xFFB11F51, .NEON, .A32, {} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2000510, 0xFFB00F50, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2000550, 0xFFB11F51, .NEON, .A32, {}, {.S8,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2100510, 0xFFB00F50, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2100550, 0xFFB11F51, .NEON, .A32, {}, {.S16,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2200510, 0xFFB00F50, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2200550, 0xFFB11F51, .NEON, .A32, {}, {.S32,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF2300510, 0xFFB00F50, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF2300550, 0xFFB11F51, .NEON, .A32, {}, {.S64,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3000510, 0xFFB00F50, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3000550, 0xFFB11F51, .NEON, .A32, {}, {.U8,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3100510, 0xFFB00F50, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3100550, 0xFFB11F51, .NEON, .A32, {}, {.U16,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3200510, 0xFFB00F50, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3200550, 0xFFB11F51, .NEON, .A32, {}, {.U32,.NONE} }, + { .VQRSHL, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.VN_D,.NONE,.NONE,.NONE}, 0xF3300510, 0xFFB00F50, .NEON, .A32, {}, {.U64,.NONE} }, + { .VQRSHL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.VN_Q,.NONE,.NONE,.NONE}, 0xF3300550, 0xFFB11F51, .NEON, .A32, {}, {.U64,.NONE} }, // .VQRSHRN - { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {} }, - { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800950, 0xFE800FD0, .NEON, .A32, {} }, + { .VQRSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800950, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, // .VQRSHRUN - { .VQRSHRUN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF3800850, 0xFF800FD0, .NEON, .A32, {} }, + { .VQRSHRUN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF3800850, 0xFF800FD0, .NEON, .A32, {}, {.I16,.NONE} }, // .VSHRN - { .VSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {} }, + { .VSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800810, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, // .VRSHRN - { .VRSHRN, {.DPR,.QPR,.IMM,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xF2800850, 0xFE800FD0, .NEON, .A32, {} }, + { .VRSHRN, {.DPR,.QPR,.IMM,.NONE,.NONE,.NONE}, {.VD_D,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800850, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, // .VSHLL - { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF2800A10, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.IMM,.NONE}, {.VD_Q,.VM_D,.NEON_SHIFT_IMM6,.NONE}, 0xF3800A10, 0xFE800FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B20300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B60300, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSHLL, {.QPR,.DPR,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3BA0300, 0xFFB30FD0, .NEON, .A32, {} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xF2800A10, 0xFE800FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_8,.NONE,.NONE,.NONE}, 0xF3B20300, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_16,.NONE,.NONE,.NONE}, 0xF3B60300, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VSHLL, {.QPR,.DPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.VM_D,.NEON_SHLL_32,.NONE,.NONE,.NONE}, 0xF3BA0300, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, // .VCLS - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40440, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80440, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00400, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40400, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLS, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80400, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00440, 0xFFBF0FD0, .NEON, .A32, {}, {.S8,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B40440, 0xFFBF0FD0, .NEON, .A32, {}, {.S16,.NONE} }, + { .VCLS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B80440, 0xFFBF0FD0, .NEON, .A32, {}, {.S32,.NONE} }, // .VCLZ - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B004C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B404C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLZ, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B804C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00480, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40480, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCLZ, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80480, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B004C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I8,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B404C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I16,.NONE} }, + { .VCLZ, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B804C0, 0xFFBF0FD0, .NEON, .A32, {}, {.I32,.NONE} }, // .VCNT - { .VCNT, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {} }, - // .VPADD_F - { .VPADD_F, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3000D00, 0xFFB00F10, .NEON, .A32, {} }, - { .VPADD_F, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3100D00, 0xFFB00F10, .NEON_HALF_FP, .A32, {} }, - // .VRECPE_F - { .VRECPE_F, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0500, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRECPE_F, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB0540, 0xFFBF0FD0, .NEON, .A32, {} }, - // .VRSQRTE_F - { .VRSQRTE_F, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BB0580, 0xFFBF0FD0, .NEON, .A32, {} }, - { .VRSQRTE_F, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BB05C0, 0xFFBF0FD0, .NEON, .A32, {} }, + { .VCNT, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00500, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VCNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00540, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VREV16 - { .VREV16, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV16, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV16, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00100, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV16, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00140, 0xFFB30FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VREV32 - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B000C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV32, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B400C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV32, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV32, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40080, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VREV32, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B000C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV32, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B400C0, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, // .VREV64 - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B40000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B80000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B40040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VREV64, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B80040, 0xFFB30FD0, .NEON, .A32, {} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B00000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B40000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VREV64, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B80000, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B40040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VREV64, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B80040, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VEXT - { .VEXT, {.DPR,.DPR,.DPR,.IMM4}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2B00000, 0xFFB00010, .NEON, .A32, {} }, - { .VEXT, {.QPR,.QPR,.QPR,.IMM4}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2B00040, 0xFFB00050, .NEON, .A32, {} }, + { .VEXT, {.DPR,.DPR,.DPR,.IMM4,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xF2B00000, 0xFFB00010, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VEXT, {.QPR,.QPR,.QPR,.IMM4,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2B00040, 0xFFB00050, .NEON, .A32, {}, {.SZ64,.NONE} }, // .VTBL - { .VTBL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_1,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00800, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_2,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00900, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00A00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBL, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00B00, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VTBX - { .VTBX, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {} }, - { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_1,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00840, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_2,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00940, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_3,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00A40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTBX, {.DPR,.DPR_LIST,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VN_TABLE_4,.VM_D,.NONE,.NONE,.NONE}, 0xF3B00B40, 0xFFB00F70, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VTRN - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3BA0080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B200C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B600C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VTRN, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA00C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B60080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VTRN, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0080, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B200C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B600C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VTRN, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA00C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VUZP - { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B60140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VUZP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0140, 0xFFB30FD0, .NEON, .A32, {} }, + { .VUZP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20100, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VUZP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B60100, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B60140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VUZP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0140, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VZIP - { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B60180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B201C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B601C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VZIP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA01C0, 0xFFB30FD0, .NEON, .A32, {} }, + { .VZIP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20180, 0xFFB70FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VZIP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B60180, 0xFFB70FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B201C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B601C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VZIP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA01C0, 0xFFBF0FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VDUP - { .VDUP, {.DPR,.GPR,.NONE,.NONE}, {.VD_D,.RT_A32,.NONE,.NONE}, 0x0EC00B10, 0x0FF00FD0, .NEON, .A32, {} }, - { .VDUP, {.QPR,.GPR,.NONE,.NONE}, {.VD_Q,.RT_A32,.NONE,.NONE}, 0x0EE00B10, 0x0FF00FD0, .NEON, .A32, {} }, - { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B00C00, 0xFFB00FD0, .NEON, .A32, {} }, - { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE}, {.VD_Q,.VM_D,.NONE,.NONE}, 0xF3B00C40, 0xFFB00FD0, .NEON, .A32, {} }, - { .VDUP, {.QPR,.GPR,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true} }, + { .VDUP, {.DPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VN_D,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0EC00B10, 0x0FF00FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.QPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VN_Q,.RT_A32,.NONE,.NONE,.NONE,.NONE}, 0x0EE00B10, 0x0FF00FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_8,.NONE,.NONE,.NONE,.NONE}, 0xF3B10C00, 0xFFB10FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_8,.NONE,.NONE,.NONE,.NONE}, 0xF3B10C40, 0xFFB10FD0, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_16,.NONE,.NONE,.NONE,.NONE}, 0xF3B20C00, 0xFFB30FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_16,.NONE,.NONE,.NONE,.NONE}, 0xF3B20C40, 0xFFB30FD0, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VDUP, {.DPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.NEON_VDUP_LANE_32,.NONE,.NONE,.NONE,.NONE}, 0xF3B40C00, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VDUP, {.QPR,.DPR_ELEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.NEON_VDUP_LANE_32,.NONE,.NONE,.NONE,.NONE}, 0xF3B40C40, 0xFFB70FD0, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VDUP, {.QPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE,.NONE,.NONE}, 0xEE800B10, 0xFF900F5F, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, // .VSWP - { .VSWP, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VSWP, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {} }, - // .VMOV_LANE - { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_8,.RT_A32,.NONE,.NONE}, 0x0E400B10, 0x0FD00F1F, .VFPV2, .A32, {} }, - { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_16,.RT_A32,.NONE,.NONE}, 0x0E000B30, 0x0FD00F3F, .VFPV2, .A32, {} }, - { .VMOV_LANE, {.DPR_ELEM,.GPR,.NONE,.NONE}, {.VMOV_LANE_32,.RT_A32,.NONE,.NONE}, 0x0E000B10, 0x0FD00F7F, .VFPV2, .A32, {} }, + { .VSWP, {.DPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0xF3B20000, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, + { .VSWP, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B20040, 0xFFB30FD0, .NEON, .A32, {}, {.NONE,.NONE} }, // .VLD1 - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200700, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200A00, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200600, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200200, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4A00C00, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00F00, .NEON, .A32, {} }, - { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00F00, .NEON, .A32, {} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4200A0F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420020F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00C0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0000F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0040F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0080F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VLD2 - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200800, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200900, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200300, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0010F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0050F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0090F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VLD3 - { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200400, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200500, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420050F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0020F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0060F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00A0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VLD4 - { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200000, 0xFFF00F00, .NEON, .A32, {} }, - { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4200100, 0xFFF00F00, .NEON, .A32, {} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420000F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF420010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0030F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A0070F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00B0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, + { .VLD4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_ALL_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, // .VST1 - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000700, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000A00, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000600, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000200, 0xFFF00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00F00, .NEON, .A32, {} }, - { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800800, 0xFFB00F00, .NEON, .A32, {} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_1,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400070F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4000A0F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400060F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400020F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480000F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480040F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST1, {.DPR_ELEM,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480080F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VST2 - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000800, 0xFFF00F00, .NEON, .A32, {} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000900, 0xFFF00F00, .NEON, .A32, {} }, - { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000300, 0xFFF00F00, .NEON, .A32, {} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400080F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_2X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400090F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400030F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480010F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480050F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST2, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_2,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480090F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VST3 - { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000400, 0xFFF00F00, .NEON, .A32, {} }, - { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000500, 0xFFF00F00, .NEON, .A32, {} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400040F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_3X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400050F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480020F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480060F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST3, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_3,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4800A0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, // .VST4 - { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000000, 0xFFF00F00, .NEON, .A32, {} }, - { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VFP_D_LIST,.RN_A32,.NONE,.NONE}, 0xF4000100, 0xFFF00F00, .NEON, .A32, {} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400000F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_D_LIST_4X,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF400010F, 0xFFF00F0F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_8_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480030F, 0xFFB00F1F, .NEON, .A32, {}, {.SZ8,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_16_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF480070F, 0xFFB00F3F, .NEON, .A32, {}, {.SZ16,.NONE} }, + { .VST4, {.DPR_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.NEON_LANE_D_32_4,.RN_A32,.NONE,.NONE,.NONE,.NONE}, 0xF4800B0F, 0xFFB00F7F, .NEON, .A32, {}, {.SZ32,.NONE} }, // .AESE - { .AESE, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {} }, + { .AESE, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00300, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, // .AESD - { .AESD, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {} }, + { .AESD, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00340, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, // .AESMC - { .AESMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {} }, + { .AESMC, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B00380, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, // .AESIMC - { .AESIMC, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {} }, + { .AESIMC, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B003C0, 0xFFB30FD0, .CRYPTO, .A32, {}, {.SZ8,.NONE} }, // .SHA1H - { .SHA1H, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {} }, + { .SHA1H, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3B902C0, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA1SU0 - { .SHA1SU0, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2300C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA1SU0, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2300C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA1SU1 - { .SHA1SU1, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {} }, + { .SHA1SU1, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA0380, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA1C - { .SHA1C, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2000C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA1C, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2000C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA1M - { .SHA1M, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA1M, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2200C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA1P - { .SHA1P, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA1P, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF2100C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA256H - { .SHA256H, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3000C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA256H, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3000C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA256H2 - { .SHA256H2, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3100C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA256H2, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3100C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA256SU0 - { .SHA256SU0, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {} }, + { .SHA256SU0, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xF3BA03C0, 0xFFBF0FD0, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .SHA256SU1 - { .SHA256SU1, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xF3200C40, 0xFFB00F50, .CRYPTO, .A32, {} }, + { .SHA256SU1, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xF3200C40, 0xFFB00F50, .CRYPTO, .A32, {}, {.SZ32,.NONE} }, // .VJCVT - { .VJCVT, {.SPR,.DPR,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {} }, + { .VJCVT, {.SPR,.DPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_D,.NONE,.NONE,.NONE,.NONE}, 0x0EB90BC0, 0x0FBF0FD0, .V8, .A32, {}, {.S32,.F64} }, // .VSDOT - { .VSDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200D00, 0xFFB00F10, .DOT, .A32, {} }, - { .VSDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200D40, 0xFFB00F50, .DOT, .A32, {} }, + { .VSDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC200D00, 0xFFB00F10, .DOT, .A32, {}, {.S8,.NONE} }, + { .VSDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200D40, 0xFFB00F50, .DOT, .A32, {}, {.S8,.NONE} }, + { .VSDOT, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D00, 0xFFB00F10, .DOT, .A32, {}, {.S8,.NONE} }, + { .VSDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D40, 0xFFB00F50, .DOT, .A32, {}, {.S8,.NONE} }, // .VUDOT - { .VUDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200D10, 0xFFB00F10, .DOT, .A32, {} }, - { .VUDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200D50, 0xFFB00F50, .DOT, .A32, {} }, - // .VSDOT_LANE - { .VSDOT_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE200D00, 0xFFB00F10, .DOT, .A32, {} }, - { .VSDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE200D40, 0xFFB00F50, .DOT, .A32, {} }, - // .VUDOT_LANE - { .VUDOT_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE200D10, 0xFFB00F10, .DOT, .A32, {} }, - { .VUDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE200D50, 0xFFB00F50, .DOT, .A32, {} }, - // .VCVT_BF16 - { .VCVT_BF16, {.DPR,.QPR,.NONE,.NONE}, {.VD_D,.VM_Q,.NONE,.NONE}, 0xF3B60600, 0xFFBF0FD0, .BF16, .A32, {} }, - // .VDOT_BF16 - { .VDOT_BF16, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC000D00, 0xFFB00F10, .BF16, .A32, {} }, - { .VDOT_BF16, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC000D40, 0xFFB00F50, .BF16, .A32, {} }, - // .VFMA_BF16 - { .VFMA_BF16, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC300850, 0xFFB00F50, .BF16, .A32, {} }, - // .VMMLA_BF16 - { .VMMLA_BF16, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC000C40, 0xFFB00F50, .BF16, .A32, {} }, + { .VUDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC200D10, 0xFFB00F10, .DOT, .A32, {}, {.U8,.NONE} }, + { .VUDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200D50, 0xFFB00F50, .DOT, .A32, {}, {.U8,.NONE} }, + { .VUDOT, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D10, 0xFFB00F10, .DOT, .A32, {}, {.U8,.NONE} }, + { .VUDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE200D50, 0xFFB00F50, .DOT, .A32, {}, {.U8,.NONE} }, + // .VDOT + { .VDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC000D00, 0xFFB00F10, .BF16, .A32, {}, {.BF16,.NONE} }, + { .VDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC000D40, 0xFFB00F50, .BF16, .A32, {}, {.BF16,.NONE} }, + // .VMMLA + { .VMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC000C40, 0xFFB00F50, .BF16, .A32, {}, {.BF16,.NONE} }, // .VFMAL - { .VFMAL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200810, 0xFFB00F10, .FHM, .A32, {} }, - { .VFMAL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200850, 0xFFB00F50, .FHM, .A32, {} }, + { .VFMAL, {.DPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFC200810, 0xFFB00F10, .FHM, .A32, {}, {.F16,.NONE} }, + { .VFMAL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFC200850, 0xFFB00F50, .FHM, .A32, {}, {.F16,.NONE} }, // .VFMSL - { .VFMSL, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {} }, - { .VFMSL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {} }, + { .VFMSL, {.DPR,.SPR,.SPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_S,.VM_S,.NONE,.NONE,.NONE}, 0xFCA00810, 0xFFB00F10, .FHM, .A32, {}, {.F16,.NONE} }, + { .VFMSL, {.QPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFCA00850, 0xFFB00F50, .FHM, .A32, {}, {.F16,.NONE} }, // .VCMLA - { .VCMLA, {.DPR,.DPR,.DPR,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC200800, 0xFC800F10, .FCMA, .A32, {} }, - { .VCMLA, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200840, 0xFC800F50, .FCMA, .A32, {} }, + { .VCMLA, {.DPR,.DPR,.DPR,.IMM,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NEON_ROT_4_HI,.NONE,.NONE}, 0xFC200800, 0xFC800F10, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NEON_ROT_4_HI,.NONE,.NONE}, 0xFC200840, 0xFC800F50, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.DPR,.DPR,.DPR_ELEM,.IMM,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NEON_ROT_4,.NONE,.NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.QPR,.QPR,.DPR_ELEM,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NEON_ROT_4,.NONE,.NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCMLA, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_CMLA,.NONE,.NONE}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true}, {.F16,.NONE} }, // .VCADD - { .VCADD, {.DPR,.DPR,.DPR,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFC800800, 0xFE800F10, .FCMA, .A32, {} }, - { .VCADD, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC800840, 0xFE800F50, .FCMA, .A32, {} }, - // .VCMLA_LANE - { .VCMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.IMM}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE000800, 0xFFB00F10, .FCMA, .A32, {} }, - { .VCMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.IMM}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE000840, 0xFFB00F50, .FCMA, .A32, {} }, + { .VCADD, {.DPR,.DPR,.DPR,.IMM,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NEON_ROT_2,.NONE,.NONE}, 0xFC800800, 0xFE800F10, .FCMA, .A32, {}, {.F16,.NONE} }, + { .VCADD, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NEON_ROT_2,.NONE,.NONE}, 0xFC800840, 0xFE800F50, .FCMA, .A32, {}, {.F16,.NONE} }, // .VSMMLA - { .VSMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200C40, 0xFFB00F50, .V8, .A32, {} }, + { .VSMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200C40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, // .VUMMLA - { .VUMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFC200C50, 0xFFB00F50, .V8, .A32, {} }, + { .VUMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFC200C50, 0xFFB00F50, .V8, .A32, {}, {.U8,.NONE} }, // .VUSMMLA - { .VUSMMLA, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {} }, + { .VUSMMLA, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFCA00C40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, // .VSUDOT - { .VSUDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D50, 0xFFB00F50, .V8, .A32, {} }, + { .VSUDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {}, {.U8,.NONE} }, // .VUSDOT - { .VUSDOT, {.DPR,.DPR,.DPR,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {} }, - { .VUSDOT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {} }, - // .VSUDOT_LANE - { .VSUDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE800D50, 0xFFB00F50, .V8, .A32, {} }, - // .VUSDOT_LANE - { .VUSDOT_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xFE800D00, 0xFFB00F10, .V8, .A32, {} }, - { .VUSDOT_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {} }, - // .VMUL_LANE - { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00840, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A008C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMUL_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A008C0, 0xFFB00F50, .NEON, .A32, {} }, - // .VMLA_LANE - { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00040, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A000C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A000C0, 0xFFB00F50, .NEON, .A32, {} }, - // .VMLS_LANE - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00440, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A004C0, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A004C0, 0xFFB00F50, .NEON, .A32, {} }, - // .VMULL_LANE - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900A40, 0xFFB00F50, .NEON, .A32, {} }, - { .VMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00A40, 0xFFB00F50, .NEON, .A32, {} }, - // .VMLAL_LANE - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900240, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00240, 0xFFB00F50, .NEON, .A32, {} }, - // .VMLSL_LANE - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3900640, 0xFFB00F50, .NEON, .A32, {} }, - { .VMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF3A00640, 0xFFB00F50, .NEON, .A32, {} }, - // .VQDMULL_LANE - { .VQDMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900B40, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMULL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00B40, 0xFFB00F50, .NEON, .A32, {} }, - // .VQDMLAL_LANE - { .VQDMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900340, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLAL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00340, 0xFFB00F50, .NEON, .A32, {} }, - // .VQDMLSL_LANE - { .VQDMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2900740, 0xFFB00F50, .NEON, .A32, {} }, - { .VQDMLSL_LANE, {.QPR,.DPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_D,.VM_D,.NONE}, 0xF2A00740, 0xFFB00F50, .NEON, .A32, {} }, - // .VFMA_LANE - { .VFMA_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A000C0, 0xFFB00F50, .VFPV4, .A32, {} }, - { .VFMA_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A000C0, 0xFFB00F50, .VFPV4, .A32, {} }, - // .VFMS_LANE - { .VFMS_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A004C0, 0xFFB00F50, .VFPV4, .A32, {} }, - { .VFMS_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A004C0, 0xFFB00F50, .VFPV4, .A32, {} }, - // .VQRDMLAH_LANE - { .VQRDMLAH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLAH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLAH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900E40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLAH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00E40, 0xFFB00F50, .V8, .A32, {} }, - // .VQRDMLSH_LANE - { .VQRDMLSH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2900F40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.DPR,.DPR,.DPR_ELEM,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE}, 0xF2A00F40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3900F40, 0xFFB00F50, .V8, .A32, {} }, - { .VQRDMLSH_LANE, {.QPR,.QPR,.DPR_ELEM,.NONE}, {.VD_Q,.VN_Q,.VM_D,.NONE}, 0xF3A00F40, 0xFFB00F50, .V8, .A32, {} }, + { .VUSDOT, {.DPR,.DPR,.DPR,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.VM_D,.NONE,.NONE,.NONE}, 0xFCA00D00, 0xFFB00F10, .V8, .A32, {}, {.S8,.NONE} }, + { .VUSDOT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFCA00D40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, + { .VUSDOT, {.DPR,.DPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_D,.VN_D,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE800D00, 0xFFB00F10, .V8, .A32, {}, {.S8,.NONE} }, + { .VUSDOT, {.QPR,.QPR,.DPR_ELEM,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.NEON_VM_SCALAR_32,.NONE,.NONE,.NONE}, 0xFE800D40, 0xFFB00F50, .V8, .A32, {}, {.S8,.NONE} }, // .VQABS - { .VQABS, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB00740, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQABS, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB00740, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQNEG - { .VQNEG, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFFB007C0, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQNEG, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFFB007C0, 0xFFB30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMOVX - { .VMOVX, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB00A40, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true} }, + { .VMOVX, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB00A40, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true}, {.F16,.NONE} }, // .VINS - { .VINS, {.SPR,.SPR,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0xFEB00AC0, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true} }, - // .VLDRB_GATHER - { .VLDRB_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true} }, - // .VLDRH_GATHER - { .VLDRH_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VLDRW_GATHER - { .VLDRW_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VLDRD_GATHER - { .VLDRD_GATHER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VSTRB_SCATTER - { .VSTRB_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true} }, - // .VSTRH_SCATTER - { .VSTRH_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VSTRW_SCATTER - { .VSTRW_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VSTRD_SCATTER - { .VSTRD_SCATTER, {.QPR,.MEM,.QPR,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE}, 0xEC600FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VCEQ_Z - { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10100, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10140, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90500, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCEQ_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90540, 0xFFB30FD0, .NEON, .A32, {} }, - // .VCGE_Z - { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10080, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B100C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90480, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B904C0, 0xFFB30FD0, .NEON, .A32, {} }, - // .VCGT_Z - { .VCGT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10000, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10040, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90400, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCGT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90440, 0xFFB30FD0, .NEON, .A32, {} }, - // .VCLE_Z - { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10180, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B101C0, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90580, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLE_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B905C0, 0xFFB30FD0, .NEON, .A32, {} }, - // .VCLT_Z - { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B10200, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B10240, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.DPR,.DPR,.NONE,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0xF3B90600, 0xFFB30FD0, .NEON, .A32, {} }, - { .VCLT_Z, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xF3B90640, 0xFFB30FD0, .NEON, .A32, {} }, - // .VLD2R - { .VLD2R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00D0F, 0xFFB00F0F, .NEON, .A32, {} }, - // .VLD3R - { .VLD3R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00E0F, 0xFFB00F0F, .NEON, .A32, {} }, - // .VLD4R - { .VLD4R, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00F0F, 0xFFB00F0F, .NEON, .A32, {} }, - // .VLD1_LANE - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00000, 0xFFB00C00, .NEON, .A32, {} }, - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00400, 0xFFB00C00, .NEON, .A32, {} }, - { .VLD1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00800, 0xFFB00C00, .NEON, .A32, {} }, - // .VLD2_LANE - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00100, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00500, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00900, 0xFFB00D00, .NEON, .A32, {} }, - // .VLD3_LANE - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00200, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00600, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00A00, 0xFFB00D00, .NEON, .A32, {} }, - // .VLD4_LANE - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00300, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00700, 0xFFB00D00, .NEON, .A32, {} }, - { .VLD4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4A00B00, 0xFFB00D00, .NEON, .A32, {} }, - // .VST1_LANE - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800000, 0xFFB00C00, .NEON, .A32, {} }, - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800400, 0xFFB00C00, .NEON, .A32, {} }, - { .VST1_LANE, {.DPR_ELEM,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800800, 0xFFB00C00, .NEON, .A32, {} }, - // .VST2_LANE - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800100, 0xFFB00D00, .NEON, .A32, {} }, - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800500, 0xFFB00D00, .NEON, .A32, {} }, - { .VST2_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800900, 0xFFB00D00, .NEON, .A32, {} }, - // .VST3_LANE - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800200, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800600, 0xFFB00D00, .NEON, .A32, {} }, - { .VST3_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800A00, 0xFFB00D00, .NEON, .A32, {} }, - // .VST4_LANE - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800300, 0xFFB00D00, .NEON, .A32, {} }, - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800700, 0xFFB00D00, .NEON, .A32, {} }, - { .VST4_LANE, {.DPR_LIST,.MEM,.NONE,.NONE}, {.VD_D,.RN_A32,.NONE,.NONE}, 0xF4800B00, 0xFFB00D00, .NEON, .A32, {} }, - // .VCVT_FIXED - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBF0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBB0A40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0A40, 0x0FBF0FC0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0A40, 0x0FBF0FC0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EBE0B40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.DPR,.DPR,.IMM,.NONE}, {.VD_D,.VM_D,.NONE,.NONE}, 0x0EBA0B40, 0x0FBF0FD0, .VFPV3, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBE0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, - { .VCVT_FIXED, {.SPR,.SPR,.IMM,.NONE}, {.VD_S,.VM_S,.NONE,.NONE}, 0x0EBA0940, 0x0FBF0FD0, .HALF_FP, .A32, {} }, + { .VINS, {.SPR,.SPR,.NONE,.NONE,.NONE,.NONE}, {.VD_S,.VM_S,.NONE,.NONE,.NONE,.NONE}, 0xFEB00AC0, 0xFFBF0FD0, .HALF_FP, .T32, {thumb32=true}, {.F16,.NONE} }, // .IT - { .IT, {.COND,.IMM4,.NONE,.NONE}, {.NONE,.IT_MASK,.NONE,.NONE}, 0x0000BF00, 0x0000FF00, .V6T2, .T32, {} }, + { .IT, {.COND,.IMM4,.NONE,.NONE,.NONE,.NONE}, {.NONE,.IT_MASK,.NONE,.NONE,.NONE,.NONE}, 0x0000BF00, 0x0000FF00, .V6T2, .T32, {}, {.NONE,.NONE} }, // .TT - { .TT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F000, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, + { .TT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F000, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .TTT - { .TTT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F040, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, + { .TTT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F040, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .TTA - { .TTA, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F080, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, + { .TTA, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F080, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .TTAT - { .TTAT, {.GPR,.GPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE}, 0xE840F0C0, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true} }, + { .TTAT, {.GPR,.GPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.NONE,.NONE,.NONE,.NONE}, 0xE840F0C0, 0xFFF0F0C0, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .SG - { .SG, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xE97FE97F, 0xFFFFFFFF, .V8M_SE, .T32, {thumb32=true} }, + { .SG, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xE97FE97F, 0xFFFFFFFF, .V8M_SE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .BXNS - { .BXNS, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004704, 0x0000FF87, .V8M_SE, .T32, {branch=true} }, + { .BXNS, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004704, 0x0000FF87, .V8M_SE, .T32, {branch=true}, {.NONE,.NONE} }, // .BLXNS - { .BLXNS, {.GPR,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE}, 0x00004784, 0x0000FF87, .V8M_SE, .T32, {branch=true} }, + { .BLXNS, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RM_T16_HI,.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00004784, 0x0000FF87, .V8M_SE, .T32, {branch=true}, {.NONE,.NONE} }, // .PAC - { .PAC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF801D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, + { .PAC, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF801D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .PACBTI - { .PACBTI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF800D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, + { .PACBTI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF800D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .AUT - { .AUT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF802D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, + { .AUT, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF802D, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .AUTG - { .AUTG, {.GPR,.GPR,.GPR,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE}, 0xFB50F000, 0xFFF0F0F0, .V81M, .T32, {thumb32=true} }, + { .AUTG, {.GPR,.GPR,.GPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE,.NONE}, 0xFB50F000, 0xFFF0F0F0, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .BTI - { .BTI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF3AF80F0, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, + { .BTI, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF3AF80F0, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .WLS - { .WLS, {.GPR,.REL11,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE}, 0xF040C001, 0xFFF0F001, .V81M, .T32, {branch=true, thumb32=true} }, + { .WLS, {.GPR,.REL11,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE}, 0xF040C001, 0xFFF0F001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, // .WLSTP - { .WLSTP, {.GPR,.REL11,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE}, 0xF000C001, 0xFEC0F001, .V81M, .T32, {branch=true, thumb32=true} }, + { .WLSTP, {.GPR,.REL11,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE}, 0xF000C001, 0xFEC0F001, .V81M, .T32, {branch=true, thumb32=true}, {.SZ8,.NONE} }, // .DLS - { .DLS, {.GPR,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE}, 0xF040E001, 0xFFF0FFFF, .V81M, .T32, {thumb32=true} }, + { .DLS, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF040E001, 0xFFF0FFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .DLSTP - { .DLSTP, {.GPR,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE}, 0xF000E001, 0xFEC0FFFF, .V81M, .T32, {thumb32=true} }, + { .DLSTP, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF000E001, 0xFEC0FFFF, .V81M, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .LE - { .LE, {.REL11,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE}, 0xF00FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true} }, + { .LE, {.REL11,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF00FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, // .LETP - { .LETP, {.REL11,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE}, 0xF01FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true} }, + { .LETP, {.REL11,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MVE_LOOP_IMM,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF01FC001, 0xFFFFF001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, // .LCTP - { .LCTP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xF00FE001, 0xFFFFFFFF, .V81M, .T32, {thumb32=true} }, + { .LCTP, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF00FE001, 0xFFFFFFFF, .V81M, .T32, {thumb32=true}, {.NONE,.NONE} }, // .BF - { .BF, {.REL_BF,.REL_BF,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE}, 0xF040E001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true} }, - // .BFI_BR - { .BFI_BR, {.REL_BF,.GPR,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE}, 0xF060E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true} }, + { .BF, {.REL_BF,.REL_BF,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE,.NONE,.NONE}, 0xF040E001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, + // .BFX + { .BFX, {.REL_BF,.GPR,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE,.NONE,.NONE}, 0xF060E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, // .BFL - { .BFL, {.REL_BF,.REL_BF,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE}, 0xF000C001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true} }, + { .BFL, {.REL_BF,.REL_BF,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.NONE,.NONE,.NONE,.NONE}, 0xF000C001, 0xF87FF001, .V81M, .T32, {branch=true, thumb32=true}, {.SZ8,.NONE} }, // .BFLX - { .BFLX, {.REL_BF,.GPR,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE}, 0xF070E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true} }, + { .BFLX, {.REL_BF,.GPR,.NONE,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_RM,.NONE,.NONE,.NONE,.NONE}, 0xF070E001, 0xF870FFFF, .V81M, .T32, {branch=true, thumb32=true}, {.NONE,.NONE} }, // .BFCSEL - { .BFCSEL, {.REL_BF,.REL_BF,.IMM4,.NONE}, {.BF_BOFF,.BF_BLOC,.BFCSEL_COND,.NONE}, 0xF002E001, 0xF843F001, .V81M, .T32, {branch=true, thumb32=true} }, + { .BFCSEL, {.REL_BF,.REL_BF,.IMM4,.NONE,.NONE,.NONE}, {.BF_BOFF,.BF_BLOC,.BFCSEL_COND,.NONE,.NONE,.NONE}, 0xF002E001, 0xF843F001, .V81M, .T32, {branch=true, thumb32=true}, {.SZ8,.NONE} }, // .CX1 - { .CX1, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xEE000000, 0xFF800000, .CDE, .T32, {thumb32=true} }, + { .CX1, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE000000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX1A - { .CX1A, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xFE000000, 0xFF800000, .CDE, .T32, {thumb32=true} }, + { .CX1A, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFE000000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX1D - { .CX1D, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xEE800000, 0xFF800000, .CDE, .T32, {thumb32=true} }, + { .CX1D, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE800000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX1DA - { .CX1DA, {.IMM_COPROC,.GPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE}, 0xFE800000, 0xFF800000, .CDE, .T32, {thumb32=true} }, + { .CX1DA, {.IMM_COPROC,.GPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFE800000, 0xFF800000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX2 - { .CX2, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEE400000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX2, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEE400000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX2A - { .CX2A, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xFE400000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX2A, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFE400000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX2D - { .CX2D, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX2D, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX2DA - { .CX2DA, {.IMM_COPROC,.GPR,.GPR,.IMM}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX2DA, {.IMM_COPROC,.GPR,.GPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX3 - { .CX3, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xEE800000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX3, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xEE800000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX3A - { .CX3A, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xFE800000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX3A, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFE800000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX3D - { .CX3D, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX3D, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xEEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .CX3DA - { .CX3DA, {.IMM_COPROC,.GPR,.GPR,.GPR}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true} }, + { .CX3DA, {.IMM_COPROC,.GPR,.GPR,.GPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.RD_T32,.RN_T32,.RM_T32,.NONE,.NONE}, 0xFEC00000, 0xFFC00000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCX1 - { .VCX1, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX1, {.IMM_COPROC,.SPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEC200000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX1, {.IMM_COPROC,.DPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEC300000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCX1A - { .VCX1A, {.IMM_COPROC,.SPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX1A, {.IMM_COPROC,.DPR,.IMM,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX1A, {.IMM_COPROC,.SPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFC200000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX1A, {.IMM_COPROC,.DPR,.IMM,.NONE,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xFC300000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCX2 - { .VCX2, {.IMM_COPROC,.SPR,.SPR,.IMM}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX2, {.IMM_COPROC,.SPR,.SPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEC600000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2, {.IMM_COPROC,.DPR,.DPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEC700000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCX2A - { .VCX2A, {.IMM_COPROC,.SPR,.SPR,.IMM}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD}, 0xFC600000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX2A, {.IMM_COPROC,.DPR,.DPR,.IMM}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD}, 0xFC700000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX2A, {.IMM_COPROC,.SPR,.SPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VM_S,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFC600000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX2A, {.IMM_COPROC,.DPR,.DPR,.IMM,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VM_D,.CDE_IMM_FIELD,.NONE,.NONE}, 0xFC700000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCX3 - { .VCX3, {.IMM_COPROC,.SPR,.SPR,.SPR}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX3, {.IMM_COPROC,.SPR,.SPR,.SPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S,.NONE,.NONE}, 0xEC800000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX3, {.IMM_COPROC,.DPR,.DPR,.DPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D,.NONE,.NONE}, 0xEC900000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCX3A - { .VCX3A, {.IMM_COPROC,.SPR,.SPR,.SPR}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S}, 0xFC800000, 0xFF300000, .CDE, .T32, {thumb32=true} }, - { .VCX3A, {.IMM_COPROC,.DPR,.DPR,.DPR}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D}, 0xFC900000, 0xFF300000, .CDE, .T32, {thumb32=true} }, + { .VCX3A, {.IMM_COPROC,.SPR,.SPR,.SPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_S,.VN_S,.VM_S,.NONE,.NONE}, 0xFC800000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VCX3A, {.IMM_COPROC,.DPR,.DPR,.DPR,.NONE,.NONE}, {.CDE_COPROC_FIELD,.VD_D,.VN_D,.VM_D,.NONE,.NONE}, 0xFC900000, 0xFF300000, .CDE, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VPT - { .VPT, {.MVE_VPT_MASK,.COND,.QPR,.QPR}, {.MVE_VPT_MASK_FIELD,.NONE,.VN_Q,.VM_Q}, 0xFE010F00, 0xFE018FF0, .MVE_INT, .T32, {thumb32=true} }, + { .VPT, {.MVE_VPT_MASK,.COND,.QPR,.QPR,.NONE,.NONE}, {.MVE_VPT_MASK_FIELD,.NONE,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE010F00, 0xFE018FF0, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, // .VPST - { .VPST, {.MVE_VPT_MASK,.NONE,.NONE,.NONE}, {.MVE_VPT_MASK_FIELD,.NONE,.NONE,.NONE}, 0xFE710F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true} }, + { .VPST, {.MVE_VPT_MASK,.NONE,.NONE,.NONE,.NONE,.NONE}, {.MVE_VPT_MASK_FIELD,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xFE710F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VPSEL - { .VPSEL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE010F01, 0xFFB10FF1, .MVE_INT, .T32, {thumb32=true} }, + { .VPSEL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE010F01, 0xFFB10FF1, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, // .VPNOT - { .VPNOT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xFE310F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true} }, + { .VPNOT, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xFE310F4D, 0xFFFFFFFF, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCTP - { .VCTP, {.GPR,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE}, 0xF000E801, 0xFFC0FFFF, .MVE_INT, .T32, {thumb32=true} }, + { .VCTP, {.GPR,.NONE,.NONE,.NONE,.NONE,.NONE}, {.RN_T32,.NONE,.NONE,.NONE,.NONE,.NONE}, 0xF000E801, 0xFFC0FFFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VADDV - { .VADDV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEF10F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VADDV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEF10F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VADDVA - { .VADDVA, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEF10F20, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VADDVA, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEF10F20, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VADDLV - { .VADDLV, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VADDLV, {.GPR,.GPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEE890F00, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VADDLVA - { .VADDLVA, {.GPR,.GPR,.QPR,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VADDLVA, {.GPR,.GPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEE890F20, 0xEFFF0FD1, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMAXV - { .VMAXV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE20F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VMAXV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE20F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMAXAV - { .VMAXAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VMAXAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE00F00, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMINV - { .VMINV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VMINV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE20F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMINAV - { .VMINAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VMINAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEE00F80, 0xEFF30FD1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMAXNMV - { .VMAXNMV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VMAXNMV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEE0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VMAXNMAV - { .VMAXNMAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEC0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VMAXNMAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEC0F00, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VMINNMV - { .VMINNMV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEE0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VMINNMV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEE0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VMINNMAV - { .VMINNMAV, {.GPR,.QPR,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE}, 0xEEEC0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true} }, + { .VMINNMAV, {.GPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.RD_T32,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEEEC0F80, 0xEFFF0FD1, .MVE_FP, .T32, {thumb32=true}, {.F32,.NONE} }, // .VABAV - { .VABAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEE800F01, 0xEFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VABAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE800F01, 0xEFB11051, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMLADAV - { .VMLADAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLADAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLADAVA - { .VMLADAVA, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLADAVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLADAVX - { .VMLADAVX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB01F00, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLADAVX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB01F00, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLADAVAX - { .VMLADAVAX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB01F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLADAVAX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB01F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLALDAV - { .VMLALDAV, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLALDAV, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLALDAVA - { .VMLALDAVA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLALDAVA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLALDAVX - { .VMLALDAVX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLALDAVX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLALDAVAX - { .VMLALDAVAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLALDAVAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLSDAV - { .VMLSDAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB00E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSDAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB00E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLSDAVA - { .VMLSDAVA, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB00E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSDAVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB00E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLSDAVX - { .VMLSDAVX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB01E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSDAVX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB01E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLSDAVAX - { .VMLSDAVAX, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xFEB01E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSDAVAX, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFEB01E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLSLDAV - { .VMLSLDAV, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSLDAV, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E01, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLSLDAVA - { .VMLSLDAVA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSLDAVA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800E21, 0xFFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLSLDAVX - { .VMLSLDAVX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSLDAVX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VMLSLDAVAX - { .VMLSLDAVAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSLDAVAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VRMLALDAVH - { .VRMLALDAVH, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLALDAVH, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLALDAVHA - { .VRMLALDAVHA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE800F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLALDAVHA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE800F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLALDAVHX - { .VRMLALDAVHX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLALDAVHX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLALDAVHAX - { .VRMLALDAVHAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xEE801F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLALDAVHAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xEE801F20, 0xEFB11F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLSLDAVH - { .VRMLSLDAVH, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE800E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLSLDAVH, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE800E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLSLDAVHA - { .VRMLSLDAVHA, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE800E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLSLDAVHA, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE800E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLSLDAVHX - { .VRMLSLDAVHX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLSLDAVHX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE801E01, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VRMLSLDAVHAX - { .VRMLSLDAVHAX, {.GPR,.GPR,.QPR,.QPR}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q}, 0xFE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true} }, + { .VRMLSLDAVHAX, {.GPR,.GPR,.QPR,.QPR,.NONE,.NONE}, {.RD_T32,.RN_T32,.VN_Q,.VM_Q,.NONE,.NONE}, 0xFE801E21, 0xFFB11051, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLAV - { .VMLAV, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLAV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLAVA - { .VMLAVA, {.GPR,.QPR,.QPR,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLAVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RD_T32,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEEB00F20, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S32,.NONE} }, // .VMLSV - { .VMLSV, {.GPR,.QPR,.QPR,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE}, 0xEEF00E01, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSV, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE,.NONE,.NONE}, 0xEEF00E01, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VMLSVA - { .VMLSVA, {.GPR,.QPR,.QPR,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE}, 0xEEF00E21, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSVA, {.GPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.RDLO_A32,.VN_Q_MVE,.VM_Q_MVE,.NONE,.NONE,.NONE}, 0xEEF00E21, 0xFFF10FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VCMUL - { .VCMUL, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE300E00, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true} }, + { .VCMUL, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE300E00, 0xEFB10F51, .MVE_FP, .T32, {thumb32=true}, {.F16,.NONE} }, // .VHCADD - { .VHCADD, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true} }, + { .VHCADD, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000F00, 0xEFB10F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, + { .VHCADD, {.QPR,.QPR,.QPR,.IMM,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_HCADD,.NONE,.NONE}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VBRSR - { .VBRSR, {.QPR,.QPR,.GPR,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE}, 0xEE011E60, 0xEF811F71, .MVE_INT, .T32, {thumb32=true} }, + { .VBRSR, {.QPR,.QPR,.GPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.RM_T32,.NONE,.NONE,.NONE}, 0xEE011E60, 0xEF811F71, .MVE_INT, .T32, {thumb32=true}, {.I8,.NONE} }, // .VSHLC - { .VSHLC, {.QPR,.GPR,.IMM5,.NONE}, {.VD_Q,.RM_T32,.A32_IMM_SHIFT,.NONE}, 0xEE000FC0, 0xFFC00FF1, .MVE_INT, .T32, {thumb32=true} }, + { .VSHLC, {.QPR,.GPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.RM_T32,.A32_IMM_SHIFT,.NONE,.NONE,.NONE}, 0xEE000FC0, 0xFFC00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VDDUP - { .VDDUP, {.QPR,.GPR,.IMM,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE}, 0xEE011F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true} }, + { .VDDUP, {.QPR,.GPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE011F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, // .VIDUP - { .VIDUP, {.QPR,.GPR,.IMM,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE}, 0xEE010F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true} }, + { .VIDUP, {.QPR,.GPR,.IMM,.NONE,.NONE,.NONE}, {.VD_Q,.RM_T32,.CDE_IMM_FIELD,.NONE,.NONE,.NONE}, 0xEE010F6E, 0xEF811F7E, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, // .VDWDUP - { .VDWDUP, {.QPR,.GPR,.GPR,.IMM}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEE011F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true} }, + { .VDWDUP, {.QPR,.GPR,.GPR,.IMM,.NONE,.NONE}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEE011F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, // .VIWDUP - { .VIWDUP, {.QPR,.GPR,.GPR,.IMM}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD}, 0xEE010F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true} }, + { .VIWDUP, {.QPR,.GPR,.GPR,.IMM,.NONE,.NONE}, {.VD_Q,.RM_T32,.RN_T32,.CDE_IMM_FIELD,.NONE,.NONE}, 0xEE010F60, 0xEF811F70, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, // .VMOVNB - { .VMOVNB, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VMOVNB, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.I16,.NONE} }, // .VMOVNT - { .VMOVNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xFE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VMOVNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xFE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.I16,.NONE} }, // .VQMOVNB - { .VQMOVNB, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE330E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQMOVNB, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE330E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VQMOVNT - { .VQMOVNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE331E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQMOVNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE331E01, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VQMOVUNB - { .VQMOVUNB, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQMOVUNB, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE310E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VQMOVUNT - { .VQMOVUNT, {.QPR,.QPR,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE}, 0xEE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQMOVUNT, {.QPR,.QPR,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NONE,.NONE,.NONE,.NONE}, 0xEE311E81, 0xFFB31FD1, .MVE_INT, .T32, {thumb32=true}, {.S16,.NONE} }, // .VSHLLB - { .VSHLLB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VSHLLB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VSHLLT - { .VSHLLT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VSHLLT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VMULLB - { .VMULLB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMULLB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMULLT - { .VMULLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMULLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VMLALB - { .VMLALB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLALB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VMLALT - { .VMLALT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLALT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E20, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VMLSLB - { .VMLSLB, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSLB, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VMLSLT - { .VMLSLT, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VMLSLT, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E10, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VSHRNB - { .VSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VSHRNT - { .VSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801EC1, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VRSHRNB - { .VRSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE800EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VRSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE800EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VRSHRNT - { .VRSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE801EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VRSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE801EC1, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQSHRNB - { .VQSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQSHRNT - { .VQSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801F40, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQRSHRNB - { .VQRSHRNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQRSHRNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQRSHRNT - { .VQRSHRNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQRSHRNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801F41, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQSHRUNB - { .VQSHRUNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE800FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQSHRUNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE800FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQSHRUNT - { .VQSHRUNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xEE801FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQSHRUNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xEE801FC0, 0xEF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQRSHRUNB - { .VQRSHRUNB, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE800FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, + { .VQRSHRUNB, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE800FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQRSHRUNT - { .VQRSHRUNT, {.QPR,.QPR,.IMM5,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE}, 0xFE801FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true} }, - // .VMOV_Q_R - { .VMOV_Q_R, {.QPR_ELEM,.GPR,.NONE,.NONE}, {.VD_Q,.RT_T32,.NONE,.NONE}, 0xEE000B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true} }, - // .VMOV_R_Q - { .VMOV_R_Q, {.GPR,.QPR_ELEM,.NONE,.NONE}, {.RT_T32,.VD_Q,.NONE,.NONE}, 0xEE100B10, 0xFF900F1F, .MVE_INT, .T32, {thumb32=true} }, - // .VMOV_2GPR_Q - { .VMOV_2GPR_Q, {.QPR_ELEM,.QPR_ELEM,.GPR,.GPR}, {.VD_Q,.VD_Q,.RT_T32,.RT2_T32}, 0xEC000F00, 0xFF900F11, .MVE_INT, .T32, {thumb32=true} }, + { .VQRSHRUNT, {.QPR,.QPR,.IMM5,.NONE,.NONE,.NONE}, {.VD_Q,.VM_Q,.NEON_SHIFT_IMM6,.NONE,.NONE,.NONE}, 0xFE801FC0, 0xFF801FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VQDMLADH - { .VQDMLADH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQDMLADH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQDMLADHX - { .VQDMLADHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQDMLADHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E00, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQDMLSDH - { .VQDMLSDH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE000E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQDMLSDH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE000E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQDMLSDHX - { .VQDMLSDHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE001E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQDMLSDHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE001E00, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQRDMLADH - { .VQRDMLADH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE000E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQRDMLADH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE000E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQRDMLADHX - { .VQRDMLADHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xEE001E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQRDMLADHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xEE001E01, 0xEF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQRDMLSDH - { .VQRDMLSDH, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, + { .VQRDMLSDH, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE000E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VQRDMLSDHX - { .VQRDMLSDHX, {.QPR,.QPR,.QPR,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true} }, - // .VHCADD_SAT - { .VHCADD_SAT, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_HCADD}, 0xEE000F00, 0xFFE10FF1, .MVE_INT, .T32, {thumb32=true} }, - // .VCMLA_MVE - { .VCMLA_MVE, {.QPR,.QPR,.QPR,.IMM}, {.VD_Q,.VN_Q,.VM_Q,.MVE_ROT_CMLA}, 0xFC200840, 0xFE611FF1, .MVE_FP, .T32, {thumb32=true} }, + { .VQRDMLSDHX, {.QPR,.QPR,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.VN_Q,.VM_Q,.NONE,.NONE,.NONE}, 0xFE001E01, 0xFF811F51, .MVE_INT, .T32, {thumb32=true}, {.S8,.NONE} }, // .VLDRB - { .VLDRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, + { .VLDRB, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, + { .VLDRB, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true}, {.U8,.NONE} }, // .VLDRH - { .VLDRH, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, + { .VLDRH, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.U16,.NONE} }, + { .VLDRH, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.U16,.NONE} }, // .VLDRW - { .VLDRW, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, + { .VLDRW, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.U32,.NONE} }, + { .VLDRW, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.U32,.NONE} }, // .VLDRD - { .VLDRD, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED901F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, + { .VLDRD, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED901F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VLDRD, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xFC900FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.U64,.NONE} }, // .VSTRB - { .VSTRB, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true} }, + { .VSTRB, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801E00, 0xFFB01F00, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, + { .VSTRB, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600E00, 0xFEF00FD1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VSTRH - { .VSTRH, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, + { .VSTRH, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801E80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.SZ16,.NONE} }, + { .VSTRH, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600E90, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VSTRW - { .VSTRW, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, + { .VSTRW, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801F00, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.SZ32,.NONE} }, + { .VSTRW, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600F40, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VSTRD - { .VSTRD, {.QPR,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE}, 0xED801F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true} }, + { .VSTRD, {.QPR,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM12_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xED801F80, 0xFFB01F80, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, + { .VSTRD, {.QPR,.MEM,.QPR,.NONE,.NONE,.NONE}, {.VD_Q,.RN_T32,.VM_Q,.NONE,.NONE,.NONE}, 0xEC600FD0, 0xFEF00FF1, .MVE_INT, .T32, {thumb32=true}, {.NONE,.NONE} }, // .VLD20 - { .VLD20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VLD20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VLD21 - { .VLD21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VLD21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VLD40 - { .VLD40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VLD40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VLD41 - { .VLD41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VLD41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VLD42 - { .VLD42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VLD42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VLD43 - { .VLD43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC901E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VLD43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC901E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VST20 - { .VST20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VST20, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E00, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VST21 - { .VST21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VST21, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E20, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VST40 - { .VST40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VST40, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E01, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VST41 - { .VST41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VST41, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E21, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VST42 - { .VST42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VST42, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E41, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, // .VST43 - { .VST43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE}, 0xFC801E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true} }, + { .VST43, {.QPR_MVE_LIST,.MEM,.NONE,.NONE,.NONE,.NONE}, {.VD_Q,.MEM_IMM8_OFFSET,.NONE,.NONE,.NONE,.NONE}, 0xFC801E61, 0xFFB01EFF, .MVE_INT, .T32, {thumb32=true}, {.SZ8,.NONE} }, } ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ - .INVALID = { 0, 0}, - .AND = { 0, 11}, - .EOR = { 11, 9}, - .SUB = { 20, 10}, - .RSB = { 30, 8}, - .ADD = { 38, 12}, - .ADC = { 50, 9}, - .SBC = { 59, 9}, - .RSC = { 68, 6}, - .TST = { 74, 6}, - .TEQ = { 80, 5}, - .CMP = { 85, 8}, - .CMN = { 93, 6}, - .ORR = { 99, 9}, - .MOV = { 108, 12}, - .BIC = { 120, 9}, - .MVN = { 129, 9}, - .LSL = { 138, 6}, - .LSR = { 144, 6}, - .ASR = { 150, 6}, - .ROR = { 156, 5}, - .RRX = { 161, 1}, - .ADR = { 162, 1}, - .NEG = { 163, 1}, - .MOVW = { 164, 2}, - .MOVT = { 166, 2}, - .BFC = { 168, 2}, - .BFI = { 170, 2}, - .SBFX = { 172, 2}, - .UBFX = { 174, 2}, - .SXTB = { 176, 3}, - .SXTB16 = { 179, 2}, - .SXTH = { 181, 3}, - .UXTB = { 184, 3}, - .UXTB16 = { 187, 2}, - .UXTH = { 189, 3}, - .SXTAB = { 192, 2}, - .SXTAB16 = { 194, 2}, - .SXTAH = { 196, 2}, - .UXTAB = { 198, 2}, - .UXTAB16 = { 200, 2}, - .UXTAH = { 202, 2}, - .CLZ = { 204, 2}, - .RBIT = { 206, 2}, - .REV = { 208, 3}, - .REV16 = { 211, 3}, - .REVSH = { 214, 3}, - .SEL = { 217, 1}, - .PKHBT = { 218, 1}, - .PKHTB = { 219, 1}, - .USAD8 = { 220, 1}, - .USADA8 = { 221, 1}, - .SSAT = { 222, 2}, - .USAT = { 224, 2}, - .SSAT16 = { 226, 2}, - .USAT16 = { 228, 2}, - .QADD = { 230, 2}, - .QSUB = { 232, 2}, - .QDADD = { 234, 2}, - .QDSUB = { 236, 2}, - .SADD8 = { 238, 2}, - .SADD16 = { 240, 2}, - .SASX = { 242, 2}, - .SSAX = { 244, 2}, - .SSUB8 = { 246, 2}, - .SSUB16 = { 248, 2}, - .UADD8 = { 250, 2}, - .UADD16 = { 252, 2}, - .UASX = { 254, 2}, - .USAX = { 256, 2}, - .USUB8 = { 258, 2}, - .USUB16 = { 260, 2}, - .QADD8 = { 262, 2}, - .QADD16 = { 264, 2}, - .QASX = { 266, 2}, - .QSAX = { 268, 2}, - .QSUB8 = { 270, 2}, - .QSUB16 = { 272, 2}, - .UQADD8 = { 274, 2}, - .UQADD16 = { 276, 2}, - .UQASX = { 278, 2}, - .UQSAX = { 280, 2}, - .UQSUB8 = { 282, 2}, - .UQSUB16 = { 284, 2}, - .SHADD8 = { 286, 2}, - .SHADD16 = { 288, 2}, - .SHASX = { 290, 2}, - .SHSAX = { 292, 2}, - .SHSUB8 = { 294, 2}, - .SHSUB16 = { 296, 2}, - .UHADD8 = { 298, 2}, - .UHADD16 = { 300, 2}, - .UHASX = { 302, 2}, - .UHSAX = { 304, 2}, - .UHSUB8 = { 306, 2}, - .UHSUB16 = { 308, 2}, - .SMUAD = { 310, 1}, - .SMUADX = { 311, 1}, - .SMUSD = { 312, 1}, - .SMUSDX = { 313, 1}, - .SMLAD = { 314, 1}, - .SMLADX = { 315, 1}, - .SMLSD = { 316, 1}, - .SMLSDX = { 317, 1}, - .SMLALD = { 318, 1}, - .SMLALDX = { 319, 1}, - .SMLSLD = { 320, 1}, - .SMLSLDX = { 321, 1}, - .SMMUL = { 322, 1}, - .SMMULR = { 323, 1}, - .SMMLA = { 324, 1}, - .SMMLAR = { 325, 1}, - .SMMLS = { 326, 1}, - .SMMLSR = { 327, 1}, - .MUL = { 328, 4}, - .MLA = { 332, 3}, - .MLS = { 335, 2}, - .UMULL = { 337, 3}, - .UMLAL = { 340, 3}, - .SMULL = { 343, 3}, - .SMLAL = { 346, 3}, - .UMAAL = { 349, 1}, - .SMLABB = { 350, 1}, - .SMLABT = { 351, 1}, - .SMLATB = { 352, 1}, - .SMLATT = { 353, 1}, - .SMLAWB = { 354, 1}, - .SMLAWT = { 355, 1}, - .SMULBB = { 356, 1}, - .SMULBT = { 357, 1}, - .SMULTB = { 358, 1}, - .SMULTT = { 359, 1}, - .SMULWB = { 360, 1}, - .SMULWT = { 361, 1}, - .SMLALBB = { 362, 1}, - .SMLALBT = { 363, 1}, - .SMLALTB = { 364, 1}, - .SMLALTT = { 365, 1}, - .SDIV = { 366, 2}, - .UDIV = { 368, 2}, - .B = { 370, 5}, - .BL = { 375, 2}, - .BX = { 377, 2}, - .BLX = { 379, 3}, - .BXJ = { 382, 1}, - .CBZ = { 383, 1}, - .CBNZ = { 384, 1}, - .TBB = { 385, 1}, - .TBH = { 386, 1}, - .MSR = { 387, 3}, - .MRS = { 390, 2}, - .CPS = { 392, 1}, - .SETEND = { 393, 1}, - .NOP = { 394, 3}, - .YIELD = { 397, 3}, - .WFE = { 400, 3}, - .WFI = { 403, 3}, - .SEV = { 406, 3}, - .SEVL = { 409, 1}, - .DBG = { 410, 1}, - .HINT = { 411, 1}, - .DMB = { 412, 2}, - .DSB = { 414, 2}, - .ISB = { 416, 2}, - .CLREX = { 418, 2}, - .PLD = { 420, 2}, - .PLDW = { 422, 2}, - .PLI = { 424, 2}, - .HLT = { 426, 1}, - .DCPS1 = { 427, 1}, - .DCPS2 = { 428, 1}, - .DCPS3 = { 429, 1}, - .ERET = { 430, 1}, - .ESB = { 431, 2}, - .PSB_CSYNC = { 433, 2}, - .TSB_CSYNC = { 435, 2}, - .CSDB = { 437, 2}, - .SB = { 439, 2}, - .SETPAN = { 441, 2}, - .SVC = { 443, 2}, - .BKPT = { 445, 2}, - .HVC = { 447, 1}, - .SMC = { 448, 1}, - .UDF = { 449, 3}, - .LDR = { 452, 11}, - .STR = { 463, 9}, - .LDRB = { 472, 8}, - .STRB = { 480, 8}, - .LDRH = { 488, 8}, - .STRH = { 496, 8}, - .LDRSB = { 504, 7}, - .LDRSH = { 511, 7}, - .LDRD = { 518, 5}, - .STRD = { 523, 5}, - .LDRT = { 528, 1}, - .STRT = { 529, 1}, - .LDRBT = { 530, 1}, - .STRBT = { 531, 1}, - .LDRHT = { 532, 1}, - .STRHT = { 533, 1}, - .LDRSBT = { 534, 1}, - .LDRSHT = { 535, 1}, - .LDA = { 536, 1}, - .STL = { 537, 1}, - .LDAB = { 538, 1}, - .STLB = { 539, 1}, - .LDAH = { 540, 1}, - .STLH = { 541, 1}, - .LDREX = { 542, 2}, - .STREX = { 544, 2}, - .LDREXB = { 546, 2}, - .STREXB = { 548, 2}, - .LDREXH = { 550, 2}, - .STREXH = { 552, 2}, - .LDREXD = { 554, 2}, - .STREXD = { 556, 2}, - .LDAEX = { 558, 1}, - .STLEX = { 559, 1}, - .LDAEXB = { 560, 1}, - .STLEXB = { 561, 1}, - .LDAEXH = { 562, 1}, - .STLEXH = { 563, 1}, - .LDAEXD = { 564, 1}, - .STLEXD = { 565, 1}, - .LDM = { 566, 8}, - .STM = { 574, 8}, - .PUSH = { 582, 3}, - .POP = { 585, 3}, - .SWP = { 588, 1}, - .SWPB = { 589, 1}, - .RFE = { 590, 1}, - .SRS = { 591, 1}, - .CDP = { 592, 1}, - .CDP2 = { 593, 1}, - .MCR = { 594, 1}, - .MCR2 = { 595, 1}, - .MRC = { 596, 1}, - .MRC2 = { 597, 1}, - .MCRR = { 598, 1}, - .MCRR2 = { 599, 1}, - .MRRC = { 600, 1}, - .MRRC2 = { 601, 1}, - .LDC = { 602, 1}, - .LDC2 = { 603, 1}, - .STC = { 604, 1}, - .STC2 = { 605, 1}, - .CRC32B = { 606, 1}, - .CRC32H = { 607, 1}, - .CRC32W = { 608, 1}, - .CRC32CB = { 609, 1}, - .CRC32CH = { 610, 1}, - .CRC32CW = { 611, 1}, - .VADD = { 612, 18}, - .VSUB = { 630, 18}, - .VMUL = { 648, 18}, - .VDIV = { 666, 3}, - .VMLA = { 669, 12}, - .VMLS = { 681, 11}, - .VNMUL = { 692, 2}, - .VNMLA = { 694, 2}, - .VNMLS = { 696, 2}, - .VFMA = { 698, 7}, - .VFMS = { 705, 6}, - .VFNMA = { 711, 3}, - .VFNMS = { 714, 3}, - .VABS = { 717, 12}, - .VNEG = { 729, 12}, - .VSQRT = { 741, 3}, - .VCMP = { 744, 8}, - .VCMPE = { 752, 4}, - .VCVT = { 756, 10}, - .VCVTB = { 766, 2}, - .VCVTT = { 768, 2}, - .VCVTA = { 770, 2}, - .VCVTN = { 772, 2}, - .VCVTP = { 774, 2}, - .VCVTM = { 776, 2}, - .VCVTR = { 778, 4}, - .VMOV = { 782, 28}, - .VMRS = { 810, 1}, - .VMSR = { 811, 1}, - .VLDR = { 812, 2}, - .VSTR = { 814, 2}, - .VLDM = { 816, 2}, - .VSTM = { 818, 2}, - .VPUSH = { 820, 2}, - .VPOP = { 822, 2}, - .VSEL = { 824, 2}, - .VMAXNM = { 826, 2}, - .VMINNM = { 828, 2}, - .VRINTA = { 830, 3}, - .VRINTN = { 833, 3}, - .VRINTP = { 836, 3}, - .VRINTM = { 839, 3}, - .VRINTR = { 842, 2}, - .VRINTZ = { 844, 3}, - .VRINTX = { 847, 3}, - .VADDL = { 850, 6}, - .VADDW = { 856, 6}, - .VSUBL = { 862, 6}, - .VSUBW = { 868, 6}, - .VHADD = { 874, 9}, - .VHSUB = { 883, 9}, - .VRHADD = { 892, 3}, - .VQADD = { 895, 11}, - .VQSUB = { 906, 11}, - .VMULL = { 917, 7}, - .VMLAL = { 924, 6}, - .VMLSL = { 930, 6}, - .VQDMULL = { 936, 2}, - .VQDMLAL = { 938, 2}, - .VQDMLSL = { 940, 2}, - .VQDMULH = { 942, 4}, - .VQRDMULH = { 946, 4}, - .VQDMULH_LANE = { 950, 4}, - .VQRDMULH_LANE = { 954, 4}, - .VQRDMLAH = { 958, 4}, - .VQRDMLSH = { 962, 4}, - .VABA = { 966, 8}, - .VABAL = { 974, 6}, - .VABD = { 980, 10}, - .VABDL = { 990, 6}, - .VAND = { 996, 3}, - .VBIC = { 999, 3}, - .VORR = { 1002, 3}, - .VORN = { 1005, 3}, - .VEOR = { 1008, 3}, - .VBSL = { 1011, 2}, - .VBIT = { 1013, 2}, - .VBIF = { 1015, 2}, - .VMVN = { 1017, 13}, - .VMOVN = { 1030, 3}, - .VQMOVN = { 1033, 6}, - .VQMOVUN = { 1039, 3}, - .VMOVL = { 1042, 6}, - .VTST = { 1048, 6}, - .VCEQ = { 1054, 10}, - .VCGE = { 1064, 12}, - .VCGT = { 1076, 12}, - .VCLE = { 1088, 14}, - .VCLT = { 1102, 14}, - .VACGE = { 1116, 2}, - .VACGT = { 1118, 2}, - .VACLE = { 1120, 2}, - .VACLT = { 1122, 2}, - .VMAX = { 1124, 13}, - .VMIN = { 1137, 13}, - .VPMAX = { 1150, 5}, - .VPMIN = { 1155, 5}, - .VPADD = { 1160, 4}, - .VPADDL = { 1164, 6}, - .VPADAL = { 1170, 4}, - .VRECPE = { 1174, 4}, - .VRECPS = { 1178, 2}, - .VRSQRTE = { 1180, 4}, - .VRSQRTS = { 1184, 2}, - .VSHL = { 1186, 9}, - .VSHR = { 1195, 5}, - .VSRA = { 1200, 5}, - .VRSHL = { 1205, 5}, - .VRSHR = { 1210, 5}, - .VRSRA = { 1215, 2}, - .VSLI = { 1217, 2}, - .VSRI = { 1219, 2}, - .VQSHL = { 1221, 7}, - .VQSHRN = { 1228, 2}, - .VQSHRUN = { 1230, 1}, - .VQRSHL = { 1231, 16}, - .VQRSHRN = { 1247, 2}, - .VQRSHRUN = { 1249, 1}, - .VSHRN = { 1250, 1}, - .VRSHRN = { 1251, 1}, - .VSHLL = { 1252, 5}, - .VCLS = { 1257, 6}, - .VCLZ = { 1263, 6}, - .VCNT = { 1269, 2}, - .VPADD_F = { 1271, 2}, - .VRECPE_F = { 1273, 2}, - .VRSQRTE_F = { 1275, 2}, - .VREV16 = { 1277, 2}, - .VREV32 = { 1279, 4}, - .VREV64 = { 1283, 6}, - .VEXT = { 1289, 2}, - .VTBL = { 1291, 4}, - .VTBX = { 1295, 4}, - .VTRN = { 1299, 6}, - .VUZP = { 1305, 5}, - .VZIP = { 1310, 5}, - .VDUP = { 1315, 5}, - .VSWP = { 1320, 2}, - .VMOV_LANE = { 1322, 3}, - .VLD1 = { 1325, 8}, - .VLD2 = { 1333, 3}, - .VLD3 = { 1336, 2}, - .VLD4 = { 1338, 2}, - .VST1 = { 1340, 7}, - .VST2 = { 1347, 3}, - .VST3 = { 1350, 2}, - .VST4 = { 1352, 2}, - .AESE = { 1354, 1}, - .AESD = { 1355, 1}, - .AESMC = { 1356, 1}, - .AESIMC = { 1357, 1}, - .SHA1H = { 1358, 1}, - .SHA1SU0 = { 1359, 1}, - .SHA1SU1 = { 1360, 1}, - .SHA1C = { 1361, 1}, - .SHA1M = { 1362, 1}, - .SHA1P = { 1363, 1}, - .SHA256H = { 1364, 1}, - .SHA256H2 = { 1365, 1}, - .SHA256SU0 = { 1366, 1}, - .SHA256SU1 = { 1367, 1}, - .VJCVT = { 1368, 1}, - .VSDOT = { 1369, 2}, - .VUDOT = { 1371, 2}, - .VSDOT_LANE = { 1373, 2}, - .VUDOT_LANE = { 1375, 2}, - .VCVT_BF16 = { 1377, 1}, - .VDOT_BF16 = { 1378, 2}, - .VFMA_BF16 = { 1380, 1}, - .VMMLA_BF16 = { 1381, 1}, - .VFMAL = { 1382, 2}, - .VFMSL = { 1384, 2}, - .VCMLA = { 1386, 2}, - .VCADD = { 1388, 2}, - .VCMLA_LANE = { 1390, 2}, - .VSMMLA = { 1392, 1}, - .VUMMLA = { 1393, 1}, - .VUSMMLA = { 1394, 1}, - .VSUDOT = { 1395, 1}, - .VUSDOT = { 1396, 2}, - .VSUDOT_LANE = { 1398, 1}, - .VUSDOT_LANE = { 1399, 2}, - .VMUL_LANE = { 1401, 6}, - .VMLA_LANE = { 1407, 6}, - .VMLS_LANE = { 1413, 6}, - .VMULL_LANE = { 1419, 4}, - .VMLAL_LANE = { 1423, 4}, - .VMLSL_LANE = { 1427, 4}, - .VQDMULL_LANE = { 1431, 2}, - .VQDMLAL_LANE = { 1433, 2}, - .VQDMLSL_LANE = { 1435, 2}, - .VFMA_LANE = { 1437, 2}, - .VFMS_LANE = { 1439, 2}, - .VQRDMLAH_LANE = { 1441, 4}, - .VQRDMLSH_LANE = { 1445, 4}, - .VQABS = { 1449, 1}, - .VQNEG = { 1450, 1}, - .VMOVX = { 1451, 1}, - .VINS = { 1452, 1}, - .VLDRB_GATHER = { 1453, 1}, - .VLDRH_GATHER = { 1454, 1}, - .VLDRW_GATHER = { 1455, 1}, - .VLDRD_GATHER = { 1456, 1}, - .VSTRB_SCATTER = { 1457, 1}, - .VSTRH_SCATTER = { 1458, 1}, - .VSTRW_SCATTER = { 1459, 1}, - .VSTRD_SCATTER = { 1460, 1}, - .VCEQ_Z = { 1461, 4}, - .VCGE_Z = { 1465, 4}, - .VCGT_Z = { 1469, 4}, - .VCLE_Z = { 1473, 4}, - .VCLT_Z = { 1477, 4}, - .VLD2R = { 1481, 1}, - .VLD3R = { 1482, 1}, - .VLD4R = { 1483, 1}, - .VLD1_LANE = { 1484, 3}, - .VLD2_LANE = { 1487, 3}, - .VLD3_LANE = { 1490, 3}, - .VLD4_LANE = { 1493, 3}, - .VST1_LANE = { 1496, 3}, - .VST2_LANE = { 1499, 3}, - .VST3_LANE = { 1502, 3}, - .VST4_LANE = { 1505, 3}, - .VCVT_FIXED = { 1508, 10}, - .IT = { 1518, 1}, - .TT = { 1519, 1}, - .TTT = { 1520, 1}, - .TTA = { 1521, 1}, - .TTAT = { 1522, 1}, - .SG = { 1523, 1}, - .BXNS = { 1524, 1}, - .BLXNS = { 1525, 1}, - .PAC = { 1526, 1}, - .PACBTI = { 1527, 1}, - .AUT = { 1528, 1}, - .AUTG = { 1529, 1}, - .BTI = { 1530, 1}, - .WLS = { 1531, 1}, - .WLSTP = { 1532, 1}, - .DLS = { 1533, 1}, - .DLSTP = { 1534, 1}, - .LE = { 1535, 1}, - .LETP = { 1536, 1}, - .LCTP = { 1537, 1}, - .BF = { 1538, 1}, - .BFI_BR = { 1539, 1}, - .BFL = { 1540, 1}, - .BFLX = { 1541, 1}, - .BFCSEL = { 1542, 1}, - .CX1 = { 1543, 1}, - .CX1A = { 1544, 1}, - .CX1D = { 1545, 1}, - .CX1DA = { 1546, 1}, - .CX2 = { 1547, 1}, - .CX2A = { 1548, 1}, - .CX2D = { 1549, 1}, - .CX2DA = { 1550, 1}, - .CX3 = { 1551, 1}, - .CX3A = { 1552, 1}, - .CX3D = { 1553, 1}, - .CX3DA = { 1554, 1}, - .VCX1 = { 1555, 2}, - .VCX1A = { 1557, 2}, - .VCX2 = { 1559, 2}, - .VCX2A = { 1561, 2}, - .VCX3 = { 1563, 2}, - .VCX3A = { 1565, 2}, - .VPT = { 1567, 1}, - .VPST = { 1568, 1}, - .VPSEL = { 1569, 1}, - .VPNOT = { 1570, 1}, - .VCTP = { 1571, 1}, - .VADDV = { 1572, 1}, - .VADDVA = { 1573, 1}, - .VADDLV = { 1574, 1}, - .VADDLVA = { 1575, 1}, - .VMAXV = { 1576, 1}, - .VMAXAV = { 1577, 1}, - .VMINV = { 1578, 1}, - .VMINAV = { 1579, 1}, - .VMAXNMV = { 1580, 1}, - .VMAXNMAV = { 1581, 1}, - .VMINNMV = { 1582, 1}, - .VMINNMAV = { 1583, 1}, - .VABAV = { 1584, 1}, - .VMLADAV = { 1585, 1}, - .VMLADAVA = { 1586, 1}, - .VMLADAVX = { 1587, 1}, - .VMLADAVAX = { 1588, 1}, - .VMLALDAV = { 1589, 1}, - .VMLALDAVA = { 1590, 1}, - .VMLALDAVX = { 1591, 1}, - .VMLALDAVAX = { 1592, 1}, - .VMLSDAV = { 1593, 1}, - .VMLSDAVA = { 1594, 1}, - .VMLSDAVX = { 1595, 1}, - .VMLSDAVAX = { 1596, 1}, - .VMLSLDAV = { 1597, 1}, - .VMLSLDAVA = { 1598, 1}, - .VMLSLDAVX = { 1599, 1}, - .VMLSLDAVAX = { 1600, 1}, - .VRMLALDAVH = { 1601, 1}, - .VRMLALDAVHA = { 1602, 1}, - .VRMLALDAVHX = { 1603, 1}, - .VRMLALDAVHAX = { 1604, 1}, - .VRMLSLDAVH = { 1605, 1}, - .VRMLSLDAVHA = { 1606, 1}, - .VRMLSLDAVHX = { 1607, 1}, - .VRMLSLDAVHAX = { 1608, 1}, - .VMLAV = { 1609, 1}, - .VMLAVA = { 1610, 1}, - .VMLSV = { 1611, 1}, - .VMLSVA = { 1612, 1}, - .VCMUL = { 1613, 1}, - .VHCADD = { 1614, 1}, - .VBRSR = { 1615, 1}, - .VSHLC = { 1616, 1}, - .VDDUP = { 1617, 1}, - .VIDUP = { 1618, 1}, - .VDWDUP = { 1619, 1}, - .VIWDUP = { 1620, 1}, - .VMOVNB = { 1621, 1}, - .VMOVNT = { 1622, 1}, - .VQMOVNB = { 1623, 1}, - .VQMOVNT = { 1624, 1}, - .VQMOVUNB = { 1625, 1}, - .VQMOVUNT = { 1626, 1}, - .VSHLLB = { 1627, 1}, - .VSHLLT = { 1628, 1}, - .VMULLB = { 1629, 1}, - .VMULLT = { 1630, 1}, - .VMLALB = { 1631, 1}, - .VMLALT = { 1632, 1}, - .VMLSLB = { 1633, 1}, - .VMLSLT = { 1634, 1}, - .VSHRNB = { 1635, 1}, - .VSHRNT = { 1636, 1}, - .VRSHRNB = { 1637, 1}, - .VRSHRNT = { 1638, 1}, - .VQSHRNB = { 1639, 1}, - .VQSHRNT = { 1640, 1}, - .VQRSHRNB = { 1641, 1}, - .VQRSHRNT = { 1642, 1}, - .VQSHRUNB = { 1643, 1}, - .VQSHRUNT = { 1644, 1}, - .VQRSHRUNB = { 1645, 1}, - .VQRSHRUNT = { 1646, 1}, - .VMOV_Q_R = { 1647, 1}, - .VMOV_R_Q = { 1648, 1}, - .VMOV_2GPR_Q = { 1649, 1}, - .VQDMLADH = { 1650, 1}, - .VQDMLADHX = { 1651, 1}, - .VQDMLSDH = { 1652, 1}, - .VQDMLSDHX = { 1653, 1}, - .VQRDMLADH = { 1654, 1}, - .VQRDMLADHX = { 1655, 1}, - .VQRDMLSDH = { 1656, 1}, - .VQRDMLSDHX = { 1657, 1}, - .VHCADD_SAT = { 1658, 1}, - .VCMLA_MVE = { 1659, 1}, - .VLDRB = { 1660, 1}, - .VLDRH = { 1661, 1}, - .VLDRW = { 1662, 1}, - .VLDRD = { 1663, 1}, - .VSTRB = { 1664, 1}, - .VSTRH = { 1665, 1}, - .VSTRW = { 1666, 1}, - .VSTRD = { 1667, 1}, - .VLD20 = { 1668, 1}, - .VLD21 = { 1669, 1}, - .VLD40 = { 1670, 1}, - .VLD41 = { 1671, 1}, - .VLD42 = { 1672, 1}, - .VLD43 = { 1673, 1}, - .VST20 = { 1674, 1}, - .VST21 = { 1675, 1}, - .VST40 = { 1676, 1}, - .VST41 = { 1677, 1}, - .VST42 = { 1678, 1}, - .VST43 = { 1679, 1}, - ._COUNT = { 1680, 0}, + .INVALID = { 0, 0}, + .AND = { 0, 11}, + .EOR = { 11, 9}, + .SUB = { 20, 10}, + .RSB = { 30, 8}, + .ADD = { 38, 12}, + .ADC = { 50, 9}, + .SBC = { 59, 9}, + .RSC = { 68, 6}, + .TST = { 74, 6}, + .TEQ = { 80, 5}, + .CMP = { 85, 8}, + .CMN = { 93, 6}, + .ORR = { 99, 9}, + .MOV = { 108, 12}, + .BIC = { 120, 9}, + .MVN = { 129, 9}, + .LSL = { 138, 6}, + .LSR = { 144, 6}, + .ASR = { 150, 6}, + .ROR = { 156, 5}, + .RRX = { 161, 1}, + .ADR = { 162, 1}, + .NEG = { 163, 1}, + .MOVW = { 164, 2}, + .MOVT = { 166, 2}, + .BFC = { 168, 2}, + .BFI = { 170, 2}, + .SBFX = { 172, 2}, + .UBFX = { 174, 2}, + .SXTB = { 176, 3}, + .SXTB16 = { 179, 2}, + .SXTH = { 181, 3}, + .UXTB = { 184, 3}, + .UXTB16 = { 187, 2}, + .UXTH = { 189, 3}, + .SXTAB = { 192, 2}, + .SXTAB16 = { 194, 2}, + .SXTAH = { 196, 2}, + .UXTAB = { 198, 2}, + .UXTAB16 = { 200, 2}, + .UXTAH = { 202, 2}, + .CLZ = { 204, 2}, + .RBIT = { 206, 2}, + .REV = { 208, 3}, + .REV16 = { 211, 3}, + .REVSH = { 214, 3}, + .SEL = { 217, 1}, + .PKHBT = { 218, 1}, + .PKHTB = { 219, 1}, + .USAD8 = { 220, 1}, + .USADA8 = { 221, 1}, + .SSAT = { 222, 2}, + .USAT = { 224, 2}, + .SSAT16 = { 226, 2}, + .USAT16 = { 228, 2}, + .QADD = { 230, 2}, + .QSUB = { 232, 2}, + .QDADD = { 234, 2}, + .QDSUB = { 236, 2}, + .SADD8 = { 238, 2}, + .SADD16 = { 240, 2}, + .SASX = { 242, 2}, + .SSAX = { 244, 2}, + .SSUB8 = { 246, 2}, + .SSUB16 = { 248, 2}, + .UADD8 = { 250, 2}, + .UADD16 = { 252, 2}, + .UASX = { 254, 2}, + .USAX = { 256, 2}, + .USUB8 = { 258, 2}, + .USUB16 = { 260, 2}, + .QADD8 = { 262, 2}, + .QADD16 = { 264, 2}, + .QASX = { 266, 2}, + .QSAX = { 268, 2}, + .QSUB8 = { 270, 2}, + .QSUB16 = { 272, 2}, + .UQADD8 = { 274, 2}, + .UQADD16 = { 276, 2}, + .UQASX = { 278, 2}, + .UQSAX = { 280, 2}, + .UQSUB8 = { 282, 2}, + .UQSUB16 = { 284, 2}, + .SHADD8 = { 286, 2}, + .SHADD16 = { 288, 2}, + .SHASX = { 290, 2}, + .SHSAX = { 292, 2}, + .SHSUB8 = { 294, 2}, + .SHSUB16 = { 296, 2}, + .UHADD8 = { 298, 2}, + .UHADD16 = { 300, 2}, + .UHASX = { 302, 2}, + .UHSAX = { 304, 2}, + .UHSUB8 = { 306, 2}, + .UHSUB16 = { 308, 2}, + .SMUAD = { 310, 1}, + .SMUADX = { 311, 1}, + .SMUSD = { 312, 1}, + .SMUSDX = { 313, 1}, + .SMLAD = { 314, 1}, + .SMLADX = { 315, 1}, + .SMLSD = { 316, 1}, + .SMLSDX = { 317, 1}, + .SMLALD = { 318, 1}, + .SMLALDX = { 319, 1}, + .SMLSLD = { 320, 1}, + .SMLSLDX = { 321, 1}, + .SMMUL = { 322, 1}, + .SMMULR = { 323, 1}, + .SMMLA = { 324, 1}, + .SMMLAR = { 325, 1}, + .SMMLS = { 326, 1}, + .SMMLSR = { 327, 1}, + .MUL = { 328, 4}, + .MLA = { 332, 3}, + .MLS = { 335, 2}, + .UMULL = { 337, 3}, + .UMLAL = { 340, 3}, + .SMULL = { 343, 3}, + .SMLAL = { 346, 3}, + .UMAAL = { 349, 1}, + .SMLABB = { 350, 1}, + .SMLABT = { 351, 1}, + .SMLATB = { 352, 1}, + .SMLATT = { 353, 1}, + .SMLAWB = { 354, 1}, + .SMLAWT = { 355, 1}, + .SMULBB = { 356, 1}, + .SMULBT = { 357, 1}, + .SMULTB = { 358, 1}, + .SMULTT = { 359, 1}, + .SMULWB = { 360, 1}, + .SMULWT = { 361, 1}, + .SMLALBB = { 362, 1}, + .SMLALBT = { 363, 1}, + .SMLALTB = { 364, 1}, + .SMLALTT = { 365, 1}, + .SDIV = { 366, 2}, + .UDIV = { 368, 2}, + .B = { 370, 5}, + .BL = { 375, 2}, + .BX = { 377, 2}, + .BLX = { 379, 3}, + .BXJ = { 382, 1}, + .CBZ = { 383, 1}, + .CBNZ = { 384, 1}, + .TBB = { 385, 1}, + .TBH = { 386, 1}, + .MSR = { 387, 3}, + .MRS = { 390, 2}, + .CPS = { 392, 1}, + .SETEND = { 393, 1}, + .NOP = { 394, 3}, + .YIELD = { 397, 3}, + .WFE = { 400, 3}, + .WFI = { 403, 3}, + .SEV = { 406, 3}, + .SEVL = { 409, 1}, + .DBG = { 410, 1}, + .HINT = { 411, 1}, + .DMB = { 412, 2}, + .DSB = { 414, 2}, + .ISB = { 416, 2}, + .CLREX = { 418, 2}, + .PLD = { 420, 2}, + .PLDW = { 422, 2}, + .PLI = { 424, 2}, + .HLT = { 426, 1}, + .DCPS1 = { 427, 1}, + .DCPS2 = { 428, 1}, + .DCPS3 = { 429, 1}, + .ERET = { 430, 1}, + .ESB = { 431, 2}, + .PSB_CSYNC = { 433, 2}, + .TSB_CSYNC = { 435, 2}, + .CSDB = { 437, 2}, + .SB = { 439, 2}, + .SETPAN = { 441, 2}, + .SVC = { 443, 2}, + .BKPT = { 445, 2}, + .HVC = { 447, 1}, + .SMC = { 448, 1}, + .UDF = { 449, 3}, + .LDR = { 452, 11}, + .STR = { 463, 9}, + .LDRB = { 472, 8}, + .STRB = { 480, 8}, + .LDRH = { 488, 8}, + .STRH = { 496, 8}, + .LDRSB = { 504, 7}, + .LDRSH = { 511, 7}, + .LDRD = { 518, 5}, + .STRD = { 523, 5}, + .LDRT = { 528, 1}, + .STRT = { 529, 1}, + .LDRBT = { 530, 1}, + .STRBT = { 531, 1}, + .LDRHT = { 532, 1}, + .STRHT = { 533, 1}, + .LDRSBT = { 534, 1}, + .LDRSHT = { 535, 1}, + .LDA = { 536, 1}, + .STL = { 537, 1}, + .LDAB = { 538, 1}, + .STLB = { 539, 1}, + .LDAH = { 540, 1}, + .STLH = { 541, 1}, + .LDREX = { 542, 2}, + .STREX = { 544, 2}, + .LDREXB = { 546, 2}, + .STREXB = { 548, 2}, + .LDREXH = { 550, 2}, + .STREXH = { 552, 2}, + .LDREXD = { 554, 2}, + .STREXD = { 556, 2}, + .LDAEX = { 558, 1}, + .STLEX = { 559, 1}, + .LDAEXB = { 560, 1}, + .STLEXB = { 561, 1}, + .LDAEXH = { 562, 1}, + .STLEXH = { 563, 1}, + .LDAEXD = { 564, 1}, + .STLEXD = { 565, 1}, + .LDM = { 566, 4}, + .STM = { 570, 4}, + .LDMIB = { 574, 1}, + .LDMDA = { 575, 1}, + .LDMDB = { 576, 2}, + .STMIB = { 578, 1}, + .STMDA = { 579, 1}, + .STMDB = { 580, 2}, + .PUSH = { 582, 3}, + .POP = { 585, 3}, + .SWP = { 588, 1}, + .SWPB = { 589, 1}, + .RFEDA = { 590, 2}, + .RFEDB = { 592, 2}, + .RFEIA = { 594, 2}, + .RFEIB = { 596, 2}, + .SRSDA = { 598, 2}, + .SRSDB = { 600, 2}, + .SRSIA = { 602, 2}, + .SRSIB = { 604, 2}, + .CDP = { 606, 1}, + .CDP2 = { 607, 1}, + .MCR = { 608, 1}, + .MCR2 = { 609, 1}, + .MRC = { 610, 1}, + .MRC2 = { 611, 1}, + .MCRR = { 612, 1}, + .MCRR2 = { 613, 1}, + .MRRC = { 614, 1}, + .MRRC2 = { 615, 1}, + .LDC = { 616, 3}, + .LDC2 = { 619, 3}, + .STC = { 622, 3}, + .STC2 = { 625, 3}, + .LDCL = { 628, 3}, + .LDC2L = { 631, 3}, + .STCL = { 634, 3}, + .STC2L = { 637, 3}, + .CRC32B = { 640, 1}, + .CRC32H = { 641, 1}, + .CRC32W = { 642, 1}, + .CRC32CB = { 643, 1}, + .CRC32CH = { 644, 1}, + .CRC32CW = { 645, 1}, + .VADD = { 646, 18}, + .VSUB = { 664, 18}, + .VMUL = { 682, 22}, + .VDIV = { 704, 3}, + .VMLA = { 707, 16}, + .VMLS = { 723, 15}, + .VNMUL = { 738, 2}, + .VNMLA = { 740, 2}, + .VNMLS = { 742, 2}, + .VFMA = { 744, 7}, + .VFMS = { 751, 6}, + .VFNMA = { 757, 3}, + .VFNMS = { 760, 3}, + .VFMAB = { 763, 1}, + .VFMAT = { 764, 1}, + .VABS = { 765, 12}, + .VNEG = { 777, 12}, + .VSQRT = { 789, 3}, + .VCMP = { 792, 8}, + .VCMPE = { 800, 4}, + .VCVT = { 804, 35}, + .VCVTB = { 839, 2}, + .VCVTT = { 841, 2}, + .VCVTA = { 843, 2}, + .VCVTN = { 845, 2}, + .VCVTP = { 847, 2}, + .VCVTM = { 849, 2}, + .VCVTR = { 851, 4}, + .VMOV = { 855, 39}, + .VMRS = { 894, 1}, + .VMSR = { 895, 1}, + .VLDR = { 896, 2}, + .VSTR = { 898, 2}, + .VLDMIA = { 900, 4}, + .VLDMDB = { 904, 2}, + .VSTMIA = { 906, 4}, + .VSTMDB = { 910, 2}, + .VPUSH = { 912, 2}, + .VPOP = { 914, 2}, + .VSEL = { 916, 2}, + .VMAXNM = { 918, 2}, + .VMINNM = { 920, 2}, + .VRINTA = { 922, 3}, + .VRINTN = { 925, 3}, + .VRINTP = { 928, 3}, + .VRINTM = { 931, 3}, + .VRINTR = { 934, 2}, + .VRINTZ = { 936, 3}, + .VRINTX = { 939, 3}, + .VADDL = { 942, 6}, + .VADDW = { 948, 6}, + .VSUBL = { 954, 6}, + .VSUBW = { 960, 6}, + .VHADD = { 966, 9}, + .VHSUB = { 975, 9}, + .VRHADD = { 984, 3}, + .VQADD = { 987, 11}, + .VQSUB = { 998, 11}, + .VMULL = { 1009, 11}, + .VMLAL = { 1020, 10}, + .VMLSL = { 1030, 10}, + .VQDMULL = { 1040, 4}, + .VQDMLAL = { 1044, 4}, + .VQDMLSL = { 1048, 4}, + .VQDMULH = { 1052, 8}, + .VQRDMULH = { 1060, 8}, + .VQRDMLAH = { 1068, 8}, + .VQRDMLSH = { 1076, 8}, + .VABA = { 1084, 8}, + .VABAL = { 1092, 6}, + .VABD = { 1098, 10}, + .VABDL = { 1108, 6}, + .VAND = { 1114, 3}, + .VBIC = { 1117, 15}, + .VORR = { 1132, 15}, + .VORN = { 1147, 3}, + .VEOR = { 1150, 3}, + .VBSL = { 1153, 2}, + .VBIT = { 1155, 2}, + .VBIF = { 1157, 2}, + .VMVN = { 1159, 19}, + .VMOVN = { 1178, 3}, + .VQMOVN = { 1181, 6}, + .VQMOVUN = { 1187, 3}, + .VMOVL = { 1190, 6}, + .VTST = { 1196, 6}, + .VCEQ = { 1202, 14}, + .VCGE = { 1216, 16}, + .VCGT = { 1232, 16}, + .VCLE = { 1248, 18}, + .VCLT = { 1266, 18}, + .VACGE = { 1284, 2}, + .VACGT = { 1286, 2}, + .VACLE = { 1288, 2}, + .VACLT = { 1290, 2}, + .VMAX = { 1292, 13}, + .VMIN = { 1305, 13}, + .VPMAX = { 1318, 5}, + .VPMIN = { 1323, 5}, + .VPADD = { 1328, 5}, + .VPADDL = { 1333, 6}, + .VPADAL = { 1339, 4}, + .VRECPE = { 1343, 4}, + .VRECPS = { 1347, 2}, + .VRSQRTE = { 1349, 4}, + .VRSQRTS = { 1353, 2}, + .VSHL = { 1355, 9}, + .VSHR = { 1364, 3}, + .VSRA = { 1367, 3}, + .VRSHL = { 1370, 5}, + .VRSHR = { 1375, 3}, + .VRSRA = { 1378, 2}, + .VSLI = { 1380, 2}, + .VSRI = { 1382, 2}, + .VQSHL = { 1384, 7}, + .VQSHRN = { 1391, 1}, + .VQSHRUN = { 1392, 1}, + .VQRSHL = { 1393, 16}, + .VQRSHRN = { 1409, 1}, + .VQRSHRUN = { 1410, 1}, + .VSHRN = { 1411, 1}, + .VRSHRN = { 1412, 1}, + .VSHLL = { 1413, 4}, + .VCLS = { 1417, 6}, + .VCLZ = { 1423, 6}, + .VCNT = { 1429, 2}, + .VREV16 = { 1431, 2}, + .VREV32 = { 1433, 4}, + .VREV64 = { 1437, 6}, + .VEXT = { 1443, 2}, + .VTBL = { 1445, 4}, + .VTBX = { 1449, 4}, + .VTRN = { 1453, 6}, + .VUZP = { 1459, 5}, + .VZIP = { 1464, 5}, + .VDUP = { 1469, 9}, + .VSWP = { 1478, 2}, + .VLD1 = { 1480, 8}, + .VLD2 = { 1488, 7}, + .VLD3 = { 1495, 6}, + .VLD4 = { 1501, 6}, + .VST1 = { 1507, 7}, + .VST2 = { 1514, 6}, + .VST3 = { 1520, 5}, + .VST4 = { 1525, 5}, + .AESE = { 1530, 1}, + .AESD = { 1531, 1}, + .AESMC = { 1532, 1}, + .AESIMC = { 1533, 1}, + .SHA1H = { 1534, 1}, + .SHA1SU0 = { 1535, 1}, + .SHA1SU1 = { 1536, 1}, + .SHA1C = { 1537, 1}, + .SHA1M = { 1538, 1}, + .SHA1P = { 1539, 1}, + .SHA256H = { 1540, 1}, + .SHA256H2 = { 1541, 1}, + .SHA256SU0 = { 1542, 1}, + .SHA256SU1 = { 1543, 1}, + .VJCVT = { 1544, 1}, + .VSDOT = { 1545, 4}, + .VUDOT = { 1549, 4}, + .VDOT = { 1553, 2}, + .VMMLA = { 1555, 1}, + .VFMAL = { 1556, 2}, + .VFMSL = { 1558, 2}, + .VCMLA = { 1560, 5}, + .VCADD = { 1565, 2}, + .VSMMLA = { 1567, 1}, + .VUMMLA = { 1568, 1}, + .VUSMMLA = { 1569, 1}, + .VSUDOT = { 1570, 1}, + .VUSDOT = { 1571, 4}, + .VQABS = { 1575, 1}, + .VQNEG = { 1576, 1}, + .VMOVX = { 1577, 1}, + .VINS = { 1578, 1}, + .IT = { 1579, 1}, + .TT = { 1580, 1}, + .TTT = { 1581, 1}, + .TTA = { 1582, 1}, + .TTAT = { 1583, 1}, + .SG = { 1584, 1}, + .BXNS = { 1585, 1}, + .BLXNS = { 1586, 1}, + .PAC = { 1587, 1}, + .PACBTI = { 1588, 1}, + .AUT = { 1589, 1}, + .AUTG = { 1590, 1}, + .BTI = { 1591, 1}, + .WLS = { 1592, 1}, + .WLSTP = { 1593, 1}, + .DLS = { 1594, 1}, + .DLSTP = { 1595, 1}, + .LE = { 1596, 1}, + .LETP = { 1597, 1}, + .LCTP = { 1598, 1}, + .BF = { 1599, 1}, + .BFX = { 1600, 1}, + .BFL = { 1601, 1}, + .BFLX = { 1602, 1}, + .BFCSEL = { 1603, 1}, + .CX1 = { 1604, 1}, + .CX1A = { 1605, 1}, + .CX1D = { 1606, 1}, + .CX1DA = { 1607, 1}, + .CX2 = { 1608, 1}, + .CX2A = { 1609, 1}, + .CX2D = { 1610, 1}, + .CX2DA = { 1611, 1}, + .CX3 = { 1612, 1}, + .CX3A = { 1613, 1}, + .CX3D = { 1614, 1}, + .CX3DA = { 1615, 1}, + .VCX1 = { 1616, 2}, + .VCX1A = { 1618, 2}, + .VCX2 = { 1620, 2}, + .VCX2A = { 1622, 2}, + .VCX3 = { 1624, 2}, + .VCX3A = { 1626, 2}, + .VPT = { 1628, 1}, + .VPST = { 1629, 1}, + .VPSEL = { 1630, 1}, + .VPNOT = { 1631, 1}, + .VCTP = { 1632, 1}, + .VADDV = { 1633, 1}, + .VADDVA = { 1634, 1}, + .VADDLV = { 1635, 1}, + .VADDLVA = { 1636, 1}, + .VMAXV = { 1637, 1}, + .VMAXAV = { 1638, 1}, + .VMINV = { 1639, 1}, + .VMINAV = { 1640, 1}, + .VMAXNMV = { 1641, 1}, + .VMAXNMAV = { 1642, 1}, + .VMINNMV = { 1643, 1}, + .VMINNMAV = { 1644, 1}, + .VABAV = { 1645, 1}, + .VMLADAV = { 1646, 1}, + .VMLADAVA = { 1647, 1}, + .VMLADAVX = { 1648, 1}, + .VMLADAVAX = { 1649, 1}, + .VMLALDAV = { 1650, 1}, + .VMLALDAVA = { 1651, 1}, + .VMLALDAVX = { 1652, 1}, + .VMLALDAVAX = { 1653, 1}, + .VMLSDAV = { 1654, 1}, + .VMLSDAVA = { 1655, 1}, + .VMLSDAVX = { 1656, 1}, + .VMLSDAVAX = { 1657, 1}, + .VMLSLDAV = { 1658, 1}, + .VMLSLDAVA = { 1659, 1}, + .VMLSLDAVX = { 1660, 1}, + .VMLSLDAVAX = { 1661, 1}, + .VRMLALDAVH = { 1662, 1}, + .VRMLALDAVHA = { 1663, 1}, + .VRMLALDAVHX = { 1664, 1}, + .VRMLALDAVHAX = { 1665, 1}, + .VRMLSLDAVH = { 1666, 1}, + .VRMLSLDAVHA = { 1667, 1}, + .VRMLSLDAVHX = { 1668, 1}, + .VRMLSLDAVHAX = { 1669, 1}, + .VMLAV = { 1670, 1}, + .VMLAVA = { 1671, 1}, + .VMLSV = { 1672, 1}, + .VMLSVA = { 1673, 1}, + .VCMUL = { 1674, 1}, + .VHCADD = { 1675, 2}, + .VBRSR = { 1677, 1}, + .VSHLC = { 1678, 1}, + .VDDUP = { 1679, 1}, + .VIDUP = { 1680, 1}, + .VDWDUP = { 1681, 1}, + .VIWDUP = { 1682, 1}, + .VMOVNB = { 1683, 1}, + .VMOVNT = { 1684, 1}, + .VQMOVNB = { 1685, 1}, + .VQMOVNT = { 1686, 1}, + .VQMOVUNB = { 1687, 1}, + .VQMOVUNT = { 1688, 1}, + .VSHLLB = { 1689, 1}, + .VSHLLT = { 1690, 1}, + .VMULLB = { 1691, 1}, + .VMULLT = { 1692, 1}, + .VMLALB = { 1693, 1}, + .VMLALT = { 1694, 1}, + .VMLSLB = { 1695, 1}, + .VMLSLT = { 1696, 1}, + .VSHRNB = { 1697, 1}, + .VSHRNT = { 1698, 1}, + .VRSHRNB = { 1699, 1}, + .VRSHRNT = { 1700, 1}, + .VQSHRNB = { 1701, 1}, + .VQSHRNT = { 1702, 1}, + .VQRSHRNB = { 1703, 1}, + .VQRSHRNT = { 1704, 1}, + .VQSHRUNB = { 1705, 1}, + .VQSHRUNT = { 1706, 1}, + .VQRSHRUNB = { 1707, 1}, + .VQRSHRUNT = { 1708, 1}, + .VQDMLADH = { 1709, 1}, + .VQDMLADHX = { 1710, 1}, + .VQDMLSDH = { 1711, 1}, + .VQDMLSDHX = { 1712, 1}, + .VQRDMLADH = { 1713, 1}, + .VQRDMLADHX = { 1714, 1}, + .VQRDMLSDH = { 1715, 1}, + .VQRDMLSDHX = { 1716, 1}, + .VLDRB = { 1717, 2}, + .VLDRH = { 1719, 2}, + .VLDRW = { 1721, 2}, + .VLDRD = { 1723, 2}, + .VSTRB = { 1725, 2}, + .VSTRH = { 1727, 2}, + .VSTRW = { 1729, 2}, + .VSTRD = { 1731, 2}, + .VLD20 = { 1733, 1}, + .VLD21 = { 1734, 1}, + .VLD40 = { 1735, 1}, + .VLD41 = { 1736, 1}, + .VLD42 = { 1737, 1}, + .VLD43 = { 1738, 1}, + .VST20 = { 1739, 1}, + .VST21 = { 1740, 1}, + .VST40 = { 1741, 1}, + .VST41 = { 1742, 1}, + .VST42 = { 1743, 1}, + .VST43 = { 1744, 1}, + ._COUNT = { 1745, 0}, } diff --git a/core/rexcode/isa/arm32/tables.odin b/core/rexcode/isa/arm32/tables.odin index 0798b0603..6eab8c3d4 100644 --- a/core/rexcode/isa/arm32/tables.odin +++ b/core/rexcode/isa/arm32/tables.odin @@ -25,15 +25,16 @@ Encode_Run :: struct { Decode_Entry :: struct #packed { mnemonic: Mnemonic, // 2 - ops: [4]Operand_Type, // 4 - enc: [4]Operand_Encoding, // 4 + ops: [6]Operand_Type, // 6 + enc: [6]Operand_Encoding, // 6 bits: u32, // 4 mask: u32, // 4 feature: Feature, // 1 mode: Mode, // 1 flags: Encoding_Flags, // 1 + dt: Data_Types, // 2 -- see Data_Type in encoding_types.odin } -#assert(size_of(Decode_Entry) == 21) +#assert(size_of(Decode_Entry) == 27) Decode_Index :: struct #packed { start: u16, diff --git a/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin b/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin index 024825fd4..efe8a0580 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin and b/core/rexcode/isa/arm32/tables/arm32.bucket_list.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin b/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin index db36cfc97..ef45d7806 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin and b/core/rexcode/isa/arm32/tables/arm32.encode_forms.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin b/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin index 676b577a6..a824a25b3 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin and b/core/rexcode/isa/arm32/tables/arm32.encode_runs.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.entries.bin b/core/rexcode/isa/arm32/tables/arm32.entries.bin index be561ef37..5ba658f8b 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.entries.bin and b/core/rexcode/isa/arm32/tables/arm32.entries.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.form_idx.bin b/core/rexcode/isa/arm32/tables/arm32.form_idx.bin index f511e5628..713abfae8 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.form_idx.bin and b/core/rexcode/isa/arm32/tables/arm32.form_idx.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin b/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin index 0f02c73db..12a310660 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin and b/core/rexcode/isa/arm32/tables/arm32.idx_a32.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin index 8bb6b511b..013b21722 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin and b/core/rexcode/isa/arm32/tables/arm32.idx_t16.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.idx_t32.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t32.bin index de6b0ac6c..5e0f78a60 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.idx_t32.bin and b/core/rexcode/isa/arm32/tables/arm32.idx_t32.bin differ diff --git a/core/rexcode/isa/arm32/tables/arm32.idx_t32_sub.bin b/core/rexcode/isa/arm32/tables/arm32.idx_t32_sub.bin index cd2f5f664..c98f231c7 100644 Binary files a/core/rexcode/isa/arm32/tables/arm32.idx_t32_sub.bin and b/core/rexcode/isa/arm32/tables/arm32.idx_t32_sub.bin differ diff --git a/core/rexcode/isa/arm32/tests/pipeline.odin b/core/rexcode/isa/arm32/tests/pipeline.odin index d1373f2e0..7f6bb9d65 100644 --- a/core/rexcode/isa/arm32/tests/pipeline.odin +++ b/core/rexcode/isa/arm32/tests/pipeline.odin @@ -3,6 +3,7 @@ package rexcode_arm32_tests import "core:fmt" +import "core:strings" import "core:os" import a "../" @@ -328,6 +329,53 @@ run_pipeline_tests :: proc() { check_roundtrip("ADD r0, r1, #0xFF000000", a.inst_r_r_i(.ADD, a.R0, a.R1, 0xFF000000)) + // ---- Words the table sweep cannot reach ---- + // The sweep decodes each form's canonical word, which has every variable + // field zero. For the coprocessor forms that means p0, which ARMv8 + // reserves and no assembler will take -- so these are checked here, by + // the text they print, against what an assembler makes of it. + fmt.println("\n==== Coprocessor words, decoded to text ====") + check_decodes_to(0xEE2431C5, "cdp p1, #2, c3, c4, c5, #6") + check_decodes_to(0xEE4431D5, "mcr p1, #2, r3, c4, c5, #6") + check_decodes_to(0xEE5431D5, "mrc p1, #2, r3, c4, c5, #6") + check_decodes_to(0xEE117F30, "mrc p15, #0, r7, c1, c0, #1") + check_decodes_to(0xEC443125, "mcrr p1, #2, r3, r4, c5") + check_decodes_to(0xEC543125, "mrrc p1, #2, r3, r4, c5") + check_decodes_to(0xED932102, "ldc p1, c2, [r3, #8]") + check_decodes_to(0xEDB32102, "ldc p1, c2, [r3, #8]!") + check_decodes_to(0xECB32102, "ldc p1, c2, [r3], #8") + check_decodes_to(0xEDD32102, "ldcl p1, c2, [r3, #8]") + check_decodes_to(0xEDC32102, "stcl p1, c2, [r3, #8]") + check_decodes_to(0xED132102, "ldc p1, c2, [r3, #-8]") + fmt.printf("\n==> arm32 pipeline: %d passed, %d failed\n", ok, fail) if fail > 0 { os.exit(1) } } + +// Decode one word and compare what it prints against the text an assembler +// accepts for it. +check_decodes_to :: proc(word: u32, want: string) { + code := [4]u8{u8(word), u8(word >> 8), u8(word >> 16), u8(word >> 24)} + back: [dynamic]a.Instruction + info: [dynamic]a.Instruction_Info + labels: [dynamic]a.Label_Definition + errs: [dynamic]a.Error + defer { delete(back); delete(info); delete(labels); delete(errs) } + a.decode(code[:], nil, &back, &info, &labels, &errs, .A32) + if len(back) != 1 { + fmt.printf(" [FAIL] %08x: decoded to %d instructions, want 1\n", word, len(back)) + fail += 1 + return + } + sb := strings.builder_make() + defer strings.builder_destroy(&sb) + a.sbprint(&sb, back[:], info[:], nil) + got := strings.trim_space(strings.to_string(sb)) + if got != want { + fmt.printf(" [FAIL] %08x: got %q want %q\n", word, got, want) + fail += 1 + return + } + fmt.printf(" [ok] %08x -> %s\n", word, got) + ok += 1 +} diff --git a/core/rexcode/isa/arm32/tests/smoke.odin b/core/rexcode/isa/arm32/tests/smoke.odin index 72d1536f2..47845ac95 100644 --- a/core/rexcode/isa/arm32/tests/smoke.odin +++ b/core/rexcode/isa/arm32/tests/smoke.odin @@ -94,16 +94,16 @@ run_smoke :: proc() { check("CLREX (A32)", .CLREX, 0, 0xF57FF01F, 0xFFFFFFFF) // ---- Load/Store ---- - check("LDR imm", .LDR, 0, 0x05900000, 0x0F700000) - check("LDR pre", .LDR, 1, 0x05B00000, 0x0F700000) - check("LDR post", .LDR, 2, 0x04900000, 0x0F700000) - check("STR imm", .STR, 0, 0x05800000, 0x0F700000) - check("LDRB imm", .LDRB, 0, 0x05D00000, 0x0F700000) - check("STRH imm", .STRH, 0, 0x01C000B0, 0x0F7000F0) - check("LDRSB imm", .LDRSB, 0, 0x01D000D0, 0x0F7000F0) - check("LDRD", .LDRD, 0, 0x01C000D0, 0x0F7000F0) - check("LDM", .LDM, 0, 0x08900000, 0x0FD00000) - check("STM DB", .STM, 4, 0x09000000, 0x0FD00000) + check("LDR imm", .LDR, 0, 0x05100000, 0x0F700000) + check("LDR pre", .LDR, 1, 0x05300000, 0x0F700000) + check("LDR post", .LDR, 2, 0x04100000, 0x0F700000) + check("STR imm", .STR, 0, 0x05000000, 0x0F700000) + check("LDRB imm", .LDRB, 0, 0x05500000, 0x0F700000) + check("STRH imm", .STRH, 0, 0x014000B0, 0x0F7000F0) + check("LDRSB imm", .LDRSB, 0, 0x015000D0, 0x0F7000F0) + check("LDRD", .LDRD, 0, 0x014000D0, 0x0F7000F0) + check("LDM", .LDM, 0, 0x08900000, 0x0FF00000) + check("STM DB", .STMDB, 0, 0x09000000, 0x0FD00000) check("PUSH", .PUSH, 0, 0x092D0000, 0x0FFF0000) check("POP", .POP, 0, 0x08BD0000, 0x0FFF0000) check("SWP", .SWP, 0, 0x01000090, 0x0FF00FF0) @@ -117,8 +117,8 @@ run_smoke :: proc() { check("STL (v8)", .STL, 0, 0x0180FC90, 0x0FF0FFF0) // ---- CRC32 ---- - check("CRC32B", .CRC32B, 0, 0x01000040, 0x0FF00FF0) - check("CRC32CW", .CRC32CW, 0, 0x01400240, 0x0FF00FF0) + check("CRC32B", .CRC32B, 0, 0xE1000040, 0xFFF00FF0) + check("CRC32CW", .CRC32CW, 0, 0xE1400240, 0xFFF00FF0) // ---- VFP scalar ---- check("VADD.F32", .VADD, 0, 0x0E300A00, 0x0FB00B50) @@ -132,11 +132,12 @@ run_smoke :: proc() { check("VFMA.F32", .VFMA, 0, 0x0EA00A00, 0x0FB00B50) check("VLDR.F32", .VLDR, 0, 0x0D100A00, 0x0F300F00) check("VSTR.F64", .VSTR, 1, 0x0D000B00, 0x0F300F00) - check("VMRS", .VMRS, 0, 0x0EF10A10, 0x0FFF0FFF) - check("VMSR", .VMSR, 0, 0x0EE10A10, 0x0FFF0FFF) + // The system register is an operand now, so its field is not fixed. + check("VMRS", .VMRS, 0, 0x0EF10A10, 0x0FF00FFF) + check("VMSR", .VMSR, 0, 0x0EE10A10, 0x0FF00FFF) check("VPUSH.F32", .VPUSH,0, 0x0D2D0A00, 0x0FFF0F00) check("VPOP.F64", .VPOP, 1, 0x0CBD0B00, 0x0FFF0F00) - check("VCMP.F32", .VCMP, 0, 0x0EB40A40, 0x0FBF0F50) + check("VCMP.F32", .VCMP, 0, 0x0EB40A40, 0x0FBF0FD0) // ---- ARMv8 FP ---- check("VMAXNM.F32", .VMAXNM, 0, 0xFE800A00, 0xFFB00B50) @@ -160,7 +161,9 @@ run_smoke :: proc() { check("VMUL NEON.I8 D", .VMUL, 5, 0xF2000910, 0xFFB00F10) check("VMUL NEON.F32 D", .VMUL, 13, 0xF3000D10, 0xFFB00F10) check("VAND", .VAND, 0, 0xF2000110, 0xFFB00F10) - check("VORR", .VORR, 0, 0xF2200110, 0xFFB00F10) + // The modified-immediate forms come first; the register form follows. + check("VORR imm", .VORR, 0, 0xF2800110, 0xFEB80FF0) + check("VORR reg", .VORR, 12, 0xF2200110, 0xFFB00F10) check("VEOR", .VEOR, 0, 0xF3000110, 0xFFB00F10) check("VBSL", .VBSL, 0, 0xF3100110, 0xFFB00F10) check("VMAX.S16 D", .VMAX, 1, 0xF2100600, 0xFFB00F10) @@ -174,25 +177,25 @@ run_smoke :: proc() { check("VABD.S8 D", .VABD, 0, 0xF2000700, 0xFFB00F10) check("VPADD.I8 D", .VPADD, 0, 0xF2000B10, 0xFFB00F10) // NEON unary + shifts - check("VABS NEON.S8 D", .VABS, 2, 0xF3B10300, 0xFFB30FD0) - check("VNEG NEON.F32 D", .VNEG, 8, 0xF3B90780, 0xFFB30FD0) + check("VABS NEON.S8 D", .VABS, 2, 0xF3B10300, 0xFFBF0FD0) + check("VNEG NEON.F32 D", .VNEG, 8, 0xF3B90780, 0xFFBF0FD0) check("VMVN", .VMVN, 0, 0xF3B00580, 0xFFB30FD0) check("VCNT", .VCNT, 0, 0xF3B00500, 0xFFB30FD0) - check("VCLZ.I8 D", .VCLZ, 0, 0xF3B00480, 0xFFB30FD0) + check("VCLZ.I8 D", .VCLZ, 0, 0xF3B00480, 0xFFBF0FD0) check("VSHR.S8 D imm", .VSHR, 0, 0xF2800010, 0xFE800F10) check("VSHL reg.S8 D", .VSHL, 0, 0xF2000400, 0xFFB00F10) check("VEXT D", .VEXT, 0, 0xF2B00000, 0xFFB00010) check("VDUP from Rt D", .VDUP, 0, 0x0EC00B10, 0x0FF00FD0) - check("VREV64.I8 D", .VREV64, 0, 0xF3B00000, 0xFFB30FD0) - check("VTRN.I8 D", .VTRN, 0, 0xF3B20080, 0xFFB30FD0) - check("VZIP.I8 D", .VZIP, 0, 0xF3B20180, 0xFFB30FD0) + check("VREV64.I8 D", .VREV64, 0, 0xF3B00000, 0xFFBF0FD0) + check("VTRN.I8 D", .VTRN, 0, 0xF3B20080, 0xFFBF0FD0) + check("VZIP.I8 D", .VZIP, 0, 0xF3B20180, 0xFFB70FD0) check("VTBL", .VTBL, 0, 0xF3B00800, 0xFFB00F70) check("VRECPE F32 D", .VRECPE, 2, 0xF3BB0500, 0xFFBF0FD0) - check("VLD1 1-reg", .VLD1, 0, 0xF4200700, 0xFFF00F00) - check("VST1 1-reg", .VST1, 0, 0xF4000700, 0xFFF00F00) - check("VLD2 2-reg", .VLD2, 0, 0xF4200800, 0xFFF00F00) - check("VLD3 3-reg", .VLD3, 0, 0xF4200400, 0xFFF00F00) - check("VLD4 4-reg", .VLD4, 0, 0xF4200000, 0xFFF00F00) + check("VLD1 1-reg", .VLD1, 0, 0xF420070F, 0xFFF00F0F) + check("VST1 1-reg", .VST1, 0, 0xF400070F, 0xFFF00F0F) + check("VLD2 2-reg", .VLD2, 0, 0xF420080F, 0xFFF00F0F) + check("VLD3 3-reg", .VLD3, 0, 0xF420040F, 0xFFF00F0F) + check("VLD4 4-reg", .VLD4, 0, 0xF420000F, 0xFFF00F0F) check("VMULL.S8", .VMULL, 0, 0xF2800C00, 0xFFB00F50) // ---- Thumb-2 ---- @@ -257,8 +260,8 @@ run_smoke :: proc() { check("STRH T16 imm5", .STRH, 5, 0x00008000, 0x0000F800) check("LDRSB T16", .LDRSB,4, 0x00005600, 0x0000FE00) check("LDRSH T16", .LDRSH,4, 0x00005E00, 0x0000FE00) - check("LDM T16", .LDM, 5, 0x0000C800, 0x0000F800) - check("STM T16", .STM, 5, 0x0000C000, 0x0000F800) + check("LDM T16", .LDM, 2, 0x0000C800, 0x0000F800) + check("STM T16", .STM, 2, 0x0000C000, 0x0000F800) check("PUSH T16", .PUSH, 1, 0x0000B400, 0x0000FE00) check("POP T16", .POP, 1, 0x0000BC00, 0x0000FE00) @@ -289,8 +292,8 @@ run_smoke :: proc() { check("CLREX T32", .CLREX, 1, 0xF3BF8F2F, 0xFFFFFFFF) // ---- T32 32-bit Thumb-2 data-processing ---- - check("AND T32 imm", .AND, 7, 0xF0000000, 0xFBE08000) - check("AND T32 reg", .AND, 9, 0xEA000000, 0xFFE08000) + check("AND T32 imm", .AND, 7, 0xF0000000, 0xFBF08000) + check("AND T32 reg", .AND, 9, 0xEA000000, 0xFFF08000) check("EOR T32 imm", .EOR, 7, 0xF0800000, 0xFBE08000) check("ORR T32 imm", .ORR, 7, 0xF0400000, 0xFBE08000) check("BIC T32 imm", .BIC, 7, 0xF0200000, 0xFBE08000) @@ -324,9 +327,9 @@ run_smoke :: proc() { check("STRH T32 imm12", .STRH, 6, 0xF8A00000, 0xFFF00000) check("LDRSB T32 imm12", .LDRSB, 5, 0xF9900000, 0xFFF00000) check("LDRSH T32 imm12", .LDRSH, 5, 0xF9B00000, 0xFFF00000) - check("LDM T32 IA", .LDM, 6, 0xE8900000, 0xFFD00000) - check("LDM T32 DB", .LDM, 7, 0xE9100000, 0xFFD00000) - check("STM T32 IA", .STM, 6, 0xE8800000, 0xFFD00000) + check("LDM T32 IA", .LDM, 3, 0xE8900000, 0xFFD00000) + check("LDM T32 DB", .LDMDB, 1, 0xE9100000, 0xFFD00000) + check("STM T32 IA", .STM, 3, 0xE8800000, 0xFFD00000) check("PUSH T32", .PUSH, 2, 0xE92D0000, 0xFFFF0000) check("POP T32", .POP, 2, 0xE8BD0000, 0xFFFF0000) @@ -337,12 +340,12 @@ run_smoke :: proc() { check("VQRDMULH.S16", .VQRDMULH, 0, 0xF3100B00, 0xFFB00F10) check("VQDMULL.S16", .VQDMULL, 0, 0xF2900D00, 0xFFB00F50) check("VMOVL.S8", .VMOVL, 0, 0xF2880A10, 0xFFB80FD0) - check("VMOVN.I16", .VMOVN, 0, 0xF3B20200, 0xFFB30FD0) - check("VQMOVN.S16", .VQMOVN, 0, 0xF3B20280, 0xFFB30FD0) - check("VQMOVUN.S16", .VQMOVUN, 0, 0xF3B20240, 0xFFB30FD0) + check("VMOVN.I16", .VMOVN, 0, 0xF3B20200, 0xFFBF0FD0) + check("VQMOVN.S16", .VQMOVN, 0, 0xF3B20280, 0xFFBF0FD0) + check("VQMOVUN.S16", .VQMOVUN, 0, 0xF3B20240, 0xFFBF0FD0) check("VSHRN imm", .VSHRN, 0, 0xF2800810, 0xFE800FD0) check("VQSHRN.S", .VQSHRN, 0, 0xF2800910, 0xFE800FD0) - check("VPADDL.S8", .VPADDL, 0, 0xF3B00200, 0xFFB30FD0) + check("VPADDL.S8", .VPADDL, 0, 0xF3B00200, 0xFFBF0FD0) check("VPADAL.S8", .VPADAL, 0, 0xF3B00600, 0xFFB30FD0) check("VSWP.I8", .VSWP, 0, 0xF3B20000, 0xFFB30FD0) check("VACGE.F32 D", .VACGE, 0, 0xF3000E10, 0xFFB00F10) @@ -382,21 +385,23 @@ run_smoke :: proc() { // ---- Extensions: Dot product / FCMA / FHM / BF16 ---- check("VSDOT D", .VSDOT, 0, 0xFC200D00, 0xFFB00F10) check("VUDOT Q", .VUDOT, 1, 0xFC200D50, 0xFFB00F50) - check("VSDOT_LANE D", .VSDOT_LANE, 0, 0xFE200D00, 0xFFB00F10) + check("VSDOT lane D", .VSDOT, 2, 0xFE200D00, 0xFFB00F10) check("VCMLA D", .VCMLA, 0, 0xFC200800, 0xFC800F10) check("VCADD Q", .VCADD, 1, 0xFC800840, 0xFE800F50) check("VFMAL D", .VFMAL, 0, 0xFC200810, 0xFFB00F10) check("VFMSL Q", .VFMSL, 1, 0xFCA00850, 0xFFB00F50) - check("VCVT BF16", .VCVT_BF16, 0, 0xF3B60600, 0xFFBF0FD0) - check("VDOT BF16 D", .VDOT_BF16, 0, 0xFC000D00, 0xFFB00F10) - check("VFMA BF16 Q", .VFMA_BF16, 0, 0xFC300850, 0xFFB00F50) - check("VMMLA BF16 Q", .VMMLA_BF16, 0, 0xFC000C40, 0xFFB00F50) + check("VCVT BF16", .VCVT, 10, 0xF3B60600, 0xFFBF0FD0) + check("VDOT BF16 D", .VDOT, 0, 0xFC000D00, 0xFFB00F10) + // Bfloat16 names which half of each pair it takes on the mnemonic. + check("VFMAB BF16 Q", .VFMAB, 0, 0xFC300810, 0xFFB00F70) + check("VFMAT BF16 Q", .VFMAT, 0, 0xFC300850, 0xFFB00F70) + check("VMMLA BF16 Q", .VMMLA, 0, 0xFC000C40, 0xFFB00F50) // ---- Barriers / hints: ESB, PSB CSYNC, TSB CSYNC, CSDB, SB ---- check("ESB A32", .ESB, 0, 0x0320F010, 0x0FFFFFFF) check("ESB T32", .ESB, 1, 0xF3AF8010, 0xFFFFFFFF) - check("PSB_CSYNC A32", .PSB_CSYNC, 0, 0x0320F011, 0x0FFFFFFF) - check("TSB_CSYNC A32", .TSB_CSYNC, 0, 0x0320F012, 0x0FFFFFFF) + check("PSB_CSYNC A32", .PSB_CSYNC, 0, 0xE320F011, 0xFFFFFFFF) + check("TSB_CSYNC A32", .TSB_CSYNC, 0, 0xE320F012, 0xFFFFFFFF) check("CSDB A32", .CSDB, 0, 0x0320F014, 0x0FFFFFFF) check("CSDB T32", .CSDB, 1, 0xF3AF8014, 0xFFFFFFFF) check("SB A32", .SB, 0, 0xF57FF070, 0xFFFFFFFF) @@ -500,24 +505,22 @@ run_smoke :: proc() { check("VUMMLA", .VUMMLA, 0, 0xFC200C50, 0xFFB00F50) check("VUSMMLA", .VUSMMLA, 0, 0xFCA00C40, 0xFFB00F50) check("VUSDOT D", .VUSDOT, 0, 0xFCA00D00, 0xFFB00F10) - check("VSUDOT_LANE", .VSUDOT_LANE, 0, 0xFE800D50, 0xFFB00F50) + check("VSUDOT lane", .VSUDOT, 0, 0xFE800D50, 0xFFB00F50) // ---- Lane-indexed NEON ---- - check("VMUL_LANE D .S16", .VMUL_LANE, 0, 0xF2900840, 0xFFB00F50) - check("VMUL_LANE Q .S32", .VMUL_LANE, 3, 0xF3A00840, 0xFFB00F50) - check("VMLA_LANE D", .VMLA_LANE, 0, 0xF2900040, 0xFFB00F50) - check("VMLS_LANE Q", .VMLS_LANE, 2, 0xF3900440, 0xFFB00F50) - check("VMULL_LANE .S16", .VMULL_LANE, 0, 0xF2900A40, 0xFFB00F50) - check("VMLAL_LANE .S32", .VMLAL_LANE, 1, 0xF2A00240, 0xFFB00F50) - check("VMLSL_LANE .S16", .VMLSL_LANE, 0, 0xF2900640, 0xFFB00F50) - check("VQDMULL_LANE .S16",.VQDMULL_LANE, 0, 0xF2900B40, 0xFFB00F50) - check("VQDMLAL_LANE .S32",.VQDMLAL_LANE, 1, 0xF2A00340, 0xFFB00F50) - check("VQDMLSL_LANE", .VQDMLSL_LANE, 0, 0xF2900740, 0xFFB00F50) - check("VFMA_LANE D", .VFMA_LANE, 0, 0xF2A000C0, 0xFFB00F50) - check("VFMS_LANE Q", .VFMS_LANE, 1, 0xF3A004C0, 0xFFB00F50) - check("VQRDMLAH_LANE", .VQRDMLAH_LANE, 0, 0xF2900E40, 0xFFB00F50) - check("VQRDMLSH_LANE", .VQRDMLSH_LANE, 0, 0xF2900F40, 0xFFB00F50) - check("VCMLA_LANE D", .VCMLA_LANE, 0, 0xFE000800, 0xFFB00F10) + check("VMUL lane D .S16", .VMUL, 18, 0xF2900840, 0xFFB00F50) + check("VMUL lane Q .S32", .VMUL, 21, 0xF3A00840, 0xFFB00F50) + check("VMLA lane D", .VMLA, 12, 0xF2900040, 0xFFB00F50) + check("VMLS lane Q", .VMLS, 13, 0xF3900440, 0xFFB00F50) + check("VMULL lane .S16", .VMULL, 7, 0xF2900A40, 0xFFB00F50) + check("VMLAL lane .S32", .VMLAL, 7, 0xF2A00240, 0xFFB00F50) + check("VMLSL lane .S16", .VMLSL, 6, 0xF2900640, 0xFFB00F50) + check("VQDMULL lane .S16",.VQDMULL, 2, 0xF2900B40, 0xFFB00F50) + check("VQDMLAL lane .S32",.VQDMLAL, 3, 0xF2A00340, 0xFFB00F50) + check("VQDMLSL lane", .VQDMLSL, 2, 0xF2900740, 0xFFB00F50) + check("VQRDMLAH lane", .VQRDMLAH, 4, 0xF2900E40, 0xFFB00F50) + check("VQRDMLSH lane", .VQRDMLSH, 4, 0xF2900F40, 0xFFB00F50) + check("VCMLA lane D", .VCMLA, 2, 0xFE000800, 0xFFB00F10) // ---- MVE polish ---- check("VQABS", .VQABS, 0, 0xFFB00740, 0xFFB30FD1) @@ -526,41 +529,48 @@ run_smoke :: proc() { check("VINS", .VINS, 0, 0xFEB00AC0, 0xFFBF0FD0) // ---- MVE gather/scatter (LLVM-verified) ---- - check("VLDRW_GATHER", .VLDRW_GATHER, 0, 0xFC900F40, 0xFEF00FF1) - check("VLDRD_GATHER", .VLDRD_GATHER, 0, 0xFC900FD0, 0xFEF00FF1) - check("VSTRW_SCATTER", .VSTRW_SCATTER, 0, 0xEC600F40, 0xFEF00FF1) - check("VSTRB_SCATTER", .VSTRB_SCATTER, 0, 0xEC600E00, 0xFEF00FD1) + check("VLDRW", .VLDRW, 1, 0xFC900F40, 0xFEF00FF1) + check("VLDRD", .VLDRD, 1, 0xFC900FD0, 0xFEF00FF1) + check("VSTRW", .VSTRW, 1, 0xEC600F40, 0xFEF00FF1) + check("VSTRB", .VSTRB, 1, 0xEC600E00, 0xFEF00FD1) // ---- VFP fixed-point conversions (VCVT with #fbits) ---- - check("VCVT_FIXED S32.F32", .VCVT_FIXED, 0, 0x0EBE0A40, 0x0FBF0FD0) - check("VCVT_FIXED U32.F32", .VCVT_FIXED, 1, 0x0EBF0A40, 0x0FBF0FD0) - check("VCVT_FIXED F32.S32", .VCVT_FIXED, 2, 0x0EBA0A40, 0x0FBF0FD0) - check("VCVT_FIXED F64", .VCVT_FIXED, 6, 0x0EBE0B40, 0x0FBF0FD0) - check("VCVT_FIXED F16", .VCVT_FIXED, 8, 0x0EBE0940, 0x0FBF0FD0) + // The matrix runs cp (F16, F32, F64) outermost, then sx (16- then 32-bit + // fixed point), then opc2 (F<-S, F<-U, S<-F, U<-F). + check("VCVT F16.S16", .VCVT, 11, 0x0EBA0940, 0x0FBF0FD0) + check("VCVT S32.F16", .VCVT, 17, 0x0EBE09C0, 0x0FBF0FD0) + check("VCVT F32.S16", .VCVT, 19, 0x0EBA0A40, 0x0FBF0FD0) + check("VCVT S16.F32", .VCVT, 21, 0x0EBE0A40, 0x0FBF0FD0) + check("VCVT F32.S32", .VCVT, 23, 0x0EBA0AC0, 0x0FBF0FD0) + check("VCVT S32.F32", .VCVT, 25, 0x0EBE0AC0, 0x0FBF0FD0) + check("VCVT F64.S16", .VCVT, 27, 0x0EBA0B40, 0x0FBF0FD0) + check("VCVT S32.F64", .VCVT, 33, 0x0EBE0BC0, 0x0FBF0FD0) // ---- NEON compare-with-zero ---- - check("VCEQ_Z D .I8", .VCEQ_Z, 0, 0xF3B10100, 0xFFB30FD0) - check("VCEQ_Z Q .F32", .VCEQ_Z, 3, 0xF3B90540, 0xFFB30FD0) - check("VCGE_Z D", .VCGE_Z, 0, 0xF3B10080, 0xFFB30FD0) - check("VCGT_Z D", .VCGT_Z, 0, 0xF3B10000, 0xFFB30FD0) - check("VCLE_Z D", .VCLE_Z, 0, 0xF3B10180, 0xFFB30FD0) - check("VCLT_Z D", .VCLT_Z, 0, 0xF3B10200, 0xFFB30FD0) + check("VCEQ D .I8", .VCEQ, 10, 0xF3B10100, 0xFFBB0FD0) + check("VCEQ Q .F32", .VCEQ, 13, 0xF3B90540, 0xFFBB0FD0) + check("VCGE D", .VCGE, 12, 0xF3B10080, 0xFFBB0FD0) + check("VCGT D", .VCGT, 12, 0xF3B10000, 0xFFBB0FD0) + check("VCLE D", .VCLE, 14, 0xF3B10180, 0xFFBB0FD0) + check("VCLT D", .VCLT, 14, 0xF3B10200, 0xFFBB0FD0) // ---- NEON replicate loads ---- - check("VLD2R", .VLD2R, 0, 0xF4A00D0F, 0xFFB00F0F) - check("VLD3R", .VLD3R, 0, 0xF4A00E0F, 0xFFB00F0F) - check("VLD4R", .VLD4R, 0, 0xF4A00F0F, 0xFFB00F0F) + // The broadcast loads are VLD2/VLD3/VLD4 with an all-lanes list, and + // that form leads each of their entry lists. + check("VLD2 all-lanes", .VLD2, 6, 0xF4A00D0F, 0xFFB00F0F) + check("VLD3 all-lanes", .VLD3, 5, 0xF4A00E0F, 0xFFB00F0F) + check("VLD4 all-lanes", .VLD4, 5, 0xF4A00F0F, 0xFFB00F0F) // ---- NEON single-element lane loads/stores ---- - check("VLD1_LANE .8", .VLD1_LANE, 0, 0xF4A00000, 0xFFB00C00) - check("VLD1_LANE .16", .VLD1_LANE, 1, 0xF4A00400, 0xFFB00C00) - check("VLD1_LANE .32", .VLD1_LANE, 2, 0xF4A00800, 0xFFB00C00) - check("VLD2_LANE .8", .VLD2_LANE, 0, 0xF4A00100, 0xFFB00D00) - check("VLD3_LANE .16", .VLD3_LANE, 1, 0xF4A00600, 0xFFB00D00) - check("VLD4_LANE .32", .VLD4_LANE, 2, 0xF4A00B00, 0xFFB00D00) - check("VST1_LANE .8", .VST1_LANE, 0, 0xF4800000, 0xFFB00C00) - check("VST3_LANE .32", .VST3_LANE, 2, 0xF4800A00, 0xFFB00D00) - check("VST4_LANE .16", .VST4_LANE, 1, 0xF4800700, 0xFFB00D00) + check("VLD1 lane .8", .VLD1, 5, 0xF4A0000F, 0xFFB00F1F) + check("VLD1 lane .16", .VLD1, 6, 0xF4A0040F, 0xFFB00F3F) + check("VLD1 lane .32", .VLD1, 7, 0xF4A0080F, 0xFFB00F7F) + check("VLD2 lane .8", .VLD2, 3, 0xF4A0010F, 0xFFB00F1F) + check("VLD3 lane .16", .VLD3, 3, 0xF4A0060F, 0xFFB00F3F) + check("VLD4 lane .32", .VLD4, 4, 0xF4A00B0F, 0xFFB00F7F) + check("VST1 lane .8", .VST1, 4, 0xF480000F, 0xFFB00F1F) + check("VST3 lane .32", .VST3, 4, 0xF4800A0F, 0xFFB00F7F) + check("VST4 lane .16", .VST4, 3, 0xF480070F, 0xFFB00F3F) // ---- MVE rounding-to-int (VPADD/VPMAX/VPMIN MVE forms removed - don't exist) ---- check("VRINTA MVE", .VRINTA, 2, 0xFFBA0540, 0xFFBB0FD1) diff --git a/core/rexcode/isa/arm32/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/arm32/tools/gen_mnemonic_builders.odin index b3d6c547d..33b6ed903 100644 --- a/core/rexcode/isa/arm32/tools/gen_mnemonic_builders.odin +++ b/core/rexcode/isa/arm32/tools/gen_mnemonic_builders.odin @@ -48,7 +48,7 @@ GEN_ATTRIB :: "// rexcode · Brendan Punsky (dotbmp@github), original author\n // Per-form operand signature. Operand_Signature :: struct { - types: [4]a.Operand_Type, + types: [6]a.Operand_Type, mode: a.Mode, length: u8, // on-wire byte length of the matched form (2 or 4) count: int, @@ -242,7 +242,7 @@ form_signature :: proc(form: a.Encoding) -> (sig: Operand_Signature, ok: bool) { if ot == .NONE { continue } if is_implicit_operand(form.enc[i]) { continue } - if sig.count >= 4 { + if sig.count >= 6 { return {}, false } sig.types[sig.count] = ot @@ -415,7 +415,7 @@ inst_body :: proc(sb: ^strings.Builder, entry: Proc_Entry, ps: []Param) { ops := strings.builder_make() defer strings.builder_destroy(&ops) pi := 0 - for i in 0..<4 { + for i in 0..<6 { if i > 0 { strings.write_string(&ops, ", ") } if i < sig.count { pi = operand_expr(&ops, sig.types[i], ps, pi) @@ -626,7 +626,7 @@ main :: proc() { fmt.printf("Mnemonics with builders: %d\n", len(mlist)) fmt.printf("Procedures generated: %d\n", total_procs) fmt.printf("Forms total: %d\n", total_forms) - fmt.printf("Forms skipped (>4 ops): %d\n", skipped_forms) + fmt.printf("Forms skipped (>6 ops): %d\n", skipped_forms) fmt.printf("Forms folded (overload): %d\n", dropped_overload) fmt.printf("Zero-form mnemonics: %d\n", len(zero_form)) for zm in zero_form { fmt.printf(" %v\n", zm) } diff --git a/core/rexcode/isa/arm64/clobber_types.odin b/core/rexcode/isa/arm64/clobber_types.odin new file mode 100644 index 000000000..e9800c032 --- /dev/null +++ b/core/rexcode/isa/arm64/clobber_types.odin @@ -0,0 +1,64 @@ +package rexcode_arm64 + +Operand_Set :: distinct bit_set[0..<5; u8] + +NZCV_Flags :: distinct bit_set[NZCV_Flag; u8] +NZCV_Flag :: enum u8 { + N, // negative result + Z, // zero result + C, // carry-out / no-borrow (unsigned sense) + V, // signed overflow +} + +FPSR_Flags :: distinct bit_set[FPSR_Flag; u8] +FPSR_Flag :: enum u8 { + IOC, // invalid operation + DZC, // divide by zero + OFC, // overflow + UFC, // underflow + IXC, // inexact + IDC, // input denormal + QC, // cumulative saturation (Advanced SIMD saturating ops) +} + +Clobber_Regs :: distinct bit_set[Clobber_Reg; u8] +Clobber_Reg :: enum u8 { + LR, // x30, implicit link written by BL/BLR, implicitly read by RET + SP, // sp, implicit base on PACIASP/AUTIASP (and stack-relative forms) + X16, // implicit modifier register for PAC*1716 / AUT*1716 + X17, // implicit pointer register (read-modify-write) for PAC*1716 / AUT*1716 +} + +Side_Effects :: distinct bit_set[Side_Effect; u16] +Side_Effect :: enum u8 { + CONTROL, // writes pc: B/BL/BR/BLR/RET, B.cond, CBZ/CBNZ, TBZ/TBNZ + EXCEPTION, // exception-generating call: SVC / HVC / SMC + TRAP, // deliberately faults: BRK (breakpoint), UDF (undefined) + FENCE, // memory-ordering barrier: DMB/DSB, and acquire/release accesses + ISYNC, // instruction-stream / context synchronization: ISB + ATOMIC, // indivisible RMW: LDXR/STXR pair, LSE (LDADD/SWP/CAS...) + RESERVATION, // sets/tests/clears the local exclusive monitor: LDXR/STXR, CLREX + CACHE, // cache maintenance with coherence effects: DC, IC + HINT, // architecturally-inert hint: NOP/YIELD/PRFM/SEV/ESB/CSDB + BTI, // branch-target-identification landing pad (control-flow integrity) + PAC, // pointer authentication: reads an implicit key, may fault (FEAT_FPAC) + WAIT, // suspends execution until an event/interrupt: WFI/WFE + PRIVILEGED, // reads/writes system state: MSR/MRS, ERET, TLBI, AT, DAIF + FFR, // reads/writes the SVE first-fault register: SETFFR/RDFFR/WRFFR, LDFF* + NONDETERMINISTIC, // RNDR/RNDRRS, counter/timer reads (CNTVCT), TSTART +} + +Clobber :: struct { + written: Operand_Set, // operand slots whose register/SIMD reg is written + read: Operand_Set, // operand slots whose register / mem-base is read + implicit_wr: Clobber_Regs, // implicit reg writes (LR on BL/BLR) + implicit_rd: Clobber_Regs, // implicit reg reads (LR on RET, SP on PAC*SP) + nzcv_wr: NZCV_Flags, // condition flags written (ADDS/SUBS/ANDS, CMP, FCMP, CCMP...) + nzcv_undef: NZCV_Flags, // condition flags left UNKNOWN — rare in A64, usually empty + nzcv_rd: NZCV_Flags, // condition flags read (B.cond, CSEL, ADC/SBC, CCMP...) + fpsr_wr: FPSR_Flags, // FP cumulative exception/saturation flags this op may raise + reads_fpcr: bool, // consumes the rounding mode / FP control from FPCR + writes_mem: bool, + reads_mem: bool, + side_effects: Side_Effects, +} diff --git a/core/rexcode/isa/arm64/decoder.odin b/core/rexcode/isa/arm64/decoder.odin index 2fb303ab1..8e5d1b124 100644 --- a/core/rexcode/isa/arm64/decoder.odin +++ b/core/rexcode/isa/arm64/decoder.odin @@ -96,6 +96,14 @@ decode_one_inline :: #force_inline proc "contextless" ( for i in 0..> 16) & 0x1F) != ((word >> 5) & 0x1F) { + continue + } matched_idx = base + i break } @@ -120,6 +128,10 @@ decode_one_inline :: #force_inline proc "contextless" ( if entry.ops[3] != .NONE { inst.ops[3] = extract_operand_inline(word, pc, entry.ops[3], entry.enc[3]) cnt_used = 4 + if entry.ops[4] != .NONE { + inst.ops[4] = extract_operand_inline(word, pc, entry.ops[4], entry.enc[4]) + cnt_used = 5 + } } } } @@ -142,7 +154,7 @@ extract_operand_inline :: #force_inline proc "contextless" ( // ---- Register slots ---------------------------------------------------- case .RD, .RT: return reg_from_field(word, 0, ot) - case .RN: + case .RN, .RN_RM: return reg_from_field(word, 5, ot) case .RT2, .RA: return reg_from_field(word, 10, ot) @@ -188,12 +200,14 @@ extract_operand_inline :: #force_inline proc "contextless" ( case .EXT_IMM3: return Operand{immediate = i64((word >> 10) & 0x7), kind = .IMMEDIATE, size = 1} case .COND_HI: return Operand{cond = u8((word >> 12) & 0xF), kind = .COND, size = 1} + case .COND_HI_INV: + return Operand{cond = u8(((word >> 12) & 0xF) ~ 1), kind = .COND, size = 1} case .COND_LO: return Operand{cond = u8(word & 0xF), kind = .COND, size = 1} case .NZCV_FIELD: return Operand{immediate = i64(word & 0xF), kind = .IMMEDIATE, size = 1} case .SYS_FIELD: - return Operand{immediate = i64((word >> 5) & 0x7FFF), kind = .IMMEDIATE, size = 2} + return Operand{reg = sysreg_from_bits((word >> 5) & 0x7FFF), kind = .REGISTER, size = 4} case .HINT_FIELD: return Operand{immediate = i64((word >> 5) & 0x7F), kind = .IMMEDIATE, size = 1} case .BARRIER_FIELD: @@ -213,7 +227,7 @@ extract_operand_inline :: #force_inline proc "contextless" ( // ---- NEON copy/permute index fields ------------------------------------ case .VN_VM_DUP: - return Operand{reg = Register(REG_V | u16((word >> 5) & 0x1F)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_V | u16((word >> 5) & 0x1F)), kind = .REGISTER, size = reg_size_for_type(ot)} case .NEON_IDX5: // imm5 = index << (markerbit+1) | (1 << markerbit); marker = lowest set bit. imm5 := (word >> 16) & 0x1F @@ -222,7 +236,7 @@ extract_operand_inline :: #force_inline proc "contextless" ( else if imm5 & 0x2 != 0 { mb = 1 } else if imm5 & 0x4 != 0 { mb = 2 } else { mb = 3 } - return Operand{immediate = i64(imm5 >> (mb + 1)), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(imm5 >> (mb + 1)), kind = .IMMEDIATE, size = LANE_INDEX} case .NEON_IDX4: // imm4 = index << markerbit; recover markerbit from imm5 in the word. imm5 := (word >> 16) & 0x1F @@ -231,7 +245,7 @@ extract_operand_inline :: #force_inline proc "contextless" ( else if imm5 & 0x2 != 0 { mb = 1 } else if imm5 & 0x4 != 0 { mb = 2 } else { mb = 3 } - return Operand{immediate = i64(((word >> 11) & 0xF) >> mb), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(((word >> 11) & 0xF) >> mb), kind = .IMMEDIATE, size = LANE_INDEX} case .NEON_EXT_IDX: return Operand{immediate = i64((word >> 11) & 0xF), kind = .IMMEDIATE, size = 1} case .IMM5_HI: @@ -246,33 +260,26 @@ extract_operand_inline :: #force_inline proc "contextless" ( case .PN_PM_DUP, .PN_PG_PM_DUP: return Operand{reg = Register(REG_P | u16((word >> 5) & 0xF)), kind = .REGISTER, size = 4} case .ZD_ZM_DUP: - return Operand{reg = Register(REG_Z | u16(word & 0x1F)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_Z | u16(word & 0x1F)), kind = .REGISTER, size = reg_size_for_type(ot)} case .SVE_EXT_IMM: v := ((word >> 16) & 0x1F) << 3 | ((word >> 10) & 0x7) return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} case .ZA_TILE_LOW: - return Operand{immediate = i64(word & 0x7), kind = .IMMEDIATE, size = 1} + return Operand{reg = Register(REG_ZA | u16(word & 0x7)), kind = .REGISTER, + size = za_elem_for_type(ot)} case .NEON_LANE_B: i := ((word >> 30) & 0x1) << 3 | ((word >> 12) & 0x1) << 2 | ((word >> 10) & 0x3) - return Operand{immediate = i64(i), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(i), kind = .IMMEDIATE, size = LANE_INDEX} case .NEON_LANE_H: i := ((word >> 30) & 0x1) << 2 | ((word >> 12) & 0x1) << 1 | ((word >> 11) & 0x1) - return Operand{immediate = i64(i), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(i), kind = .IMMEDIATE, size = LANE_INDEX} case .NEON_LANE_S: i := ((word >> 30) & 0x1) << 1 | ((word >> 12) & 0x1) - return Operand{immediate = i64(i), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(i), kind = .IMMEDIATE, size = LANE_INDEX} case .NEON_LANE_D: - return Operand{immediate = i64((word >> 30) & 0x1), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64((word >> 30) & 0x1), kind = .IMMEDIATE, size = LANE_INDEX} case .SVE_XAR_SHIFT: - tszh := (word >> 22) & 0x3 - tszl := (word >> 19) & 0x3 - v := i64((tszh << 5) | (tszl << 3) | ((word >> 16) & 0x7)) - tsize := (tszh << 2) | tszl - esize: i64 = 8 - if tsize >= 8 { esize = 64 } - else if tsize >= 4 { esize = 32 } - else if tsize >= 2 { esize = 16 } - return Operand{immediate = 2 * esize - v, kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(sve_tsz_shift(sve_tsz_field(word))), kind = .IMMEDIATE, size = 1} // ---- Memory operand variants ------------------------------------------ case .OFFSET_BASE_U12: @@ -338,20 +345,60 @@ extract_operand_inline :: #force_inline proc "contextless" ( }, kind = .MEMORY, size = 4, } + case .OFFSET_PAIR_4, .OFFSET_PAIR_8, .OFFSET_PAIR_16: + // LDP/STP: signed imm7 at 21:15, scaled by the transfer size. The + // addressing mode is bits[24:23] of the word (01 post, 11 pre, + // 10 signed offset / 00 no-allocate), not part of the encoding. + base_hw := u8((word >> 5) & 0x1F) + imm7 := i32((word >> 15) & 0x7F) + if imm7 & (1 << 6) != 0 { + imm7 |= ~i32(0x7F) + } + scale := i32(4) + if en == .OFFSET_PAIR_8 { + scale = 8 + } else if en == .OFFSET_PAIR_16 { + scale = 16 + } + mode := Address_Mode.OFFSET + switch (word >> 23) & 0x3 { + case 0b01: mode = .POST_INDEXED + case 0b11: mode = .PRE_INDEXED + } + return Operand{ + mem = Memory{ + base = Register(REG_X | u16(base_hw)), + index = NONE, + disp = imm7 * scale, + mode = mode, + }, + kind = .MEMORY, size = 4, + } case .OFFSET_REG, .OFFSET_EXT: base_hw := u8((word >> 5) & 0x1F) idx_hw := u8((word >> 16) & 0x1F) option := Extend((word >> 13) & 0x7) - s := u8((word >> 12) & 0x1) idx_cls := u16(REG_X) if option == .UXTW || option == .SXTW { idx_cls = REG_W } + // S (bit 12) is one bit; the amount it stands for is log2 of the + // transfer size -- size (31:30), plus opc<1> (23) for SIMD (V at 26). + // A byte access with S set means an explicit `#0`, which Memory + // cannot hold apart from no amount; it decodes as no amount. + scale := u8((word >> 30) & 0x3) + if (word >> 26) & 1 == 1 { + scale |= u8((word >> 23) & 0x1) << 2 + } + shift := (word >> 12) & 1 == 1 ? scale : 0 + // Option 011 is LSL -- a plain register offset; the other three + // options are extended-register offsets. + mode := option == .UXTX ? Address_Mode.REG_OFFSET : .EXT_REG_OFFSET return Operand{ mem = Memory{ base = Register(REG_X | u16(base_hw)), index = Register(idx_cls | u16(idx_hw)), extend = option, - shift = s, - mode = en == .OFFSET_EXT ? .EXT_REG_OFFSET : .REG_OFFSET, + shift = shift, + mode = mode, }, kind = .MEMORY, size = 4, } @@ -406,18 +453,33 @@ extract_operand_inline :: #force_inline proc "contextless" ( return Operand{immediate = i64(value), kind = .IMMEDIATE, size = is_64 ? 8 : 4} // ---- NEON / SIMD register slots ---- + // The class comes from the operand TYPE, not from the encoding: SVE forms + // use these same Vd/Vn/Vm slots with Z_REG_* operands, so hardcoding + // REG_V here decoded `add z0.d, z0.d, z0.d` as a V register. case .VD: - hw := u16(word & 0x1F) - return Operand{reg = Register(REG_V | hw), kind = .REGISTER, size = 4} + return reg_from_field(word, 0, ot) + // The element size is not in the static pattern -- it shares the tsz field + // with the shift -- so it has to be read out of the word. + case .VD_TSZ: + return Operand{reg = Register(REG_Z | u16(word & 0x1F)), kind = .REGISTER, + size = sve_esize_code(sve_tsz_esize(sve_tsz_field(word)))} + case .VN_TSZ: + return Operand{reg = Register(REG_Z | u16((word >> 5) & 0x1F)), kind = .REGISTER, + size = sve_esize_code(sve_tsz_esize(sve_tsz_field(word)))} case .VN: - hw := u16((word >> 5) & 0x1F) - return Operand{reg = Register(REG_V | hw), kind = .REGISTER, size = 4} + return reg_from_field(word, 5, ot) + case .VD_LIST1, .VD_LIST2, .VD_LIST3, .VD_LIST4: + op := reg_from_field(word, 0, ot) + op.list_count = u8(int(en) - int(Operand_Encoding.VD_LIST1)) + 1 + return op + case .VN_LIST1, .VN_LIST2, .VN_LIST3, .VN_LIST4: + op := reg_from_field(word, 5, ot) + op.list_count = u8(int(en) - int(Operand_Encoding.VN_LIST1)) + 1 + return op case .VM: - hw := u16((word >> 16) & 0x1F) - return Operand{reg = Register(REG_V | hw), kind = .REGISTER, size = 4} + return reg_from_field(word, 16, ot) case .VA: - hw := u16((word >> 10) & 0x1F) - return Operand{reg = Register(REG_V | hw), kind = .REGISTER, size = 4} + return reg_from_field(word, 10, ot) // ---- NEON / SVE indexed/immediate fields ---- case .NEON_IMM8_FMOV: @@ -451,38 +513,65 @@ extract_operand_inline :: #force_inline proc "contextless" ( // ---- SVE predicate slots ---- case .PD: - return Operand{reg = Register(REG_P | u16(word & 0xF)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_P | u16(word & 0xF)), kind = .REGISTER, size = pqual_for_type(ot)} case .PN: - return Operand{reg = Register(REG_P | u16((word >> 5) & 0xF)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_P | u16((word >> 5) & 0xF)), kind = .REGISTER, size = pqual_for_type(ot)} case .PM: - return Operand{reg = Register(REG_P | u16((word >> 16) & 0xF)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_P | u16((word >> 16) & 0xF)), kind = .REGISTER, size = pqual_for_type(ot)} + case .SME_ZA_MASK: + return Operand{immediate = i64(word & 0xFF), kind = .IMMEDIATE, size = ZA_TILE_MASK} + case .SME_ZA_ARRAY: + // elem 0 marks it as an array vector rather than a tile slice. + return op_za_slice(0, u8((word >> 13) & 0x3), u8(word & 0xF), 0) + case .ENC_ZT0: + return Operand{reg = ZT0, kind = .REGISTER, size = 0} + case .LUTI_IDX: + return Operand{immediate = i64((word >> 15) & 0x3), kind = .IMMEDIATE, size = LANE_INDEX} + case .PNG: + return Operand{reg = Register(REG_PN | u16(8 + ((word >> 10) & 0x7))), kind = .REGISTER, size = pqual_for_type(ot)} case .PG: - return Operand{reg = Register(REG_P | u16((word >> 10) & 0x7)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_P | u16((word >> 10) & 0x7)), kind = .REGISTER, size = pqual_for_type(ot)} case .PG4: - return Operand{reg = Register(REG_P | u16((word >> 10) & 0xF)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_P | u16((word >> 10) & 0xF)), kind = .REGISTER, size = pqual_for_type(ot)} case .PM3: - return Operand{reg = Register(REG_P | u16((word >> 13) & 0x7)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_P | u16((word >> 13) & 0x7)), kind = .REGISTER, size = pqual_for_type(ot)} // ---- SVE immediates ---- case .SVE_IMM8: v := i32((word >> 5) & 0xFF) if v & 0x80 != 0 { v |= ~i32(0xFF) } return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} + case .SVE_IMM5A: + v := i64((word >> 5) & 0x1F) + if v & 0x10 != 0 { v |= ~i64(0x1F) } + return Operand{immediate = v, kind = .IMMEDIATE, size = 1} case .SVE_IMM5: return Operand{immediate = i64((word >> 16) & 0x1F), kind = .IMMEDIATE, size = 1} case .SVE_SHIFT_TSZ_IMM: return Operand{immediate = i64((word >> 16) & 0x7F), kind = .IMMEDIATE, size = 1} case .SVE_PATTERN: - return Operand{immediate = i64((word >> 5) & 0x1F), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64((word >> 5) & 0x1F), kind = .IMMEDIATE, size = SVE_PATTERN_IMM} + case .IMM_MUL4: + // The field holds the multiplier minus one. + return Operand{immediate = i64(((word >> 16) & 0xF) + 1), kind = .IMMEDIATE, size = SVE_MUL_IMM} // ---- SVE memory operands ---- - case .SVE_OFFSET_BASE_SS: + case .SVE_OFFSET_BASE_SS, .SVE_OFFSET_BASE_SS1, .SVE_OFFSET_BASE_SS2, .SVE_OFFSET_BASE_SS3, + .SVE_OFFSET_BASE_SS4: base_hw := u8((word >> 5) & 0x1F) idx_hw := u8((word >> 16) & 0x1F) + shift: u8 = 0 + #partial switch en { + case .SVE_OFFSET_BASE_SS1: shift = 1 + case .SVE_OFFSET_BASE_SS2: shift = 2 + case .SVE_OFFSET_BASE_SS3: shift = 3 + case .SVE_OFFSET_BASE_SS4: shift = 4 + } return Operand{ mem = Memory{ base = Register(REG_X | u16(base_hw)), index = Register(REG_X | u16(idx_hw)), + shift = shift, mode = .REG_OFFSET, }, kind = .MEMORY, size = 4, @@ -503,28 +592,45 @@ extract_operand_inline :: #force_inline proc "contextless" ( // ---- SME ZA tile fields ---- case .ZA_TILE_NUM_B: - return Operand{immediate = 0, kind = .IMMEDIATE, size = 1} + return Operand{reg = Register(REG_ZA | u16(word & 0x0)), kind = .REGISTER, + size = za_elem_for_type(ot)} case .ZA_TILE_NUM_H: - return Operand{immediate = i64((word >> 22) & 0x1), kind = .IMMEDIATE, size = 1} + return Operand{reg = Register(REG_ZA | u16(word & 0x1)), kind = .REGISTER, + size = za_elem_for_type(ot)} case .ZA_TILE_NUM_S: - return Operand{immediate = i64((word >> 22) & 0x3), kind = .IMMEDIATE, size = 1} + return Operand{reg = Register(REG_ZA | u16(word & 0x3)), kind = .REGISTER, + size = za_elem_for_type(ot)} case .ZA_TILE_NUM_D: - return Operand{immediate = i64((word >> 21) & 0x7), kind = .IMMEDIATE, size = 1} + return Operand{reg = Register(REG_ZA | u16(word & 0x7)), kind = .REGISTER, + size = za_elem_for_type(ot)} case .SME_PATTERN_FIELD: return Operand{immediate = i64((word >> 5) & 0xF), kind = .IMMEDIATE, size = 1} // ---- SVE gather/scatter + vector-base memory ---- - case .SVE_OFFSET_BASE_VEC: + case .SVE_OFFSET_BASE_VEC, .SVE_OFFSET_BASE_VEC_S, .SVE_OFFSET_BASE_VEC_D, + .SVE_OFFSET_BASE_VECST_S, .SVE_OFFSET_BASE_VECST_D: base_hw := u8((word >> 5) & 0x1F) idx_hw := u8((word >> 16) & 0x1F) - return Operand{ - mem = Memory{ - base = Register(REG_X | u16(base_hw)), - index = Register(REG_Z | u16(idx_hw)), - mode = .REG_OFFSET, - }, - kind = .MEMORY, size = 4, + m := Memory{ + base = Register(REG_X | u16(base_hw)), + index = Register(REG_Z | u16(idx_hw)), + mode = .REG_OFFSET, } + // These forms all extend a 32-bit-wide index, and bit 22 says which way. + // The index's own element size is not derivable from the word, so it + // travels in the operand's size -- Memory has no bits left. + shape := u8(4) + #partial switch en { + case .SVE_OFFSET_BASE_VEC_S, .SVE_OFFSET_BASE_VEC_D: + m.mode = .EXT_REG_OFFSET + m.extend = (word >> 22) & 1 != 0 ? .SXTW : .UXTW + shape = en == .SVE_OFFSET_BASE_VEC_D ? ZSHAPE_D : ZSHAPE_S + case .SVE_OFFSET_BASE_VECST_S, .SVE_OFFSET_BASE_VECST_D: + m.mode = .EXT_REG_OFFSET + m.extend = (word >> 14) & 1 != 0 ? .SXTW : .UXTW + shape = en == .SVE_OFFSET_BASE_VECST_D ? ZSHAPE_D : ZSHAPE_S + } + return Operand{mem = m, kind = .MEMORY, size = shape} case .SVE_OFFSET_VEC_BASE: base_hw := u8((word >> 5) & 0x1F) imm := i32((word >> 16) & 0x1F) @@ -540,13 +646,13 @@ extract_operand_inline :: #force_inline proc "contextless" ( // ---- SVE indexed lane field ---- case .SVE_FMLA_IDX_H: v := ((word >> 22) & 0x1) << 2 | ((word >> 19) & 0x3) - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(v), kind = .IMMEDIATE, size = LANE_INDEX} case .SVE_FMLA_IDX_S: v := (word >> 19) & 0x3 - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(v), kind = .IMMEDIATE, size = LANE_INDEX} case .SVE_FMLA_IDX_D: v := (word >> 20) & 0x1 - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} + return Operand{immediate = i64(v), kind = .IMMEDIATE, size = LANE_INDEX} // ---- SME tile slice descriptor (round-trip back to the packed form) ---- // @@ -554,40 +660,32 @@ extract_operand_inline :: #force_inline proc "contextless" ( // instruction bits 3:0 (packed per element size), Ws at bits 14:13, // V flag at bit 15. case .SME_SLICE_B: - vflag := (word >> 15) & 0x1 - ws := (word >> 13) & 0x3 - imm := word & 0xF - v := imm | (vflag << 4) | (ws << 5) - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 2} + // The tile number and the offset share the low nibble; how it + // splits follows the element size. + return op_za_slice(u8((word >> 4) & 0x0), u8((word >> 13) & 0x3), + u8(word & 0xF), ZSHAPE_B, (word >> 15) & 0x1 != 0) case .SME_SLICE_H: - vflag := (word >> 15) & 0x1 - ws := (word >> 13) & 0x3 - imm := word & 0x7 - tile := (word >> 3) & 0x1 - v := imm | (vflag << 4) | (ws << 5) | (tile << 7) - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 2} + // The tile number and the offset share the low nibble; how it + // splits follows the element size. + return op_za_slice(u8((word >> 3) & 0x1), u8((word >> 13) & 0x3), + u8(word & 0x7), ZSHAPE_H, (word >> 15) & 0x1 != 0) case .SME_SLICE_W: - vflag := (word >> 15) & 0x1 - ws := (word >> 13) & 0x3 - imm := word & 0x3 - tile := (word >> 2) & 0x3 - v := imm | (vflag << 4) | (ws << 5) | (tile << 7) - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 2} + // The tile number and the offset share the low nibble; how it + // splits follows the element size. + return op_za_slice(u8((word >> 2) & 0x3), u8((word >> 13) & 0x3), + u8(word & 0x3), ZSHAPE_S, (word >> 15) & 0x1 != 0) case .SME_SLICE_D: - vflag := (word >> 15) & 0x1 - ws := (word >> 13) & 0x3 - imm := word & 0x1 - tile := (word >> 1) & 0x7 - v := imm | (vflag << 4) | (ws << 5) | (tile << 7) - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 2} + // The tile number and the offset share the low nibble; how it + // splits follows the element size. + return op_za_slice(u8((word >> 1) & 0x7), u8((word >> 13) & 0x3), + u8(word & 0x1), ZSHAPE_D, (word >> 15) & 0x1 != 0) case .SME_SLICE_Q: - vflag := (word >> 15) & 0x1 - ws := (word >> 13) & 0x3 - tile := word & 0xF - v := (vflag << 4) | (ws << 5) | (tile << 7) - return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 2} - - // ---- Batch 3 misc immediates ---- + // The tile number and the offset share the low nibble; how it + // splits follows the element size. + return op_za_slice(u8((word >> 0) & 0xF), u8((word >> 13) & 0x3), + u8(word & 0x0), ZSHAPE_Q, (word >> 15) & 0x1 != 0) + case .NEON_IDX2: + return Operand{immediate = i64((word >> 12) & 0x3), kind = .IMMEDIATE, size = LANE_INDEX} case .ENC_FCMLA_ROT: return Operand{immediate = i64((word >> 12) & 0x3), kind = .IMMEDIATE, size = 1} case .ENC_FCADD_ROT: @@ -607,17 +705,30 @@ extract_operand_inline :: #force_inline proc "contextless" ( case .ENC_LSL_IMM_X: imms := (word >> 10) & 0x3F return Operand{immediate = i64((63 - imms) & 0x3F), kind = .IMMEDIATE, size = 1} + case .ENC_IMM6_LO: + v := i32((word >> 5) & 0x3F) + if v & (1 << 5) != 0 { v |= ~i32(0x3F) } // sign-extend from bit 5 + return Operand{immediate = i64(v), kind = .IMMEDIATE, size = 1} + case .ENC_SHIFT_IMMR: + // LSR/ASR immediate: the shift is immr verbatim (bits 21:16). + return Operand{immediate = i64((word >> 16) & 0x3F), kind = .IMMEDIATE, size = 1} case .ENC_DUAL_RN_RM: // Take the Rn slot (9:5) as the source register. return Operand{reg = Register(REG_X | u16((word >> 5) & 0x1F)), kind = .REGISTER, size = 4} case .ENC_ROR_SHIFT: return Operand{immediate = i64((word >> 10) & 0x3F), kind = .IMMEDIATE, size = 1} case .ENC_Z_PAIR_VD, .ENC_Z_QUAD_VD: - return Operand{reg = Register(REG_Z | u16(word & 0x1F)), kind = .REGISTER, size = 4} + // A pair starts on an even register and a quad on a multiple of four, + // so the bits below that are not part of the field -- ZIP and UZP tell + // themselves apart with them. + pair := en == .ENC_Z_PAIR_VD + return Operand{reg = Register(REG_Z | u16(word & (pair ? 0x1E : 0x1C))), kind = .REGISTER, + size = reg_size_for_type(ot), list_count = pair ? 2 : 4} case .ENC_Z_PAIR_VN, .ENC_Z_QUAD_VN: - return Operand{reg = Register(REG_Z | u16((word >> 5) & 0x1F)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_Z | u16((word >> 5) & 0x1F)), kind = .REGISTER, + size = reg_size_for_type(ot), list_count = en == .ENC_Z_PAIR_VN ? 2 : 4} case .ENC_Z_PAIR_VM, .ENC_Z_QUAD_VM: - return Operand{reg = Register(REG_Z | u16((word >> 16) & 0x1F)), kind = .REGISTER, size = 4} + return Operand{reg = Register(REG_Z | u16((word >> 16) & 0x1F)), kind = .REGISTER, size = reg_size_for_type(ot)} } return {} } @@ -643,20 +754,92 @@ reg_from_field :: #force_inline proc "contextless" ( case .Q_REG: cls = REG_Q case .V_REG, .V_8B, .V_16B, .V_4H, .V_8H, .V_2S, .V_4S, .V_1D, .V_2D, - .V_4H_FP16, .V_8H_FP16, + .V_4H_FP16, .V_8H_FP16, .V_1Q, .V_ELEM_B, .V_ELEM_H, .V_ELEM_S, .V_ELEM_D: cls = REG_V - case .Z_REG_B, .Z_REG_H, .Z_REG_S, .Z_REG_D: + case .Z_REG_B, .Z_REG_H, .Z_REG_S, .Z_REG_D, .Z_REG_ANY, + .Z_LIST1_B, .Z_LIST1_H, .Z_LIST1_S, .Z_LIST1_D, .Z_LIST2_B: cls = REG_Z - case .P_REG, .P_REG_MERGE, .P_REG_ZERO: + case .P_REG, .P_REG_MERGE, .P_REG_ZERO, .P_REG_GOV, + .P_REG_B, .P_REG_H, .P_REG_S, .P_REG_D: cls = REG_P + case .PN_REG, .PN_REG_ZERO: + cls = REG_PN + case .ZT_REG: + cls = REG_ZT + case .ZA_ARRAY: + cls = REG_ZA + case .Z_PAIR_B, .Z_PAIR_H, .Z_PAIR_S, .Z_PAIR_D, + .Z_QUAD_B, .Z_QUAD_H, .Z_QUAD_S, .Z_QUAD_D: + cls = REG_Z } // SP class needs the special hw=31 marker; everything else uses the // raw hw with the chosen class. if (ot == .WSP_REG && hw == 31) || (ot == .XSP_REG && hw == 31) { return Operand{reg = Register(cls | 31), kind = .REGISTER, size = 4} } - return Operand{reg = Register(cls | hw), kind = .REGISTER, size = 4} + // Vector operands carry their arrangement / element view in `size`, using + // the same codes op_v_*/op_z_* produce (see operands.odin). Without this a + // decoded V register would come back as a bare `v0` with no `.4s`, so a + // disassembly could not be fed back to an assembler. + return Operand{reg = Register(cls | hw), kind = .REGISTER, size = reg_size_for_type(ot)} +} + +// The `size` marker an operand of this type carries: the NEON arrangement +// (multiples of 8), an element view (odd), or an SVE element width. 4 is the +// neutral "no vector shape" value used by every scalar class. +@(private="file", require_results) +reg_size_for_type :: #force_inline proc "contextless" (ot: Operand_Type) -> u8 { + #partial switch ot { + case .V_8B: return 8 + case .V_16B: return 16 + case .V_4H, .V_4H_FP16: return 24 + case .V_8H, .V_8H_FP16: return 32 + case .V_2S: return 40 + case .V_4S: return 48 + case .V_1D: return 56 + case .V_2D: return 64 + case .V_1Q: return 72 + case .V_ELEM_B: return 1 + case .V_ELEM_H: return 3 + case .V_ELEM_S: return 5 + case .V_ELEM_D: return 7 + case .Z_REG_B: return 1 + case .Z_REG_H: return 2 + case .Z_REG_S: return 4 + case .Z_REG_D: return 8 + case .Z_REG_ANY: return 0 // no element size in the syntax + case .Z_LIST1_B, .Z_LIST2_B: return 1 + case .Z_LIST1_H: return 2 + case .Z_LIST1_S: return 4 + case .Z_LIST1_D: return 8 + case .P_REG_ZERO, .PN_REG_ZERO: return PQUAL_ZERO + case .P_REG_MERGE: return PQUAL_MERGE + case .P_REG_B: return PSHAPE_B + case .P_REG_H: return PSHAPE_H + case .P_REG_S: return PSHAPE_S + case .P_REG_D: return PSHAPE_D + case .Z_PAIR_B, .Z_QUAD_B: return 1 + case .Z_PAIR_H, .Z_QUAD_H: return 2 + case .Z_PAIR_S, .Z_QUAD_S: return 4 + case .Z_PAIR_D, .Z_QUAD_D: return 8 + } + return 4 +} + +// A predicate operand's governing qualifier, which the form -- not the caller +// -- decides: an SVE load zeroes, a predicated add merges. +@(private="file", require_results) +pqual_for_type :: #force_inline proc "contextless" (ot: Operand_Type) -> u8 { + #partial switch ot { + case .P_REG_ZERO, .PN_REG_ZERO: return PQUAL_ZERO + case .P_REG_MERGE: return PQUAL_MERGE + case .P_REG_B: return PSHAPE_B + case .P_REG_H: return PSHAPE_H + case .P_REG_S: return PSHAPE_S + case .P_REG_D: return PSHAPE_D + } + return PQUAL_NONE } // ----------------------------------------------------------------------------- @@ -684,3 +867,20 @@ decode_reserve :: proc(instructions: ^[dynamic]Instruction, inst_info: ^[dynamic if inst_info != nil { reserve(inst_info, len(inst_info) + n) } if label_defs != nil { reserve(label_defs, len(label_defs) + n) } } + +// The packed tszh:tszl:imm3 value an SVE shift-by-immediate carries. +@(private="file", require_results) +sve_tsz_field :: #force_inline proc "contextless" (word: u32) -> u32 { + return ((word >> 22) & 0x3) << 5 | ((word >> 19) & 0x3) << 3 | ((word >> 16) & 0x7) +} + +// The element width a ZA tile operand is viewed at. +@(private="file", require_results) +za_elem_for_type :: #force_inline proc "contextless" (ot: Operand_Type) -> u8 { + #partial switch ot { + case .ZA_TILE_H: return ZSHAPE_H + case .ZA_TILE_S: return ZSHAPE_S + case .ZA_TILE_D: return ZSHAPE_D + } + return ZSHAPE_B +} diff --git a/core/rexcode/isa/arm64/encoder.odin b/core/rexcode/isa/arm64/encoder.odin index ae83b443d..6345bd308 100644 --- a/core/rexcode/isa/arm64/encoder.odin +++ b/core/rexcode/isa/arm64/encoder.odin @@ -141,10 +141,11 @@ encode_one_inline :: #force_inline proc( } word = form.bits - if form.enc[0] != .NONE { word |= pack_operand_inline(&inst.ops[0], form.enc[0], form, pc, inst_idx, relocs) } - if form.enc[1] != .NONE { word |= pack_operand_inline(&inst.ops[1], form.enc[1], form, pc, inst_idx, relocs) } - if form.enc[2] != .NONE { word |= pack_operand_inline(&inst.ops[2], form.enc[2], form, pc, inst_idx, relocs) } - if form.enc[3] != .NONE { word |= pack_operand_inline(&inst.ops[3], form.enc[3], form, pc, inst_idx, relocs) } + if form.enc[0] != .NONE { word |= pack_operand_inline(&inst.ops[0], form.enc[0], form, pc, inst_idx, relocs, inst) } + if form.enc[1] != .NONE { word |= pack_operand_inline(&inst.ops[1], form.enc[1], form, pc, inst_idx, relocs, inst) } + if form.enc[2] != .NONE { word |= pack_operand_inline(&inst.ops[2], form.enc[2], form, pc, inst_idx, relocs, inst) } + if form.enc[3] != .NONE { word |= pack_operand_inline(&inst.ops[3], form.enc[3], form, pc, inst_idx, relocs, inst) } + if form.enc[4] != .NONE { word |= pack_operand_inline(&inst.ops[4], form.enc[4], form, pc, inst_idx, relocs, inst) } return word, true } @@ -155,7 +156,8 @@ encoding_matches_inline :: #force_inline proc "contextless" ( return operand_matches_inline(&inst.ops[0], form.ops[0], form) && operand_matches_inline(&inst.ops[1], form.ops[1], form) && operand_matches_inline(&inst.ops[2], form.ops[2], form) && - operand_matches_inline(&inst.ops[3], form.ops[3], form) + operand_matches_inline(&inst.ops[3], form.ops[3], form) && + operand_matches_inline(&inst.ops[4], form.ops[4], form) } @(private="file") @@ -226,19 +228,23 @@ operand_matches_inline :: #force_inline proc "contextless" ( return op.kind == .REGISTER && reg_class(op.reg) == REG_V && (op.size == 0 || op.size == 56) case .V_2D: return op.kind == .REGISTER && reg_class(op.reg) == REG_V && (op.size == 0 || op.size == 64) + case .V_1Q: + return op.kind == .REGISTER && reg_class(op.reg) == REG_V && (op.size == 0 || op.size == 72) case .V_4H_FP16: return op.kind == .REGISTER && reg_class(op.reg) == REG_V && (op.size == 0 || op.size == 24) // Element-indexed V views: element size carried in op.size (B=1,H=2,S=4, // D=8) so DUP/INS forms disambiguate. .S also accepts size 0 so a plain // op_reg (as the hand-written SM3TT forms pass) still matches the .S slot. + // Element-view sizes are odd (1/3/5/7) so they can never be confused with + // an arrangement, which is always a multiple of 8 (see op_v_elem_*). case .V_ELEM_B: return op.kind == .REGISTER && reg_class(op.reg) == REG_V && op.size == 1 case .V_ELEM_H: - return op.kind == .REGISTER && reg_class(op.reg) == REG_V && op.size == 2 + return op.kind == .REGISTER && reg_class(op.reg) == REG_V && op.size == 3 case .V_ELEM_S: - return op.kind == .REGISTER && reg_class(op.reg) == REG_V && (op.size == 4 || op.size == 0) + return op.kind == .REGISTER && reg_class(op.reg) == REG_V && (op.size == 5 || op.size == 0) case .V_ELEM_D: - return op.kind == .REGISTER && reg_class(op.reg) == REG_V && op.size == 8 + return op.kind == .REGISTER && reg_class(op.reg) == REG_V && op.size == 7 // SVE Z registers. Element size carried in op.size: B=1, H=2, S=4, D=8. // op.size==0 (legacy / default-constructed) accepts any width. @@ -250,43 +256,104 @@ operand_matches_inline :: #force_inline proc "contextless" ( return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && (op.size == 0 || op.size == 4) case .Z_REG_D: return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && (op.size == 0 || op.size == 8) - case .P_REG, .P_REG_MERGE, .P_REG_ZERO, .P_REG_GOV: + case .P_REG, .P_REG_MERGE, .P_REG_ZERO, .P_REG_GOV, + .P_REG_B, .P_REG_H, .P_REG_S, .P_REG_D: return op.kind == .REGISTER && reg_class(op.reg) == REG_P + case .PN_REG, .PN_REG_ZERO: + return op.kind == .REGISTER && reg_class(op.reg) == REG_PN + case .ZT_REG: + return op.kind == .REGISTER && reg_class(op.reg) == REG_ZT + case .ZA_ARRAY: + return op.kind == .ZA_SLICE + case .Z_LIST1_B, .Z_LIST1_H, .Z_LIST1_S, .Z_LIST1_D: + return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && op.list_count <= 1 + case .Z_LIST2_B: + return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && op.list_count == 2 + // The first register of a pair must be even, of a quad a multiple of four. + case .Z_REG_ANY: + return op.kind == .REGISTER && reg_class(op.reg) == REG_Z + case .Z_PAIR_B, .Z_PAIR_H, .Z_PAIR_S, .Z_PAIR_D: + return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && (reg_hw(op.reg) & 0x1) == 0 && + (op.size == 0 || op.size == z_elem_size(ot)) + case .Z_QUAD_B, .Z_QUAD_H, .Z_QUAD_S, .Z_QUAD_D: + return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && (reg_hw(op.reg) & 0x3) == 0 && + (op.size == 0 || op.size == z_elem_size(ot)) // SME tile state (immediate-encoded tile number; user supplies the // tile index as an immediate, e.g. 0 for ZA0.S, 3 for ZA3.S). case .ZA_TILE_B, .ZA_TILE_H, .ZA_TILE_S, .ZA_TILE_D, .ZA_TILE_Q: + if op.kind == .REGISTER { return reg_class(op.reg) == REG_ZA } return op.kind == .IMMEDIATE // Misc immediate sub-types added in batch 3 case .FCMLA_ROT, .FCADD_ROT, .SVE_PRFOP, .LDRAA_IMM10: return op.kind == .IMMEDIATE case .LSL_SHIFT_W, .LSL_SHIFT_X, .ROR_SHIFT: return op.kind == .IMMEDIATE - case .Z_PAIR: - // SME2 vector pair: first reg must be even (Z0, Z2, ..., Z30). - return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && (reg_hw(op.reg) & 0x1) == 0 - case .Z_QUAD: - // SME2 vector quad: first reg must be multiple of 4. - return op.kind == .REGISTER && reg_class(op.reg) == REG_Z && (reg_hw(op.reg) & 0x3) == 0 case .SME_PATTERN, .SVE_PATTERN: return op.kind == .IMMEDIATE // SME tile slice (packed immediate descriptor; see encoding_types.odin) case .SME_SLICE_B, .SME_SLICE_H, .SME_SLICE_W, .SME_SLICE_D, .SME_SLICE_Q: - return op.kind == .IMMEDIATE + return op.kind == .ZA_SLICE case .IMM_12, .IMM_16, .IMM_8, .IMM_6, .IMM_5, .IMM_4, .IMM_3, .IMM_2, - .NZCV_IMM, .SYS_REG, .HW_SHIFT, .LSE_SIZE, .VEC_SHIFT, .VEC_INDEX: + .NZCV_IMM, .PSTATE_FIELD, .HW_SHIFT, .LSE_SIZE, .VEC_SHIFT, .VEC_INDEX, + .IMM_MUL4: return op.kind == .IMMEDIATE + case .SYS_REG: + return op.kind == .REGISTER && reg_class(op.reg) == REG_SYS case .BITMASK_IMM: // The user passes the raw logical mask value; we validate that it // fits the AArch64 bitmask-immediate encoding at the form's width. return op.kind == .IMMEDIATE && is_valid_bitmask_imm(u64(op.immediate), form.flags.is_64) case .REL_26, .REL_19, .REL_14, .REL_PG21: return op.kind == .RELATIVE - case .MEM: - return op.kind == .MEMORY + // Memory: the addressing mode is what selects between the forms of one + // mnemonic (LDR [Xn,#i] / [Xn,#i]! / [Xn],#i / [Xn,Xm]), so it has to + // be matched, not just packed. + case .MEM_OFFSET: + return op.kind == .MEMORY && op.mem.mode == .OFFSET + case .MEM_PRE: + return op.kind == .MEMORY && op.mem.mode == .PRE_INDEXED + case .MEM_POST: + return op.kind == .MEMORY && op.mem.mode == .POST_INDEXED + // Register offset and extended-register offset are one instruction word: + // the option field at 15:13 picks LSL / UXTW / SXTW / SXTX. One MEM_REG + // form serves both addressing modes, the way the RM slot takes plain and + // shifted registers, and the index register's width has to agree with the + // extend that consumes it. + case .MEM_REG: + if op.kind != .MEMORY { return false } + if op.mem.mode == .REG_OFFSET { + return reg_class(op.mem.index) == REG_X + } + if op.mem.mode != .EXT_REG_OFFSET { return false } + switch op.mem.extend { + case .UXTB, .UXTH, .SXTB, .SXTH: + // The option field cannot name the byte/half extends. + return false + case .UXTW, .SXTW: + return reg_class(op.mem.index) == REG_W + case .UXTX, .SXTX: + return reg_class(op.mem.index) == REG_X + } + return false + case .MEM_EXT: + return op.kind == .MEMORY && op.mem.mode == .EXT_REG_OFFSET + // SVE: the plain mode is not enough -- a gather's scalar+scalar and + // scalar+vector forms are both REG_OFFSET and differ only in whether + // the index (or base) is a Z register. + case .MEM_SVE_SS: + return op.kind == .MEMORY && op.mem.mode == .REG_OFFSET && reg_class(op.mem.index) != REG_Z + case .MEM_SVE_SI: + return op.kind == .MEMORY && op.mem.mode == .OFFSET && reg_class(op.mem.base) != REG_Z + case .MEM_SVE_VEC: + return op.kind == .MEMORY && op.mem.mode == .REG_OFFSET && reg_class(op.mem.index) == REG_Z + case .MEM_SVE_VB: + return op.kind == .MEMORY && op.mem.mode == .OFFSET && reg_class(op.mem.base) == REG_Z case .COND: return op.kind == .COND + case .COND_NOT_AL: + return op.kind == .COND && (op.cond & 0xE) != 0xE } return false } @@ -333,6 +400,10 @@ pack_operand_inline :: #force_inline proc( pc: u32, inst_idx: u16, relocs: ^[dynamic]Relocation, + // Most encodings pack one operand in isolation. SVE's tsz field does not: + // it holds an element size and a shift together, and the size belongs to a + // different operand than the shift. + inst: ^Instruction, ) -> u32 { switch enc { case .NONE, .IMPL: @@ -343,6 +414,9 @@ pack_operand_inline :: #force_inline proc( return (u32(reg_hw(op.reg)) & 0x1F) << 0 case .RN: return (u32(reg_hw(op.reg)) & 0x1F) << 5 + case .RN_RM: + r := u32(reg_hw(op.reg)) & 0x1F + return (r << 5) | (r << 16) case .RT2, .RA: return (u32(reg_hw(op.reg)) & 0x1F) << 10 case .RM: @@ -361,7 +435,7 @@ pack_operand_inline :: #force_inline proc( return (u32(reg_hw(op.extended.reg)) & 0x1F) << 16 | (u32(op.extended.extend) & 0x7) << 13 | (u32(op.extended.amount) & 0x7) << 10 - case .NONE, .IMMEDIATE, .MEMORY, .RELATIVE, .COND: + case .NONE, .IMMEDIATE, .MEMORY, .RELATIVE, .COND, .ZA_SLICE: return 0 } @@ -379,13 +453,16 @@ pack_operand_inline :: #force_inline proc( // Condition payload may arrive as IMMEDIATE (raw) or COND kind. c := u32(op.cond) if op.kind == .COND else u32(op.immediate) return (c & 0xF) << 12 + case .COND_HI_INV: + c := u32(op.cond) if op.kind == .COND else u32(op.immediate) + return ((c ~ 1) & 0xF) << 12 case .COND_LO: c := u32(op.cond) if op.kind == .COND else u32(op.immediate) return (c & 0xF) << 0 case .NZCV_FIELD: return (u32(op.immediate) & 0xF) << 0 case .SYS_FIELD: - return (u32(op.immediate) & 0x7FFF) << 5 + return sysreg_bits(op.reg) << 5 case .HINT_FIELD: return (u32(op.immediate) & 0x7F) << 5 case .BARRIER_FIELD: @@ -418,11 +495,29 @@ pack_operand_inline :: #force_inline proc( // Atomic addressing: [Xn] only -- no displacement, no shift. // Used by load/store exclusives, acquire/release, LSE atomics. return (u32(reg_hw(op.mem.base)) & 0x1F) << 5 + case .OFFSET_PAIR_4, .OFFSET_PAIR_8, .OFFSET_PAIR_16: + // LDP/STP: signed imm7, scaled by the transfer size, at bits 21:15. + // The pre/post marker is already in the form's bits, so nothing is + // ORed into bits 11:10 -- those belong to Rt2. + scale := i32(4) + if enc == .OFFSET_PAIR_8 { + scale = 8 + } else if enc == .OFFSET_PAIR_16 { + scale = 16 + } + base_bits := (u32(reg_hw(op.mem.base)) & 0x1F) << 5 + imm_bits := u32((i32(op.mem.disp) / scale) & 0x7F) + return base_bits | (imm_bits << 15) case .OFFSET_REG: - // [Xn, Xm{, LSL #s}]: option=011, S = shift!=0. + // [Xn, Xm{, LSL #s}] or [Xn, Wm|Xm, {#s}] -- one encoding: + // option (15:13) is 011 for LSL and the extend value otherwise, and + // S (12) says whether a shift amount is present. base_bits := (u32(reg_hw(op.mem.base)) & 0x1F) << 5 idx_bits := (u32(reg_hw(op.mem.index)) & 0x1F) << 16 option := u32(0x3) << 13 + if op.mem.mode == .EXT_REG_OFFSET { + option = (u32(op.mem.extend) & 0x7) << 13 + } s_bit := op.mem.shift != 0 ? u32(1) << 12 : 0 return base_bits | idx_bits | option | s_bit | (0x2 << 10) case .OFFSET_EXT: @@ -471,9 +566,9 @@ pack_operand_inline :: #force_inline proc( return ((bit >> 5) & 1) << 31 | (bit & 0x1F) << 19 // ---- NEON / SIMD register slots (alias of RD/RN/RM/RA bit positions) -- - case .VD: + case .VD, .VD_TSZ, .VD_LIST1, .VD_LIST2, .VD_LIST3, .VD_LIST4: return (u32(reg_hw(op.reg)) & 0x1F) << 0 - case .VN: + case .VN, .VN_TSZ, .VN_LIST1, .VN_LIST2, .VN_LIST3, .VN_LIST4: return (u32(reg_hw(op.reg)) & 0x1F) << 5 case .VM: return (u32(reg_hw(op.reg)) & 0x1F) << 16 @@ -544,8 +639,12 @@ pack_operand_inline :: #force_inline proc( // SVE2 XAR rotate amount: V = 2*esize - amount, split tszh:tszl:imm3. case .SVE_XAR_SHIFT: - esize := vec_esize(form.ops[0]) - v := (2 * esize - u32(op.immediate)) & 0x7F + // The element size shares this field with the shift, so it cannot also + // select between forms -- there is one form, and the size comes from + // the register the caller passed. + esize := u32(inst.ops[0].size) * 8 + if esize == 0 || esize > 64 { esize = vec_esize(form.ops[0]) } + v := sve_tsz_pack(esize, u32(op.immediate)) return ((v >> 5) & 0x3) << 22 | ((v >> 3) & 0x3) << 19 | (v & 0x7) << 16 // NEON MOVI/FMOV immediate split: abc at bits 18-16, defgh at bits 9-5. @@ -592,6 +691,17 @@ pack_operand_inline :: #force_inline proc( return (u32(reg_hw(op.reg)) & 0xF) << 5 case .PM: return (u32(reg_hw(op.reg)) & 0xF) << 16 + case .SME_ZA_MASK: + return u32(op.immediate) & 0xFF + case .SME_ZA_ARRAY: + return ((u32(op.za.ws) & 0x3) << 13) | (u32(op.za.offset) & 0xF) + case .ENC_ZT0: + return 0 + case .LUTI_IDX: + return (u32(op.immediate) & 0x3) << 15 + case .PNG: + // The field holds pn - 8. + return ((u32(reg_hw(op.reg)) - 8) & 0x7) << 10 case .PG: // Governing predicate (3-bit slot, P0..P7 only). return (u32(reg_hw(op.reg)) & 0x7) << 10 @@ -607,6 +717,9 @@ pack_operand_inline :: #force_inline proc( case .SVE_IMM8: // Signed 8-bit at bits 12-5 (DUP/CPY/ADD imm). return (u32(op.immediate) & 0xFF) << 5 + case .SVE_IMM5A: + // INDEX's first operand; SVE_IMM5 is the second, at bits 20:16. + return (u32(op.immediate) & 0x1F) << 5 case .SVE_IMM5: // 5-bit at bits 20-16 (INDEX imm, etc.). return (u32(op.immediate) & 0x1F) << 16 @@ -617,8 +730,19 @@ pack_operand_inline :: #force_inline proc( case .SVE_PATTERN: return (u32(op.immediate) & 0x1F) << 5 + case .IMM_MUL4: + // SVE element-count multiplier "MUL #imm" (INCW/DECW/CNTW/SQINCW/...). + // imm4 field at bits 19:16 encodes (imm - 1); asm range MUL #1..#16 + // maps to 0..15. The operand carries the architectural multiplier + // (1..16), so subtract one here, matching the ENC_LSL_IMM_* / + // NEON_SHR_IMM convention of encoding the adjusted value. + mul := u32(op.immediate) + if mul == 0 { mul = 1 } + return ((mul - 1) & 0xF) << 16 + // SVE memory operands - case .SVE_OFFSET_BASE_SS: + case .SVE_OFFSET_BASE_SS, .SVE_OFFSET_BASE_SS1, .SVE_OFFSET_BASE_SS2, .SVE_OFFSET_BASE_SS3, + .SVE_OFFSET_BASE_SS4: // [Xn, Xm, LSL #s] scalar+scalar. Base at 9:5, index at 20:16; // shift is implicit in the encoding's static bits (per ESize). base_bits := (u32(reg_hw(op.mem.base)) & 0x1F) << 5 @@ -633,23 +757,28 @@ pack_operand_inline :: #force_inline proc( // SME ZA tile number fields (position depends on element size). case .ZA_TILE_NUM_B: - // ZA0.B only -- nothing to encode (single tile of byte form). - return 0 + // The tile number sits in the low bits, as wide as the element + // size leaves room for. + return u32(reg_hw(op.reg)) & 0x0 case .ZA_TILE_NUM_H: - // ZA0.H..ZA1.H -- 1-bit tile number at bit 22. - return (u32(op.immediate) & 0x1) << 22 + // The tile number sits in the low bits, as wide as the element + // size leaves room for. + return u32(reg_hw(op.reg)) & 0x1 case .ZA_TILE_NUM_S: - // ZA0.S..ZA3.S -- 2-bit tile number at bits 23:22. - return (u32(op.immediate) & 0x3) << 22 + // The tile number sits in the low bits, as wide as the element + // size leaves room for. + return u32(reg_hw(op.reg)) & 0x3 case .ZA_TILE_NUM_D: - // ZA0.D..ZA7.D -- 3-bit tile number at bits 23:21. - return (u32(op.immediate) & 0x7) << 21 + // The tile number sits in the low bits, as wide as the element + // size leaves room for. + return u32(reg_hw(op.reg)) & 0x7 case .SME_PATTERN_FIELD: // 4-bit SME pattern/list at bits 8:5 (ZERO instruction list mask). return (u32(op.immediate) & 0xF) << 5 // ---- SVE gather/scatter + vector-base memory -------------------------- - case .SVE_OFFSET_BASE_VEC: + case .SVE_OFFSET_BASE_VEC, .SVE_OFFSET_BASE_VEC_S, .SVE_OFFSET_BASE_VEC_D, + .SVE_OFFSET_BASE_VECST_S, .SVE_OFFSET_BASE_VECST_D: // [Xn, Zm.S/D, extend] -- base GPR at 9:5, Zm at 20:16. base := (u32(reg_hw(op.mem.base)) & 0x1F) << 5 idx := (u32(reg_hw(op.mem.index)) & 0x1F) << 16 @@ -693,40 +822,22 @@ pack_operand_inline :: #force_inline proc( // .D : tile[2:0]<<1 | imm[0] (8 tiles, 2 slices each) // .Q : tile[3:0] (16 tiles, no imm) case .SME_SLICE_B: - v := u32(op.immediate) - imm := v & 0xF - vflag := (v >> 4) & 0x1 - ws := (v >> 5) & 0x3 - return (vflag << 15) | (ws << 13) | imm + return (u32(op.za.vertical ? 1 : 0) << 15) | ((u32(op.za.ws) & 0x3) << 13) | + ((u32(op.za.tile) << 4) & 0xF) | (u32(op.za.offset) & 0xF) case .SME_SLICE_H: - v := u32(op.immediate) - imm := v & 0x7 - vflag := (v >> 4) & 0x1 - ws := (v >> 5) & 0x3 - tile := (v >> 7) & 0x1 - return (vflag << 15) | (ws << 13) | imm | (tile << 3) + return (u32(op.za.vertical ? 1 : 0) << 15) | ((u32(op.za.ws) & 0x3) << 13) | + ((u32(op.za.tile) << 3) & 0xF) | (u32(op.za.offset) & 0x7) case .SME_SLICE_W: - v := u32(op.immediate) - imm := v & 0x3 - vflag := (v >> 4) & 0x1 - ws := (v >> 5) & 0x3 - tile := (v >> 7) & 0x3 - return (vflag << 15) | (ws << 13) | imm | (tile << 2) + return (u32(op.za.vertical ? 1 : 0) << 15) | ((u32(op.za.ws) & 0x3) << 13) | + ((u32(op.za.tile) << 2) & 0xF) | (u32(op.za.offset) & 0x3) case .SME_SLICE_D: - v := u32(op.immediate) - imm := v & 0x1 - vflag := (v >> 4) & 0x1 - ws := (v >> 5) & 0x3 - tile := (v >> 7) & 0x7 - return (vflag << 15) | (ws << 13) | imm | (tile << 1) + return (u32(op.za.vertical ? 1 : 0) << 15) | ((u32(op.za.ws) & 0x3) << 13) | + ((u32(op.za.tile) << 1) & 0xF) | (u32(op.za.offset) & 0x1) case .SME_SLICE_Q: - v := u32(op.immediate) - vflag := (v >> 4) & 0x1 - ws := (v >> 5) & 0x3 - tile := (v >> 7) & 0xF - return (vflag << 15) | (ws << 13) | tile - - // ---- Batch 3 misc immediate encodings ---- + return (u32(op.za.vertical ? 1 : 0) << 15) | ((u32(op.za.ws) & 0x3) << 13) | + ((u32(op.za.tile) << 0) & 0xF) | (u32(op.za.offset) & 0x0) + case .NEON_IDX2: + return (u32(op.immediate) & 0x3) << 12 case .ENC_FCMLA_ROT: // 2-bit rotation at bits 13:12 (0/1/2/3 = 0°/90°/180°/270°). return (u32(op.immediate) & 0x3) << 12 @@ -755,6 +866,16 @@ pack_operand_inline :: #force_inline proc( immr := ((~imm + 1) & 0x3F) imms := (63 - imm) & 0x3F return (immr << 16) | (imms << 10) + case .ENC_IMM6_LO: + // Signed 6-bit at bits 10:5 (RDSVL); range -32..31. + return (u32(op.immediate) & 0x3F) << 5 + case .ENC_SHIFT_IMMR: + // LSR/ASR by immediate: immr = shift at bits 21:16. imms is the + // constant 31 / 63 already present in the form's bits, so unlike + // ENC_LSL_IMM_* there is nothing to compute for it. Mask to the + // register width so a W-form shift cannot spill into bit 21. + width := form.flags.is_64 ? u32(0x3F) : u32(0x1F) + return (u32(op.immediate) & width) << 16 case .ENC_DUAL_RN_RM: // Pack the register at both Rn (9:5) AND Rm (20:16) slots // (for ROR Rd, Rn, #imm = EXTR Rd, Rn, Rn, #imm). @@ -765,8 +886,7 @@ pack_operand_inline :: #force_inline proc( return (u32(op.immediate) & 0x3F) << 10 case .ENC_Z_PAIR_VD, .ENC_Z_QUAD_VD: - // Pack first Z reg into Vd slot (bits 4:0). - return (u32(reg_hw(op.reg)) & 0x1F) << 0 + return u32(reg_hw(op.reg)) & (enc == .ENC_Z_PAIR_VD ? 0x1E : 0x1C) case .ENC_Z_PAIR_VN, .ENC_Z_QUAD_VN: return (u32(reg_hw(op.reg)) & 0x1F) << 5 case .ENC_Z_PAIR_VM, .ENC_Z_QUAD_VM: @@ -911,3 +1031,14 @@ read_u32 :: #force_inline proc "contextless" ( (u32(code[offset+2]) << 8) | u32(code[offset+3]) } + +// The SVE element-width code an SME2 pair/quad operand type carries. +@(private="file", require_results) +z_elem_size :: #force_inline proc "contextless" (ot: Operand_Type) -> u8 { + #partial switch ot { + case .Z_PAIR_B, .Z_QUAD_B: return 1 + case .Z_PAIR_H, .Z_QUAD_H: return 2 + case .Z_PAIR_S, .Z_QUAD_S: return 4 + } + return 8 +} diff --git a/core/rexcode/isa/arm64/encoding_types.odin b/core/rexcode/isa/arm64/encoding_types.odin index e2c4a29ec..a22f9c36c 100644 --- a/core/rexcode/isa/arm64/encoding_types.odin +++ b/core/rexcode/isa/arm64/encoding_types.odin @@ -77,12 +77,12 @@ Endianness :: enum u8 { } Encoding_Flags :: bit_field u8 { - branch: bool | 1, // unconditional change of control flow - cond_branch: bool | 1, // PC-relative conditional - writes_pc: bool | 1, // any PC mutation (RET/BR/BLR/etc.) - sets_flags: bool | 1, // updates NZCV (ADDS/SUBS/ANDS/CMP/CMN/TST/CCMP) - is_64: bool | 1, // 64-bit variant (SF=1 for data-proc) - _: u8 | 3, + branch: bool | 1, // unconditional change of control flow + cond_branch: bool | 1, // PC-relative conditional + writes_pc: bool | 1, // any PC mutation (RET/BR/BLR/etc.) + sets_flags: bool | 1, // updates NZCV (ADDS/SUBS/ANDS/CMP/CMN/TST/CCMP) + is_64: bool | 1, // 64-bit variant (SF=1 for data-proc) + explicit_count: u8 | 3, } // What the user passes in. Most operand types describe a register class @@ -137,8 +137,6 @@ Operand_Type :: enum u8 { LSL_SHIFT_W, // shift amount 0..31 for LSL Wd, Wn, #imm (32-bit) LSL_SHIFT_X, // shift amount 0..63 for LSL Xd, Xn, #imm (64-bit) ROR_SHIFT, // shift amount for ROR (alias of EXTR), goes to imms - Z_PAIR, // SME2 vector pair {Zn, Zn+1} — register number must be even - Z_QUAD, // SME2 vector quad {Zn, Zn+1, Zn+2, Zn+3} — number multiple of 4 // ---- Immediates ---- IMM_12, // 12-bit unsigned (ADD/SUB imm; carries optional LSL #12 in size byte) @@ -150,10 +148,13 @@ Operand_Type :: enum u8 { IMM_4, // 4-bit (HINT, DMB/DSB barrier types, NZCV flags) IMM_2, // 2-bit (FP rounding mode / NEON cmode bits 14:13 etc.) NZCV_IMM, // 4-bit NZCV for CCMP/CCMN immediate forms - SYS_REG, // 16-bit system register encoding (MSR/MRS) + SYS_REG, // MRS/MSR target system register + PSTATE_FIELD, // MSR immediate form: a PSTATE field selector, + // a different namespace from the system registers HW_SHIFT, // 2-bit LSL hw (0/16/32/48) for MOV-immediate BITMASK_IMM, // Logical immediate (bitmask-encoded N:imms:immr) LSE_SIZE, // 2-bit size selector for LSE atomics (00=B 01=H 10=W 11=X) + IMM_MUL4, // ---- PC-relative ---- REL_26, // B / BL (signed 26-bit << 2) @@ -162,10 +163,57 @@ Operand_Type :: enum u8 { REL_PG21, // ADR / ADRP (signed 21-bit; ADRP scales by 4096) // ---- Memory ---- - MEM, // memory operand with addressing mode + // + // One operand type per addressing mode. The mode has to be part of the + // operand TYPE, not just the operand encoding, because it is a matching + // criterion: `LDR Xt, [Xn, #imm]`, `[Xn, #imm]!`, `[Xn], #imm` and + // `[Xn, Xm]` are all the mnemonic LDR, and the matcher picks between + // their forms on the addressing mode alone. (Same reason W_REG / + // W_SHIFTED / W_EXTENDED are distinct types over one register class.) + // Each maps to exactly one Address_Mode; the form's Operand_Encoding + // then says how the fields are packed. + MEM_OFFSET, // [Xn{, #imm}] -> Address_Mode.OFFSET + MEM_PRE, // [Xn, #imm]! -> PRE_INDEXED + MEM_POST, // [Xn], #imm -> POST_INDEXED + MEM_REG, // [Xn, Xm{, LSL #s}] or [Xn, Wm|Xm, {#s}] + // -> REG_OFFSET or EXT_REG_OFFSET; one word, option picks + MEM_EXT, // subsumed by MEM_REG; kept because these values are baked + // into the table blobs + // SVE addressing. Kept distinct from the plain modes above: a gather + // load has both a scalar+scalar and a scalar+vector form under the one + // mnemonic, and those two differ only in the index register's class. + MEM_SVE_SS, // [Xn, Xm, LSL #s] -> REG_OFFSET, X index + MEM_SVE_SI, // [Xn, #imm, MUL VL] -> OFFSET + MEM_SVE_VEC, // [Xn, Zm.S/D, UXTW|SXTW|LSL #s] -> REG_OFFSET, Z index + MEM_SVE_VB, // [Zn.S/D, #imm5] -> OFFSET, Z base // ---- Condition code ---- COND, + // Condition with AL/NV excluded. The cset/cinc alias family is only the + // preferred spelling when cond != 111x -- with AL or NV the underlying + // CSINC/CSINV/CSNEG is what an assembler writes. + COND_NOT_AL, + // SME2 vector pairs and quads. The element size cannot come from the + // encoding the way the list length does, because the operand is written + // with it (`{z0.b, z1.b}`) and it is what separates LD1B from LD1H. + // A Z register of any element size, for the forms where the size is not in + // the static pattern and so cannot select between forms (SVE2 XAR). + Z_REG_ANY, + Z_PAIR_B, Z_PAIR_H, Z_PAIR_S, Z_PAIR_D, + Z_QUAD_B, Z_QUAD_H, Z_QUAD_S, Z_QUAD_D, + // SME2 predicate-as-counter (PN8..PN15). `_ZERO` prints the `/z` a load + // needs; a store writes it bare. + PN_REG, PN_REG_ZERO, + ZT_REG, // ZT0 -- SME2's lookup table, and the only one of its kind + ZA_ARRAY, // a ZA array vector, addressed by Wn plus an offset + // A Z register written as a table list. SVE's TBL takes one table or two, + // and unlike LD2 the caller chooses which, so the count has to be in the + // operand type for the matcher to tell the two forms apart. + Z_LIST1_B, Z_LIST1_H, Z_LIST1_S, Z_LIST1_D, + Z_LIST2_B, + // A predicate that is written with an element size because it is the + // instruction's destination (`cmpge p0.b, p1/z, ...`). + P_REG_B, P_REG_H, P_REG_S, P_REG_D, // ---- NEON shift-by-immediate amount (encoded into immh:immb together // with the element size: left = esize+shift, right = 2*esize-shift) ---- @@ -174,6 +222,9 @@ Operand_Type :: enum u8 { // ---- NEON element lane index (DUP/INS/EXT). The element-size marker // lives in the entry `bits`; the operand drives only the index bits. ---- VEC_INDEX, + V_1Q, // NEON .1q -- one 128-bit lane (PMULL's destination). Not + // expressible as lanes*elem-bytes, which is how the other + // arrangements are coded, since 1*16 collides with 16B. } // Where each operand's bits land in the 32-bit word. @@ -188,6 +239,8 @@ Operand_Encoding :: enum u8 { RT2, // bits 10-14 RA, // bits 10-14 (alias of RT2 used in MADD/MSUB) RM, // bits 16-20 + RN_RM, // bits 5-9 AND 16-20 -- one register into both source + // slots (cinc/cinv/cneg, whose alias condition is Rn==Rm) // ---- Immediates ---- IMM12, // bits 10-21 @@ -195,11 +248,20 @@ Operand_Encoding :: enum u8 { IMM6, // bits 10-15 (shift amount; SHAMT) IMM9, // bits 12-20 (signed 9-bit; LDUR/pre/post) IMM_HW, // bits 21-22 (MOVZ/MOVN/MOVK hw field; value is shift/16) + // LSR/ASR by immediate are UBFM/SBFM Rd, Rn, #shift, #(31|63): the shift + // goes to immr and imms is a constant already fixed in the form's bits, + // so unlike LSL (ENC_LSL_IMM_*) only one field is operand-driven. + ENC_SHIFT_IMMR, // bits 16-21 (immr; LSR/ASR immediate aliases) + // RDSVL / the RDVL family put their signed 6-bit immediate at bits 10:5, + // not where IMM6 (bits 15:10) writes it. + ENC_IMM6_LO, // bits 5-10 (signed 6-bit; RDSVL) IMM_SH12, // bit 22 (ADD/SUB imm: LSL #12 flag) SHIFT_TYPE, // bits 22-23 (LSL/LSR/ASR/ROR for shifted-register) EXT_OPT, // bits 13-15 (extend type for extended-register) EXT_IMM3, // bits 10-12 (extend amount) COND_HI, // bits 12-15 (CSEL/CSINC/CSINV/CSNEG, FCSEL, CCMP) + COND_HI_INV, // bits 12-15, stored inverted -- the cset/cinc aliases + // read as `cset Wd, eq` but encode CSINC's cond as NE COND_LO, // bits 0-3 (B.cond) NZCV_FIELD, // bits 0-3 (CCMP/CCMN immediate NZCV) SYS_FIELD, // bits 5-19 (MRS/MSR: op0/op1/CRn/CRm/op2) @@ -212,8 +274,23 @@ Operand_Encoding :: enum u8 { OFFSET_BASE_PRE, // [Xn, #imm]! signed-9 pre-index OFFSET_BASE_POST, // [Xn], #imm signed-9 post-index OFFSET_BASE_A, // [Xn] no displacement (exclusives, acquire/release, LSE) - OFFSET_REG, // [Xn, Rm{, LSL #s}] register offset - OFFSET_EXT, // [Xn, Wm, SXTW|UXTW|SXTX #s] + // LDP/STP family. Nothing like the single-register modes above: the + // displacement is a signed 7-bit value SCALED by the transfer size at + // bits 21:15 (single-register forms use an unscaled 9-bit at 20:12), and + // bits 11:10 are part of Rt2 here, so the pre/post markers the + // single-register encodings OR in would corrupt the second register. + // The scale cannot be read off the register type -- LDPSW pairs X + // registers but loads words (scale 4), STGP pairs X registers and scales + // by 16 -- so it is spelled out per encoding. The addressing mode lives + // in the form's bits[24:23] (01 post, 10 signed offset, 11 pre), which + // is where the decoder reads it back from. + OFFSET_PAIR_4, // [Xn{, #imm}] / [Xn, #imm]! / [Xn], #imm -- imm7 x 4 + OFFSET_PAIR_8, // imm7 x 8 + OFFSET_PAIR_16, // imm7 x 16 + OFFSET_REG, // [Xn, Xm{, LSL #s}] or [Xn, Wm|Xm, {#s}]; + // option (15:13) comes from the operand's mode/extend + OFFSET_EXT, // subsumed by OFFSET_REG; kept because these values are + // baked into the table blobs // ---- PC-relative ---- BRANCH_26, // B / BL (operand-driven 26-bit field, scaled ×4) @@ -299,6 +376,7 @@ Operand_Encoding :: enum u8 { SVE_IMM5, // 5-bit at bits 20-16 (INDEX imm, etc.) SVE_SHIFT_TSZ_IMM, // tsz:imm3 at bits 22:16, encodes element-size + shift amount SVE_PATTERN, // 5-bit pattern (POW2/VL1.../ALL) at bits 9-5 (PTRUE) + IMM_MUL4, // ---- SVE memory operands --------------------------------------------- SVE_OFFSET_BASE_SS, // [Xn, Xm, LSL #s] -- scalar+scalar contiguous @@ -335,6 +413,36 @@ Operand_Encoding :: enum u8 { // ---- Misc new operand-encoding values (batch 3) ---- ENC_FCMLA_ROT, // 2-bit rotation at bits 13:12 (FCMLA) + NEON_IDX2, // 2-bit lane index at bits 13:12 (SM3TT) + // A register the syntax writes as a list of N consecutive registers, + // `{v0.16b, v1.16b}`. Same bits as VD / VN; N is fixed by the form (LD2 + // always names two), so it rides on the encoding rather than the operand + // type -- otherwise every count would need its own type per arrangement. + VD_LIST1, VD_LIST2, VD_LIST3, VD_LIST4, + PNG, // bits 10-12, predicate-as-counter (SME2) + ENC_ZT0, // no bits at all; there is only one ZT register + LUTI_IDX, // bits 15-16, LUTI2/LUTI4 table index + SME_ZA_ARRAY, // `za[w12, 0]` -- a vector of the ZA array, not a tile + SME_ZA_MASK, // bits 0-7, ZERO's per-tile mask + // SVE scalar+scalar addressing scales the index by the access size, and the + // assembler wants that written out (`[x0, x0, lsl #2]`). The amount is a + // property of the form, so it rides on the encoding. + SVE_OFFSET_BASE_SS1, SVE_OFFSET_BASE_SS2, SVE_OFFSET_BASE_SS3, SVE_OFFSET_BASE_SS4, + // SVE gather/scatter: the index is a vector, and the syntax names its + // element size and how the base extends it. A 32-bit index is written + // `uxtw`/`sxtw` (bit 22 says which); a 64-bit one needs neither. + SVE_OFFSET_BASE_VEC_S, SVE_OFFSET_BASE_VEC_D, + // A scatter lays the same information out differently: bit 22 is the + // index's width and bit 14 is the extend, where a gather has the extend at + // 22 and takes the width from its opcode. + SVE_OFFSET_BASE_VECST_S, SVE_OFFSET_BASE_VECST_D, + SVE_IMM5A, // 5-bit at bits 5-9 (INDEX first operand) + // A Z register whose element size is not in the static pattern but in the + // instruction's own tsz field, so decode has to read it out of the word + // rather than take it from the form (SVE2 XAR). + VD_TSZ, // bits 0-4 + VN_TSZ, // bits 5-9 + VN_LIST1, VN_LIST2, VN_LIST3, VN_LIST4, ENC_FCADD_ROT, // 1-bit rotation at bit 12 (FCADD) ENC_SVE_PRFOP, // 4-bit prefetch op at bits 3:0 (SVE PRFB/H/W/D) ENC_LDRAA_IMM10, // signed 10-bit imm10 at bits 21:12, scaled by 8 (LDRAA/B) @@ -363,11 +471,11 @@ Operand_Encoding :: enum u8 { Encoding :: struct #packed { mnemonic: Mnemonic, // 2 - ops: [4]Operand_Type, // 4 - enc: [4]Operand_Encoding, // 4 + ops: [5]Operand_Type, // 4 + enc: [5]Operand_Encoding, // 4 bits: u32, // 4 -- static field pattern mask: u32, // 4 -- which bits are static feature: Feature, // 1 flags: Encoding_Flags, // 1 } -#assert(size_of(Encoding) == 20) +#assert(size_of(Encoding) == 22) diff --git a/core/rexcode/isa/arm64/instructions.odin b/core/rexcode/isa/arm64/instructions.odin index 3583cb8d2..f40d31a45 100644 --- a/core/rexcode/isa/arm64/instructions.odin +++ b/core/rexcode/isa/arm64/instructions.odin @@ -10,15 +10,34 @@ Instruction_Flags :: bit_field u8 { _: u8 | 8, } -Instruction :: struct #packed { - ops: [4]Operand `fmt:"v,operand_count"`, // 4 * size_of(Operand) +// Sized and aligned to a cache line, deliberately. +// +// The payload is 45 bytes -- shrinking Operand to 10 got it there -- but +// leaving the struct at 48 was measurably worse than padding it back out. +// With `#packed` the struct aligns to 1, so a 48-byte stride straddles a line +// boundary 75% of the time and a 64-byte one straddled 100% of the time (the +// heap base is not line-aligned either). Decode writes whole Instructions, and +// unaligned stores cost enough that on an i7-9750H this layout decodes ~21% +// faster than the 48-byte packed one -- while writing MORE bytes. The gap +// holds even when the whole array is L1-resident, so it is split-store cost at +// the store ports, not cache-line fetches. +// +// Encode is within 1% and a pure read traversal is ~9% slower at working sets +// past L2, both of which the decode win dwarfs for real workloads. +// +// The spare bytes are free: they cost nothing over a 48-byte struct that +// straddles, and new fields land in them without changing the layout. +Instruction :: struct #align(64) { + ops: [5]Operand `fmt:"v,operand_count"`, // 5 * size_of(Operand) = 55 mnemonic: Mnemonic, // 2 operand_count: u8, // 1 flags: Instruction_Flags, // 1 length: u8, // 1 -- always 4 + // 55 is odd, so mnemonic's alignment costs a byte here; 3 more reach 64. _: [3]u8, } -#assert(size_of(Instruction) == 64) +#assert(size_of(Instruction) == 64) +#assert(align_of(Instruction) == 64) // ============================================================================= // Builders -- the most common shapes; less-common forms can be built @@ -34,74 +53,76 @@ inst_none :: #force_inline proc "contextless" (m: Mnemonic) -> Instruction { @(require_results) inst_r :: #force_inline proc "contextless" (m: Mnemonic, r: Register) -> Instruction { return Instruction{mnemonic = m, operand_count = 1, length = 4, - ops = {op_reg(r), {}, {}, {}}} + ops = {op_reg(r), {}, {}, {}, {}}} } // 2-register (e.g. CLZ, RBIT). @(require_results) inst_r_r :: #force_inline proc "contextless" (m: Mnemonic, rd, rn: Register) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = 4, - ops = {op_reg(rd), op_reg(rn), {}, {}}} + ops = {op_reg(rd), op_reg(rn), {}, {}, {}}} } // 3-register (e.g. ADD shifted, MUL, UDIV, ASRV). @(require_results) inst_r_r_r :: #force_inline proc "contextless" (m: Mnemonic, rd, rn, rm: Register) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = 4, - ops = {op_reg(rd), op_reg(rn), op_reg(rm), {}}} + ops = {op_reg(rd), op_reg(rn), op_reg(rm), {}, {}}} } // 4-register R4-type (MADD, MSUB, SMADDL, ...). @(require_results) inst_r_r_r_r :: #force_inline proc "contextless" (m: Mnemonic, rd, rn, rm, ra: Register) -> Instruction { return Instruction{mnemonic = m, operand_count = 4, length = 4, - ops = {op_reg(rd), op_reg(rn), op_reg(rm), op_reg(ra)}} + ops = {op_reg(rd), op_reg(rn), op_reg(rm), op_reg(ra), {}}} } // 2-register + immediate (e.g. ADD imm). @(require_results) inst_r_r_i :: #force_inline proc "contextless" (m: Mnemonic, rd, rn: Register, imm: i64) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = 4, - ops = {op_reg(rd), op_reg(rn), op_imm(imm), {}}} + ops = {op_reg(rd), op_reg(rn), op_imm(imm), {}, {}}} } // 1-register + immediate (e.g. MOVZ). @(require_results) inst_r_i :: #force_inline proc "contextless" (m: Mnemonic, rd: Register, imm: i64) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = 4, - ops = {op_reg(rd), op_imm(imm), {}, {}}} + ops = {op_reg(rd), op_imm(imm), {}, {}, {}}} } // MOVZ/MOVN/MOVK with explicit hw shift (0/16/32/48). @(require_results) inst_mov_imm :: #force_inline proc "contextless" (m: Mnemonic, rd: Register, imm: i64, hw: u8) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = 4, - ops = {op_reg(rd), op_imm(imm), op_imm(i64(hw), 1), {}}} + ops = {op_reg(rd), op_imm(imm), op_imm(i64(hw), 1), {}, {}}} } // Load/store register: Rt + memory. @(require_results) inst_ldst :: #force_inline proc "contextless" (m: Mnemonic, rt: Register, mm: Memory) -> Instruction { return Instruction{mnemonic = m, operand_count = 2, length = 4, - ops = {op_reg(rt), op_mem(mm), {}, {}}} + ops = {op_reg(rt), op_mem(mm), {}, {}, {}}} } // Load/store pair: Rt, Rt2, memory. @(require_results) inst_ldp_stp :: #force_inline proc "contextless" (m: Mnemonic, rt, rt2: Register, mm: Memory) -> Instruction { return Instruction{mnemonic = m, operand_count = 3, length = 4, - ops = {op_reg(rt), op_reg(rt2), op_mem(mm), {}}} + ops = {op_reg(rt), op_reg(rt2), op_mem(mm), {}, {}}} } // PC-relative branch (B, BL). @(require_results) inst_branch :: #force_inline proc "contextless" (m: Mnemonic, label_id: u32) -> Instruction { return Instruction{mnemonic = m, operand_count = 1, length = 4, - ops = {op_label(label_id, 4), {}, {}, {}}} + ops = {op_label(label_id, 4), {}, {}, {}, {}}} } -// NOTE: inst_b_cond / inst_cbz (+cbnz) / inst_tbz (+tbnz) / -// inst_csel (+csinc/csinv/csneg) are now generated per-mnemonic in -// mnemonic_builders.odin (e.g. inst_cbz(rt, label), inst_cbnz(rt, label), -// inst_csinc(rd, rn, rm, cond)). They are no longer hand-written here so the -// generator can own those names for full mnemonic coverage. +// NOTE: the conditional branches, inst_cbz (+cbnz), inst_tbz (+tbnz) and +// inst_csel (+csinc/csinv/csneg) are generated per-mnemonic in +// mnemonic_builders.odin, so the generator owns those names. A conditional +// branch is one builder per condition -- inst_b_le(label), inst_bc_ne(label) +// -- because the condition is part of the mnemonic, not an operand; the +// condition-operand builders are the select/compare family, which really do +// take one (inst_csinc(rd, rn, rm, cond)). diff --git a/core/rexcode/isa/arm64/mnemonic_builders.odin b/core/rexcode/isa/arm64/mnemonic_builders.odin index 7319f54bb..fda64b34f 100644 --- a/core/rexcode/isa/arm64/mnemonic_builders.odin +++ b/core/rexcode/isa/arm64/mnemonic_builders.odin @@ -21,4454 +21,6300 @@ package rexcode_arm64 // Individual Typed Builder Procedures // ============================================================================= -inst_add_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ADD_IMM, dst, src, imm) } -emit_add_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_add_imm_r_r_i(dst, src, imm)) } -inst_adds_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ADDS_IMM, dst, src, imm) } -emit_adds_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_adds_imm_r_r_i(dst, src, imm)) } -inst_sub_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.SUB_IMM, dst, src, imm) } -emit_sub_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sub_imm_r_r_i(dst, src, imm)) } -inst_subs_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.SUBS_IMM, dst, src, imm) } -emit_subs_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_subs_imm_r_r_i(dst, src, imm)) } -inst_movz_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MOVZ, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 2), op_imm(imm2, 1), {}}} } -emit_movz_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_movz_r_i_i(dst, imm, imm2)) } -inst_movn_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MOVN, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 2), op_imm(imm2, 1), {}}} } -emit_movn_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_movn_r_i_i(dst, imm, imm2)) } -inst_movk_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MOVK, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 2), op_imm(imm2, 1), {}}} } -emit_movk_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_movk_r_i_i(dst, imm, imm2)) } -inst_adr_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .ADR, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}}} } -emit_adr_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_adr_r_l(dst, label)) } -inst_adrp_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .ADRP, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}}} } -emit_adrp_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_adrp_r_l(dst, label)) } -inst_add_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADD_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_add_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_add_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_adds_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADDS_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_adds_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_adds_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_sub_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUB_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_sub_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_sub_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_subs_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUBS_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_subs_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_subs_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_and_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .AND_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_and_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_and_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_ands_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ANDS_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_ands_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_ands_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_orr_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ORR_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_orr_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_orr_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_eor_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .EOR_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_eor_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_eor_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_bic_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .BIC_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_bic_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_bic_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_bics_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .BICS_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_bics_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_bics_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_orn_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ORN_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_orn_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_orn_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_eon_sr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .EON_SR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}}} } -emit_eon_sr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_eon_sr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } -inst_add_er_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADD_ER, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}}} } -emit_add_er_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_add_er_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } -inst_adds_er_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADDS_ER, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}}} } -emit_adds_er_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_adds_er_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } -inst_sub_er_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUB_ER, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}}} } -emit_sub_er_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_sub_er_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } -inst_subs_er_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUBS_ER, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}}} } -emit_subs_er_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_subs_er_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } -inst_lslv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.LSLV, dst, src, src2) } -emit_lslv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lslv_r_r_r(dst, src, src2)) } -inst_lsrv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.LSRV, dst, src, src2) } -emit_lsrv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsrv_r_r_r(dst, src, src2)) } -inst_asrv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ASRV, dst, src, src2) } -emit_asrv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_asrv_r_r_r(dst, src, src2)) } -inst_rorv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.RORV, dst, src, src2) } -emit_rorv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rorv_r_r_r(dst, src, src2)) } -inst_udiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.UDIV, dst, src, src2) } -emit_udiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udiv_r_r_r(dst, src, src2)) } -inst_sdiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SDIV, dst, src, src2) } -emit_sdiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdiv_r_r_r(dst, src, src2)) } -inst_madd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.MADD, dst, src, src2, src3) } -emit_madd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_madd_r_r_r_r(dst, src, src2, src3)) } -inst_msub_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.MSUB, dst, src, src2, src3) } -emit_msub_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_msub_r_r_r_r(dst, src, src2, src3)) } -inst_smaddl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.SMADDL, dst, src, src2, src3) } -emit_smaddl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smaddl_r_r_r_r(dst, src, src2, src3)) } -inst_smsubl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.SMSUBL, dst, src, src2, src3) } -emit_smsubl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smsubl_r_r_r_r(dst, src, src2, src3)) } -inst_umaddl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.UMADDL, dst, src, src2, src3) } -emit_umaddl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umaddl_r_r_r_r(dst, src, src2, src3)) } -inst_umsubl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.UMSUBL, dst, src, src2, src3) } -emit_umsubl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umsubl_r_r_r_r(dst, src, src2, src3)) } -inst_smulh_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SMULH, dst, src, src2) } -emit_smulh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulh_r_r_r(dst, src, src2)) } -inst_umulh_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.UMULH, dst, src, src2) } -emit_umulh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umulh_r_r_r(dst, src, src2)) } -inst_clz_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.CLZ, dst, src) } -emit_clz_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_r_r(dst, src)) } -inst_cls_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.CLS, dst, src) } -emit_cls_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_r_r(dst, src)) } -inst_rbit_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.RBIT, dst, src) } -emit_rbit_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_r_r(dst, src)) } -inst_rev_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.REV, dst, src) } -emit_rev_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev_r_r(dst, src)) } -inst_rev16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.REV16, dst, src) } -emit_rev16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_r_r(dst, src)) } -inst_rev32_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.REV32, dst, src) } -emit_rev32_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_r_r(dst, src)) } -inst_csel_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSEL, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond)}} } -emit_csel_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csel_r_r_r_c(dst, src, src2, cond)) } -inst_csinc_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSINC, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond)}} } -emit_csinc_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csinc_r_r_r_c(dst, src, src2, cond)) } -inst_csinv_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSINV, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond)}} } -emit_csinv_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csinv_r_r_r_c(dst, src, src2, cond)) } -inst_csneg_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSNEG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond)}} } -emit_csneg_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csneg_r_r_r_c(dst, src, src2, cond)) } -inst_ccmp_reg_r_r_i_c :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMP_REG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_cond(cond)}} } -emit_ccmp_reg_r_r_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, cond: Cond) { append(instructions, inst_ccmp_reg_r_r_i_c(dst, src, imm, cond)) } -inst_ccmp_imm_r_i_i_c :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMP_IMM, operand_count = 4, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_imm(imm2, 1), op_cond(cond)}} } -emit_ccmp_imm_r_i_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64, cond: Cond) { append(instructions, inst_ccmp_imm_r_i_i_c(dst, imm, imm2, cond)) } -inst_ccmn_reg_r_r_i_c :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMN_REG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_cond(cond)}} } -emit_ccmn_reg_r_r_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, cond: Cond) { append(instructions, inst_ccmn_reg_r_r_i_c(dst, src, imm, cond)) } -inst_ccmn_imm_r_i_i_c :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMN_IMM, operand_count = 4, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_imm(imm2, 1), op_cond(cond)}} } -emit_ccmn_imm_r_i_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64, cond: Cond) { append(instructions, inst_ccmn_imm_r_i_i_c(dst, imm, imm2, cond)) } -inst_extr_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EXTR, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm, 1)}} } -emit_extr_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_extr_r_r_r_i(dst, src, src2, imm)) } -inst_b_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B, label) } -emit_b_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_l(label)) } -inst_bl_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BL, label) } -emit_bl_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bl_l(label)) } -inst_br_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BR, dst) } -emit_br_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_br_r(dst)) } -inst_blr_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BLR, dst) } -emit_blr_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blr_r(dst)) } -inst_ret_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.RET, dst) } -inst_ret_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.RET) } -emit_ret_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_ret_r(dst)) } -emit_ret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ret_none()) } -inst_b_cond_c_l :: #force_inline proc "contextless" (cond: Cond, label: u32) -> Instruction { return Instruction{mnemonic = .B_COND, operand_count = 2, length = 4, ops = {op_cond(cond), op_label(label, 4), {}, {}}} } -emit_b_cond_c_l :: #force_inline proc(instructions: ^[dynamic]Instruction, cond: Cond, label: u32) { append(instructions, inst_b_cond_c_l(cond, label)) } -inst_cbz_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .CBZ, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}}} } -emit_cbz_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_cbz_r_l(dst, label)) } -inst_cbnz_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .CBNZ, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}}} } -emit_cbnz_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_cbnz_r_l(dst, label)) } -inst_tbz_r_i_l :: #force_inline proc "contextless" (dst: Register, imm: i64, label: u32) -> Instruction { return Instruction{mnemonic = .TBZ, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_label(label, 4), {}}} } -emit_tbz_r_i_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32) { append(instructions, inst_tbz_r_i_l(dst, imm, label)) } -inst_tbnz_r_i_l :: #force_inline proc "contextless" (dst: Register, imm: i64, label: u32) -> Instruction { return Instruction{mnemonic = .TBNZ, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_label(label, 4), {}}} } -emit_tbnz_r_i_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32) { append(instructions, inst_tbnz_r_i_l(dst, imm, label)) } -inst_ldr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR, dst, mem) } -emit_ldr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_r_m(dst, mem)) } -inst_str_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR, dst, mem) } -emit_str_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_str_r_m(dst, mem)) } -inst_ldrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRB, dst, mem) } -emit_ldrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrb_r_m(dst, mem)) } -inst_strb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRB, dst, mem) } -emit_strb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strb_r_m(dst, mem)) } -inst_ldrsb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSB, dst, mem) } -emit_ldrsb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsb_r_m(dst, mem)) } -inst_ldrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRH, dst, mem) } -emit_ldrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrh_r_m(dst, mem)) } -inst_strh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRH, dst, mem) } -emit_strh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strh_r_m(dst, mem)) } -inst_ldrsh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSH, dst, mem) } -emit_ldrsh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsh_r_m(dst, mem)) } -inst_ldrsw_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSW, dst, mem) } -emit_ldrsw_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsw_r_m(dst, mem)) } -inst_ldp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDP, dst, src, mem) } -emit_ldp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldp_r_r_m(dst, src, mem)) } -inst_stp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STP, dst, src, mem) } -emit_stp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stp_r_r_m(dst, src, mem)) } -inst_ldpsw_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDPSW, dst, src, mem) } -emit_ldpsw_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldpsw_r_r_m(dst, src, mem)) } -inst_ldr_lit_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .LDR_LIT, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}}} } -emit_ldr_lit_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_ldr_lit_r_l(dst, label)) } -inst_ldar_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAR, dst, mem) } -emit_ldar_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldar_r_m(dst, mem)) } -inst_stlr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLR, dst, mem) } -emit_stlr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlr_r_m(dst, mem)) } -inst_ldarb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDARB, dst, mem) } -emit_ldarb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldarb_r_m(dst, mem)) } -inst_stlrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLRB, dst, mem) } -emit_stlrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlrb_r_m(dst, mem)) } -inst_ldarh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDARH, dst, mem) } -emit_ldarh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldarh_r_m(dst, mem)) } -inst_stlrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLRH, dst, mem) } -emit_stlrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlrh_r_m(dst, mem)) } -inst_ldxr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDXR, dst, mem) } -emit_ldxr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldxr_r_m(dst, mem)) } -inst_stxr_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STXR, dst, src, mem) } -emit_stxr_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stxr_r_r_m(dst, src, mem)) } -inst_ldaxr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAXR, dst, mem) } -emit_ldaxr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaxr_r_m(dst, mem)) } -inst_stlxr_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STLXR, dst, src, mem) } -emit_stlxr_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stlxr_r_r_m(dst, src, mem)) } -inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.NOP) } -emit_nop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_nop_none()) } -inst_yield_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.YIELD) } -emit_yield_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_yield_none()) } -inst_wfe_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.WFE) } -emit_wfe_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfe_none()) } -inst_wfi_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.WFI) } -emit_wfi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfi_none()) } -inst_sev_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SEV) } -emit_sev_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sev_none()) } -inst_sevl_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SEVL) } -emit_sevl_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sevl_none()) } -inst_hint_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HINT, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}}} } -emit_hint_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hint_i(imm)) } -inst_mrs_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.MRS, dst, imm) } -emit_mrs_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mrs_r_i(dst, imm)) } -inst_msr_imm_i_i :: #force_inline proc "contextless" (imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MSR_IMM, operand_count = 2, length = 4, ops = {op_imm(imm, 4), op_imm(imm2, 1), {}, {}}} } -emit_msr_imm_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) { append(instructions, inst_msr_imm_i_i(imm, imm2)) } -inst_msr_reg_i_r :: #force_inline proc "contextless" (imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .MSR_REG, operand_count = 2, length = 4, ops = {op_imm(imm, 4), op_reg(src), {}, {}}} } -emit_msr_reg_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, src: Register) { append(instructions, inst_msr_reg_i_r(imm, src)) } -inst_isb_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .ISB, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}}} } -emit_isb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_isb_i(imm)) } -inst_dsb_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DSB, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}}} } -emit_dsb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dsb_i(imm)) } -inst_dmb_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DMB, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}}} } -emit_dmb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dmb_i(imm)) } -inst_svc_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SVC, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}}} } -emit_svc_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_svc_i(imm)) } -inst_hvc_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HVC, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}}} } -emit_hvc_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hvc_i(imm)) } -inst_smc_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SMC, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}}} } -emit_smc_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_smc_i(imm)) } -inst_brk_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .BRK, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}}} } -emit_brk_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_brk_i(imm)) } -inst_hlt_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HLT, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}}} } -emit_hlt_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hlt_i(imm)) } -inst_eret_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.ERET) } -emit_eret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eret_none()) } -inst_fmov_reg_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FMOV_REG, dst, src) } -emit_fmov_reg_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmov_reg_r_r(dst, src)) } -inst_fmov_imm_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.FMOV_IMM, dst, imm) } -emit_fmov_imm_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_imm_r_i(dst, imm)) } -inst_fmov_gen_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FMOV_GEN, dst, src) } -emit_fmov_gen_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmov_gen_r_r(dst, src)) } -inst_fabs_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FABS, dst, src) } -emit_fabs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_r_r(dst, src)) } -inst_fneg_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FNEG, dst, src) } -emit_fneg_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_r_r(dst, src)) } -inst_fsqrt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FSQRT, dst, src) } -emit_fsqrt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_r_r(dst, src)) } -inst_fadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FADD, dst, src, src2) } -emit_fadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_r_r_r(dst, src, src2)) } -inst_fsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FSUB, dst, src, src2) } -emit_fsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_r_r_r(dst, src, src2)) } -inst_fmul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMUL, dst, src, src2) } -emit_fmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_r_r_r(dst, src, src2)) } -inst_fdiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FDIV, dst, src, src2) } -emit_fdiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_r_r_r(dst, src, src2)) } -inst_fnmul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FNMUL, dst, src, src2) } -emit_fnmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fnmul_r_r_r(dst, src, src2)) } -inst_fmadd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FMADD, dst, src, src2, src3) } -emit_fmadd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fmadd_r_r_r_r(dst, src, src2, src3)) } -inst_fmsub_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FMSUB, dst, src, src2, src3) } -emit_fmsub_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fmsub_r_r_r_r(dst, src, src2, src3)) } -inst_fnmadd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FNMADD, dst, src, src2, src3) } -emit_fnmadd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fnmadd_r_r_r_r(dst, src, src2, src3)) } -inst_fnmsub_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FNMSUB, dst, src, src2, src3) } -emit_fnmsub_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fnmsub_r_r_r_r(dst, src, src2, src3)) } -inst_fcmp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCMP, dst, src) } -emit_fcmp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmp_r_r(dst, src)) } -inst_fcmpe_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCMPE, dst, src) } -emit_fcmpe_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmpe_r_r(dst, src)) } -inst_fcsel_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .FCSEL, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond)}} } -emit_fcsel_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_fcsel_r_r_r_c(dst, src, src2, cond)) } -inst_fmax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMAX, dst, src, src2) } -emit_fmax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_r_r_r(dst, src, src2)) } -inst_fmin_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMIN, dst, src, src2) } -emit_fmin_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_r_r_r(dst, src, src2)) } -inst_fmaxnm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMAXNM, dst, src, src2) } -emit_fmaxnm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_r_r_r(dst, src, src2)) } -inst_fminnm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMINNM, dst, src, src2) } -emit_fminnm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_r_r_r(dst, src, src2)) } -inst_fcvt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVT, dst, src) } -emit_fcvt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvt_r_r(dst, src)) } -inst_scvtf_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SCVTF, dst, src) } -emit_scvtf_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_r_r(dst, src)) } -inst_ucvtf_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UCVTF, dst, src) } -emit_ucvtf_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_r_r(dst, src)) } -inst_fcvtzs_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTZS, dst, src) } -emit_fcvtzs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_r_r(dst, src)) } -inst_fcvtzu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTZU, dst, src) } -emit_fcvtzu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_r_r(dst, src)) } -inst_fcvtas_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTAS, dst, src) } -emit_fcvtas_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_r_r(dst, src)) } -inst_fcvtau_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTAU, dst, src) } -emit_fcvtau_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_r_r(dst, src)) } -inst_fcvtns_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTNS, dst, src) } -emit_fcvtns_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_r_r(dst, src)) } -inst_fcvtnu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTNU, dst, src) } -emit_fcvtnu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_r_r(dst, src)) } -inst_fcvtps_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTPS, dst, src) } -emit_fcvtps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_r_r(dst, src)) } -inst_fcvtpu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTPU, dst, src) } -emit_fcvtpu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_r_r(dst, src)) } -inst_fcvtms_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTMS, dst, src) } -emit_fcvtms_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_r_r(dst, src)) } -inst_fcvtmu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTMU, dst, src) } -emit_fcvtmu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_r_r(dst, src)) } -inst_frinta_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTA, dst, src) } -emit_frinta_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_r_r(dst, src)) } -inst_frinti_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTI, dst, src) } -emit_frinti_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_r_r(dst, src)) } -inst_frintm_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTM, dst, src) } -emit_frintm_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_r_r(dst, src)) } -inst_frintn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTN, dst, src) } -emit_frintn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_r_r(dst, src)) } -inst_frintp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTP, dst, src) } -emit_frintp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_r_r(dst, src)) } -inst_frintx_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTX, dst, src) } -emit_frintx_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_r_r(dst, src)) } -inst_frintz_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTZ, dst, src) } -emit_frintz_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_r_r(dst, src)) } -inst_and_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.AND_IMM, dst, src, imm) } -emit_and_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_and_imm_r_r_i(dst, src, imm)) } -inst_ands_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ANDS_IMM, dst, src, imm) } -emit_ands_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ands_imm_r_r_i(dst, src, imm)) } -inst_orr_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ORR_IMM, dst, src, imm) } -emit_orr_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_orr_imm_r_r_i(dst, src, imm)) } -inst_eor_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.EOR_IMM, dst, src, imm) } -emit_eor_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_eor_imm_r_r_i(dst, src, imm)) } -inst_tst_imm_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.TST_IMM, dst, imm) } -emit_tst_imm_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_tst_imm_r_i(dst, imm)) } -inst_ldur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDUR, dst, mem) } -emit_ldur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldur_r_m(dst, mem)) } -inst_stur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STUR, dst, mem) } -emit_stur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stur_r_m(dst, mem)) } -inst_ldurb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURB, dst, mem) } -emit_ldurb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldurb_r_m(dst, mem)) } -inst_sturb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STURB, dst, mem) } -emit_sturb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_sturb_r_m(dst, mem)) } -inst_ldursb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURSB, dst, mem) } -emit_ldursb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldursb_r_m(dst, mem)) } -inst_ldurh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURH, dst, mem) } -emit_ldurh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldurh_r_m(dst, mem)) } -inst_sturh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STURH, dst, mem) } -emit_sturh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_sturh_r_m(dst, mem)) } -inst_ldursh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURSH, dst, mem) } -emit_ldursh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldursh_r_m(dst, mem)) } -inst_ldursw_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURSW, dst, mem) } -emit_ldursw_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldursw_r_m(dst, mem)) } -inst_ldr_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR_PRE, dst, mem) } -emit_ldr_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_pre_r_m(dst, mem)) } -inst_str_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR_PRE, dst, mem) } -emit_str_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_str_pre_r_m(dst, mem)) } -inst_ldr_post_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR_POST, dst, mem) } -emit_ldr_post_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_post_r_m(dst, mem)) } -inst_str_post_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR_POST, dst, mem) } -emit_str_post_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_str_post_r_m(dst, mem)) } -inst_ldrb_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRB_PRE, dst, mem) } -emit_ldrb_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrb_pre_r_m(dst, mem)) } -inst_strb_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRB_PRE, dst, mem) } -emit_strb_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strb_pre_r_m(dst, mem)) } -inst_ldrb_post_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRB_POST, dst, mem) } -emit_ldrb_post_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrb_post_r_m(dst, mem)) } -inst_strb_post_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRB_POST, dst, mem) } -emit_strb_post_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strb_post_r_m(dst, mem)) } -inst_ldrh_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRH_PRE, dst, mem) } -emit_ldrh_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrh_pre_r_m(dst, mem)) } -inst_strh_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRH_PRE, dst, mem) } -emit_strh_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strh_pre_r_m(dst, mem)) } -inst_ldrh_post_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRH_POST, dst, mem) } -emit_ldrh_post_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrh_post_r_m(dst, mem)) } -inst_strh_post_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRH_POST, dst, mem) } -emit_strh_post_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strh_post_r_m(dst, mem)) } -inst_ldr_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR_REG, dst, mem) } -emit_ldr_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_reg_r_m(dst, mem)) } -inst_str_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR_REG, dst, mem) } -emit_str_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_str_reg_r_m(dst, mem)) } -inst_ldrb_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRB_REG, dst, mem) } -emit_ldrb_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrb_reg_r_m(dst, mem)) } -inst_strb_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRB_REG, dst, mem) } -emit_strb_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strb_reg_r_m(dst, mem)) } -inst_ldrh_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRH_REG, dst, mem) } -emit_ldrh_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrh_reg_r_m(dst, mem)) } -inst_strh_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRH_REG, dst, mem) } -emit_strh_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strh_reg_r_m(dst, mem)) } -inst_ldrsb_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSB_REG, dst, mem) } -emit_ldrsb_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsb_reg_r_m(dst, mem)) } -inst_ldrsh_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSH_REG, dst, mem) } -emit_ldrsh_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsh_reg_r_m(dst, mem)) } -inst_ldrsw_reg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSW_REG, dst, mem) } -emit_ldrsw_reg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsw_reg_r_m(dst, mem)) } -inst_ldp_pre_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDP_PRE, dst, src, mem) } -emit_ldp_pre_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldp_pre_r_r_m(dst, src, mem)) } -inst_stp_pre_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STP_PRE, dst, src, mem) } -emit_stp_pre_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stp_pre_r_r_m(dst, src, mem)) } -inst_ldp_post_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDP_POST, dst, src, mem) } -emit_ldp_post_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldp_post_r_r_m(dst, src, mem)) } -inst_stp_post_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STP_POST, dst, src, mem) } -emit_stp_post_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stp_post_r_r_m(dst, src, mem)) } -inst_ldpsw_pre_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDPSW_PRE, dst, src, mem) } -emit_ldpsw_pre_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldpsw_pre_r_r_m(dst, src, mem)) } -inst_ldpsw_post_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDPSW_POST, dst, src, mem) } -emit_ldpsw_post_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldpsw_post_r_r_m(dst, src, mem)) } -inst_ldnp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDNP, dst, src, mem) } -emit_ldnp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldnp_r_r_m(dst, src, mem)) } -inst_stnp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STNP, dst, src, mem) } -emit_stnp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stnp_r_r_m(dst, src, mem)) } -inst_ldxp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDXP, dst, src, mem) } -emit_ldxp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldxp_r_r_m(dst, src, mem)) } -inst_stxp_r_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .STXP, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_mem(mem)}} } -emit_stxp_r_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory) { append(instructions, inst_stxp_r_r_r_m(dst, src, src2, mem)) } -inst_ldaxp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDAXP, dst, src, mem) } -emit_ldaxp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldaxp_r_r_m(dst, src, mem)) } -inst_stlxp_r_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .STLXP, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_mem(mem)}} } -emit_stlxp_r_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory) { append(instructions, inst_stlxp_r_r_r_m(dst, src, src2, mem)) } -inst_ldxrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDXRB, dst, mem) } -emit_ldxrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldxrb_r_m(dst, mem)) } -inst_stxrb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STXRB, dst, src, mem) } -emit_stxrb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stxrb_r_r_m(dst, src, mem)) } -inst_ldaxrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAXRB, dst, mem) } -emit_ldaxrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaxrb_r_m(dst, mem)) } -inst_stlxrb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STLXRB, dst, src, mem) } -emit_stlxrb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stlxrb_r_r_m(dst, src, mem)) } -inst_ldxrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDXRH, dst, mem) } -emit_ldxrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldxrh_r_m(dst, mem)) } -inst_stxrh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STXRH, dst, src, mem) } -emit_stxrh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stxrh_r_r_m(dst, src, mem)) } -inst_ldaxrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAXRH, dst, mem) } -emit_ldaxrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaxrh_r_m(dst, mem)) } -inst_stlxrh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STLXRH, dst, src, mem) } -emit_stlxrh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stlxrh_r_r_m(dst, src, mem)) } -inst_ldapr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPR, dst, mem) } -emit_ldapr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapr_r_m(dst, mem)) } -inst_ldaprb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPRB, dst, mem) } -emit_ldaprb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaprb_r_m(dst, mem)) } -inst_ldaprh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPRH, dst, mem) } -emit_ldaprh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaprh_r_m(dst, mem)) } -inst_ldadd_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADD, dst, src, mem) } -emit_ldadd_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldadd_r_r_m(dst, src, mem)) } -inst_ldadda_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADDA, dst, src, mem) } -emit_ldadda_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldadda_r_r_m(dst, src, mem)) } -inst_ldaddl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADDL, dst, src, mem) } -emit_ldaddl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldaddl_r_r_m(dst, src, mem)) } -inst_ldaddal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADDAL, dst, src, mem) } -emit_ldaddal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldaddal_r_r_m(dst, src, mem)) } -inst_ldclr_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLR, dst, src, mem) } -emit_ldclr_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclr_r_r_m(dst, src, mem)) } -inst_ldclra_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLRA, dst, src, mem) } -emit_ldclra_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclra_r_r_m(dst, src, mem)) } -inst_ldclrl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLRL, dst, src, mem) } -emit_ldclrl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclrl_r_r_m(dst, src, mem)) } -inst_ldclral_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLRAL, dst, src, mem) } -emit_ldclral_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclral_r_r_m(dst, src, mem)) } -inst_ldeor_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEOR, dst, src, mem) } -emit_ldeor_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeor_r_r_m(dst, src, mem)) } -inst_ldeora_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEORA, dst, src, mem) } -emit_ldeora_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeora_r_r_m(dst, src, mem)) } -inst_ldeorl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEORL, dst, src, mem) } -emit_ldeorl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeorl_r_r_m(dst, src, mem)) } -inst_ldeoral_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEORAL, dst, src, mem) } -emit_ldeoral_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeoral_r_r_m(dst, src, mem)) } -inst_ldset_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSET, dst, src, mem) } -emit_ldset_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldset_r_r_m(dst, src, mem)) } -inst_ldseta_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSETA, dst, src, mem) } -emit_ldseta_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldseta_r_r_m(dst, src, mem)) } -inst_ldsetl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSETL, dst, src, mem) } -emit_ldsetl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsetl_r_r_m(dst, src, mem)) } -inst_ldsetal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSETAL, dst, src, mem) } -emit_ldsetal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsetal_r_r_m(dst, src, mem)) } -inst_ldsmax_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAX, dst, src, mem) } -emit_ldsmax_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmax_r_r_m(dst, src, mem)) } -inst_ldsmaxa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAXA, dst, src, mem) } -emit_ldsmaxa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmaxa_r_r_m(dst, src, mem)) } -inst_ldsmaxl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAXL, dst, src, mem) } -emit_ldsmaxl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmaxl_r_r_m(dst, src, mem)) } -inst_ldsmaxal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAXAL, dst, src, mem) } -emit_ldsmaxal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmaxal_r_r_m(dst, src, mem)) } -inst_ldsmin_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMIN, dst, src, mem) } -emit_ldsmin_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmin_r_r_m(dst, src, mem)) } -inst_ldsmina_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMINA, dst, src, mem) } -emit_ldsmina_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmina_r_r_m(dst, src, mem)) } -inst_ldsminl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMINL, dst, src, mem) } -emit_ldsminl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsminl_r_r_m(dst, src, mem)) } -inst_ldsminal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMINAL, dst, src, mem) } -emit_ldsminal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsminal_r_r_m(dst, src, mem)) } -inst_ldumax_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAX, dst, src, mem) } -emit_ldumax_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumax_r_r_m(dst, src, mem)) } -inst_ldumaxa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAXA, dst, src, mem) } -emit_ldumaxa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumaxa_r_r_m(dst, src, mem)) } -inst_ldumaxl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAXL, dst, src, mem) } -emit_ldumaxl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumaxl_r_r_m(dst, src, mem)) } -inst_ldumaxal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAXAL, dst, src, mem) } -emit_ldumaxal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumaxal_r_r_m(dst, src, mem)) } -inst_ldumin_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMIN, dst, src, mem) } -emit_ldumin_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumin_r_r_m(dst, src, mem)) } -inst_ldumina_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMINA, dst, src, mem) } -emit_ldumina_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumina_r_r_m(dst, src, mem)) } -inst_lduminl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMINL, dst, src, mem) } -emit_lduminl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_lduminl_r_r_m(dst, src, mem)) } -inst_lduminal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMINAL, dst, src, mem) } -emit_lduminal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_lduminal_r_r_m(dst, src, mem)) } -inst_swp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWP, dst, src, mem) } -emit_swp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swp_r_r_m(dst, src, mem)) } -inst_swpa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWPA, dst, src, mem) } -emit_swpa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swpa_r_r_m(dst, src, mem)) } -inst_swpl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWPL, dst, src, mem) } -emit_swpl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swpl_r_r_m(dst, src, mem)) } -inst_swpal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWPAL, dst, src, mem) } -emit_swpal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swpal_r_r_m(dst, src, mem)) } -inst_cas_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CAS, dst, src, mem) } -emit_cas_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_cas_r_r_m(dst, src, mem)) } -inst_casa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASA, dst, src, mem) } -emit_casa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casa_r_r_m(dst, src, mem)) } -inst_casl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASL, dst, src, mem) } -emit_casl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casl_r_r_m(dst, src, mem)) } -inst_casal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASAL, dst, src, mem) } -emit_casal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casal_r_r_m(dst, src, mem)) } -inst_casb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASB, dst, src, mem) } -emit_casb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casb_r_r_m(dst, src, mem)) } -inst_casab_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASAB, dst, src, mem) } -emit_casab_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casab_r_r_m(dst, src, mem)) } -inst_caslb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASLB, dst, src, mem) } -emit_caslb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caslb_r_r_m(dst, src, mem)) } -inst_casalb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASALB, dst, src, mem) } -emit_casalb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casalb_r_r_m(dst, src, mem)) } -inst_cash_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASH, dst, src, mem) } -emit_cash_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_cash_r_r_m(dst, src, mem)) } -inst_casah_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASAH, dst, src, mem) } -emit_casah_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casah_r_r_m(dst, src, mem)) } -inst_caslh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASLH, dst, src, mem) } -emit_caslh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caslh_r_r_m(dst, src, mem)) } -inst_casalh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASALH, dst, src, mem) } -emit_casalh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casalh_r_r_m(dst, src, mem)) } -inst_casp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASP, dst, src, mem) } -emit_casp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casp_r_r_m(dst, src, mem)) } -inst_caspa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASPA, dst, src, mem) } -emit_caspa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caspa_r_r_m(dst, src, mem)) } -inst_caspl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASPL, dst, src, mem) } -emit_caspl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caspl_r_r_m(dst, src, mem)) } -inst_caspal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASPAL, dst, src, mem) } -emit_caspal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caspal_r_r_m(dst, src, mem)) } -inst_pacia_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACIA, dst, src) } -emit_pacia_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacia_r_r(dst, src)) } -inst_pacib_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACIB, dst, src) } -emit_pacib_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacib_r_r(dst, src)) } -inst_pacda_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACDA, dst, src) } -emit_pacda_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacda_r_r(dst, src)) } -inst_pacdb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACDB, dst, src) } -emit_pacdb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacdb_r_r(dst, src)) } -inst_paciza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACIZA, dst) } -emit_paciza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_paciza_r(dst)) } -inst_pacizb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACIZB, dst) } -emit_pacizb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_pacizb_r(dst)) } -inst_pacdza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACDZA, dst) } -emit_pacdza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_pacdza_r(dst)) } -inst_pacdzb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACDZB, dst) } -emit_pacdzb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_pacdzb_r(dst)) } -inst_autia_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTIA, dst, src) } -emit_autia_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autia_r_r(dst, src)) } -inst_autib_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTIB, dst, src) } -emit_autib_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autib_r_r(dst, src)) } -inst_autda_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTDA, dst, src) } -emit_autda_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autda_r_r(dst, src)) } -inst_autdb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTDB, dst, src) } -emit_autdb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autdb_r_r(dst, src)) } -inst_autiza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTIZA, dst) } -emit_autiza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autiza_r(dst)) } -inst_autizb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTIZB, dst) } -emit_autizb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autizb_r(dst)) } -inst_autdza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTDZA, dst) } -emit_autdza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autdza_r(dst)) } -inst_autdzb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTDZB, dst) } -emit_autdzb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autdzb_r(dst)) } -inst_paciasp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIASP) } -emit_paciasp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_paciasp_none()) } -inst_pacibsp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIBSP) } -emit_pacibsp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacibsp_none()) } -inst_autiasp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIASP) } -emit_autiasp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autiasp_none()) } -inst_autibsp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIBSP) } -emit_autibsp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autibsp_none()) } -inst_pacia1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIA1716) } -emit_pacia1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacia1716_none()) } -inst_pacib1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIB1716) } -emit_pacib1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacib1716_none()) } -inst_autia1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIA1716) } -emit_autia1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autia1716_none()) } -inst_autib1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIB1716) } -emit_autib1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autib1716_none()) } -inst_pacga_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.PACGA, dst, src, src2) } -emit_pacga_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pacga_r_r_r(dst, src, src2)) } -inst_xpaci_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.XPACI, dst) } -emit_xpaci_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_xpaci_r(dst)) } -inst_xpacd_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.XPACD, dst) } -emit_xpacd_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_xpacd_r(dst)) } -inst_xpaclri_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.XPACLRI) } -emit_xpaclri_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xpaclri_none()) } -inst_retaa_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.RETAA) } -emit_retaa_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_retaa_none()) } -inst_retab_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.RETAB) } -emit_retab_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_retab_none()) } -inst_braa_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BRAA, dst, src) } -emit_braa_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_braa_r_r(dst, src)) } -inst_brab_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BRAB, dst, src) } -emit_brab_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_brab_r_r(dst, src)) } -inst_braaz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BRAAZ, dst) } -emit_braaz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_braaz_r(dst)) } -inst_brabz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BRABZ, dst) } -emit_brabz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_brabz_r(dst)) } -inst_blraa_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BLRAA, dst, src) } -emit_blraa_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_blraa_r_r(dst, src)) } -inst_blrab_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BLRAB, dst, src) } -emit_blrab_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_blrab_r_r(dst, src)) } -inst_blraaz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BLRAAZ, dst) } -emit_blraaz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blraaz_r(dst)) } -inst_blrabz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BLRABZ, dst) } -emit_blrabz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blrabz_r(dst)) } -inst_eretaa_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.ERETAA) } -emit_eretaa_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eretaa_none()) } -inst_eretab_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.ERETAB) } -emit_eretab_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eretab_none()) } -inst_bti_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .BTI, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}}} } -emit_bti_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_bti_i(imm)) } -inst_irg_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.IRG, dst, src, src2) } -emit_irg_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_irg_r_r_r(dst, src, src2)) } -inst_addg_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .ADDG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_imm(imm2, 1)}} } -emit_addg_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_addg_r_r_i_i(dst, src, imm, imm2)) } -inst_subg_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SUBG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_imm(imm2, 1)}} } -emit_subg_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_subg_r_r_i_i(dst, src, imm, imm2)) } -inst_gmi_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.GMI, dst, src, src2) } -emit_gmi_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_gmi_r_r_r(dst, src, src2)) } -inst_subp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SUBP, dst, src, src2) } -emit_subp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subp_r_r_r(dst, src, src2)) } -inst_subps_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SUBPS, dst, src, src2) } -emit_subps_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subps_r_r_r(dst, src, src2)) } -inst_ldg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDG, dst, mem) } -emit_ldg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldg_r_m(dst, mem)) } -inst_stg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STG, dst, mem) } -emit_stg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stg_r_m(dst, mem)) } -inst_st2g_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.ST2G, dst, mem) } -emit_st2g_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st2g_r_m(dst, mem)) } -inst_stzg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STZG, dst, mem) } -emit_stzg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stzg_r_m(dst, mem)) } -inst_stz2g_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STZ2G, dst, mem) } -emit_stz2g_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stz2g_r_m(dst, mem)) } -inst_stgp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STGP, dst, src, mem) } -emit_stgp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stgp_r_r_m(dst, src, mem)) } -inst_ldgm_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDGM, dst, mem) } -emit_ldgm_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldgm_r_m(dst, mem)) } -inst_stgm_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STGM, dst, mem) } -emit_stgm_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stgm_r_m(dst, mem)) } -inst_stzgm_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STZGM, dst, mem) } -emit_stzgm_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stzgm_r_m(dst, mem)) } -inst_crc32b_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32B, dst, src, src2) } -emit_crc32b_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32b_r_r_r(dst, src, src2)) } -inst_crc32h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32H, dst, src, src2) } -emit_crc32h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32h_r_r_r(dst, src, src2)) } -inst_crc32w_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32W, dst, src, src2) } -emit_crc32w_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32w_r_r_r(dst, src, src2)) } -inst_crc32x_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32X, dst, src, src2) } -emit_crc32x_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32x_r_r_r(dst, src, src2)) } -inst_crc32cb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CB, dst, src, src2) } -emit_crc32cb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cb_r_r_r(dst, src, src2)) } -inst_crc32ch_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CH, dst, src, src2) } -emit_crc32ch_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32ch_r_r_r(dst, src, src2)) } -inst_crc32cw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CW, dst, src, src2) } -emit_crc32cw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cw_r_r_r(dst, src, src2)) } -inst_crc32cx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CX, dst, src, src2) } -emit_crc32cx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cx_r_r_r(dst, src, src2)) } -inst_aese_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESE, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), {}, {}}} } -emit_aese_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aese_r_r(dst, src)) } -inst_aesd_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESD, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), {}, {}}} } -emit_aesd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesd_r_r(dst, src)) } -inst_aesmc_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESMC, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), {}, {}}} } -emit_aesmc_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesmc_r_r(dst, src)) } -inst_aesimc_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESIMC, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), {}, {}}} } -emit_aesimc_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesimc_r_r(dst, src)) } -inst_sha1h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SHA1H, dst, src) } -emit_sha1h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1h_r_r(dst, src)) } -inst_sha1c_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1C, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha1c_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1c_r_r_r(dst, src, src2)) } -inst_sha1p_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1P, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha1p_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1p_r_r_r(dst, src, src2)) } -inst_sha1m_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1M, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha1m_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1m_r_r_r(dst, src, src2)) } -inst_sha1su0_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU0, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha1su0_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1su0_r_r_r(dst, src, src2)) } -inst_sha1su1_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU1, operand_count = 2, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_sha1su1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1su1_r_r(dst, src)) } -inst_sha256h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha256h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h_r_r_r(dst, src, src2)) } -inst_sha256h2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H2, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha256h2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h2_r_r_r(dst, src, src2)) } -inst_sha256su0_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU0, operand_count = 2, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_sha256su0_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha256su0_r_r(dst, src)) } -inst_sha256su1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU1, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sha256su1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256su1_r_r_r(dst, src, src2)) } -inst_sha512h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA512H, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_2d(u8(reg_hw(src2))), {}}} } -emit_sha512h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha512h_r_r_r(dst, src, src2)) } -inst_sha512h2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA512H2, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_2d(u8(reg_hw(src2))), {}}} } -emit_sha512h2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha512h2_r_r_r(dst, src, src2)) } -inst_sha512su0_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA512SU0, operand_count = 2, length = 4, ops = {op_v_2d(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), {}, {}}} } -emit_sha512su0_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha512su0_r_r(dst, src)) } -inst_sha512su1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA512SU1, operand_count = 3, length = 4, ops = {op_v_2d(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), op_v_2d(u8(reg_hw(src2))), {}}} } -emit_sha512su1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha512su1_r_r_r(dst, src, src2)) } -inst_eor3_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .EOR3, operand_count = 4, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), op_v_16b(u8(reg_hw(src3)))}} } -emit_eor3_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_eor3_r_r_r_r(dst, src, src2, src3)) } -inst_bcax_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .BCAX, operand_count = 4, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), op_v_16b(u8(reg_hw(src3)))}} } -emit_bcax_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_bcax_r_r_r_r(dst, src, src2, src3)) } -inst_rax1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RAX1, operand_count = 3, length = 4, ops = {op_v_2d(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), op_v_2d(u8(reg_hw(src2))), {}}} } -emit_rax1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rax1_r_r_r(dst, src, src2)) } -inst_xar_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .XAR, operand_count = 4, length = 4, ops = {op_v_2d(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), op_v_2d(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_xar_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_xar_r_r_r_i(dst, src, src2, imm)) } -inst_sm3partw1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3PARTW1, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sm3partw1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3partw1_r_r_r(dst, src, src2)) } -inst_sm3partw2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3PARTW2, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sm3partw2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3partw2_r_r_r(dst, src, src2)) } -inst_sm3ss1_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SM3SS1, operand_count = 4, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), op_v_4s(u8(reg_hw(src3)))}} } -emit_sm3ss1_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_sm3ss1_r_r_r_r(dst, src, src2, src3)) } -inst_sm3tt1a_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3TT1A, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_elem_s(u8(reg_hw(src2))), {}}} } -emit_sm3tt1a_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3tt1a_r_r_r(dst, src, src2)) } -inst_sm3tt1b_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3TT1B, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_elem_s(u8(reg_hw(src2))), {}}} } -emit_sm3tt1b_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3tt1b_r_r_r(dst, src, src2)) } -inst_sm3tt2a_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3TT2A, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_elem_s(u8(reg_hw(src2))), {}}} } -emit_sm3tt2a_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3tt2a_r_r_r(dst, src, src2)) } -inst_sm3tt2b_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3TT2B, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_elem_s(u8(reg_hw(src2))), {}}} } -emit_sm3tt2b_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3tt2b_r_r_r(dst, src, src2)) } -inst_sm4e_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SM4E, operand_count = 2, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_sm4e_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sm4e_r_r(dst, src)) } -inst_sm4ekey_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM4EKEY, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_sm4ekey_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm4ekey_r_r_r(dst, src, src2)) } -inst_pmull_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .PMULL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_pmull_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pmull_r_r_r(dst, src, src2)) } -inst_pmull2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .PMULL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_pmull2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pmull2_r_r_r(dst, src, src2)) } -inst_fabs_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FABS_H, dst, src) } -emit_fabs_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_h_r_r(dst, src)) } -inst_fneg_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FNEG_H, dst, src) } -emit_fneg_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_h_r_r(dst, src)) } -inst_fsqrt_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FSQRT_H, dst, src) } -emit_fsqrt_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_h_r_r(dst, src)) } -inst_fadd_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FADD_H, dst, src, src2) } -emit_fadd_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_h_r_r_r(dst, src, src2)) } -inst_fsub_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FSUB_H, dst, src, src2) } -emit_fsub_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_h_r_r_r(dst, src, src2)) } -inst_fmul_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMUL_H, dst, src, src2) } -emit_fmul_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_h_r_r_r(dst, src, src2)) } -inst_fdiv_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FDIV_H, dst, src, src2) } -emit_fdiv_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_h_r_r_r(dst, src, src2)) } -inst_fnmul_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FNMUL_H, dst, src, src2) } -emit_fnmul_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fnmul_h_r_r_r(dst, src, src2)) } -inst_fmadd_h_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FMADD_H, dst, src, src2, src3) } -emit_fmadd_h_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fmadd_h_r_r_r_r(dst, src, src2, src3)) } -inst_fmsub_h_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FMSUB_H, dst, src, src2, src3) } -emit_fmsub_h_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fmsub_h_r_r_r_r(dst, src, src2, src3)) } -inst_fnmadd_h_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FNMADD_H, dst, src, src2, src3) } -emit_fnmadd_h_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fnmadd_h_r_r_r_r(dst, src, src2, src3)) } -inst_fnmsub_h_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FNMSUB_H, dst, src, src2, src3) } -emit_fnmsub_h_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fnmsub_h_r_r_r_r(dst, src, src2, src3)) } -inst_fcmp_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCMP_H, dst, src) } -emit_fcmp_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmp_h_r_r(dst, src)) } -inst_fcmpe_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCMPE_H, dst, src) } -emit_fcmpe_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmpe_h_r_r(dst, src)) } -inst_fcsel_h_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .FCSEL_H, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond)}} } -emit_fcsel_h_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_fcsel_h_r_r_r_c(dst, src, src2, cond)) } -inst_fmax_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMAX_H, dst, src, src2) } -emit_fmax_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_h_r_r_r(dst, src, src2)) } -inst_fmin_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMIN_H, dst, src, src2) } -emit_fmin_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_h_r_r_r(dst, src, src2)) } -inst_fmaxnm_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMAXNM_H, dst, src, src2) } -emit_fmaxnm_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_h_r_r_r(dst, src, src2)) } -inst_fminnm_h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMINNM_H, dst, src, src2) } -emit_fminnm_h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_h_r_r_r(dst, src, src2)) } -inst_fcvt_h_s_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVT_H_S, dst, src) } -emit_fcvt_h_s_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvt_h_s_r_r(dst, src)) } -inst_fcvt_h_d_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVT_H_D, dst, src) } -emit_fcvt_h_d_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvt_h_d_r_r(dst, src)) } -inst_fcvt_s_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVT_S_H, dst, src) } -emit_fcvt_s_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvt_s_h_r_r(dst, src)) } -inst_fcvt_d_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVT_D_H, dst, src) } -emit_fcvt_d_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvt_d_h_r_r(dst, src)) } -inst_fmov_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FMOV_H, dst, src) } -emit_fmov_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmov_h_r_r(dst, src)) } -inst_scvtf_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SCVTF_H, dst, src) } -emit_scvtf_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_h_r_r(dst, src)) } -inst_ucvtf_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UCVTF_H, dst, src) } -emit_ucvtf_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_h_r_r(dst, src)) } -inst_fcvtzs_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTZS_H, dst, src) } -emit_fcvtzs_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_h_r_r(dst, src)) } -inst_fcvtzu_h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTZU_H, dst, src) } -emit_fcvtzu_h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_h_r_r(dst, src)) } -inst_bfcvt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BFCVT, dst, src) } -emit_bfcvt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bfcvt_r_r(dst, src)) } -inst_bfdot_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFDOT, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_bfdot_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfdot_r_r_r(dst, src, src2)) } -inst_bfmmla_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFMMLA, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_bfmmla_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfmmla_r_r_r(dst, src, src2)) } -inst_bfmlalb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFMLALB, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_bfmlalb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfmlalb_r_r_r(dst, src, src2)) } -inst_bfmlalt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFMLALT, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_bfmlalt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfmlalt_r_r_r(dst, src, src2)) } -inst_bfcvtn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .BFCVTN, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_bfcvtn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bfcvtn_r_r(dst, src)) } -inst_bfcvtn2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .BFCVTN2, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_bfcvtn2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bfcvtn2_r_r(dst, src)) } -inst_add_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_add_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v_r_r_r(dst, src, src2)) } -inst_sub_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_sub_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_v_r_r_r(dst, src, src2)) } -inst_mul_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MUL_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_mul_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mul_v_r_r_r(dst, src, src2)) } -inst_mla_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_mla_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v_r_r_r(dst, src, src2)) } -inst_mls_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_mls_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v_r_r_r(dst, src, src2)) } -inst_neg_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_neg_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v_r_r(dst, src)) } -inst_abs_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_abs_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v_r_r(dst, src)) } -inst_shadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_shadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_r_r_r(dst, src, src2)) } -inst_uhadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uhadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_r_r_r(dst, src, src2)) } -inst_shsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_shsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_r_r_r(dst, src, src2)) } -inst_uhsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uhsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_r_r_r(dst, src, src2)) } -inst_srhadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_srhadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_r_r_r(dst, src, src2)) } -inst_urhadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_urhadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_r_r_r(dst, src, src2)) } -inst_sqadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_sqadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_r_r_r(dst, src, src2)) } -inst_uqadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uqadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_r_r_r(dst, src, src2)) } -inst_sqsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_sqsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_r_r_r(dst, src, src2)) } -inst_uqsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uqsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_r_r_r(dst, src, src2)) } -inst_smax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_smax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_r_r_r(dst, src, src2)) } -inst_umax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_umax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_r_r_r(dst, src, src2)) } -inst_smin_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_smin_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_r_r_r(dst, src, src2)) } -inst_umin_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_umin_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_r_r_r(dst, src, src2)) } -inst_sabd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_sabd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_r_r_r(dst, src, src2)) } -inst_uabd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uabd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_r_r_r(dst, src, src2)) } -inst_saba_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_saba_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_r_r_r(dst, src, src2)) } -inst_uaba_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uaba_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_r_r_r(dst, src, src2)) } -inst_addp_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_addp_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v_r_r_r(dst, src, src2)) } -inst_addv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADDV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_addv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_addv_r_r(dst, src)) } -inst_saddlp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_saddlp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_r_r(dst, src)) } -inst_uaddlp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_uaddlp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_r_r(dst, src)) } -inst_sadalp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_sadalp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_r_r(dst, src)) } -inst_uadalp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_uadalp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_r_r(dst, src)) } -inst_saddlv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_saddlv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlv_r_r(dst, src)) } -inst_uaddlv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_uaddlv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlv_r_r(dst, src)) } -inst_smaxv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_smaxv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_smaxv_r_r(dst, src)) } -inst_umaxv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_umaxv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_umaxv_r_r(dst, src)) } -inst_sminv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_sminv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sminv_r_r(dst, src)) } -inst_uminv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_uminv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uminv_r_r(dst, src)) } -inst_smaxp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_smaxp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_r_r_r(dst, src, src2)) } -inst_umaxp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_umaxp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_r_r_r(dst, src, src2)) } -inst_sminp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_sminp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_r_r_r(dst, src, src2)) } -inst_uminp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uminp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_r_r_r(dst, src, src2)) } -inst_saddl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_saddl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl_r_r_r(dst, src, src2)) } -inst_saddl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_saddl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl2_r_r_r(dst, src, src2)) } -inst_uaddl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uaddl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl_r_r_r(dst, src, src2)) } -inst_uaddl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_uaddl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl2_r_r_r(dst, src, src2)) } -inst_ssubl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_ssubl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl_r_r_r(dst, src, src2)) } -inst_ssubl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_ssubl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl2_r_r_r(dst, src, src2)) } -inst_usubl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_usubl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl_r_r_r(dst, src, src2)) } -inst_usubl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_usubl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl2_r_r_r(dst, src, src2)) } -inst_saddw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_saddw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw_r_r_r(dst, src, src2)) } -inst_saddw2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_saddw2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw2_r_r_r(dst, src, src2)) } -inst_uaddw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uaddw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw_r_r_r(dst, src, src2)) } -inst_uaddw2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_uaddw2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw2_r_r_r(dst, src, src2)) } -inst_ssubw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_ssubw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw_r_r_r(dst, src, src2)) } -inst_ssubw2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_ssubw2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw2_r_r_r(dst, src, src2)) } -inst_usubw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_usubw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw_r_r_r(dst, src, src2)) } -inst_usubw2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_usubw2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw2_r_r_r(dst, src, src2)) } -inst_raddhn_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_raddhn_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn_r_r_r(dst, src, src2)) } -inst_raddhn2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_raddhn2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn2_r_r_r(dst, src, src2)) } -inst_rsubhn_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_rsubhn_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn_r_r_r(dst, src, src2)) } -inst_rsubhn2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_rsubhn2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn2_r_r_r(dst, src, src2)) } -inst_addhn_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_addhn_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn_r_r_r(dst, src, src2)) } -inst_addhn2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_addhn2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn2_r_r_r(dst, src, src2)) } -inst_subhn_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_subhn_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn_r_r_r(dst, src, src2)) } -inst_subhn2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_subhn2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn2_r_r_r(dst, src, src2)) } -inst_xtn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_xtn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn_r_r(dst, src)) } -inst_xtn2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN2, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_xtn2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn2_r_r(dst, src)) } -inst_sqxtn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_sqxtn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn_r_r(dst, src)) } -inst_sqxtn2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN2, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_sqxtn2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn2_r_r(dst, src)) } -inst_uqxtn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_uqxtn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn_r_r(dst, src)) } -inst_uqxtn2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN2, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_uqxtn2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn2_r_r(dst, src)) } -inst_sqxtun_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_sqxtun_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun_r_r(dst, src)) } -inst_sqxtun2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN2, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_sqxtun2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun2_r_r(dst, src)) } -inst_smull_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL_V, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_smull_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull_v_r_r_r(dst, src, src2)) } -inst_smull2_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL2_V, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_smull2_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull2_v_r_r_r(dst, src, src2)) } -inst_umull_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL_V, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_umull_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull_v_r_r_r(dst, src, src2)) } -inst_umull2_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL2_V, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_umull2_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull2_v_r_r_r(dst, src, src2)) } -inst_smlal_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_smlal_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal_r_r_r(dst, src, src2)) } -inst_smlal2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_smlal2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal2_r_r_r(dst, src, src2)) } -inst_umlal_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_umlal_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal_r_r_r(dst, src, src2)) } -inst_umlal2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_umlal2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal2_r_r_r(dst, src, src2)) } -inst_smlsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_smlsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl_r_r_r(dst, src, src2)) } -inst_smlsl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_smlsl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl2_r_r_r(dst, src, src2)) } -inst_umlsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_umlsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl_r_r_r(dst, src, src2)) } -inst_umlsl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_umlsl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl2_r_r_r(dst, src, src2)) } -inst_sqdmull_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULL, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), {}}} } -emit_sqdmull_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmull_r_r_r(dst, src, src2)) } -inst_sqdmull2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULL2, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_sqdmull2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmull2_r_r_r(dst, src, src2)) } -inst_sqdmlal_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLAL, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), {}}} } -emit_sqdmlal_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlal_r_r_r(dst, src, src2)) } -inst_sqdmlal2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLAL2, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_sqdmlal2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlal2_r_r_r(dst, src, src2)) } -inst_sqdmlsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLSL, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), {}}} } -emit_sqdmlsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlsl_r_r_r(dst, src, src2)) } -inst_sqdmlsl2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLSL2, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), {}}} } -emit_sqdmlsl2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlsl2_r_r_r(dst, src, src2)) } -inst_sqdmulh_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULH, operand_count = 3, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), {}}} } -emit_sqdmulh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmulh_r_r_r(dst, src, src2)) } -inst_sqrdmulh_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQRDMULH, operand_count = 3, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), {}}} } -emit_sqrdmulh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqrdmulh_r_r_r(dst, src, src2)) } -inst_sdot_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SDOT, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_sdot_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdot_r_r_r(dst, src, src2)) } -inst_udot_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UDOT, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_udot_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udot_r_r_r(dst, src, src2)) } -inst_usdot_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USDOT, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_usdot_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usdot_r_r_r(dst, src, src2)) } -inst_fadd_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADD_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fadd_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_v_r_r_r(dst, src, src2)) } -inst_fsub_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FSUB_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fsub_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_v_r_r_r(dst, src, src2)) } -inst_fmul_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMUL_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmul_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_v_r_r_r(dst, src, src2)) } -inst_fdiv_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FDIV_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fdiv_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_v_r_r_r(dst, src, src2)) } -inst_fneg_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FNEG_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fneg_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_v_r_r(dst, src)) } -inst_fabs_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FABS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fabs_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_v_r_r(dst, src)) } -inst_fsqrt_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FSQRT_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fsqrt_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_v_r_r(dst, src)) } -inst_fmla_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMLA_V, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_fmla_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmla_v_r_r_r(dst, src, src2)) } -inst_fmls_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMLS_V, operand_count = 3, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), {}}} } -emit_fmls_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmls_v_r_r_r(dst, src, src2)) } -inst_fmulx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMULX, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmulx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmulx_r_r_r(dst, src, src2)) } -inst_fmax_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAX_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmax_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_v_r_r_r(dst, src, src2)) } -inst_fmin_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMIN_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmin_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_v_r_r_r(dst, src, src2)) } -inst_fmaxnm_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNM_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmaxnm_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_v_r_r_r(dst, src, src2)) } -inst_fminnm_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNM_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fminnm_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_v_r_r_r(dst, src, src2)) } -inst_fmaxp_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXP_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmaxp_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxp_v_r_r_r(dst, src, src2)) } -inst_fminp_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINP_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fminp_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminp_v_r_r_r(dst, src, src2)) } -inst_fmaxnmp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMP, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fmaxnmp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnmp_r_r_r(dst, src, src2)) } -inst_fminnmp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNMP, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fminnmp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnmp_r_r_r(dst, src, src2)) } -inst_fmaxv_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXV_V, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_fmaxv_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxv_v_r_r(dst, src)) } -inst_fminv_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINV_V, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_fminv_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminv_v_r_r(dst, src)) } -inst_fmaxnmv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_fmaxnmv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxnmv_r_r(dst, src)) } -inst_fminnmv_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_fminnmv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminnmv_r_r(dst, src)) } -inst_frecpe_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRECPE, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frecpe_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpe_r_r(dst, src)) } -inst_frsqrte_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTE, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frsqrte_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frsqrte_r_r(dst, src)) } -inst_frecps_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_frecps_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frecps_r_r_r(dst, src, src2)) } -inst_frsqrts_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_frsqrts_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frsqrts_r_r_r(dst, src, src2)) } -inst_frecpx_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRECPX, dst, src) } -emit_frecpx_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpx_r_r(dst, src)) } -inst_faddp_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADDP_V, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_faddp_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_faddp_v_r_r_r(dst, src, src2)) } -inst_frinta_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTA_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frinta_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_v_r_r(dst, src)) } -inst_frinti_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTI_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frinti_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_v_r_r(dst, src)) } -inst_frintm_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTM_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frintm_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_v_r_r(dst, src)) } -inst_frintn_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTN_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frintn_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_v_r_r(dst, src)) } -inst_frintp_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTP_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frintp_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_v_r_r(dst, src)) } -inst_frintx_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTX_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frintx_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v_r_r(dst, src)) } -inst_frintz_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_frintz_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v_r_r(dst, src)) } -inst_scvtf_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_scvtf_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v_r_r(dst, src)) } -inst_ucvtf_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_ucvtf_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v_r_r(dst, src)) } -inst_fcvtas_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtas_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v_r_r(dst, src)) } -inst_fcvtau_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtau_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v_r_r(dst, src)) } -inst_fcvtms_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtms_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v_r_r(dst, src)) } -inst_fcvtmu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtmu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v_r_r(dst, src)) } -inst_fcvtns_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtns_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v_r_r(dst, src)) } -inst_fcvtnu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtnu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v_r_r(dst, src)) } -inst_fcvtps_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtps_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v_r_r(dst, src)) } -inst_fcvtpu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtpu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v_r_r(dst, src)) } -inst_fcvtzs_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtzs_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v_r_r(dst, src)) } -inst_fcvtzu_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtzu_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v_r_r(dst, src)) } -inst_fcvtl_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTL, operand_count = 2, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), {}, {}}} } -emit_fcvtl_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtl_r_r(dst, src)) } -inst_fcvtl2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTL2, operand_count = 2, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), {}, {}}} } -emit_fcvtl2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtl2_r_r(dst, src)) } -inst_fcvtn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTN, operand_count = 2, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtn_r_r(dst, src)) } -inst_fcvtn2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTN2, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), {}, {}}} } -emit_fcvtn2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtn2_r_r(dst, src)) } -inst_fcvtxn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTXN, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), {}, {}}} } -emit_fcvtxn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtxn_r_r(dst, src)) } -inst_fcvtxn2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTXN2, operand_count = 2, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), {}, {}}} } -emit_fcvtxn2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtxn2_r_r(dst, src)) } -inst_fcmeq_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fcmeq_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_r_r_r(dst, src, src2)) } -inst_fcmge_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fcmge_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmge_r_r_r(dst, src, src2)) } -inst_fcmgt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_fcmgt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmgt_r_r_r(dst, src, src2)) } -inst_fcmle_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcmle_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmle_r_r(dst, src)) } -inst_fcmlt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_fcmlt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmlt_r_r(dst, src)) } -inst_facge_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGE, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_facge_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facge_r_r_r(dst, src, src2)) } -inst_facgt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGT, operand_count = 3, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), op_v_2s(u8(reg_hw(src2))), {}}} } -emit_facgt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facgt_r_r_r(dst, src, src2)) } -inst_cmeq_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMEQ, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_cmeq_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmeq_r_r_r(dst, src, src2)) } -inst_cmge_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_cmge_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_r_r_r(dst, src, src2)) } -inst_cmgt_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGT, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_cmgt_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmgt_r_r_r(dst, src, src2)) } -inst_cmhi_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHI, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_cmhi_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhi_r_r_r(dst, src, src2)) } -inst_cmhs_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_cmhs_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_r_r_r(dst, src, src2)) } -inst_cmle_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_cmle_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_r_r(dst, src)) } -inst_cmlt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_cmlt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_r_r(dst, src)) } -inst_cmtst_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_cmtst_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_r_r_r(dst, src, src2)) } -inst_and_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .AND_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_and_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_and_v_r_r_r(dst, src, src2)) } -inst_orr_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ORR_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_orr_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_orr_v_r_r_r(dst, src, src2)) } -inst_eor_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .EOR_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_eor_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_eor_v_r_r_r(dst, src, src2)) } -inst_bic_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BIC_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_bic_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bic_v_r_r_r(dst, src, src2)) } -inst_orn_v_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ORN_V, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_orn_v_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_orn_v_r_r_r(dst, src, src2)) } -inst_mvn_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MVN_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_mvn_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_v_r_r(dst, src)) } -inst_bit_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BIT, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_bit_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bit_r_r_r(dst, src, src2)) } -inst_bif_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BIF, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_bif_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bif_r_r_r(dst, src, src2)) } -inst_bsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BSL, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_16b(u8(reg_hw(src2))), {}}} } -emit_bsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bsl_r_r_r(dst, src, src2)) } -inst_shl_v_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_shl_v_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v_r_r_i(dst, src, imm)) } -inst_sqshl_v_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqshl_v_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v_r_r_i(dst, src, imm)) } -inst_sqshlu_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqshlu_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_r_r_i(dst, src, imm)) } -inst_srshl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_srshl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_r_r_r(dst, src, src2)) } -inst_urshl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_urshl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_r_r_r(dst, src, src2)) } -inst_sshr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sshr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_r_r_i(dst, src, imm)) } -inst_ushr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_ushr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_r_r_i(dst, src, imm)) } -inst_ssra_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_ssra_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_r_r_i(dst, src, imm)) } -inst_usra_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_usra_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_r_r_i(dst, src, imm)) } -inst_srshr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_srshr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_r_r_i(dst, src, imm)) } -inst_urshr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_urshr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_r_r_i(dst, src, imm)) } -inst_srsra_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_srsra_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_r_r_i(dst, src, imm)) } -inst_ursra_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_ursra_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_r_r_i(dst, src, imm)) } -inst_sshl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_sshl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_r_r_r(dst, src, src2)) } -inst_ushl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_ushl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_r_r_r(dst, src, src2)) } -inst_sli_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sli_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_r_r_i(dst, src, imm)) } -inst_sri_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sri_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_r_r_i(dst, src, imm)) } -inst_sshll_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sshll_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll_r_r_i(dst, src, imm)) } -inst_sshll2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sshll2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll2_r_r_i(dst, src, imm)) } -inst_ushll_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_ushll_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll_r_r_i(dst, src, imm)) } -inst_ushll2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL2, operand_count = 3, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_ushll2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll2_r_r_i(dst, src, imm)) } -inst_sxtl_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_sxtl_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl_r_r(dst, src)) } -inst_sxtl2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL2, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), {}, {}}} } -emit_sxtl2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl2_r_r(dst, src)) } -inst_uxtl_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_uxtl_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl_r_r(dst, src)) } -inst_uxtl2_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL2, operand_count = 2, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), {}, {}}} } -emit_uxtl2_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl2_r_r(dst, src)) } -inst_shrn_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_shrn_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn_r_r_i(dst, src, imm)) } -inst_shrn2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_shrn2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn2_r_r_i(dst, src, imm)) } -inst_rshrn_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_rshrn_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn_r_r_i(dst, src, imm)) } -inst_rshrn2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_rshrn2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn2_r_r_i(dst, src, imm)) } -inst_sqshrn_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqshrn_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn_r_r_i(dst, src, imm)) } -inst_sqshrn2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqshrn2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn2_r_r_i(dst, src, imm)) } -inst_uqshrn_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_uqshrn_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn_r_r_i(dst, src, imm)) } -inst_uqshrn2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_uqshrn2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn2_r_r_i(dst, src, imm)) } -inst_sqrshrn_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqrshrn_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn_r_r_i(dst, src, imm)) } -inst_sqrshrn2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqrshrn2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn2_r_r_i(dst, src, imm)) } -inst_uqrshrn_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_uqrshrn_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn_r_r_i(dst, src, imm)) } -inst_uqrshrn2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_uqrshrn2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn2_r_r_i(dst, src, imm)) } -inst_sqshrun_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqshrun_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun_r_r_i(dst, src, imm)) } -inst_sqshrun2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqshrun2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun2_r_r_i(dst, src, imm)) } -inst_sqrshrun_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqrshrun_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun_r_r_i(dst, src, imm)) } -inst_sqrshrun2_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN2, operand_count = 3, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -emit_sqrshrun2_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun2_r_r_i(dst, src, imm)) } -inst_dup_v_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP_V, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_elem_b(u8(reg_hw(src))), op_imm(imm, 4), {}}} } -inst_dup_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_reg(src), {}, {}}} } -emit_dup_v_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v_r_r_i(dst, src, imm)) } -emit_dup_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v_r_r(dst, src)) } -inst_ins_r_i_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 4, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_v_elem_b(u8(reg_hw(src))), op_imm(imm2, 4)}} } -inst_ins_r_i_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_reg(src), {}}} } -emit_ins_r_i_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64) { append(instructions, inst_ins_r_i_r_i(dst, imm, src, imm2)) } -emit_ins_r_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ins_r_i_r(dst, imm, src)) } -inst_mov_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MOV_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_mov_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_v_r_r(dst, src)) } -inst_ext_v_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EXT_V, operand_count = 4, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), op_imm(imm, 4)}} } -emit_ext_v_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_ext_v_r_r_r_i(dst, src, src2, imm)) } -inst_tbl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_tbl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_tbl_r_r_r(dst, src, src2)) } -inst_tbx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TBX, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_16b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_tbx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_tbx_r_r_r(dst, src, src2)) } -inst_zip1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_zip1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_r_r_r(dst, src, src2)) } -inst_zip2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_zip2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_r_r_r(dst, src, src2)) } -inst_uzp1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uzp1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_r_r_r(dst, src, src2)) } -inst_uzp2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_uzp2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_r_r_r(dst, src, src2)) } -inst_trn1_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_trn1_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_r_r_r(dst, src, src2)) } -inst_trn2_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), op_v_8b(u8(reg_hw(src2))), {}}} } -emit_trn2_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_r_r_r(dst, src, src2)) } -inst_not_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NOT_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_not_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_not_v_r_r(dst, src)) } -inst_rbit_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RBIT_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_rbit_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_v_r_r(dst, src)) } -inst_rev16_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV16_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_rev16_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_v_r_r(dst, src)) } -inst_rev32_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV32_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_rev32_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_v_r_r(dst, src)) } -inst_rev64_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_rev64_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_r_r(dst, src)) } -inst_cls_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_cls_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v_r_r(dst, src)) } -inst_clz_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ_V, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_clz_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v_r_r(dst, src)) } -inst_cnt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_cnt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cnt_r_r(dst, src)) } -inst_urecpe_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .URECPE_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_urecpe_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_urecpe_v_r_r(dst, src)) } -inst_ursqrte_v_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .URSQRTE_V, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_v_2s(u8(reg_hw(src))), {}, {}}} } -emit_ursqrte_v_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ursqrte_v_r_r(dst, src)) } -inst_movi_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_imm(imm, 1), {}, {}}} } -emit_movi_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_r_i(dst, imm)) } -inst_mvni_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVNI, operand_count = 2, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_imm(imm, 1), {}, {}}} } -emit_mvni_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvni_r_i(dst, imm)) } -inst_fmov_v_imm_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FMOV_V_IMM, operand_count = 2, length = 4, ops = {op_v_2s(u8(reg_hw(dst))), op_imm(imm, 1), {}, {}}} } -emit_fmov_v_imm_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_v_imm_r_i(dst, imm)) } -inst_ld1_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld1_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1_r_m(dst, mem)) } -inst_ld2_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld2_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld2_r_m(dst, mem)) } -inst_ld3_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld3_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld3_r_m(dst, mem)) } -inst_ld4_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld4_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld4_r_m(dst, mem)) } -inst_st1_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_st1_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st1_r_m(dst, mem)) } -inst_st2_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_st2_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st2_r_m(dst, mem)) } -inst_st3_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_st3_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st3_r_m(dst, mem)) } -inst_st4_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_st4_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st4_r_m(dst, mem)) } -inst_ld1r_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1R, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld1r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1r_r_m(dst, mem)) } -inst_ld2r_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2R, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld2r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld2r_r_m(dst, mem)) } -inst_ld3r_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3R, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld3r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld3r_r_m(dst, mem)) } -inst_ld4r_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4R, operand_count = 2, length = 4, ops = {op_v_16b(u8(reg_hw(dst))), op_mem(mem), {}, {}}} } -emit_ld4r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld4r_r_m(dst, mem)) } -inst_ld1_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_ld1_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld1_lane_r_i_m(dst, imm, mem)) } -inst_ld2_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_ld2_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld2_lane_r_i_m(dst, imm, mem)) } -inst_ld3_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_ld3_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld3_lane_r_i_m(dst, imm, mem)) } -inst_ld4_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_ld4_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld4_lane_r_i_m(dst, imm, mem)) } -inst_st1_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_st1_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st1_lane_r_i_m(dst, imm, mem)) } -inst_st2_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_st2_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st2_lane_r_i_m(dst, imm, mem)) } -inst_st3_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_st3_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st3_lane_r_i_m(dst, imm, mem)) } -inst_st4_lane_r_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4_LANE, operand_count = 3, length = 4, ops = {op_v_elem_b(u8(reg_hw(dst))), op_imm(imm, 4), op_mem(mem), {}}} } -emit_st4_lane_r_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st4_lane_r_i_m(dst, imm, mem)) } -inst_ldr_v_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR_V, dst, mem) } -emit_ldr_v_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_v_r_m(dst, mem)) } -inst_str_v_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR_V, dst, mem) } -emit_str_v_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_str_v_r_m(dst, mem)) } -inst_ldp_v_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDP_V, dst, src, mem) } -emit_ldp_v_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldp_v_r_r_m(dst, src, mem)) } -inst_stp_v_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STP_V, dst, src, mem) } -emit_stp_v_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stp_v_r_r_m(dst, src, mem)) } -inst_ldur_v_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDUR_V, dst, mem) } -emit_ldur_v_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldur_v_r_m(dst, mem)) } -inst_stur_v_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STUR_V, dst, mem) } -emit_stur_v_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stur_v_r_m(dst, mem)) } -inst_sve_add_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ADD_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_add_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_add_z_z_z_z(rz, rz2, rz3)) } -inst_sve_sub_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SUB_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_sub_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sub_z_z_z_z(rz, rz2, rz3)) } -inst_sve_sqadd_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SQADD_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_sqadd_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sqadd_z_z_z_z(rz, rz2, rz3)) } -inst_sve_uqadd_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_UQADD_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_uqadd_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_uqadd_z_z_z_z(rz, rz2, rz3)) } -inst_sve_sqsub_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SQSUB_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_sqsub_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sqsub_z_z_z_z(rz, rz2, rz3)) } -inst_sve_uqsub_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_UQSUB_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_uqsub_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_uqsub_z_z_z_z(rz, rz2, rz3)) } -inst_sve_add_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ADD_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_add_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_add_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_sub_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SUB_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_sub_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_sub_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_subr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SUBR_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_subr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_subr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_mul_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_MUL_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_mul_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_mul_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_smulh_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SMULH_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_smulh_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_smulh_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_umulh_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_UMULH_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_umulh_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_umulh_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_sdiv_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SDIV_PRED, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4)}} } -emit_sve_sdiv_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_sdiv_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_udiv_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_UDIV_PRED, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4)}} } -emit_sve_udiv_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_udiv_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_smax_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SMAX_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_smax_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_smax_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_umax_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_UMAX_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_umax_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_umax_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_smin_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SMIN_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_smin_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_smin_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_umin_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_UMIN_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_umin_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_umin_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_sabd_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SABD_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_sabd_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_sabd_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_uabd_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_UABD_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_uabd_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_uabd_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_and_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_AND_PRED, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_and_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_and_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_orr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ORR_PRED, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_orr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_orr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_eor_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_EOR_PRED, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_eor_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_eor_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bic_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BIC_PRED, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_bic_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bic_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_asr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ASR_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_asr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_asr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_lsl_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_LSL_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_lsl_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_lsl_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_lsr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_LSR_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_lsr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_lsr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_asrr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ASRR_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_asrr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_asrr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_lslr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_LSLR_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_lslr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_lslr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_lsrr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_LSRR_PRED, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_lsrr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_lsrr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_abs_pred_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ABS_PRED, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}}} } -emit_sve_abs_pred_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_abs_pred_z_p_z(rz, rz2, rz3)) } -inst_sve_neg_pred_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_NEG_PRED, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}}} } -emit_sve_neg_pred_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_neg_pred_z_p_z(rz, rz2, rz3)) } -inst_sve_cls_pred_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_CLS_PRED, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}}} } -emit_sve_cls_pred_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_cls_pred_z_p_z(rz, rz2, rz3)) } -inst_sve_clz_pred_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_CLZ_PRED, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}}} } -emit_sve_clz_pred_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_clz_pred_z_p_z(rz, rz2, rz3)) } -inst_sve_cnt_pred_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_CNT_PRED, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}}} } -emit_sve_cnt_pred_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_cnt_pred_z_p_z(rz, rz2, rz3)) } -inst_sve_mov_pred_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_MOV_PRED, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}}} } -emit_sve_mov_pred_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_mov_pred_z_p_z(rz, rz2, rz3)) } -inst_sve_fadd_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FADD_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_fadd_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fadd_z_z_z_z(rz, rz2, rz3)) } -inst_sve_fsub_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FSUB_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_fsub_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fsub_z_z_z_z(rz, rz2, rz3)) } -inst_sve_fmul_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMUL_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_fmul_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fmul_z_z_z_z(rz, rz2, rz3)) } -inst_sve_frecps_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRECPS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_frecps_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frecps_z_z_z(rz, rz2, rz3)) } -inst_sve_frsqrts_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRSQRTS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_frsqrts_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frsqrts_z_z_z(rz, rz2, rz3)) } -inst_sve_ftsmul_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FTSMUL, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_ftsmul_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_ftsmul_z_z_z(rz, rz2, rz3)) } -inst_sve_fadd_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FADD_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fadd_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fadd_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fsub_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FSUB_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fsub_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fsub_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fsubr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FSUBR_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fsubr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fsubr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fmul_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMUL_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fmul_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fmul_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fdiv_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FDIV_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fdiv_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fdiv_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fdivr_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FDIVR_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fdivr_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fdivr_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fmax_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMAX_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fmax_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fmax_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fmin_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMIN_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fmin_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fmin_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fmaxnm_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMAXNM_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fmaxnm_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fmaxnm_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fminnm_pred_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMINNM_PRED, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fminnm_pred_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fminnm_pred_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fabs_z_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FABS_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_fabs_z_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fabs_z_z_p_z(rz, rz2, rz3)) } -inst_sve_fneg_z_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FNEG_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_fneg_z_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fneg_z_z_p_z(rz, rz2, rz3)) } -inst_sve_fsqrt_z_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FSQRT_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_fsqrt_z_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fsqrt_z_z_p_z(rz, rz2, rz3)) } -inst_sve_frecpx_z_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRECPX_Z, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frecpx_z_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frecpx_z_z_p_z(rz, rz2, rz3)) } -inst_sve_frintn_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTN, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frintn_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frintn_z_p_z(rz, rz2, rz3)) } -inst_sve_frintp_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTP, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frintp_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frintp_z_p_z(rz, rz2, rz3)) } -inst_sve_frintm_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTM, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frintm_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frintm_z_p_z(rz, rz2, rz3)) } -inst_sve_frintz_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTZ, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frintz_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frintz_z_p_z(rz, rz2, rz3)) } -inst_sve_frinta_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTA, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frinta_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frinta_z_p_z(rz, rz2, rz3)) } -inst_sve_frintx_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frintx_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frintx_z_p_z(rz, rz2, rz3)) } -inst_sve_frinti_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FRINTI, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_frinti_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_frinti_z_p_z(rz, rz2, rz3)) } -inst_sve_fmla_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fmla_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fmla_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fmls_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fmls_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fmls_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fnmla_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FNMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fnmla_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fnmla_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fnmls_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FNMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fnmls_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fnmls_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_and_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_AND_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_and_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_and_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_bic_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BIC_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_bic_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bic_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_orr_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ORR_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_orr_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_orr_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_eor_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_EOR_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_eor_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_eor_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_nand_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_NAND_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_nand_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_nand_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_nor_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_NOR_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_nor_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_nor_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_orn_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ORN_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_orn_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_orn_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_sel_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SEL_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_sel_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_sel_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_ands_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ANDS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_ands_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_ands_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_bics_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BICS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_bics_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bics_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_orrs_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ORRS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_orrs_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_orrs_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_eors_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_EORS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_eors_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_eors_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_nands_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_NANDS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_nands_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_nands_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_nors_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_NORS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_nors_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_nors_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_orns_p_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_ORNS_P, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_orns_p_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_orns_p_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_not_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_NOT_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_not_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_not_p_p_p_p(rz, rz2, rz3)) } -inst_sve_mov_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_MOV_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -inst_sve_mov_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SVE_MOV_P, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}}} } -emit_sve_mov_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_mov_p_p_p_p(rz, rz2, rz3)) } -emit_sve_mov_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sve_mov_p_p_p(rz, rz2)) } -inst_sve_movs_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_MOVS_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_movs_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_movs_p_p_p_p(rz, rz2, rz3)) } -inst_sve_ptrue_p_i :: #force_inline proc "contextless" (rz: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_PTRUE, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_imm(imm, 4), {}, {}}} } -emit_sve_ptrue_p_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64) { append(instructions, inst_sve_ptrue_p_i(rz, imm)) } -inst_sve_ptrues_p_i :: #force_inline proc "contextless" (rz: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_PTRUES, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_imm(imm, 4), {}, {}}} } -emit_sve_ptrues_p_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64) { append(instructions, inst_sve_ptrues_p_i(rz, imm)) } -inst_sve_pfalse_p :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .SVE_PFALSE, operand_count = 1, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), {}, {}, {}}} } -emit_sve_pfalse_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_sve_pfalse_p(rz)) } -inst_sve_pfirst_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_PFIRST, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_pfirst_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_pfirst_p_p_p(rz, rz2, rz3)) } -inst_sve_pnext_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_PNEXT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_pnext_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_pnext_p_p_p(rz, rz2, rz3)) } -inst_sve_brka_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKA, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_brka_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_brka_p_p_p(rz, rz2, rz3)) } -inst_sve_brkb_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKB, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_brkb_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_brkb_p_p_p(rz, rz2, rz3)) } -inst_sve_brkas_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKAS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_brkas_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_brkas_p_p_p(rz, rz2, rz3)) } -inst_sve_brkbs_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKBS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_brkbs_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_brkbs_p_p_p(rz, rz2, rz3)) } -inst_sve_brkpa_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKPA, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_brkpa_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_brkpa_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_brkpb_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKPB, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_brkpb_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_brkpb_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_brkn_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BRKN, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF)))}} } -emit_sve_brkn_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_brkn_p_p_p_p(rz, rz2, rz3, rz4)) } -inst_sve_rdffr_p :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .SVE_RDFFR, operand_count = 1, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), {}, {}, {}}} } -emit_sve_rdffr_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_sve_rdffr_p(rz)) } -inst_sve_wrffr_p :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .SVE_WRFFR, operand_count = 1, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), {}, {}, {}}} } -emit_sve_wrffr_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_sve_wrffr_p(rz)) } -inst_sve_setffr_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SVE_SETFFR) } -emit_sve_setffr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sve_setffr_none()) } -inst_sve_cmpeq_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmpeq_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmpeq_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmpne_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmpne_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmpne_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmpge_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmpge_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmpge_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmpgt_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmpgt_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmpgt_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmple_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPLE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmple_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmple_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmplt_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPLT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmplt_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmplt_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmphi_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPHI, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmphi_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmphi_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmphs_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPHS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmphs_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmphs_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmplo_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPLO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmplo_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmplo_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_cmpls_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_CMPLS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_cmpls_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_cmpls_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fcmeq_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fcmeq_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fcmeq_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fcmne_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fcmne_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fcmne_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fcmge_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fcmge_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fcmge_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fcmgt_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fcmgt_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fcmgt_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_fcmle_p_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMLE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_fcmle_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fcmle_p_p_z(rz, rz2, rz3)) } -inst_sve_fcmlt_p_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMLT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}}} } -emit_sve_fcmlt_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_fcmlt_p_p_z(rz, rz2, rz3)) } -inst_sve_fcmuo_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_FCMUO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_fcmuo_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_fcmuo_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_dup_z_z_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SVE_DUP_Z, operand_count = 2, length = 4, ops = {op_z_b(rz), op_reg(src), {}, {}}} } -emit_sve_dup_z_z_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_sve_dup_z_z_r(rz, src)) } -inst_sve_insr_z_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SVE_INSR, operand_count = 2, length = 4, ops = {op_z_b(rz), op_reg(src), {}, {}}} } -emit_sve_insr_z_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_sve_insr_z_r(rz, src)) } -inst_sve_rev_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SVE_REV_Z, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}}} } -emit_sve_rev_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sve_rev_z_z_z(rz, rz2)) } -inst_sve_rev_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SVE_REV_P, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}}} } -emit_sve_rev_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sve_rev_p_p_p(rz, rz2)) } -inst_sve_tbl_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TBL, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_tbl_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_tbl_z_z_z(rz, rz2, rz3)) } -inst_sve_zip1_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ZIP1_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_zip1_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_zip1_z_z_z_z(rz, rz2, rz3)) } -inst_sve_zip2_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ZIP2_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_zip2_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_zip2_z_z_z_z(rz, rz2, rz3)) } -inst_sve_uzp1_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_UZP1_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_uzp1_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_uzp1_z_z_z_z(rz, rz2, rz3)) } -inst_sve_uzp2_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_UZP2_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_uzp2_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_uzp2_z_z_z_z(rz, rz2, rz3)) } -inst_sve_trn1_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TRN1_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_trn1_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_trn1_z_z_z_z(rz, rz2, rz3)) } -inst_sve_trn2_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TRN2_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_trn2_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_trn2_z_z_z_z(rz, rz2, rz3)) } -inst_sve_zip1_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ZIP1_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_zip1_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_zip1_p_p_p_p(rz, rz2, rz3)) } -inst_sve_zip2_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ZIP2_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_zip2_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_zip2_p_p_p_p(rz, rz2, rz3)) } -inst_sve_uzp1_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_UZP1_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_uzp1_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_uzp1_p_p_p_p(rz, rz2, rz3)) } -inst_sve_uzp2_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_UZP2_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_uzp2_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_uzp2_p_p_p_p(rz, rz2, rz3)) } -inst_sve_trn1_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TRN1_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_trn1_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_trn1_p_p_p_p(rz, rz2, rz3)) } -inst_sve_trn2_p_p_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TRN2_P, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}}} } -emit_sve_trn2_p_p_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_trn2_p_p_p_p(rz, rz2, rz3)) } -inst_sve_cpy_z_z_p_r :: #force_inline proc "contextless" (rz: u8, rz2: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SVE_CPY_Z, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(src), {}}} } -emit_sve_cpy_z_z_p_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register) { append(instructions, inst_sve_cpy_z_z_p_r(rz, rz2, src)) } -inst_sve_compact_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_COMPACT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}}} } -emit_sve_compact_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_compact_z_p_z(rz, rz2, rz3)) } -inst_sve_ext_z_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_EXT_Z, operand_count = 4, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), op_imm(imm, 4)}} } -emit_sve_ext_z_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_ext_z_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_ld1b_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1b_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1b_z_p_m(rz, rz2, mem)) } -inst_sve_ld1h_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1h_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1h_z_p_m(rz, rz2, mem)) } -inst_sve_ld1w_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1w_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1w_z_p_m(rz, rz2, mem)) } -inst_sve_ld1d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sb_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SB, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sb_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sb_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sh_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SH, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sh_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sh_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sw_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SW, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sw_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sw_z_p_m(rz, rz2, mem)) } -inst_sve_st1b_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1b_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1b_z_p_m(rz, rz2, mem)) } -inst_sve_st1h_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1h_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1h_z_p_m(rz, rz2, mem)) } -inst_sve_st1w_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1w_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1w_z_p_m(rz, rz2, mem)) } -inst_sve_st1d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1d_z_p_m(rz, rz2, mem)) } -inst_sve_ldr_z_z_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDR_Z, operand_count = 2, length = 4, ops = {op_z_b(rz), op_mem(mem), {}, {}}} } -emit_sve_ldr_z_z_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_sve_ldr_z_z_m(rz, mem)) } -inst_sve_str_z_z_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_STR_Z, operand_count = 2, length = 4, ops = {op_z_b(rz), op_mem(mem), {}, {}}} } -emit_sve_str_z_z_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_sve_str_z_z_m(rz, mem)) } -inst_sve_ldr_p_p_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDR_P, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_mem(mem), {}, {}}} } -emit_sve_ldr_p_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_sve_ldr_p_p_m(rz, mem)) } -inst_sve_str_p_p_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_STR_P, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_mem(mem), {}, {}}} } -emit_sve_str_p_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_sve_str_p_p_m(rz, mem)) } -inst_sve_ldff1b_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDFF1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldff1b_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldff1b_z_p_m(rz, rz2, mem)) } -inst_sve_ldff1h_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDFF1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldff1h_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldff1h_z_p_m(rz, rz2, mem)) } -inst_sve_ldff1w_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDFF1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldff1w_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldff1w_z_p_m(rz, rz2, mem)) } -inst_sve_ldff1d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDFF1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldff1d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldff1d_z_p_m(rz, rz2, mem)) } -inst_sve_whilege_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILEGE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilege_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilege_p_r_r(rz, src, src2)) } -inst_sve_whilegt_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILEGT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilegt_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilegt_p_r_r(rz, src, src2)) } -inst_sve_whilele_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILELE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilele_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilele_p_r_r(rz, src, src2)) } -inst_sve_whilelt_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILELT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilelt_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilelt_p_r_r(rz, src, src2)) } -inst_sve_whilehi_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILEHI, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilehi_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilehi_p_r_r(rz, src, src2)) } -inst_sve_whilehs_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILEHS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilehs_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilehs_p_r_r(rz, src, src2)) } -inst_sve_whilelo_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILELO, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilelo_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilelo_p_r_r(rz, src, src2)) } -inst_sve_whilels_p_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_WHILELS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}}} } -emit_sve_whilels_p_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_whilels_p_r_r(rz, src, src2)) } -inst_sve_sqrdmlah_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SQRDMLAH, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_sqrdmlah_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sqrdmlah_z_z_z(rz, rz2, rz3)) } -inst_sve_sqrdmlsh_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SQRDMLSH, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_sqrdmlsh_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sqrdmlsh_z_z_z(rz, rz2, rz3)) } -inst_sve_adclb_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ADCLB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}}} } -emit_sve_adclb_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_adclb_z_z_z(rz, rz2, rz3)) } -inst_sve_adclt_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_ADCLT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}}} } -emit_sve_adclt_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_adclt_z_z_z(rz, rz2, rz3)) } -inst_sve_sbclb_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SBCLB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}}} } -emit_sve_sbclb_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sbclb_z_z_z(rz, rz2, rz3)) } -inst_sve_sbclt_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_SBCLT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}}} } -emit_sve_sbclt_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_sbclt_z_z_z(rz, rz2, rz3)) } -inst_sve_tbl2_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TBL2, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_tbl2_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_tbl2_z_z_z(rz, rz2, rz3)) } -inst_sve_tbx_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_TBX, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_tbx_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_tbx_z_z_z(rz, rz2, rz3)) } -inst_sve_aese_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SVE_AESE, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}}} } -emit_sve_aese_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sve_aese_z_z(rz, rz2)) } -inst_sve_aesd_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SVE_AESD, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}}} } -emit_sve_aesd_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sve_aesd_z_z(rz, rz2)) } -inst_sve_aesmc_z :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .SVE_AESMC, operand_count = 1, length = 4, ops = {op_z_b(rz), {}, {}, {}}} } -emit_sve_aesmc_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_sve_aesmc_z(rz)) } -inst_sve_aesimc_z :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .SVE_AESIMC, operand_count = 1, length = 4, ops = {op_z_b(rz), {}, {}, {}}} } -emit_sve_aesimc_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_sve_aesimc_z(rz)) } -inst_sve_bcax_z_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BCAX_Z, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_bcax_z_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bcax_z_z_z_z_z(rz, rz2, rz3, rz4)) } -inst_sve_xar_z_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_XAR_Z, operand_count = 4, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), op_imm(imm, 4)}} } -emit_sve_xar_z_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_xar_z_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_eor3_z_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_EOR3_Z, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_eor3_z_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_eor3_z_z_z_z_z(rz, rz2, rz3, rz4)) } -inst_sve_match_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_MATCH, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_match_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_match_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_nmatch_p_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_NMATCH, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_nmatch_p_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_nmatch_p_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_histcnt_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_HISTCNT, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4)}} } -emit_sve_histcnt_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_histcnt_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_histseg_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_HISTSEG, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_histseg_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_histseg_z_z_z(rz, rz2, rz3)) } -inst_sme_smstart_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SME_SMSTART) } -emit_sme_smstart_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sme_smstart_none()) } -inst_sme_smstop_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SME_SMSTOP) } -emit_sme_smstop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sme_smstop_none()) } -inst_sme_rdsvl_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.SME_RDSVL, dst, imm) } -emit_sme_rdsvl_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_sme_rdsvl_r_i(dst, imm)) } -inst_sme_addha_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_ADDHA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3)}} } -emit_sme_addha_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_addha_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_addva_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_ADDVA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3)}} } -emit_sme_addva_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_addva_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_zero_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SME_ZERO, operand_count = 1, length = 4, ops = {op_imm(imm, 4), {}, {}, {}}} } -emit_sme_zero_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_sme_zero_i(imm)) } -inst_sme_fmopa_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_FMOPA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3)}} } -emit_sme_fmopa_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_fmopa_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_fmops_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_FMOPS, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3)}} } -emit_sme_fmops_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_fmops_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_bfmopa_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_BFMOPA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3)}} } -emit_sme_bfmopa_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_bfmopa_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_bfmops_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_BFMOPS, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3)}} } -emit_sme_bfmops_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_bfmops_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_smopa_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_SMOPA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3)}} } -emit_sme_smopa_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_smopa_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_smops_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_SMOPS, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3)}} } -emit_sme_smops_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_smops_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_umopa_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_UMOPA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3)}} } -emit_sme_umopa_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_umopa_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_umops_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_UMOPS, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3)}} } -emit_sme_umops_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_umops_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_usmopa_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_USMOPA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3)}} } -emit_sme_usmopa_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_usmopa_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_sumopa_i_p_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME_SUMOPA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3)}} } -emit_sme_sumopa_i_p_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme_sumopa_i_p_p_z(imm, rz1, rz2, rz3)) } -inst_sme_ldr_za_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_LDR_ZA, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_mem(mem), {}, {}}} } -emit_sme_ldr_za_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_sme_ldr_za_i_m(imm, mem)) } -inst_sme_str_za_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_STR_ZA, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_mem(mem), {}, {}}} } -emit_sme_str_za_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_sme_str_za_i_m(imm, mem)) } -inst_sve_fmla_idx_h_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_FMLA_IDX_H, operand_count = 4, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), op_imm(imm, 1)}} } -emit_sve_fmla_idx_h_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_fmla_idx_h_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_fmla_idx_s_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_FMLA_IDX_S, operand_count = 4, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), op_imm(imm, 1)}} } -emit_sve_fmla_idx_s_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_fmla_idx_s_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_fmla_idx_d_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_FMLA_IDX_D, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_imm(imm, 1)}} } -emit_sve_fmla_idx_d_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_fmla_idx_d_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_fmls_idx_h_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_FMLS_IDX_H, operand_count = 4, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), op_imm(imm, 1)}} } -emit_sve_fmls_idx_h_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_fmls_idx_h_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_fmls_idx_s_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_FMLS_IDX_S, operand_count = 4, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), op_imm(imm, 1)}} } -emit_sve_fmls_idx_s_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_fmls_idx_s_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_fmls_idx_d_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_FMLS_IDX_D, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_imm(imm, 1)}} } -emit_sve_fmls_idx_d_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_fmls_idx_d_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_ld1b_gather_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1B_GATHER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1b_gather_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1b_gather_s_z_p_m(rz, rz2, mem)) } -inst_sve_ld1b_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1B_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1b_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1b_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1h_gather_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1H_GATHER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1h_gather_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1h_gather_s_z_p_m(rz, rz2, mem)) } -inst_sve_ld1h_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1H_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1h_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1h_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1w_gather_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1W_GATHER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1w_gather_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1w_gather_s_z_p_m(rz, rz2, mem)) } -inst_sve_ld1w_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1W_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1w_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1w_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1d_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1D_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1d_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1d_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sb_gather_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SB_GATHER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sb_gather_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sb_gather_s_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sb_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SB_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sb_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sb_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sh_gather_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SH_GATHER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sh_gather_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sh_gather_s_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sh_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SH_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sh_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sh_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_ld1sw_gather_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LD1SW_GATHER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ld1sw_gather_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ld1sw_gather_d_z_p_m(rz, rz2, mem)) } -inst_sve_st1b_scatter_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1B_SCATTER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1b_scatter_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1b_scatter_s_z_p_m(rz, rz2, mem)) } -inst_sve_st1b_scatter_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1B_SCATTER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1b_scatter_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1b_scatter_d_z_p_m(rz, rz2, mem)) } -inst_sve_st1h_scatter_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1H_SCATTER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1h_scatter_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1h_scatter_s_z_p_m(rz, rz2, mem)) } -inst_sve_st1h_scatter_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1H_SCATTER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1h_scatter_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1h_scatter_d_z_p_m(rz, rz2, mem)) } -inst_sve_st1w_scatter_s_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1W_SCATTER_S, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1w_scatter_s_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1w_scatter_s_z_p_m(rz, rz2, mem)) } -inst_sve_st1w_scatter_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1W_SCATTER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1w_scatter_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1w_scatter_d_z_p_m(rz, rz2, mem)) } -inst_sve_st1d_scatter_d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_ST1D_SCATTER_D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_st1d_scatter_d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_st1d_scatter_d_z_p_m(rz, rz2, mem)) } -inst_sme_ld1b_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_LD1B_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_ld1b_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_ld1b_tile_i_p_m(imm, rz1, mem)) } -inst_sme_ld1h_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_LD1H_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_ld1h_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_ld1h_tile_i_p_m(imm, rz1, mem)) } -inst_sme_ld1w_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_LD1W_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_ld1w_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_ld1w_tile_i_p_m(imm, rz1, mem)) } -inst_sme_ld1d_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_LD1D_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_ld1d_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_ld1d_tile_i_p_m(imm, rz1, mem)) } -inst_sme_ld1q_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_LD1Q_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_ld1q_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_ld1q_tile_i_p_m(imm, rz1, mem)) } -inst_sme_st1b_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_ST1B_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_st1b_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_st1b_tile_i_p_m(imm, rz1, mem)) } -inst_sme_st1h_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_ST1H_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_st1h_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_st1h_tile_i_p_m(imm, rz1, mem)) } -inst_sme_st1w_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_ST1W_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_st1w_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_st1w_tile_i_p_m(imm, rz1, mem)) } -inst_sme_st1d_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_ST1D_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_st1d_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_st1d_tile_i_p_m(imm, rz1, mem)) } -inst_sme_st1q_tile_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME_ST1Q_TILE, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sme_st1q_tile_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sme_st1q_tile_i_p_m(imm, rz1, mem)) } -inst_sme_mova_z_from_tile_z_p_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SME_MOVA_Z_FROM_TILE, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_imm(imm, 4), {}}} } -emit_sme_mova_z_from_tile_z_p_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_sme_mova_z_from_tile_z_p_i(rz, rz2, imm)) } -inst_sme_mova_tile_from_z_i_p_z :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SME_MOVA_TILE_FROM_Z, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_z_b(rz2), {}}} } -emit_sme_mova_tile_from_z_i_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8) { append(instructions, inst_sme_mova_tile_from_z_i_p_z(imm, rz1, rz2)) } -inst_fcmla_4h_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA_4H, operand_count = 4, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcmla_4h_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_4h_r_r_r_i(dst, src, src2, imm)) } -inst_fcmla_8h_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA_8H, operand_count = 4, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcmla_8h_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_8h_r_r_r_i(dst, src, src2, imm)) } -inst_fcmla_4s_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA_4S, operand_count = 4, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcmla_4s_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_4s_r_r_r_i(dst, src, src2, imm)) } -inst_fcmla_2d_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA_2D, operand_count = 4, length = 4, ops = {op_v_2d(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), op_v_2d(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcmla_2d_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_2d_r_r_r_i(dst, src, src2, imm)) } -inst_fcadd_4h_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD_4H, operand_count = 4, length = 4, ops = {op_v_4h(u8(reg_hw(dst))), op_v_4h(u8(reg_hw(src))), op_v_4h(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcadd_4h_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_4h_r_r_r_i(dst, src, src2, imm)) } -inst_fcadd_8h_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD_8H, operand_count = 4, length = 4, ops = {op_v_8h(u8(reg_hw(dst))), op_v_8h(u8(reg_hw(src))), op_v_8h(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcadd_8h_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_8h_r_r_r_i(dst, src, src2, imm)) } -inst_fcadd_4s_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD_4S, operand_count = 4, length = 4, ops = {op_v_4s(u8(reg_hw(dst))), op_v_4s(u8(reg_hw(src))), op_v_4s(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcadd_4s_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_4s_r_r_r_i(dst, src, src2, imm)) } -inst_fcadd_2d_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD_2D, operand_count = 4, length = 4, ops = {op_v_2d(u8(reg_hw(dst))), op_v_2d(u8(reg_hw(src))), op_v_2d(u8(reg_hw(src2))), op_imm(imm, 1)}} } -emit_fcadd_2d_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_2d_r_r_r_i(dst, src, src2, imm)) } -inst_sve_prfb_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_PRFB, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sve_prfb_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sve_prfb_i_p_m(imm, rz1, mem)) } -inst_sve_prfh_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_PRFH, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sve_prfh_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sve_prfh_i_p_m(imm, rz1, mem)) } -inst_sve_prfw_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_PRFW, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sve_prfw_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sve_prfw_i_p_m(imm, rz1, mem)) } -inst_sve_prfd_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_PRFD, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}}} } -emit_sve_prfd_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_sve_prfd_i_p_m(imm, rz1, mem)) } -inst_sve_ldnt1b_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDNT1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldnt1b_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldnt1b_z_p_m(rz, rz2, mem)) } -inst_sve_ldnt1h_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDNT1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldnt1h_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldnt1h_z_p_m(rz, rz2, mem)) } -inst_sve_ldnt1w_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDNT1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldnt1w_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldnt1w_z_p_m(rz, rz2, mem)) } -inst_sve_ldnt1d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_LDNT1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_ldnt1d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_ldnt1d_z_p_m(rz, rz2, mem)) } -inst_sve_stnt1b_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_STNT1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_stnt1b_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_stnt1b_z_p_m(rz, rz2, mem)) } -inst_sve_stnt1h_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_STNT1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_stnt1h_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_stnt1h_z_p_m(rz, rz2, mem)) } -inst_sve_stnt1w_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_STNT1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_stnt1w_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_stnt1w_z_p_m(rz, rz2, mem)) } -inst_sve_stnt1d_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SVE_STNT1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sve_stnt1d_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sve_stnt1d_z_p_m(rz, rz2, mem)) } -inst_sve_ext_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_EXT, operand_count = 4, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), op_imm(imm, 1)}} } -emit_sve_ext_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sve_ext_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sve_splice_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_SPLICE, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } -emit_sve_splice_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_splice_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_index_ii_z_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SVE_INDEX_II, operand_count = 3, length = 4, ops = {op_z_b(rz), op_imm(imm, 1), op_imm(imm2, 1), {}}} } -emit_sve_index_ii_z_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sve_index_ii_z_i_i(rz, imm, imm2)) } -inst_sve_index_ir_z_i_r :: #force_inline proc "contextless" (rz: u8, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .SVE_INDEX_IR, operand_count = 3, length = 4, ops = {op_z_b(rz), op_imm(imm, 1), op_reg(src), {}}} } -emit_sve_index_ir_z_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register) { append(instructions, inst_sve_index_ir_z_i_r(rz, imm, src)) } -inst_sve_index_ri_z_r_i :: #force_inline proc "contextless" (rz: u8, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SVE_INDEX_RI, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(src), op_imm(imm, 1), {}}} } -emit_sve_index_ri_z_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64) { append(instructions, inst_sve_index_ri_z_r_i(rz, src, imm)) } -inst_sve_index_rr_z_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SVE_INDEX_RR, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(src), op_reg(src2), {}}} } -emit_sve_index_rr_z_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_sve_index_rr_z_r_r(rz, src, src2)) } -inst_sve_bsl_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BSL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_bsl_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bsl_z_z_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bsl1n_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BSL1N, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_bsl1n_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bsl1n_z_z_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bsl2n_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BSL2N, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_bsl2n_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bsl2n_z_z_z_z(rz, rz2, rz3, rz4)) } -inst_sve_nbsl_z_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_NBSL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4)}} } -emit_sve_nbsl_z_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_nbsl_z_z_z_z(rz, rz2, rz3, rz4)) } -inst_sve_pmul_vec_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_PMUL_VEC, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sve_pmul_vec_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_pmul_vec_z_z_z(rz, rz2, rz3)) } -inst_sve_pmullb_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_PMULLB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_s(rz2), op_z_s(rz3), {}}} } -emit_sve_pmullb_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_pmullb_z_z_z(rz, rz2, rz3)) } -inst_sve_pmullt_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_PMULLT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_s(rz2), op_z_s(rz3), {}}} } -emit_sve_pmullt_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_pmullt_z_z_z(rz, rz2, rz3)) } -inst_sve_bfcvt_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFCVT, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}}} } -emit_sve_bfcvt_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_bfcvt_z_p_z(rz, rz2, rz3)) } -inst_sve_bfcvtnt_z_p_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFCVTNT, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}}} } -emit_sve_bfcvtnt_z_p_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_bfcvtnt_z_p_z(rz, rz2, rz3)) } -inst_ldraa_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRAA, dst, mem) } -emit_ldraa_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldraa_r_m(dst, mem)) } -inst_ldrab_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRAB, dst, mem) } -emit_ldrab_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrab_r_m(dst, mem)) } -inst_ldraa_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRAA_PRE, dst, mem) } -emit_ldraa_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldraa_pre_r_m(dst, mem)) } -inst_ldrab_pre_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRAB_PRE, dst, mem) } -emit_ldrab_pre_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrab_pre_r_m(dst, mem)) } -inst_tstart_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TSTART, dst) } -emit_tstart_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tstart_r(dst)) } -inst_tcommit_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TCOMMIT) } -emit_tcommit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tcommit_none()) } -inst_tcancel_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .TCANCEL, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}}} } -emit_tcancel_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_tcancel_i(imm)) } -inst_ttest_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TTEST, dst) } -emit_ttest_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_ttest_r(dst)) } -inst_wfet_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.WFET, dst) } -emit_wfet_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_wfet_r(dst)) } -inst_wfit_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.WFIT, dst) } -emit_wfit_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_wfit_r(dst)) } -inst_bc_cond_c_l :: #force_inline proc "contextless" (cond: Cond, label: u32) -> Instruction { return Instruction{mnemonic = .BC_COND, operand_count = 2, length = 4, ops = {op_cond(cond), op_label(label, 4), {}, {}}} } -emit_bc_cond_c_l :: #force_inline proc(instructions: ^[dynamic]Instruction, cond: Cond, label: u32) { append(instructions, inst_bc_cond_c_l(cond, label)) } -inst_uxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UXTB, dst, src) } -emit_uxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtb_r_r(dst, src)) } -inst_uxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UXTH, dst, src) } -emit_uxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxth_r_r(dst, src)) } -inst_uxtw_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UXTW, dst, src) } -emit_uxtw_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtw_r_r(dst, src)) } -inst_sxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SXTB, dst, src) } -emit_sxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtb_r_r(dst, src)) } -inst_sxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SXTH, dst, src) } -emit_sxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxth_r_r(dst, src)) } -inst_sxtw_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SXTW, dst, src) } -emit_sxtw_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtw_r_r(dst, src)) } -inst_adc_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ADC, dst, src, src2) } -emit_adc_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_adc_r_r_r(dst, src, src2)) } -inst_adcs_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ADCS, dst, src, src2) } -emit_adcs_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_adcs_r_r_r(dst, src, src2)) } -inst_sbc_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SBC, dst, src, src2) } -emit_sbc_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sbc_r_r_r(dst, src, src2)) } -inst_sbcs_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SBCS, dst, src, src2) } -emit_sbcs_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sbcs_r_r_r(dst, src, src2)) } -inst_ngc_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.NGC, dst, src) } -emit_ngc_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ngc_r_r(dst, src)) } -inst_ngcs_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.NGCS, dst, src) } -emit_ngcs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ngcs_r_r(dst, src)) } -inst_ldapur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPUR, dst, mem) } -emit_ldapur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapur_r_m(dst, mem)) } -inst_stlur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLUR, dst, mem) } -emit_stlur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlur_r_m(dst, mem)) } -inst_ldapurb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURB, dst, mem) } -emit_ldapurb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapurb_r_m(dst, mem)) } -inst_stlurb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLURB, dst, mem) } -emit_stlurb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlurb_r_m(dst, mem)) } -inst_ldapurh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURH, dst, mem) } -emit_ldapurh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapurh_r_m(dst, mem)) } -inst_stlurh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLURH, dst, mem) } -emit_stlurh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlurh_r_m(dst, mem)) } -inst_ldapursb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURSB, dst, mem) } -emit_ldapursb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapursb_r_m(dst, mem)) } -inst_ldapursh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURSH, dst, mem) } -emit_ldapursh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapursh_r_m(dst, mem)) } -inst_ldapursw_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURSW, dst, mem) } -emit_ldapursw_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapursw_r_m(dst, mem)) } -inst_sve_bfadd_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFADD, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfadd_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfadd_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bfsub_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFSUB, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfsub_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfsub_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bfmul_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFMUL, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfmul_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfmul_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bfmla_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfmla_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfmla_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bfmls_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfmls_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfmls_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sb_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SB) } -emit_sb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sb_none()) } -inst_csdb_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.CSDB) } -emit_csdb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_csdb_none()) } -inst_dgh_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.DGH) } -emit_dgh_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dgh_none()) } -inst_psb_csync_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PSB_CSYNC) } -emit_psb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_psb_csync_none()) } -inst_tsb_csync_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TSB_CSYNC) } -emit_tsb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tsb_csync_none()) } -inst_bti_j_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI_J) } -emit_bti_j_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_j_none()) } -inst_bti_c_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI_C) } -emit_bti_c_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_c_none()) } -inst_bti_jc_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI_JC) } -emit_bti_jc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_jc_none()) } -inst_mov_v_alias_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MOV_V_ALIAS, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_mov_v_alias_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_v_alias_r_r(dst, src)) } -inst_not_v_alias_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NOT_V_ALIAS, operand_count = 2, length = 4, ops = {op_v_8b(u8(reg_hw(dst))), op_v_8b(u8(reg_hw(src))), {}, {}}} } -emit_not_v_alias_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_not_v_alias_r_r(dst, src)) } -inst_lsl_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.LSL_IMM, dst, src, imm) } -emit_lsl_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsl_imm_r_r_i(dst, src, imm)) } -inst_lsr_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.LSR_IMM, dst, src, imm) } -emit_lsr_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsr_imm_r_r_i(dst, src, imm)) } -inst_asr_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ASR_IMM, dst, src, imm) } -emit_asr_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_asr_imm_r_r_i(dst, src, imm)) } -inst_ror_imm_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ROR_IMM, dst, src, imm) } -emit_ror_imm_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ror_imm_r_r_i(dst, src, imm)) } -inst_sve_bfadd_unpred_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFADD_UNPRED, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_bfadd_unpred_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_bfadd_unpred_z_z_z(rz, rz2, rz3)) } -inst_sve_bfsub_unpred_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFSUB_UNPRED, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_bfsub_unpred_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_bfsub_unpred_z_z_z(rz, rz2, rz3)) } -inst_sve_bfmul_unpred_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFMUL_UNPRED, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_bfmul_unpred_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_bfmul_unpred_z_z_z(rz, rz2, rz3)) } -inst_sve_bfclamp_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFCLAMP, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}}} } -emit_sve_bfclamp_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sve_bfclamp_z_z_z(rz, rz2, rz3)) } -inst_sve_bfmaxnm_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFMAXNM, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfmaxnm_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfmaxnm_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sve_bfminnm_z_p_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SVE_BFMINNM, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } -emit_sve_bfminnm_z_p_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sve_bfminnm_z_p_z_z(rz, rz2, rz3, rz4)) } -inst_sme2_luti2_b_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SME2_LUTI2_B, operand_count = 4, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_z_b(rz3), op_imm(imm, 1)}} } -emit_sme2_luti2_b_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sme2_luti2_b_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sme2_luti4_b_z_z_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .SME2_LUTI4_B, operand_count = 4, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_z_b(rz3), op_imm(imm, 1)}} } -emit_sme2_luti4_b_z_z_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_sme2_luti4_b_z_z_z_i(rz, rz2, rz3, imm)) } -inst_sme2_ld1b_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1B_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1b_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1b_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1h_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1H_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1h_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1h_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1w_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1W_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1w_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1w_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1d_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1D_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1d_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1d_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1b_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1B_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1b_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1b_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1h_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1H_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1h_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1h_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1w_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1W_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1w_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1w_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_ld1d_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_LD1D_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_ld1d_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_ld1d_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_st1b_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1B_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1b_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1b_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_st1h_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1H_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1h_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1h_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_st1w_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1W_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1w_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1w_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_st1d_x2_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1D_X2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1d_x2_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1d_x2_z_p_m(rz, rz2, mem)) } -inst_sme2_st1b_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1B_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1b_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1b_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_st1h_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1H_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1h_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1h_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_st1w_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1W_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1w_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1w_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_st1d_x4_z_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .SME2_ST1D_X4, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}}} } -emit_sme2_st1d_x4_z_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_sme2_st1d_x4_z_p_m(rz, rz2, mem)) } -inst_sme2_zip_3_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME2_ZIP_3, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sme2_zip_3_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme2_zip_3_z_z_z(rz, rz2, rz3)) } -inst_sme2_zip_4_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SME2_ZIP_4, operand_count = 2, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), {}, {}}} } -emit_sme2_zip_4_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sme2_zip_4_z_z(rz, rz2)) } -inst_sme2_uzp_3_z_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SME2_UZP_3, operand_count = 3, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_z_b(rz2), op_z_b(rz3), {}}} } -emit_sme2_uzp_3_z_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sme2_uzp_3_z_z_z(rz, rz2, rz3)) } -inst_sme2_uzp_4_z_z :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SME2_UZP_4, operand_count = 2, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), {}, {}}} } -emit_sme2_uzp_4_z_z :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sme2_uzp_4_z_z(rz, rz2)) } -inst_tlbi_rpalos_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_RPALOS, dst) } -emit_tlbi_rpalos_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_rpalos_r(dst)) } -inst_tlbi_rpaos_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_RPAOS, dst) } -emit_tlbi_rpaos_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_rpaos_r(dst)) } -inst_at_s1e1a_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E1A, dst) } -emit_at_s1e1a_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e1a_r(dst)) } -inst_dc_cipapa_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CIPAPA, dst) } -emit_dc_cipapa_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cipapa_r(dst)) } -inst_dc_cigdpapa_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CIGDPAPA, dst) } -emit_dc_cigdpapa_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cigdpapa_r(dst)) } -inst_tlbi_paall_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_PAALL) } -emit_tlbi_paall_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_paall_none()) } -inst_tlbi_paallos_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_PAALLOS) } -emit_tlbi_paallos_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_paallos_none()) } -inst_amx_ldx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDX, dst) } -emit_amx_ldx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldx_r(dst)) } -inst_amx_ldy_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDY, dst) } -emit_amx_ldy_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldy_r(dst)) } -inst_amx_stx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STX, dst) } -emit_amx_stx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_stx_r(dst)) } -inst_amx_sty_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STY, dst) } -emit_amx_sty_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_sty_r(dst)) } -inst_amx_ldz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDZ, dst) } -emit_amx_ldz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldz_r(dst)) } -inst_amx_stz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STZ, dst) } -emit_amx_stz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_stz_r(dst)) } -inst_amx_ldzi_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDZI, dst) } -emit_amx_ldzi_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldzi_r(dst)) } -inst_amx_stzi_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STZI, dst) } -emit_amx_stzi_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_stzi_r(dst)) } -inst_amx_extrx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_EXTRX, dst) } -emit_amx_extrx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_extrx_r(dst)) } -inst_amx_extry_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_EXTRY, dst) } -emit_amx_extry_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_extry_r(dst)) } -inst_amx_fma64_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMA64, dst) } -emit_amx_fma64_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fma64_r(dst)) } -inst_amx_fms64_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMS64, dst) } -emit_amx_fms64_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fms64_r(dst)) } -inst_amx_fma32_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMA32, dst) } -emit_amx_fma32_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fma32_r(dst)) } -inst_amx_fms32_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMS32, dst) } -emit_amx_fms32_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fms32_r(dst)) } -inst_amx_mac16_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_MAC16, dst) } -emit_amx_mac16_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_mac16_r(dst)) } -inst_amx_fma16_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMA16, dst) } -emit_amx_fma16_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fma16_r(dst)) } -inst_amx_fms16_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMS16, dst) } -emit_amx_fms16_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fms16_r(dst)) } -inst_amx_set_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AMX_SET) } -emit_amx_set_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_amx_set_none()) } -inst_amx_clr_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AMX_CLR) } -emit_amx_clr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_amx_clr_none()) } -inst_amx_vecint_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_VECINT, dst) } -emit_amx_vecint_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_vecint_r(dst)) } -inst_amx_vecfp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_VECFP, dst) } -emit_amx_vecfp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_vecfp_r(dst)) } -inst_amx_matint_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_MATINT, dst) } -emit_amx_matint_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_matint_r(dst)) } -inst_amx_matfp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_MATFP, dst) } -emit_amx_matfp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_matfp_r(dst)) } -inst_amx_genlut_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_GENLUT, dst) } -emit_amx_genlut_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_genlut_r(dst)) } -inst_cpyp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYP, dst, src, src2) } -emit_cpyp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyp_r_r_r(dst, src, src2)) } -inst_cpym_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYM, dst, src, src2) } -emit_cpym_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpym_r_r_r(dst, src, src2)) } -inst_cpye_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYE, dst, src, src2) } -emit_cpye_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpye_r_r_r(dst, src, src2)) } -inst_cpyfp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYFP, dst, src, src2) } -emit_cpyfp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyfp_r_r_r(dst, src, src2)) } -inst_cpyfm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYFM, dst, src, src2) } -emit_cpyfm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyfm_r_r_r(dst, src, src2)) } -inst_cpyfe_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYFE, dst, src, src2) } -emit_cpyfe_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyfe_r_r_r(dst, src, src2)) } -inst_setp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SETP, dst, src, src2) } -emit_setp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_setp_r_r_r(dst, src, src2)) } -inst_setm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SETM, dst, src, src2) } -emit_setm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_setm_r_r_r(dst, src, src2)) } -inst_sete_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SETE, dst, src, src2) } -emit_sete_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sete_r_r_r(dst, src, src2)) } -inst_dc_ivac_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_IVAC, dst) } -emit_dc_ivac_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_ivac_r(dst)) } -inst_dc_isw_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_ISW, dst) } -emit_dc_isw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_isw_r(dst)) } -inst_dc_csw_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CSW, dst) } -emit_dc_csw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_csw_r(dst)) } -inst_dc_cisw_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CISW, dst) } -emit_dc_cisw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cisw_r(dst)) } -inst_dc_zva_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_ZVA, dst) } -emit_dc_zva_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_zva_r(dst)) } -inst_dc_cvac_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CVAC, dst) } -emit_dc_cvac_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cvac_r(dst)) } -inst_dc_cvau_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CVAU, dst) } -emit_dc_cvau_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cvau_r(dst)) } -inst_dc_civac_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CIVAC, dst) } -emit_dc_civac_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_civac_r(dst)) } -inst_ic_ialluis_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.IC_IALLUIS) } -emit_ic_ialluis_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ic_ialluis_none()) } -inst_ic_iallu_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.IC_IALLU) } -emit_ic_iallu_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ic_iallu_none()) } -inst_ic_ivau_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.IC_IVAU, dst) } -emit_ic_ivau_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_ic_ivau_r(dst)) } -inst_at_s1e1r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E1R, dst) } -emit_at_s1e1r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e1r_r(dst)) } -inst_at_s1e1w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E1W, dst) } -emit_at_s1e1w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e1w_r(dst)) } -inst_at_s1e0r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E0R, dst) } -emit_at_s1e0r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e0r_r(dst)) } -inst_at_s1e0w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E0W, dst) } -emit_at_s1e0w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e0w_r(dst)) } -inst_at_s1e2r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E2R, dst) } -emit_at_s1e2r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e2r_r(dst)) } -inst_at_s1e2w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E2W, dst) } -emit_at_s1e2w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e2w_r(dst)) } -inst_at_s1e3r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E3R, dst) } -emit_at_s1e3r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e3r_r(dst)) } -inst_at_s1e3w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E3W, dst) } -emit_at_s1e3w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e3w_r(dst)) } -inst_at_s12e1r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E1R, dst) } -emit_at_s12e1r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e1r_r(dst)) } -inst_at_s12e1w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E1W, dst) } -emit_at_s12e1w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e1w_r(dst)) } -inst_at_s12e0r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E0R, dst) } -emit_at_s12e0r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e0r_r(dst)) } -inst_at_s12e0w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E0W, dst) } -emit_at_s12e0w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e0w_r(dst)) } -inst_tlbi_vmalle1_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_VMALLE1) } -emit_tlbi_vmalle1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_vmalle1_none()) } -inst_tlbi_vmalle1is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_VMALLE1IS) } -emit_tlbi_vmalle1is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_vmalle1is_none()) } -inst_tlbi_vae1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAE1, dst) } -emit_tlbi_vae1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vae1_r(dst)) } -inst_tlbi_vae1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAE1IS, dst) } -emit_tlbi_vae1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vae1is_r(dst)) } -inst_tlbi_aside1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_ASIDE1, dst) } -emit_tlbi_aside1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_aside1_r(dst)) } -inst_tlbi_aside1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_ASIDE1IS, dst) } -emit_tlbi_aside1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_aside1is_r(dst)) } -inst_tlbi_vaae1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAAE1, dst) } -emit_tlbi_vaae1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaae1_r(dst)) } -inst_tlbi_vaae1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAAE1IS, dst) } -emit_tlbi_vaae1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaae1is_r(dst)) } -inst_tlbi_vale1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VALE1, dst) } -emit_tlbi_vale1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vale1_r(dst)) } -inst_tlbi_vale1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VALE1IS, dst) } -emit_tlbi_vale1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vale1is_r(dst)) } -inst_tlbi_vaale1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAALE1, dst) } -emit_tlbi_vaale1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaale1_r(dst)) } -inst_tlbi_vaale1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAALE1IS, dst) } -emit_tlbi_vaale1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaale1is_r(dst)) } -inst_tlbi_alle1_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE1) } -emit_tlbi_alle1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle1_none()) } -inst_tlbi_alle1is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE1IS) } -emit_tlbi_alle1is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle1is_none()) } -inst_tlbi_alle2_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE2) } -emit_tlbi_alle2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle2_none()) } -inst_tlbi_alle2is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE2IS) } -emit_tlbi_alle2is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle2is_none()) } -inst_tlbi_alle3_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE3) } -emit_tlbi_alle3_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle3_none()) } -inst_tlbi_alle3is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE3IS) } -emit_tlbi_alle3is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle3is_none()) } -inst_prfm_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFM, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_mem(mem), {}, {}}} } -emit_prfm_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_prfm_i_m(imm, mem)) } -inst_prfum_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFUM, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_mem(mem), {}, {}}} } -emit_prfum_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_prfum_i_m(imm, mem)) } -inst_prfm_lit_i_l :: #force_inline proc "contextless" (imm: i64, label: u32) -> Instruction { return Instruction{mnemonic = .PRFM_LIT, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_label(label, 4), {}, {}}} } -emit_prfm_lit_i_l :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, label: u32) { append(instructions, inst_prfm_lit_i_l(imm, label)) } -inst_mov_reg_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.MOV_REG, dst, src) } -emit_mov_reg_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_reg_r_r(dst, src)) } -inst_mov_bitmask_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.MOV_BITMASK, dst, imm) } -emit_mov_bitmask_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mov_bitmask_r_i(dst, imm)) } -inst_mvn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.MVN, dst, src) } -emit_mvn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_r_r(dst, src)) } -inst_neg_sr_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .NEG_SR, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}}} } -emit_neg_sr_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_neg_sr_r_sh(dst, src, src_shift, src_amount)) } -inst_negs_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .NEGS, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}}} } -emit_negs_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_negs_r_sh(dst, src, src_shift, src_amount)) } -inst_cmp_sr_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMP_SR, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}}} } -emit_cmp_sr_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_cmp_sr_r_sh(dst, src, src_shift, src_amount)) } -inst_cmp_er_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src_ext: Extend, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMP_ER, operand_count = 2, length = 4, ops = {op_reg(dst), op_extended(src, src_ext, src_amount), {}, {}}} } -emit_cmp_er_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_ext: Extend, src_amount: u8) { append(instructions, inst_cmp_er_r_ex(dst, src, src_ext, src_amount)) } -inst_cmp_imm_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.CMP_IMM, dst, imm) } -emit_cmp_imm_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmp_imm_r_i(dst, imm)) } -inst_cmn_sr_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMN_SR, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}}} } -emit_cmn_sr_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_cmn_sr_r_sh(dst, src, src_shift, src_amount)) } -inst_cmn_er_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src_ext: Extend, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMN_ER, operand_count = 2, length = 4, ops = {op_reg(dst), op_extended(src, src_ext, src_amount), {}, {}}} } -emit_cmn_er_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_ext: Extend, src_amount: u8) { append(instructions, inst_cmn_er_r_ex(dst, src, src_ext, src_amount)) } -inst_cmn_imm_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.CMN_IMM, dst, imm) } -emit_cmn_imm_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmn_imm_r_i(dst, imm)) } -inst_tst_sr_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .TST_SR, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}}} } -emit_tst_sr_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_tst_sr_r_sh(dst, src, src_shift, src_amount)) } +inst_add_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ADD, dst, src, imm) } +inst_add_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_add_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}, {}}} } +inst_add_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_add_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_add_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_add_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_add_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_add_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_add_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_add_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_add_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_add_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_add_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_add_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_add_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_add_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_add_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ADD, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_add_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_add_r_r_i(dst, src, imm)) } +emit_add_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_add_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_add_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_add_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } +emit_add_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v16b_v16b_v16b(dst, src, src2)) } +emit_add_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v8h_v8h_v8h(dst, src, src2)) } +emit_add_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v4s_v4s_v4s(dst, src, src2)) } +emit_add_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v2d_v2d_v2d(dst, src, src2)) } +emit_add_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v8b_v8b_v8b(dst, src, src2)) } +emit_add_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v4h_v4h_v4h(dst, src, src2)) } +emit_add_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_add_v2s_v2s_v2s(dst, src, src2)) } +emit_add_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_add_zb_zb_zb(rz, rz2, rz3)) } +emit_add_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_add_zh_zh_zh(rz, rz2, rz3)) } +emit_add_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_add_zs_zs_zs(rz, rz2, rz3)) } +emit_add_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_add_zd_zd_zd(rz, rz2, rz3)) } +emit_add_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_add_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_add_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_add_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_add_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_add_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_add_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_add_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_adds_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ADDS, dst, src, imm) } +inst_adds_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADDS, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_adds_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ADDS, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}, {}}} } +emit_adds_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_adds_r_r_i(dst, src, imm)) } +emit_adds_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_adds_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_adds_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_adds_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } +inst_sub_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.SUB, dst, src, imm) } +inst_sub_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_sub_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}, {}}} } +inst_sub_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_sub_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sub_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_sub_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_sub_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_sub_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_sub_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sub_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_sub_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_sub_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_sub_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_sub_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUB, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_sub_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sub_r_r_i(dst, src, imm)) } +emit_sub_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_sub_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_sub_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_sub_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } +emit_sub_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_v16b_v16b_v16b(dst, src, src2)) } +emit_sub_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_v8h_v8h_v8h(dst, src, src2)) } +emit_sub_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_v4s_v4s_v4s(dst, src, src2)) } +emit_sub_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sub_v2d_v2d_v2d(dst, src, src2)) } +emit_sub_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sub_zb_zb_zb(rz, rz2, rz3)) } +emit_sub_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sub_zh_zh_zh(rz, rz2, rz3)) } +emit_sub_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sub_zs_zs_zs(rz, rz2, rz3)) } +emit_sub_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sub_zd_zd_zd(rz, rz2, rz3)) } +emit_sub_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sub_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_sub_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sub_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_sub_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sub_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_sub_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sub_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_subs_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.SUBS, dst, src, imm) } +inst_subs_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUBS, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_subs_r_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .SUBS, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_extended(src2, src2_ext, src2_amount), {}, {}}} } +emit_subs_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_subs_r_r_i(dst, src, imm)) } +emit_subs_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_subs_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_subs_r_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_ext: Extend, src2_amount: u8) { append(instructions, inst_subs_r_r_ex(dst, src, src2, src2_ext, src2_amount)) } +inst_movz_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MOVZ, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 2), op_imm(imm2, 1), {}, {}}} } +emit_movz_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_movz_r_i_i(dst, imm, imm2)) } +inst_movn_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MOVN, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 2), op_imm(imm2, 1), {}, {}}} } +emit_movn_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_movn_r_i_i(dst, imm, imm2)) } +inst_movk_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MOVK, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 2), op_imm(imm2, 1), {}, {}}} } +emit_movk_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_movk_r_i_i(dst, imm, imm2)) } +inst_adr_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .ADR, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}, {}}} } +emit_adr_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_adr_r_l(dst, label)) } +inst_adrp_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .ADRP, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}, {}}} } +emit_adrp_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_adrp_r_l(dst, label)) } +inst_and_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_and_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.AND, dst, src, imm) } +inst_and_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_and_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_and_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_and_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_and_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_and_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .AND, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_and_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_and_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_and_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_and_r_r_i(dst, src, imm)) } +emit_and_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_and_v16b_v16b_v16b(dst, src, src2)) } +emit_and_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_and_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_and_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_and_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_and_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_and_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_and_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_and_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_and_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_and_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_ands_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ANDS, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_ands_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ANDS, dst, src, imm) } +inst_ands_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ANDS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_ands_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_ands_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_ands_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ands_r_r_i(dst, src, imm)) } +emit_ands_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_ands_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_orr_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_orr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ORR, dst, src, imm) } +inst_orr_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_orr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_orr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_orr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_orr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_orr_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORR, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_orr_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_orr_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_orr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_orr_r_r_i(dst, src, imm)) } +emit_orr_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_orr_v16b_v16b_v16b(dst, src, src2)) } +emit_orr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_orr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_orr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_orr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_orr_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orr_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_eor_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_eor_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.EOR, dst, src, imm) } +inst_eor_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_eor_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_eor_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_eor_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_eor_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_eor_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EOR, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_eor_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_eor_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_eor_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_eor_r_r_i(dst, src, imm)) } +emit_eor_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_eor_v16b_v16b_v16b(dst, src, src2)) } +emit_eor_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eor_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_eor_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eor_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_eor_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eor_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_eor_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eor_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_eor_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eor_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_bic_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_bic_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_bic_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_bic_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_bic_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_bic_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_bic_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BIC, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_bic_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_bic_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_bic_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bic_v16b_v16b_v16b(dst, src, src2)) } +emit_bic_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bic_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_bic_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bic_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_bic_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bic_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_bic_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bic_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_bic_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bic_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_bics_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .BICS, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_bics_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BICS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_bics_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_bics_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_bics_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bics_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_orn_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .ORN, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +inst_orn_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ORN, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_orn_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORN, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_orn_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_orn_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +emit_orn_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_orn_v16b_v16b_v16b(dst, src, src2)) } +emit_orn_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orn_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_eon_r_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) -> Instruction { return Instruction{mnemonic = .EON, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_shifted(src2, src2_shift, src2_amount), {}, {}}} } +emit_eon_r_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src2_shift: Shift_Type, src2_amount: u8) { append(instructions, inst_eon_r_r_sh(dst, src, src2, src2_shift, src2_amount)) } +inst_lsl_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.LSL, dst, src, src2) } +inst_lsl_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_lsl_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_lsl_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_lsl_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_lsl_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.LSL, dst, src, imm) } +emit_lsl_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsl_r_r_r(dst, src, src2)) } +emit_lsl_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsl_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_lsl_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsl_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_lsl_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsl_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_lsl_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsl_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_lsl_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsl_r_r_i(dst, src, imm)) } +inst_lsr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.LSR, dst, src, src2) } +inst_lsr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_lsr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_lsr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_lsr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_lsr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.LSR, dst, src, imm) } +emit_lsr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_lsr_r_r_r(dst, src, src2)) } +emit_lsr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_lsr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_lsr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_lsr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_lsr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_lsr_r_r_i(dst, src, imm)) } +inst_asr_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ASR, dst, src, src2) } +inst_asr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_asr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_asr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_asr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_asr_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ASR, dst, src, imm) } +emit_asr_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_asr_r_r_r(dst, src, src2)) } +emit_asr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_asr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_asr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_asr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_asr_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_asr_r_r_i(dst, src, imm)) } +inst_ror_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ROR, dst, src, src2) } +inst_ror_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return inst_r_r_i(.ROR, dst, src, imm) } +emit_ror_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ror_r_r_r(dst, src, src2)) } +emit_ror_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ror_r_r_i(dst, src, imm)) } +inst_udiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.UDIV, dst, src, src2) } +inst_udiv_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UDIV, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_udiv_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UDIV, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_udiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udiv_r_r_r(dst, src, src2)) } +emit_udiv_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_udiv_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_udiv_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_udiv_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_sdiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SDIV, dst, src, src2) } +inst_sdiv_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SDIV, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_sdiv_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SDIV, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_sdiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdiv_r_r_r(dst, src, src2)) } +emit_sdiv_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sdiv_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_sdiv_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sdiv_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_madd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.MADD, dst, src, src2, src3) } +emit_madd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_madd_r_r_r_r(dst, src, src2, src3)) } +inst_msub_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.MSUB, dst, src, src2, src3) } +emit_msub_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_msub_r_r_r_r(dst, src, src2, src3)) } +inst_smaddl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.SMADDL, dst, src, src2, src3) } +emit_smaddl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smaddl_r_r_r_r(dst, src, src2, src3)) } +inst_smsubl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.SMSUBL, dst, src, src2, src3) } +emit_smsubl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_smsubl_r_r_r_r(dst, src, src2, src3)) } +inst_umaddl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.UMADDL, dst, src, src2, src3) } +emit_umaddl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umaddl_r_r_r_r(dst, src, src2, src3)) } +inst_umsubl_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.UMSUBL, dst, src, src2, src3) } +emit_umsubl_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_umsubl_r_r_r_r(dst, src, src2, src3)) } +inst_smulh_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SMULH, dst, src, src2) } +inst_smulh_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMULH, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_smulh_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMULH, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_smulh_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMULH, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_smulh_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMULH, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_smulh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smulh_r_r_r(dst, src, src2)) } +emit_smulh_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smulh_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_smulh_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smulh_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_smulh_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smulh_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_smulh_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smulh_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_umulh_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.UMULH, dst, src, src2) } +inst_umulh_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMULH, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_umulh_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMULH, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_umulh_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMULH, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_umulh_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMULH, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_umulh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umulh_r_r_r(dst, src, src2)) } +emit_umulh_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umulh_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_umulh_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umulh_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_umulh_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umulh_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_umulh_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umulh_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_clz_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.CLZ, dst, src) } +inst_clz_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_clz_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_clz_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_clz_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_clz_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_clz_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_clz_zb_p_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}, {}}} } +inst_clz_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_clz_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_clz_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLZ, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_clz_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_r_r(dst, src)) } +emit_clz_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v8b_v8b(dst, src)) } +emit_clz_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v16b_v16b(dst, src)) } +emit_clz_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v4h_v4h(dst, src)) } +emit_clz_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v8h_v8h(dst, src)) } +emit_clz_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v2s_v2s(dst, src)) } +emit_clz_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_clz_v4s_v4s(dst, src)) } +emit_clz_zb_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_clz_zb_p_zb(rz, rz2, rz3)) } +emit_clz_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_clz_zh_p_zh(rz, rz2, rz3)) } +emit_clz_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_clz_zs_p_zs(rz, rz2, rz3)) } +emit_clz_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_clz_zd_p_zd(rz, rz2, rz3)) } +inst_cls_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.CLS, dst, src) } +inst_cls_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_cls_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_cls_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_cls_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_cls_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_cls_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_cls_zb_p_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}, {}}} } +inst_cls_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_cls_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_cls_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CLS, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_cls_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_r_r(dst, src)) } +emit_cls_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v8b_v8b(dst, src)) } +emit_cls_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v16b_v16b(dst, src)) } +emit_cls_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v4h_v4h(dst, src)) } +emit_cls_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v8h_v8h(dst, src)) } +emit_cls_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v2s_v2s(dst, src)) } +emit_cls_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cls_v4s_v4s(dst, src)) } +emit_cls_zb_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cls_zb_p_zb(rz, rz2, rz3)) } +emit_cls_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cls_zh_p_zh(rz, rz2, rz3)) } +emit_cls_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cls_zs_p_zs(rz, rz2, rz3)) } +emit_cls_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cls_zd_p_zd(rz, rz2, rz3)) } +inst_rbit_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.RBIT, dst, src) } +inst_rbit_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RBIT, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_rbit_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .RBIT, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +emit_rbit_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_r_r(dst, src)) } +emit_rbit_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_v8b_v8b(dst, src)) } +emit_rbit_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rbit_v16b_v16b(dst, src)) } +inst_rev_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.REV, dst, src) } +inst_rev_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}, {}}} } +inst_rev_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, length = 4, ops = {op_z_h(rz), op_z_h(rz2), {}, {}, {}}} } +inst_rev_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, length = 4, ops = {op_z_s(rz), op_z_s(rz2), {}, {}, {}}} } +inst_rev_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, length = 4, ops = {op_z_d(rz), op_z_d(rz2), {}, {}, {}}} } +inst_rev_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .REV, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_rev_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev_r_r(dst, src)) } +emit_rev_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_rev_zb_zb(rz, rz2)) } +emit_rev_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_rev_zh_zh(rz, rz2)) } +emit_rev_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_rev_zs_zs(rz, rz2)) } +emit_rev_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_rev_zd_zd(rz, rz2)) } +emit_rev_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_rev_pb_pb(rz, rz2)) } +inst_rev16_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.REV16, dst, src) } +inst_rev16_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV16, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_rev16_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV16, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +emit_rev16_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_r_r(dst, src)) } +emit_rev16_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_v8b_v8b(dst, src)) } +emit_rev16_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev16_v16b_v16b(dst, src)) } +inst_rev32_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.REV32, dst, src) } +inst_rev32_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV32, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_rev32_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV32, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_rev32_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV32, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_rev32_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV32, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_rev32_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_r_r(dst, src)) } +emit_rev32_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_v8b_v8b(dst, src)) } +emit_rev32_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_v16b_v16b(dst, src)) } +emit_rev32_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_v4h_v4h(dst, src)) } +emit_rev32_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev32_v8h_v8h(dst, src)) } +inst_csel_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSEL, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond), {}}} } +emit_csel_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csel_r_r_r_c(dst, src, src2, cond)) } +inst_csinc_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSINC, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond), {}}} } +emit_csinc_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csinc_r_r_r_c(dst, src, src2, cond)) } +inst_csinv_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSINV, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond), {}}} } +emit_csinv_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csinv_r_r_r_c(dst, src, src2, cond)) } +inst_csneg_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSNEG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond), {}}} } +emit_csneg_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_csneg_r_r_r_c(dst, src, src2, cond)) } +inst_ccmp_r_r_i_c :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMP, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_cond(cond), {}}} } +inst_ccmp_r_i_i_c :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMP, operand_count = 4, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_imm(imm2, 1), op_cond(cond), {}}} } +emit_ccmp_r_r_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, cond: Cond) { append(instructions, inst_ccmp_r_r_i_c(dst, src, imm, cond)) } +emit_ccmp_r_i_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64, cond: Cond) { append(instructions, inst_ccmp_r_i_i_c(dst, imm, imm2, cond)) } +inst_ccmn_r_r_i_c :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMN, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_cond(cond), {}}} } +inst_ccmn_r_i_i_c :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64, cond: Cond) -> Instruction { return Instruction{mnemonic = .CCMN, operand_count = 4, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_imm(imm2, 1), op_cond(cond), {}}} } +emit_ccmn_r_r_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, cond: Cond) { append(instructions, inst_ccmn_r_r_i_c(dst, src, imm, cond)) } +emit_ccmn_r_i_i_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64, cond: Cond) { append(instructions, inst_ccmn_r_i_i_c(dst, imm, imm2, cond)) } +inst_cset_r_c :: #force_inline proc "contextless" (dst: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSET, operand_count = 2, length = 4, ops = {op_reg(dst), op_cond(cond), {}, {}, {}}} } +emit_cset_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, cond: Cond) { append(instructions, inst_cset_r_c(dst, cond)) } +inst_csetm_r_c :: #force_inline proc "contextless" (dst: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CSETM, operand_count = 2, length = 4, ops = {op_reg(dst), op_cond(cond), {}, {}, {}}} } +emit_csetm_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, cond: Cond) { append(instructions, inst_csetm_r_c(dst, cond)) } +inst_cinc_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CINC, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_cond(cond), {}, {}}} } +emit_cinc_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond) { append(instructions, inst_cinc_r_r_c(dst, src, cond)) } +inst_cinv_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CINV, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_cond(cond), {}, {}}} } +emit_cinv_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond) { append(instructions, inst_cinv_r_r_c(dst, src, cond)) } +inst_cneg_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .CNEG, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_cond(cond), {}, {}}} } +emit_cneg_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, cond: Cond) { append(instructions, inst_cneg_r_r_c(dst, src, cond)) } +inst_extr_r_r_r_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EXTR, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_imm(imm, 1), {}}} } +emit_extr_r_r_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_extr_r_r_r_i(dst, src, src2, imm)) } +inst_b_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B, label) } +emit_b_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_l(label)) } +inst_bl_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BL, label) } +emit_bl_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bl_l(label)) } +inst_br_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BR, dst) } +emit_br_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_br_r(dst)) } +inst_blr_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BLR, dst) } +emit_blr_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blr_r(dst)) } +inst_ret_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.RET, dst) } +inst_ret_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.RET) } +emit_ret_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_ret_r(dst)) } +emit_ret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ret_none()) } +inst_b_eq_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_EQ, label) } +emit_b_eq_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_eq_l(label)) } +inst_b_ne_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_NE, label) } +emit_b_ne_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_ne_l(label)) } +inst_b_cs_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_CS, label) } +emit_b_cs_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_cs_l(label)) } +inst_b_cc_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_CC, label) } +emit_b_cc_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_cc_l(label)) } +inst_b_mi_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_MI, label) } +emit_b_mi_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_mi_l(label)) } +inst_b_pl_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_PL, label) } +emit_b_pl_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_pl_l(label)) } +inst_b_vs_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_VS, label) } +emit_b_vs_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_vs_l(label)) } +inst_b_vc_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_VC, label) } +emit_b_vc_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_vc_l(label)) } +inst_b_hi_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_HI, label) } +emit_b_hi_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_hi_l(label)) } +inst_b_ls_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_LS, label) } +emit_b_ls_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_ls_l(label)) } +inst_b_ge_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_GE, label) } +emit_b_ge_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_ge_l(label)) } +inst_b_lt_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_LT, label) } +emit_b_lt_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_lt_l(label)) } +inst_b_gt_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_GT, label) } +emit_b_gt_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_gt_l(label)) } +inst_b_le_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_LE, label) } +emit_b_le_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_le_l(label)) } +inst_b_al_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_AL, label) } +emit_b_al_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_al_l(label)) } +inst_b_nv_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.B_NV, label) } +emit_b_nv_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_b_nv_l(label)) } +inst_cbz_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .CBZ, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}, {}}} } +emit_cbz_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_cbz_r_l(dst, label)) } +inst_cbnz_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .CBNZ, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}, {}}} } +emit_cbnz_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_cbnz_r_l(dst, label)) } +inst_tbz_r_i_l :: #force_inline proc "contextless" (dst: Register, imm: i64, label: u32) -> Instruction { return Instruction{mnemonic = .TBZ, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_label(label, 4), {}, {}}} } +emit_tbz_r_i_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32) { append(instructions, inst_tbz_r_i_l(dst, imm, label)) } +inst_tbnz_r_i_l :: #force_inline proc "contextless" (dst: Register, imm: i64, label: u32) -> Instruction { return Instruction{mnemonic = .TBNZ, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 1), op_label(label, 4), {}, {}}} } +emit_tbnz_r_i_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, label: u32) { append(instructions, inst_tbnz_r_i_l(dst, imm, label)) } +inst_ldr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDR, dst, mem) } +inst_ldr_r_l :: #force_inline proc "contextless" (dst: Register, label: u32) -> Instruction { return Instruction{mnemonic = .LDR, operand_count = 2, length = 4, ops = {op_reg(dst), op_label(label, 4), {}, {}, {}}} } +inst_ldr_z_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDR, operand_count = 2, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_mem(mem), {}, {}, {}}} } +inst_ldr_p_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDR, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_mem(mem), {}, {}, {}}} } +inst_ldr_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDR, operand_count = 2, length = 4, ops = {op_imm(imm, 4), op_mem(mem), {}, {}, {}}} } +emit_ldr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldr_r_m(dst, mem)) } +emit_ldr_r_l :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, label: u32) { append(instructions, inst_ldr_r_l(dst, label)) } +emit_ldr_z_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_ldr_z_m(rz, mem)) } +emit_ldr_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_ldr_p_m(rz, mem)) } +emit_ldr_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_ldr_i_m(imm, mem)) } +inst_str_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STR, dst, mem) } +inst_str_z_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .STR, operand_count = 2, length = 4, ops = {op_reg(Register(REG_Z | (u16(rz) & 0x1F))), op_mem(mem), {}, {}, {}}} } +inst_str_p_m :: #force_inline proc "contextless" (rz: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .STR, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_mem(mem), {}, {}, {}}} } +inst_str_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .STR, operand_count = 2, length = 4, ops = {op_imm(imm, 4), op_mem(mem), {}, {}, {}}} } +emit_str_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_str_r_m(dst, mem)) } +emit_str_z_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_str_z_m(rz, mem)) } +emit_str_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, mem: Memory) { append(instructions, inst_str_p_m(rz, mem)) } +emit_str_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_str_i_m(imm, mem)) } +inst_ldrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRB, dst, mem) } +emit_ldrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrb_r_m(dst, mem)) } +inst_strb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRB, dst, mem) } +emit_strb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strb_r_m(dst, mem)) } +inst_ldrsb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSB, dst, mem) } +emit_ldrsb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsb_r_m(dst, mem)) } +inst_ldrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRH, dst, mem) } +emit_ldrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrh_r_m(dst, mem)) } +inst_strh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STRH, dst, mem) } +emit_strh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_strh_r_m(dst, mem)) } +inst_ldrsh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSH, dst, mem) } +emit_ldrsh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsh_r_m(dst, mem)) } +inst_ldrsw_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRSW, dst, mem) } +emit_ldrsw_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrsw_r_m(dst, mem)) } +inst_ldp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDP, dst, src, mem) } +emit_ldp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldp_r_r_m(dst, src, mem)) } +inst_stp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STP, dst, src, mem) } +emit_stp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stp_r_r_m(dst, src, mem)) } +inst_ldpsw_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDPSW, dst, src, mem) } +emit_ldpsw_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldpsw_r_r_m(dst, src, mem)) } +inst_ldar_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAR, dst, mem) } +emit_ldar_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldar_r_m(dst, mem)) } +inst_stlr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLR, dst, mem) } +emit_stlr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlr_r_m(dst, mem)) } +inst_ldarb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDARB, dst, mem) } +emit_ldarb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldarb_r_m(dst, mem)) } +inst_stlrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLRB, dst, mem) } +emit_stlrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlrb_r_m(dst, mem)) } +inst_ldarh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDARH, dst, mem) } +emit_ldarh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldarh_r_m(dst, mem)) } +inst_stlrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLRH, dst, mem) } +emit_stlrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlrh_r_m(dst, mem)) } +inst_ldxr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDXR, dst, mem) } +emit_ldxr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldxr_r_m(dst, mem)) } +inst_stxr_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STXR, dst, src, mem) } +emit_stxr_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stxr_r_r_m(dst, src, mem)) } +inst_ldaxr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAXR, dst, mem) } +emit_ldaxr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaxr_r_m(dst, mem)) } +inst_stlxr_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STLXR, dst, src, mem) } +emit_stlxr_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stlxr_r_r_m(dst, src, mem)) } +inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.NOP) } +emit_nop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_nop_none()) } +inst_yield_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.YIELD) } +emit_yield_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_yield_none()) } +inst_wfe_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.WFE) } +emit_wfe_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfe_none()) } +inst_wfi_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.WFI) } +emit_wfi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wfi_none()) } +inst_sev_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SEV) } +emit_sev_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sev_none()) } +inst_sevl_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SEVL) } +emit_sevl_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sevl_none()) } +inst_hint_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HINT, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}, {}}} } +emit_hint_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hint_i(imm)) } +inst_mrs_r_s :: #force_inline proc "contextless" (dst: Register, sysreg: Register) -> Instruction { return Instruction{mnemonic = .MRS, operand_count = 2, length = 4, ops = {op_reg(dst), op_sysreg(sysreg), {}, {}, {}}} } +emit_mrs_r_s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, sysreg: Register) { append(instructions, inst_mrs_r_s(dst, sysreg)) } +inst_msr_i_i :: #force_inline proc "contextless" (imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .MSR, operand_count = 2, length = 4, ops = {op_imm(imm, 4), op_imm(imm2, 1), {}, {}, {}}} } +inst_msr_s_r :: #force_inline proc "contextless" (sysreg: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MSR, operand_count = 2, length = 4, ops = {op_sysreg(sysreg), op_reg(src), {}, {}, {}}} } +emit_msr_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, imm2: i64) { append(instructions, inst_msr_i_i(imm, imm2)) } +emit_msr_s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, sysreg: Register, src: Register) { append(instructions, inst_msr_s_r(sysreg, src)) } +inst_isb_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .ISB, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}, {}}} } +emit_isb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_isb_i(imm)) } +inst_dsb_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DSB, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}, {}}} } +emit_dsb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dsb_i(imm)) } +inst_dmb_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .DMB, operand_count = 1, length = 4, ops = {op_imm(imm, 1), {}, {}, {}, {}}} } +emit_dmb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_dmb_i(imm)) } +inst_svc_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SVC, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}, {}}} } +emit_svc_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_svc_i(imm)) } +inst_hvc_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HVC, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}, {}}} } +emit_hvc_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hvc_i(imm)) } +inst_smc_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SMC, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}, {}}} } +emit_smc_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_smc_i(imm)) } +inst_brk_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .BRK, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}, {}}} } +emit_brk_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_brk_i(imm)) } +inst_hlt_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .HLT, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}, {}}} } +emit_hlt_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_hlt_i(imm)) } +inst_eret_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.ERET) } +emit_eret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eret_none()) } +inst_fmov_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FMOV, dst, src) } +inst_fmov_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.FMOV, dst, imm) } +inst_fmov_v2s_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FMOV, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_fmov_v4s_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FMOV, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_fmov_v2d_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FMOV, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_fmov_v4h_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FMOV, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_fmov_v8h_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FMOV, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_imm(imm, 1), {}, {}, {}}} } +emit_fmov_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmov_r_r(dst, src)) } +emit_fmov_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_r_i(dst, imm)) } +emit_fmov_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_v2s_i(dst, imm)) } +emit_fmov_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_v4s_i(dst, imm)) } +emit_fmov_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_v2d_i(dst, imm)) } +emit_fmov_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_v4h_i(dst, imm)) } +emit_fmov_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_fmov_v8h_i(dst, imm)) } +inst_fabs_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FABS, dst, src) } +inst_fabs_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fabs_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fabs_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fabs_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fabs_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_fabs_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_fabs_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_fabs_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FABS, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_fabs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_r_r(dst, src)) } +emit_fabs_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_v2s_v2s(dst, src)) } +emit_fabs_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_v4s_v4s(dst, src)) } +emit_fabs_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_v2d_v2d(dst, src)) } +emit_fabs_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_v4h_v4h(dst, src)) } +emit_fabs_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fabs_v8h_v8h(dst, src)) } +emit_fabs_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fabs_zh_p_zh(rz, rz2, rz3)) } +emit_fabs_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fabs_zs_p_zs(rz, rz2, rz3)) } +emit_fabs_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fabs_zd_p_zd(rz, rz2, rz3)) } +inst_fneg_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FNEG, dst, src) } +inst_fneg_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fneg_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fneg_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fneg_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fneg_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_fneg_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_fneg_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_fneg_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FNEG, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_fneg_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_r_r(dst, src)) } +emit_fneg_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_v2s_v2s(dst, src)) } +emit_fneg_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_v4s_v4s(dst, src)) } +emit_fneg_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_v2d_v2d(dst, src)) } +emit_fneg_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_v4h_v4h(dst, src)) } +emit_fneg_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fneg_v8h_v8h(dst, src)) } +emit_fneg_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fneg_zh_p_zh(rz, rz2, rz3)) } +emit_fneg_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fneg_zs_p_zs(rz, rz2, rz3)) } +emit_fneg_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fneg_zd_p_zd(rz, rz2, rz3)) } +inst_fsqrt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FSQRT, dst, src) } +inst_fsqrt_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fsqrt_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fsqrt_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fsqrt_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fsqrt_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_fsqrt_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_fsqrt_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_fsqrt_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FSQRT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_fsqrt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_r_r(dst, src)) } +emit_fsqrt_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_v2s_v2s(dst, src)) } +emit_fsqrt_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_v4s_v4s(dst, src)) } +emit_fsqrt_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_v2d_v2d(dst, src)) } +emit_fsqrt_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_v4h_v4h(dst, src)) } +emit_fsqrt_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fsqrt_v8h_v8h(dst, src)) } +emit_fsqrt_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fsqrt_zh_p_zh(rz, rz2, rz3)) } +emit_fsqrt_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fsqrt_zs_p_zs(rz, rz2, rz3)) } +emit_fsqrt_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fsqrt_zd_p_zd(rz, rz2, rz3)) } +inst_fadd_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FADD, dst, src, src2) } +inst_fadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fadd_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fadd_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_fadd_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_fadd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_fadd_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fadd_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fadd_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FADD, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fadd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_r_r_r(dst, src, src2)) } +emit_fadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_v2s_v2s_v2s(dst, src, src2)) } +emit_fadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_v4s_v4s_v4s(dst, src, src2)) } +emit_fadd_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fadd_v2d_v2d_v2d(dst, src, src2)) } +emit_fadd_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fadd_zh_zh_zh(rz, rz2, rz3)) } +emit_fadd_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fadd_zs_zs_zs(rz, rz2, rz3)) } +emit_fadd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fadd_zd_zd_zd(rz, rz2, rz3)) } +emit_fadd_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fadd_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fadd_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fadd_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fadd_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fadd_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fsub_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FSUB, dst, src, src2) } +inst_fsub_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fsub_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fsub_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fsub_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_fsub_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_fsub_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_fsub_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fsub_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fsub_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FSUB, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fsub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_r_r_r(dst, src, src2)) } +emit_fsub_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_v2s_v2s_v2s(dst, src, src2)) } +emit_fsub_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_v4s_v4s_v4s(dst, src, src2)) } +emit_fsub_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fsub_v2d_v2d_v2d(dst, src, src2)) } +emit_fsub_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fsub_zh_zh_zh(rz, rz2, rz3)) } +emit_fsub_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fsub_zs_zs_zs(rz, rz2, rz3)) } +emit_fsub_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fsub_zd_zd_zd(rz, rz2, rz3)) } +emit_fsub_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fsub_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fsub_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fsub_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fsub_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fsub_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fmul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMUL, dst, src, src2) } +inst_fmul_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmul_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmul_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmul_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_fmul_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_fmul_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_fmul_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fmul_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fmul_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMUL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_r_r_r(dst, src, src2)) } +emit_fmul_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_v2s_v2s_v2s(dst, src, src2)) } +emit_fmul_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_v4s_v4s_v4s(dst, src, src2)) } +emit_fmul_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmul_v2d_v2d_v2d(dst, src, src2)) } +emit_fmul_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fmul_zh_zh_zh(rz, rz2, rz3)) } +emit_fmul_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fmul_zs_zs_zs(rz, rz2, rz3)) } +emit_fmul_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fmul_zd_zd_zd(rz, rz2, rz3)) } +emit_fmul_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmul_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fmul_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmul_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fmul_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmul_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fdiv_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FDIV, dst, src, src2) } +inst_fdiv_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FDIV, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fdiv_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FDIV, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fdiv_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FDIV, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fdiv_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FDIV, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fdiv_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FDIV, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fdiv_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FDIV, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fdiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_r_r_r(dst, src, src2)) } +emit_fdiv_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_v2s_v2s_v2s(dst, src, src2)) } +emit_fdiv_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_v4s_v4s_v4s(dst, src, src2)) } +emit_fdiv_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fdiv_v2d_v2d_v2d(dst, src, src2)) } +emit_fdiv_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fdiv_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fdiv_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fdiv_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fdiv_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fdiv_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fnmul_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FNMUL, dst, src, src2) } +emit_fnmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fnmul_r_r_r(dst, src, src2)) } +inst_fmadd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FMADD, dst, src, src2, src3) } +emit_fmadd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fmadd_r_r_r_r(dst, src, src2, src3)) } +inst_fmsub_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FMSUB, dst, src, src2, src3) } +emit_fmsub_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fmsub_r_r_r_r(dst, src, src2, src3)) } +inst_fnmadd_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FNMADD, dst, src, src2, src3) } +emit_fnmadd_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fnmadd_r_r_r_r(dst, src, src2, src3)) } +inst_fnmsub_r_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return inst_r_r_r_r(.FNMSUB, dst, src, src2, src3) } +emit_fnmsub_r_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_fnmsub_r_r_r_r(dst, src, src2, src3)) } +inst_fcmp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCMP, dst, src) } +emit_fcmp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmp_r_r(dst, src)) } +inst_fcmpe_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCMPE, dst, src) } +emit_fcmpe_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmpe_r_r(dst, src)) } +inst_fcsel_r_r_r_c :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, cond: Cond) -> Instruction { return Instruction{mnemonic = .FCSEL, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_cond(cond), {}}} } +emit_fcsel_r_r_r_c :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, cond: Cond) { append(instructions, inst_fcsel_r_r_r_c(dst, src, src2, cond)) } +inst_fmax_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMAX, dst, src, src2) } +inst_fmax_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmax_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmax_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmax_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fmax_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fmax_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fmax_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fmax_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMAX, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fmax_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_r_r_r(dst, src, src2)) } +emit_fmax_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_v2s_v2s_v2s(dst, src, src2)) } +emit_fmax_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_v4s_v4s_v4s(dst, src, src2)) } +emit_fmax_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_v2d_v2d_v2d(dst, src, src2)) } +emit_fmax_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_v4h_v4h_v4h(dst, src, src2)) } +emit_fmax_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmax_v8h_v8h_v8h(dst, src, src2)) } +emit_fmax_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmax_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fmax_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmax_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fmax_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmax_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fmin_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMIN, dst, src, src2) } +inst_fmin_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmin_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmin_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmin_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fmin_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fmin_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fmin_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fmin_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMIN, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fmin_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_r_r_r(dst, src, src2)) } +emit_fmin_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_v2s_v2s_v2s(dst, src, src2)) } +emit_fmin_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_v4s_v4s_v4s(dst, src, src2)) } +emit_fmin_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_v2d_v2d_v2d(dst, src, src2)) } +emit_fmin_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_v4h_v4h_v4h(dst, src, src2)) } +emit_fmin_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmin_v8h_v8h_v8h(dst, src, src2)) } +emit_fmin_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmin_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fmin_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmin_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fmin_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmin_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fmaxnm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMAXNM, dst, src, src2) } +inst_fmaxnm_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmaxnm_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmaxnm_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmaxnm_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fmaxnm_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fmaxnm_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fmaxnm_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fmaxnm_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMAXNM, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fmaxnm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_r_r_r(dst, src, src2)) } +emit_fmaxnm_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_v2s_v2s_v2s(dst, src, src2)) } +emit_fmaxnm_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_v4s_v4s_v4s(dst, src, src2)) } +emit_fmaxnm_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_v2d_v2d_v2d(dst, src, src2)) } +emit_fmaxnm_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_v4h_v4h_v4h(dst, src, src2)) } +emit_fmaxnm_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnm_v8h_v8h_v8h(dst, src, src2)) } +emit_fmaxnm_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmaxnm_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fmaxnm_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmaxnm_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fmaxnm_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmaxnm_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fminnm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.FMINNM, dst, src, src2) } +inst_fminnm_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fminnm_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fminnm_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fminnm_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fminnm_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fminnm_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fminnm_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fminnm_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMINNM, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fminnm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_r_r_r(dst, src, src2)) } +emit_fminnm_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_v2s_v2s_v2s(dst, src, src2)) } +emit_fminnm_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_v4s_v4s_v4s(dst, src, src2)) } +emit_fminnm_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_v2d_v2d_v2d(dst, src, src2)) } +emit_fminnm_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_v4h_v4h_v4h(dst, src, src2)) } +emit_fminnm_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnm_v8h_v8h_v8h(dst, src, src2)) } +emit_fminnm_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fminnm_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fminnm_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fminnm_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fminnm_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fminnm_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fcvt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVT, dst, src) } +emit_fcvt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvt_r_r(dst, src)) } +inst_scvtf_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SCVTF, dst, src) } +inst_scvtf_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_scvtf_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_scvtf_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_scvtf_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_scvtf_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SCVTF, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_scvtf_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_r_r(dst, src)) } +emit_scvtf_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v2s_v2s(dst, src)) } +emit_scvtf_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v4s_v4s(dst, src)) } +emit_scvtf_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v2d_v2d(dst, src)) } +emit_scvtf_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v4h_v4h(dst, src)) } +emit_scvtf_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_scvtf_v8h_v8h(dst, src)) } +inst_ucvtf_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UCVTF, dst, src) } +inst_ucvtf_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_ucvtf_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_ucvtf_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_ucvtf_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_ucvtf_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UCVTF, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_ucvtf_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_r_r(dst, src)) } +emit_ucvtf_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v2s_v2s(dst, src)) } +emit_ucvtf_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v4s_v4s(dst, src)) } +emit_ucvtf_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v2d_v2d(dst, src)) } +emit_ucvtf_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v4h_v4h(dst, src)) } +emit_ucvtf_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ucvtf_v8h_v8h(dst, src)) } +inst_fcvtzs_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTZS, dst, src) } +inst_fcvtzs_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtzs_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtzs_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtzs_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtzs_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtzs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_r_r(dst, src)) } +emit_fcvtzs_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v2s_v2s(dst, src)) } +emit_fcvtzs_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v4s_v4s(dst, src)) } +emit_fcvtzs_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v2d_v2d(dst, src)) } +emit_fcvtzs_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v4h_v4h(dst, src)) } +emit_fcvtzs_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzs_v8h_v8h(dst, src)) } +inst_fcvtzu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTZU, dst, src) } +inst_fcvtzu_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtzu_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtzu_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtzu_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtzu_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTZU, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtzu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_r_r(dst, src)) } +emit_fcvtzu_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v2s_v2s(dst, src)) } +emit_fcvtzu_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v4s_v4s(dst, src)) } +emit_fcvtzu_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v2d_v2d(dst, src)) } +emit_fcvtzu_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v4h_v4h(dst, src)) } +emit_fcvtzu_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtzu_v8h_v8h(dst, src)) } +inst_fcvtas_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTAS, dst, src) } +inst_fcvtas_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtas_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtas_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtas_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtas_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtas_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_r_r(dst, src)) } +emit_fcvtas_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v2s_v2s(dst, src)) } +emit_fcvtas_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v4s_v4s(dst, src)) } +emit_fcvtas_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v2d_v2d(dst, src)) } +emit_fcvtas_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v4h_v4h(dst, src)) } +emit_fcvtas_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtas_v8h_v8h(dst, src)) } +inst_fcvtau_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTAU, dst, src) } +inst_fcvtau_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtau_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtau_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtau_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtau_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTAU, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtau_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_r_r(dst, src)) } +emit_fcvtau_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v2s_v2s(dst, src)) } +emit_fcvtau_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v4s_v4s(dst, src)) } +emit_fcvtau_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v2d_v2d(dst, src)) } +emit_fcvtau_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v4h_v4h(dst, src)) } +emit_fcvtau_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtau_v8h_v8h(dst, src)) } +inst_fcvtns_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTNS, dst, src) } +inst_fcvtns_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtns_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtns_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtns_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtns_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtns_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_r_r(dst, src)) } +emit_fcvtns_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v2s_v2s(dst, src)) } +emit_fcvtns_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v4s_v4s(dst, src)) } +emit_fcvtns_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v2d_v2d(dst, src)) } +emit_fcvtns_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v4h_v4h(dst, src)) } +emit_fcvtns_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtns_v8h_v8h(dst, src)) } +inst_fcvtnu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTNU, dst, src) } +inst_fcvtnu_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtnu_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtnu_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtnu_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtnu_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTNU, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtnu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_r_r(dst, src)) } +emit_fcvtnu_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v2s_v2s(dst, src)) } +emit_fcvtnu_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v4s_v4s(dst, src)) } +emit_fcvtnu_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v2d_v2d(dst, src)) } +emit_fcvtnu_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v4h_v4h(dst, src)) } +emit_fcvtnu_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtnu_v8h_v8h(dst, src)) } +inst_fcvtps_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTPS, dst, src) } +inst_fcvtps_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtps_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtps_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtps_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtps_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_r_r(dst, src)) } +emit_fcvtps_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v2s_v2s(dst, src)) } +emit_fcvtps_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v4s_v4s(dst, src)) } +emit_fcvtps_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v2d_v2d(dst, src)) } +emit_fcvtps_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v4h_v4h(dst, src)) } +emit_fcvtps_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtps_v8h_v8h(dst, src)) } +inst_fcvtpu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTPU, dst, src) } +inst_fcvtpu_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtpu_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtpu_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtpu_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtpu_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTPU, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtpu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_r_r(dst, src)) } +emit_fcvtpu_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v2s_v2s(dst, src)) } +emit_fcvtpu_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v4s_v4s(dst, src)) } +emit_fcvtpu_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v2d_v2d(dst, src)) } +emit_fcvtpu_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v4h_v4h(dst, src)) } +emit_fcvtpu_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtpu_v8h_v8h(dst, src)) } +inst_fcvtms_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTMS, dst, src) } +inst_fcvtms_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtms_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtms_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtms_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtms_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtms_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_r_r(dst, src)) } +emit_fcvtms_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v2s_v2s(dst, src)) } +emit_fcvtms_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v4s_v4s(dst, src)) } +emit_fcvtms_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v2d_v2d(dst, src)) } +emit_fcvtms_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v4h_v4h(dst, src)) } +emit_fcvtms_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtms_v8h_v8h(dst, src)) } +inst_fcvtmu_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FCVTMU, dst, src) } +inst_fcvtmu_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcvtmu_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtmu_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcvtmu_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtmu_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTMU, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_fcvtmu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_r_r(dst, src)) } +emit_fcvtmu_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v2s_v2s(dst, src)) } +emit_fcvtmu_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v4s_v4s(dst, src)) } +emit_fcvtmu_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v2d_v2d(dst, src)) } +emit_fcvtmu_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v4h_v4h(dst, src)) } +emit_fcvtmu_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtmu_v8h_v8h(dst, src)) } +inst_frinta_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTA, dst, src) } +inst_frinta_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frinta_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frinta_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frinta_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frinta_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frinta_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frinta_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frinta_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTA, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frinta_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_r_r(dst, src)) } +emit_frinta_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_v2s_v2s(dst, src)) } +emit_frinta_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_v4s_v4s(dst, src)) } +emit_frinta_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_v2d_v2d(dst, src)) } +emit_frinta_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_v4h_v4h(dst, src)) } +emit_frinta_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinta_v8h_v8h(dst, src)) } +emit_frinta_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frinta_zh_p_zh(rz, rz2, rz3)) } +emit_frinta_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frinta_zs_p_zs(rz, rz2, rz3)) } +emit_frinta_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frinta_zd_p_zd(rz, rz2, rz3)) } +inst_frinti_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTI, dst, src) } +inst_frinti_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frinti_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frinti_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frinti_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frinti_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frinti_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frinti_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frinti_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTI, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frinti_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_r_r(dst, src)) } +emit_frinti_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_v2s_v2s(dst, src)) } +emit_frinti_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_v4s_v4s(dst, src)) } +emit_frinti_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_v2d_v2d(dst, src)) } +emit_frinti_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_v4h_v4h(dst, src)) } +emit_frinti_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frinti_v8h_v8h(dst, src)) } +emit_frinti_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frinti_zh_p_zh(rz, rz2, rz3)) } +emit_frinti_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frinti_zs_p_zs(rz, rz2, rz3)) } +emit_frinti_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frinti_zd_p_zd(rz, rz2, rz3)) } +inst_frintm_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTM, dst, src) } +inst_frintm_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frintm_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frintm_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frintm_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frintm_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frintm_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frintm_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frintm_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTM, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frintm_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_r_r(dst, src)) } +emit_frintm_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_v2s_v2s(dst, src)) } +emit_frintm_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_v4s_v4s(dst, src)) } +emit_frintm_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_v2d_v2d(dst, src)) } +emit_frintm_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_v4h_v4h(dst, src)) } +emit_frintm_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintm_v8h_v8h(dst, src)) } +emit_frintm_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintm_zh_p_zh(rz, rz2, rz3)) } +emit_frintm_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintm_zs_p_zs(rz, rz2, rz3)) } +emit_frintm_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintm_zd_p_zd(rz, rz2, rz3)) } +inst_frintn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTN, dst, src) } +inst_frintn_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frintn_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frintn_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frintn_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frintn_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frintn_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frintn_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frintn_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTN, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frintn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_r_r(dst, src)) } +emit_frintn_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_v2s_v2s(dst, src)) } +emit_frintn_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_v4s_v4s(dst, src)) } +emit_frintn_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_v2d_v2d(dst, src)) } +emit_frintn_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_v4h_v4h(dst, src)) } +emit_frintn_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintn_v8h_v8h(dst, src)) } +emit_frintn_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintn_zh_p_zh(rz, rz2, rz3)) } +emit_frintn_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintn_zs_p_zs(rz, rz2, rz3)) } +emit_frintn_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintn_zd_p_zd(rz, rz2, rz3)) } +inst_frintp_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTP, dst, src) } +inst_frintp_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frintp_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frintp_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frintp_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frintp_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frintp_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frintp_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frintp_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTP, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frintp_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_r_r(dst, src)) } +emit_frintp_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_v2s_v2s(dst, src)) } +emit_frintp_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_v4s_v4s(dst, src)) } +emit_frintp_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_v2d_v2d(dst, src)) } +emit_frintp_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_v4h_v4h(dst, src)) } +emit_frintp_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintp_v8h_v8h(dst, src)) } +emit_frintp_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintp_zh_p_zh(rz, rz2, rz3)) } +emit_frintp_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintp_zs_p_zs(rz, rz2, rz3)) } +emit_frintp_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintp_zd_p_zd(rz, rz2, rz3)) } +inst_frintx_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTX, dst, src) } +inst_frintx_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frintx_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frintx_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frintx_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frintx_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frintx_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frintx_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frintx_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTX, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frintx_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_r_r(dst, src)) } +emit_frintx_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v2s_v2s(dst, src)) } +emit_frintx_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v4s_v4s(dst, src)) } +emit_frintx_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v2d_v2d(dst, src)) } +emit_frintx_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v4h_v4h(dst, src)) } +emit_frintx_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintx_v8h_v8h(dst, src)) } +emit_frintx_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintx_zh_p_zh(rz, rz2, rz3)) } +emit_frintx_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintx_zs_p_zs(rz, rz2, rz3)) } +emit_frintx_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintx_zd_p_zd(rz, rz2, rz3)) } +inst_frintz_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRINTZ, dst, src) } +inst_frintz_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frintz_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frintz_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frintz_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frintz_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_frintz_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frintz_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frintz_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRINTZ, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frintz_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_r_r(dst, src)) } +emit_frintz_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v2s_v2s(dst, src)) } +emit_frintz_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v4s_v4s(dst, src)) } +emit_frintz_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v2d_v2d(dst, src)) } +emit_frintz_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v4h_v4h(dst, src)) } +emit_frintz_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frintz_v8h_v8h(dst, src)) } +emit_frintz_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintz_zh_p_zh(rz, rz2, rz3)) } +emit_frintz_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintz_zs_p_zs(rz, rz2, rz3)) } +emit_frintz_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frintz_zd_p_zd(rz, rz2, rz3)) } +inst_tst_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.TST, dst, imm) } +inst_tst_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .TST, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}, {}}} } +emit_tst_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_tst_r_i(dst, imm)) } +emit_tst_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_tst_r_sh(dst, src, src_shift, src_amount)) } +inst_ldur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDUR, dst, mem) } +emit_ldur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldur_r_m(dst, mem)) } +inst_stur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STUR, dst, mem) } +emit_stur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stur_r_m(dst, mem)) } +inst_ldurb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURB, dst, mem) } +emit_ldurb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldurb_r_m(dst, mem)) } +inst_sturb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STURB, dst, mem) } +emit_sturb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_sturb_r_m(dst, mem)) } +inst_ldursb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURSB, dst, mem) } +emit_ldursb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldursb_r_m(dst, mem)) } +inst_ldurh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURH, dst, mem) } +emit_ldurh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldurh_r_m(dst, mem)) } +inst_sturh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STURH, dst, mem) } +emit_sturh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_sturh_r_m(dst, mem)) } +inst_ldursh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURSH, dst, mem) } +emit_ldursh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldursh_r_m(dst, mem)) } +inst_ldursw_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDURSW, dst, mem) } +emit_ldursw_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldursw_r_m(dst, mem)) } +inst_ldnp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDNP, dst, src, mem) } +emit_ldnp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldnp_r_r_m(dst, src, mem)) } +inst_stnp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STNP, dst, src, mem) } +emit_stnp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stnp_r_r_m(dst, src, mem)) } +inst_ldxp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDXP, dst, src, mem) } +emit_ldxp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldxp_r_r_m(dst, src, mem)) } +inst_stxp_r_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .STXP, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_mem(mem), {}}} } +emit_stxp_r_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory) { append(instructions, inst_stxp_r_r_r_m(dst, src, src2, mem)) } +inst_ldaxp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDAXP, dst, src, mem) } +emit_ldaxp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldaxp_r_r_m(dst, src, mem)) } +inst_stlxp_r_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .STLXP, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_reg(src2), op_mem(mem), {}}} } +emit_stlxp_r_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, mem: Memory) { append(instructions, inst_stlxp_r_r_r_m(dst, src, src2, mem)) } +inst_ldxrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDXRB, dst, mem) } +emit_ldxrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldxrb_r_m(dst, mem)) } +inst_stxrb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STXRB, dst, src, mem) } +emit_stxrb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stxrb_r_r_m(dst, src, mem)) } +inst_ldaxrb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAXRB, dst, mem) } +emit_ldaxrb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaxrb_r_m(dst, mem)) } +inst_stlxrb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STLXRB, dst, src, mem) } +emit_stlxrb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stlxrb_r_r_m(dst, src, mem)) } +inst_ldxrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDXRH, dst, mem) } +emit_ldxrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldxrh_r_m(dst, mem)) } +inst_stxrh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STXRH, dst, src, mem) } +emit_stxrh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stxrh_r_r_m(dst, src, mem)) } +inst_ldaxrh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAXRH, dst, mem) } +emit_ldaxrh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaxrh_r_m(dst, mem)) } +inst_stlxrh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STLXRH, dst, src, mem) } +emit_stlxrh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stlxrh_r_r_m(dst, src, mem)) } +inst_ldapr_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPR, dst, mem) } +emit_ldapr_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapr_r_m(dst, mem)) } +inst_ldaprb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPRB, dst, mem) } +emit_ldaprb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaprb_r_m(dst, mem)) } +inst_ldaprh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPRH, dst, mem) } +emit_ldaprh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldaprh_r_m(dst, mem)) } +inst_ldadd_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADD, dst, src, mem) } +emit_ldadd_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldadd_r_r_m(dst, src, mem)) } +inst_ldadda_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADDA, dst, src, mem) } +emit_ldadda_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldadda_r_r_m(dst, src, mem)) } +inst_ldaddl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADDL, dst, src, mem) } +emit_ldaddl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldaddl_r_r_m(dst, src, mem)) } +inst_ldaddal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDADDAL, dst, src, mem) } +emit_ldaddal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldaddal_r_r_m(dst, src, mem)) } +inst_ldclr_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLR, dst, src, mem) } +emit_ldclr_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclr_r_r_m(dst, src, mem)) } +inst_ldclra_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLRA, dst, src, mem) } +emit_ldclra_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclra_r_r_m(dst, src, mem)) } +inst_ldclrl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLRL, dst, src, mem) } +emit_ldclrl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclrl_r_r_m(dst, src, mem)) } +inst_ldclral_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDCLRAL, dst, src, mem) } +emit_ldclral_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldclral_r_r_m(dst, src, mem)) } +inst_ldeor_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEOR, dst, src, mem) } +emit_ldeor_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeor_r_r_m(dst, src, mem)) } +inst_ldeora_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEORA, dst, src, mem) } +emit_ldeora_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeora_r_r_m(dst, src, mem)) } +inst_ldeorl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEORL, dst, src, mem) } +emit_ldeorl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeorl_r_r_m(dst, src, mem)) } +inst_ldeoral_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDEORAL, dst, src, mem) } +emit_ldeoral_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldeoral_r_r_m(dst, src, mem)) } +inst_ldset_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSET, dst, src, mem) } +emit_ldset_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldset_r_r_m(dst, src, mem)) } +inst_ldseta_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSETA, dst, src, mem) } +emit_ldseta_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldseta_r_r_m(dst, src, mem)) } +inst_ldsetl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSETL, dst, src, mem) } +emit_ldsetl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsetl_r_r_m(dst, src, mem)) } +inst_ldsetal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSETAL, dst, src, mem) } +emit_ldsetal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsetal_r_r_m(dst, src, mem)) } +inst_ldsmax_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAX, dst, src, mem) } +emit_ldsmax_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmax_r_r_m(dst, src, mem)) } +inst_ldsmaxa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAXA, dst, src, mem) } +emit_ldsmaxa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmaxa_r_r_m(dst, src, mem)) } +inst_ldsmaxl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAXL, dst, src, mem) } +emit_ldsmaxl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmaxl_r_r_m(dst, src, mem)) } +inst_ldsmaxal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMAXAL, dst, src, mem) } +emit_ldsmaxal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmaxal_r_r_m(dst, src, mem)) } +inst_ldsmin_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMIN, dst, src, mem) } +emit_ldsmin_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmin_r_r_m(dst, src, mem)) } +inst_ldsmina_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMINA, dst, src, mem) } +emit_ldsmina_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsmina_r_r_m(dst, src, mem)) } +inst_ldsminl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMINL, dst, src, mem) } +emit_ldsminl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsminl_r_r_m(dst, src, mem)) } +inst_ldsminal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDSMINAL, dst, src, mem) } +emit_ldsminal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldsminal_r_r_m(dst, src, mem)) } +inst_ldumax_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAX, dst, src, mem) } +emit_ldumax_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumax_r_r_m(dst, src, mem)) } +inst_ldumaxa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAXA, dst, src, mem) } +emit_ldumaxa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumaxa_r_r_m(dst, src, mem)) } +inst_ldumaxl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAXL, dst, src, mem) } +emit_ldumaxl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumaxl_r_r_m(dst, src, mem)) } +inst_ldumaxal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMAXAL, dst, src, mem) } +emit_ldumaxal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumaxal_r_r_m(dst, src, mem)) } +inst_ldumin_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMIN, dst, src, mem) } +emit_ldumin_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumin_r_r_m(dst, src, mem)) } +inst_ldumina_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMINA, dst, src, mem) } +emit_ldumina_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_ldumina_r_r_m(dst, src, mem)) } +inst_lduminl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMINL, dst, src, mem) } +emit_lduminl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_lduminl_r_r_m(dst, src, mem)) } +inst_lduminal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.LDUMINAL, dst, src, mem) } +emit_lduminal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_lduminal_r_r_m(dst, src, mem)) } +inst_swp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWP, dst, src, mem) } +emit_swp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swp_r_r_m(dst, src, mem)) } +inst_swpa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWPA, dst, src, mem) } +emit_swpa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swpa_r_r_m(dst, src, mem)) } +inst_swpl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWPL, dst, src, mem) } +emit_swpl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swpl_r_r_m(dst, src, mem)) } +inst_swpal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.SWPAL, dst, src, mem) } +emit_swpal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_swpal_r_r_m(dst, src, mem)) } +inst_cas_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CAS, dst, src, mem) } +emit_cas_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_cas_r_r_m(dst, src, mem)) } +inst_casa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASA, dst, src, mem) } +emit_casa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casa_r_r_m(dst, src, mem)) } +inst_casl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASL, dst, src, mem) } +emit_casl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casl_r_r_m(dst, src, mem)) } +inst_casal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASAL, dst, src, mem) } +emit_casal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casal_r_r_m(dst, src, mem)) } +inst_casb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASB, dst, src, mem) } +emit_casb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casb_r_r_m(dst, src, mem)) } +inst_casab_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASAB, dst, src, mem) } +emit_casab_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casab_r_r_m(dst, src, mem)) } +inst_caslb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASLB, dst, src, mem) } +emit_caslb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caslb_r_r_m(dst, src, mem)) } +inst_casalb_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASALB, dst, src, mem) } +emit_casalb_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casalb_r_r_m(dst, src, mem)) } +inst_cash_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASH, dst, src, mem) } +emit_cash_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_cash_r_r_m(dst, src, mem)) } +inst_casah_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASAH, dst, src, mem) } +emit_casah_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casah_r_r_m(dst, src, mem)) } +inst_caslh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASLH, dst, src, mem) } +emit_caslh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caslh_r_r_m(dst, src, mem)) } +inst_casalh_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASALH, dst, src, mem) } +emit_casalh_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casalh_r_r_m(dst, src, mem)) } +inst_casp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASP, dst, src, mem) } +emit_casp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_casp_r_r_m(dst, src, mem)) } +inst_caspa_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASPA, dst, src, mem) } +emit_caspa_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caspa_r_r_m(dst, src, mem)) } +inst_caspl_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASPL, dst, src, mem) } +emit_caspl_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caspl_r_r_m(dst, src, mem)) } +inst_caspal_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.CASPAL, dst, src, mem) } +emit_caspal_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_caspal_r_r_m(dst, src, mem)) } +inst_pacia_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACIA, dst, src) } +emit_pacia_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacia_r_r(dst, src)) } +inst_pacib_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACIB, dst, src) } +emit_pacib_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacib_r_r(dst, src)) } +inst_pacda_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACDA, dst, src) } +emit_pacda_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacda_r_r(dst, src)) } +inst_pacdb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.PACDB, dst, src) } +emit_pacdb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_pacdb_r_r(dst, src)) } +inst_paciza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACIZA, dst) } +emit_paciza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_paciza_r(dst)) } +inst_pacizb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACIZB, dst) } +emit_pacizb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_pacizb_r(dst)) } +inst_pacdza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACDZA, dst) } +emit_pacdza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_pacdza_r(dst)) } +inst_pacdzb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.PACDZB, dst) } +emit_pacdzb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_pacdzb_r(dst)) } +inst_autia_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTIA, dst, src) } +emit_autia_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autia_r_r(dst, src)) } +inst_autib_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTIB, dst, src) } +emit_autib_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autib_r_r(dst, src)) } +inst_autda_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTDA, dst, src) } +emit_autda_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autda_r_r(dst, src)) } +inst_autdb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.AUTDB, dst, src) } +emit_autdb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_autdb_r_r(dst, src)) } +inst_autiza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTIZA, dst) } +emit_autiza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autiza_r(dst)) } +inst_autizb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTIZB, dst) } +emit_autizb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autizb_r(dst)) } +inst_autdza_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTDZA, dst) } +emit_autdza_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autdza_r(dst)) } +inst_autdzb_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AUTDZB, dst) } +emit_autdzb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_autdzb_r(dst)) } +inst_paciasp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIASP) } +emit_paciasp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_paciasp_none()) } +inst_pacibsp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIBSP) } +emit_pacibsp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacibsp_none()) } +inst_autiasp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIASP) } +emit_autiasp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autiasp_none()) } +inst_autibsp_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIBSP) } +emit_autibsp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autibsp_none()) } +inst_pacia1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIA1716) } +emit_pacia1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacia1716_none()) } +inst_pacib1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PACIB1716) } +emit_pacib1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pacib1716_none()) } +inst_autia1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIA1716) } +emit_autia1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autia1716_none()) } +inst_autib1716_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AUTIB1716) } +emit_autib1716_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_autib1716_none()) } +inst_pacga_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.PACGA, dst, src, src2) } +emit_pacga_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pacga_r_r_r(dst, src, src2)) } +inst_xpaci_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.XPACI, dst) } +emit_xpaci_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_xpaci_r(dst)) } +inst_xpacd_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.XPACD, dst) } +emit_xpacd_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_xpacd_r(dst)) } +inst_xpaclri_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.XPACLRI) } +emit_xpaclri_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xpaclri_none()) } +inst_retaa_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.RETAA) } +emit_retaa_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_retaa_none()) } +inst_retab_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.RETAB) } +emit_retab_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_retab_none()) } +inst_braa_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BRAA, dst, src) } +emit_braa_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_braa_r_r(dst, src)) } +inst_brab_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BRAB, dst, src) } +emit_brab_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_brab_r_r(dst, src)) } +inst_braaz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BRAAZ, dst) } +emit_braaz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_braaz_r(dst)) } +inst_brabz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BRABZ, dst) } +emit_brabz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_brabz_r(dst)) } +inst_blraa_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BLRAA, dst, src) } +emit_blraa_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_blraa_r_r(dst, src)) } +inst_blrab_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BLRAB, dst, src) } +emit_blrab_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_blrab_r_r(dst, src)) } +inst_blraaz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BLRAAZ, dst) } +emit_blraaz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blraaz_r(dst)) } +inst_blrabz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.BLRABZ, dst) } +emit_blrabz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_blrabz_r(dst)) } +inst_eretaa_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.ERETAA) } +emit_eretaa_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eretaa_none()) } +inst_eretab_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.ERETAB) } +emit_eretab_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_eretab_none()) } +inst_bti_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI) } +emit_bti_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_none()) } +inst_irg_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.IRG, dst, src, src2) } +emit_irg_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_irg_r_r_r(dst, src, src2)) } +inst_addg_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .ADDG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_imm(imm2, 1), {}}} } +emit_addg_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_addg_r_r_i_i(dst, src, imm, imm2)) } +inst_subg_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SUBG, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 1), op_imm(imm2, 1), {}}} } +emit_subg_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_subg_r_r_i_i(dst, src, imm, imm2)) } +inst_gmi_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.GMI, dst, src, src2) } +emit_gmi_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_gmi_r_r_r(dst, src, src2)) } +inst_subp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SUBP, dst, src, src2) } +emit_subp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subp_r_r_r(dst, src, src2)) } +inst_subps_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SUBPS, dst, src, src2) } +emit_subps_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subps_r_r_r(dst, src, src2)) } +inst_ldg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDG, dst, mem) } +emit_ldg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldg_r_m(dst, mem)) } +inst_stg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STG, dst, mem) } +emit_stg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stg_r_m(dst, mem)) } +inst_st2g_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.ST2G, dst, mem) } +emit_st2g_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st2g_r_m(dst, mem)) } +inst_stzg_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STZG, dst, mem) } +emit_stzg_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stzg_r_m(dst, mem)) } +inst_stz2g_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STZ2G, dst, mem) } +emit_stz2g_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stz2g_r_m(dst, mem)) } +inst_stgp_r_r_m :: #force_inline proc "contextless" (dst: Register, src: Register, mem: Memory) -> Instruction { return inst_ldp_stp(.STGP, dst, src, mem) } +emit_stgp_r_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, mem: Memory) { append(instructions, inst_stgp_r_r_m(dst, src, mem)) } +inst_ldgm_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDGM, dst, mem) } +emit_ldgm_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldgm_r_m(dst, mem)) } +inst_stgm_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STGM, dst, mem) } +emit_stgm_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stgm_r_m(dst, mem)) } +inst_stzgm_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STZGM, dst, mem) } +emit_stzgm_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stzgm_r_m(dst, mem)) } +inst_crc32b_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32B, dst, src, src2) } +emit_crc32b_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32b_r_r_r(dst, src, src2)) } +inst_crc32h_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32H, dst, src, src2) } +emit_crc32h_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32h_r_r_r(dst, src, src2)) } +inst_crc32w_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32W, dst, src, src2) } +emit_crc32w_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32w_r_r_r(dst, src, src2)) } +inst_crc32x_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32X, dst, src, src2) } +emit_crc32x_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32x_r_r_r(dst, src, src2)) } +inst_crc32cb_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CB, dst, src, src2) } +emit_crc32cb_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cb_r_r_r(dst, src, src2)) } +inst_crc32ch_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CH, dst, src, src2) } +emit_crc32ch_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32ch_r_r_r(dst, src, src2)) } +inst_crc32cw_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CW, dst, src, src2) } +emit_crc32cw_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cw_r_r_r(dst, src, src2)) } +inst_crc32cx_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CRC32CX, dst, src, src2) } +emit_crc32cx_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_crc32cx_r_r_r(dst, src, src2)) } +inst_aese_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESE, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_aese_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .AESE, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +emit_aese_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aese_v16b_v16b(dst, src)) } +emit_aese_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_aese_zb_zb_zb(rz, rz2, rz3)) } +inst_aesd_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESD, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_aesd_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .AESD, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +emit_aesd_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesd_v16b_v16b(dst, src)) } +emit_aesd_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_aesd_zb_zb_zb(rz, rz2, rz3)) } +inst_aesmc_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESMC, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_aesmc_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .AESMC, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}, {}}} } +emit_aesmc_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesmc_v16b_v16b(dst, src)) } +emit_aesmc_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_aesmc_zb_zb(rz, rz2)) } +inst_aesimc_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .AESIMC, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_aesimc_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .AESIMC, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}, {}}} } +emit_aesimc_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_aesimc_v16b_v16b(dst, src)) } +emit_aesimc_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_aesimc_zb_zb(rz, rz2)) } +inst_sha1h_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SHA1H, dst, src) } +emit_sha1h_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1h_r_r(dst, src)) } +inst_sha1c_r_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1C, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(src2), {}, {}}} } +emit_sha1c_r_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1c_r_r_v4s(dst, src, src2)) } +inst_sha1p_r_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1P, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(src2), {}, {}}} } +emit_sha1p_r_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1p_r_r_v4s(dst, src, src2)) } +inst_sha1m_r_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1M, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(src2), {}, {}}} } +emit_sha1m_r_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1m_r_r_v4s(dst, src, src2)) } +inst_sha1su0_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU0, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sha1su0_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha1su0_v4s_v4s_v4s(dst, src, src2)) } +inst_sha1su1_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA1SU1, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +emit_sha1su1_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha1su1_v4s_v4s(dst, src)) } +inst_sha256h_r_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(src2), {}, {}}} } +emit_sha256h_r_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h_r_r_v4s(dst, src, src2)) } +inst_sha256h2_r_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256H2, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_4s(src2), {}, {}}} } +emit_sha256h2_r_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256h2_r_r_v4s(dst, src, src2)) } +inst_sha256su0_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU0, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +emit_sha256su0_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha256su0_v4s_v4s(dst, src)) } +inst_sha256su1_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA256SU1, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sha256su1_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha256su1_v4s_v4s_v4s(dst, src, src2)) } +inst_sha512h_r_r_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA512H, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_2d(src2), {}, {}}} } +emit_sha512h_r_r_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha512h_r_r_v2d(dst, src, src2)) } +inst_sha512h2_r_r_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA512H2, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(src), op_v_2d(src2), {}, {}}} } +emit_sha512h2_r_r_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha512h2_r_r_v2d(dst, src, src2)) } +inst_sha512su0_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SHA512SU0, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +emit_sha512su0_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sha512su0_v2d_v2d(dst, src)) } +inst_sha512su1_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHA512SU1, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_sha512su1_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sha512su1_v2d_v2d_v2d(dst, src, src2)) } +inst_eor3_v16b_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .EOR3, operand_count = 4, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), op_v_16b(src3), {}}} } +inst_eor3_zd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EOR3, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_eor3_v16b_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_eor3_v16b_v16b_v16b_v16b(dst, src, src2, src3)) } +emit_eor3_zd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eor3_zd_zd_zd_zd(rz, rz2, rz3, rz4)) } +inst_bcax_v16b_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .BCAX, operand_count = 4, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), op_v_16b(src3), {}}} } +inst_bcax_zd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BCAX, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_bcax_v16b_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_bcax_v16b_v16b_v16b_v16b(dst, src, src2, src3)) } +emit_bcax_zd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bcax_zd_zd_zd_zd(rz, rz2, rz3, rz4)) } +inst_rax1_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RAX1, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_rax1_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rax1_v2d_v2d_v2d(dst, src, src2)) } +inst_xar_v2d_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .XAR, operand_count = 4, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), op_imm(imm, 1), {}}} } +inst_xar_zd_zd_zd_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .XAR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_imm(imm, 4), {}}} } +inst_xar_zs_zs_zs_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .XAR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), op_imm(imm, 4), {}}} } +inst_xar_zh_zh_zh_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .XAR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), op_imm(imm, 4), {}}} } +inst_xar_zb_zb_zb_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .XAR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), op_imm(imm, 4), {}}} } +emit_xar_v2d_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_xar_v2d_v2d_v2d_i(dst, src, src2, imm)) } +emit_xar_zd_zd_zd_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_xar_zd_zd_zd_i(rz, rz2, rz3, imm)) } +emit_xar_zs_zs_zs_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_xar_zs_zs_zs_i(rz, rz2, rz3, imm)) } +emit_xar_zh_zh_zh_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_xar_zh_zh_zh_i(rz, rz2, rz3, imm)) } +emit_xar_zb_zb_zb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_xar_zb_zb_zb_i(rz, rz2, rz3, imm)) } +inst_sm3partw1_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3PARTW1, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sm3partw1_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3partw1_v4s_v4s_v4s(dst, src, src2)) } +inst_sm3partw2_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM3PARTW2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sm3partw2_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm3partw2_v4s_v4s_v4s(dst, src, src2)) } +inst_sm3ss1_v4s_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, src3: Register) -> Instruction { return Instruction{mnemonic = .SM3SS1, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), op_v_4s(src3), {}}} } +emit_sm3ss1_v4s_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, src3: Register) { append(instructions, inst_sm3ss1_v4s_v4s_v4s_v4s(dst, src, src2, src3)) } +inst_sm3tt1a_v4s_v4s_ves_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SM3TT1A, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_elem_s(src2), op_lane_index(imm), {}}} } +emit_sm3tt1a_v4s_v4s_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_sm3tt1a_v4s_v4s_ves_i(dst, src, src2, imm)) } +inst_sm3tt1b_v4s_v4s_ves_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SM3TT1B, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_elem_s(src2), op_lane_index(imm), {}}} } +emit_sm3tt1b_v4s_v4s_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_sm3tt1b_v4s_v4s_ves_i(dst, src, src2, imm)) } +inst_sm3tt2a_v4s_v4s_ves_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SM3TT2A, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_elem_s(src2), op_lane_index(imm), {}}} } +emit_sm3tt2a_v4s_v4s_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_sm3tt2a_v4s_v4s_ves_i(dst, src, src2, imm)) } +inst_sm3tt2b_v4s_v4s_ves_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SM3TT2B, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_elem_s(src2), op_lane_index(imm), {}}} } +emit_sm3tt2b_v4s_v4s_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_sm3tt2b_v4s_v4s_ves_i(dst, src, src2, imm)) } +inst_sm4e_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SM4E, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +emit_sm4e_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sm4e_v4s_v4s(dst, src)) } +inst_sm4ekey_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SM4EKEY, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sm4ekey_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sm4ekey_v4s_v4s_v4s(dst, src, src2)) } +inst_pmull_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .PMULL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_pmull_v1q_v1d_v1d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .PMULL, operand_count = 3, length = 4, ops = {op_v_1q(dst), op_v_1d(src), op_v_1d(src2), {}, {}}} } +emit_pmull_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pmull_v8h_v8b_v8b(dst, src, src2)) } +emit_pmull_v1q_v1d_v1d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pmull_v1q_v1d_v1d(dst, src, src2)) } +inst_pmull2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .PMULL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_pmull2_v1q_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .PMULL2, operand_count = 3, length = 4, ops = {op_v_1q(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_pmull2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pmull2_v8h_v16b_v16b(dst, src, src2)) } +emit_pmull2_v1q_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_pmull2_v1q_v2d_v2d(dst, src, src2)) } +inst_bfcvt_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.BFCVT, dst, src) } +inst_bfcvt_zh_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BFCVT, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +emit_bfcvt_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bfcvt_r_r(dst, src)) } +emit_bfcvt_zh_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_bfcvt_zh_p_zs(rz, rz2, rz3)) } +inst_bfdot_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFDOT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_bfdot_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfdot_v4s_v8h_v8h(dst, src, src2)) } +inst_bfmmla_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFMMLA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_bfmmla_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfmmla_v4s_v8h_v8h(dst, src, src2)) } +inst_bfmlalb_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFMLALB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_bfmlalb_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfmlalb_v4s_v8h_v8h(dst, src, src2)) } +inst_bfmlalt_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BFMLALT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_bfmlalt_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bfmlalt_v4s_v8h_v8h(dst, src, src2)) } +inst_bfcvtn_v4h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .BFCVTN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4s(src), {}, {}, {}}} } +emit_bfcvtn_v4h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bfcvtn_v4h_v4s(dst, src)) } +inst_bfcvtn2_v8h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .BFCVTN2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_4s(src), {}, {}, {}}} } +emit_bfcvtn2_v8h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_bfcvtn2_v8h_v4s(dst, src)) } +inst_mul_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_mul_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_mul_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_mul_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_mul_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_mul_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_mul_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_mul_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mul_v16b_v16b_v16b(dst, src, src2)) } +emit_mul_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mul_v8h_v8h_v8h(dst, src, src2)) } +emit_mul_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mul_v4s_v4s_v4s(dst, src, src2)) } +emit_mul_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_mul_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_mul_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_mul_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_mul_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_mul_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_mul_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_mul_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_mla_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_mla_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_mla_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_mla_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_mla_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_mla_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_mla_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v8b_v8b_v8b(dst, src, src2)) } +emit_mla_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v16b_v16b_v16b(dst, src, src2)) } +emit_mla_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v4h_v4h_v4h(dst, src, src2)) } +emit_mla_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v8h_v8h_v8h(dst, src, src2)) } +emit_mla_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v2s_v2s_v2s(dst, src, src2)) } +emit_mla_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mla_v4s_v4s_v4s(dst, src, src2)) } +inst_mls_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_mls_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_mls_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_mls_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_mls_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_mls_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .MLS, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_mls_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v8b_v8b_v8b(dst, src, src2)) } +emit_mls_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v16b_v16b_v16b(dst, src, src2)) } +emit_mls_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v4h_v4h_v4h(dst, src, src2)) } +emit_mls_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v8h_v8h_v8h(dst, src, src2)) } +emit_mls_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v2s_v2s_v2s(dst, src, src2)) } +emit_mls_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_mls_v4s_v4s_v4s(dst, src, src2)) } +inst_neg_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_neg_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_neg_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_neg_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_neg_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_neg_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_neg_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_neg_zb_p_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}, {}}} } +inst_neg_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_neg_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_neg_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +inst_neg_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .NEG, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}, {}}} } +emit_neg_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v8b_v8b(dst, src)) } +emit_neg_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v16b_v16b(dst, src)) } +emit_neg_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v4h_v4h(dst, src)) } +emit_neg_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v8h_v8h(dst, src)) } +emit_neg_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v2s_v2s(dst, src)) } +emit_neg_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v4s_v4s(dst, src)) } +emit_neg_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_neg_v2d_v2d(dst, src)) } +emit_neg_zb_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_neg_zb_p_zb(rz, rz2, rz3)) } +emit_neg_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_neg_zh_p_zh(rz, rz2, rz3)) } +emit_neg_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_neg_zs_p_zs(rz, rz2, rz3)) } +emit_neg_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_neg_zd_p_zd(rz, rz2, rz3)) } +emit_neg_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_neg_r_sh(dst, src, src_shift, src_amount)) } +inst_abs_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_abs_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_abs_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_abs_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_abs_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_abs_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_abs_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_abs_zb_p_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}, {}}} } +inst_abs_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_abs_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_abs_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ABS, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_abs_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v8b_v8b(dst, src)) } +emit_abs_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v16b_v16b(dst, src)) } +emit_abs_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v4h_v4h(dst, src)) } +emit_abs_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v8h_v8h(dst, src)) } +emit_abs_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v2s_v2s(dst, src)) } +emit_abs_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v4s_v4s(dst, src)) } +emit_abs_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_abs_v2d_v2d(dst, src)) } +emit_abs_zb_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_abs_zb_p_zb(rz, rz2, rz3)) } +emit_abs_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_abs_zh_p_zh(rz, rz2, rz3)) } +emit_abs_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_abs_zs_p_zs(rz, rz2, rz3)) } +emit_abs_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_abs_zd_p_zd(rz, rz2, rz3)) } +inst_shadd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_shadd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_shadd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_shadd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_shadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_shadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_shadd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_v8b_v8b_v8b(dst, src, src2)) } +emit_shadd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_v16b_v16b_v16b(dst, src, src2)) } +emit_shadd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_v4h_v4h_v4h(dst, src, src2)) } +emit_shadd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_v8h_v8h_v8h(dst, src, src2)) } +emit_shadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_v2s_v2s_v2s(dst, src, src2)) } +emit_shadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shadd_v4s_v4s_v4s(dst, src, src2)) } +inst_uhadd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uhadd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uhadd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uhadd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uhadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uhadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_uhadd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_v8b_v8b_v8b(dst, src, src2)) } +emit_uhadd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_v16b_v16b_v16b(dst, src, src2)) } +emit_uhadd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_v4h_v4h_v4h(dst, src, src2)) } +emit_uhadd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_v8h_v8h_v8h(dst, src, src2)) } +emit_uhadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_v2s_v2s_v2s(dst, src, src2)) } +emit_uhadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhadd_v4s_v4s_v4s(dst, src, src2)) } +inst_shsub_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_shsub_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_shsub_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_shsub_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_shsub_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_shsub_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SHSUB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_shsub_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_v8b_v8b_v8b(dst, src, src2)) } +emit_shsub_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_v16b_v16b_v16b(dst, src, src2)) } +emit_shsub_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_v4h_v4h_v4h(dst, src, src2)) } +emit_shsub_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_v8h_v8h_v8h(dst, src, src2)) } +emit_shsub_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_v2s_v2s_v2s(dst, src, src2)) } +emit_shsub_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_shsub_v4s_v4s_v4s(dst, src, src2)) } +inst_uhsub_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uhsub_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uhsub_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uhsub_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uhsub_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uhsub_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UHSUB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_uhsub_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_v8b_v8b_v8b(dst, src, src2)) } +emit_uhsub_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_v16b_v16b_v16b(dst, src, src2)) } +emit_uhsub_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_v4h_v4h_v4h(dst, src, src2)) } +emit_uhsub_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_v8h_v8h_v8h(dst, src, src2)) } +emit_uhsub_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_v2s_v2s_v2s(dst, src, src2)) } +emit_uhsub_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uhsub_v4s_v4s_v4s(dst, src, src2)) } +inst_srhadd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_srhadd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_srhadd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_srhadd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_srhadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_srhadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRHADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_srhadd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_v8b_v8b_v8b(dst, src, src2)) } +emit_srhadd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_v16b_v16b_v16b(dst, src, src2)) } +emit_srhadd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_v4h_v4h_v4h(dst, src, src2)) } +emit_srhadd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_v8h_v8h_v8h(dst, src, src2)) } +emit_srhadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_v2s_v2s_v2s(dst, src, src2)) } +emit_srhadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srhadd_v4s_v4s_v4s(dst, src, src2)) } +inst_urhadd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_urhadd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_urhadd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_urhadd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_urhadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_urhadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URHADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_urhadd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_v8b_v8b_v8b(dst, src, src2)) } +emit_urhadd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_v16b_v16b_v16b(dst, src, src2)) } +emit_urhadd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_v4h_v4h_v4h(dst, src, src2)) } +emit_urhadd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_v8h_v8h_v8h(dst, src, src2)) } +emit_urhadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_v2s_v2s_v2s(dst, src, src2)) } +emit_urhadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urhadd_v4s_v4s_v4s(dst, src, src2)) } +inst_sqadd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_sqadd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_sqadd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqadd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sqadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_sqadd_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_sqadd_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_sqadd_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_sqadd_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sqadd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQADD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_sqadd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v8b_v8b_v8b(dst, src, src2)) } +emit_sqadd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v16b_v16b_v16b(dst, src, src2)) } +emit_sqadd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v4h_v4h_v4h(dst, src, src2)) } +emit_sqadd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v8h_v8h_v8h(dst, src, src2)) } +emit_sqadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v2s_v2s_v2s(dst, src, src2)) } +emit_sqadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v4s_v4s_v4s(dst, src, src2)) } +emit_sqadd_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqadd_v2d_v2d_v2d(dst, src, src2)) } +emit_sqadd_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqadd_zb_zb_zb(rz, rz2, rz3)) } +emit_sqadd_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqadd_zh_zh_zh(rz, rz2, rz3)) } +emit_sqadd_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqadd_zs_zs_zs(rz, rz2, rz3)) } +emit_sqadd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqadd_zd_zd_zd(rz, rz2, rz3)) } +inst_uqadd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uqadd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uqadd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uqadd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uqadd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uqadd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_uqadd_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_uqadd_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_uqadd_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_uqadd_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_uqadd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQADD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_uqadd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v8b_v8b_v8b(dst, src, src2)) } +emit_uqadd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v16b_v16b_v16b(dst, src, src2)) } +emit_uqadd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v4h_v4h_v4h(dst, src, src2)) } +emit_uqadd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v8h_v8h_v8h(dst, src, src2)) } +emit_uqadd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v2s_v2s_v2s(dst, src, src2)) } +emit_uqadd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v4s_v4s_v4s(dst, src, src2)) } +emit_uqadd_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqadd_v2d_v2d_v2d(dst, src, src2)) } +emit_uqadd_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqadd_zb_zb_zb(rz, rz2, rz3)) } +emit_uqadd_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqadd_zh_zh_zh(rz, rz2, rz3)) } +emit_uqadd_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqadd_zs_zs_zs(rz, rz2, rz3)) } +emit_uqadd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqadd_zd_zd_zd(rz, rz2, rz3)) } +inst_sqsub_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_sqsub_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_sqsub_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqsub_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqsub_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sqsub_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_sqsub_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_sqsub_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_sqsub_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_sqsub_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sqsub_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQSUB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_sqsub_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v8b_v8b_v8b(dst, src, src2)) } +emit_sqsub_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v16b_v16b_v16b(dst, src, src2)) } +emit_sqsub_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v4h_v4h_v4h(dst, src, src2)) } +emit_sqsub_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v8h_v8h_v8h(dst, src, src2)) } +emit_sqsub_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v2s_v2s_v2s(dst, src, src2)) } +emit_sqsub_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v4s_v4s_v4s(dst, src, src2)) } +emit_sqsub_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqsub_v2d_v2d_v2d(dst, src, src2)) } +emit_sqsub_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqsub_zb_zb_zb(rz, rz2, rz3)) } +emit_sqsub_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqsub_zh_zh_zh(rz, rz2, rz3)) } +emit_sqsub_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqsub_zs_zs_zs(rz, rz2, rz3)) } +emit_sqsub_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqsub_zd_zd_zd(rz, rz2, rz3)) } +inst_uqsub_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uqsub_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uqsub_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uqsub_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uqsub_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uqsub_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_uqsub_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_uqsub_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_uqsub_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_uqsub_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_uqsub_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UQSUB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_uqsub_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v8b_v8b_v8b(dst, src, src2)) } +emit_uqsub_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v16b_v16b_v16b(dst, src, src2)) } +emit_uqsub_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v4h_v4h_v4h(dst, src, src2)) } +emit_uqsub_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v8h_v8h_v8h(dst, src, src2)) } +emit_uqsub_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v2s_v2s_v2s(dst, src, src2)) } +emit_uqsub_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v4s_v4s_v4s(dst, src, src2)) } +emit_uqsub_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uqsub_v2d_v2d_v2d(dst, src, src2)) } +emit_uqsub_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqsub_zb_zb_zb(rz, rz2, rz3)) } +emit_uqsub_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqsub_zh_zh_zh(rz, rz2, rz3)) } +emit_uqsub_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqsub_zs_zs_zs(rz, rz2, rz3)) } +emit_uqsub_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uqsub_zd_zd_zd(rz, rz2, rz3)) } +inst_smax_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_smax_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_smax_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_smax_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_smax_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_smax_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_smax_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_smax_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_smax_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_smax_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMAX, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_smax_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_v8b_v8b_v8b(dst, src, src2)) } +emit_smax_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_v16b_v16b_v16b(dst, src, src2)) } +emit_smax_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_v4h_v4h_v4h(dst, src, src2)) } +emit_smax_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_v8h_v8h_v8h(dst, src, src2)) } +emit_smax_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_v2s_v2s_v2s(dst, src, src2)) } +emit_smax_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smax_v4s_v4s_v4s(dst, src, src2)) } +emit_smax_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smax_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_smax_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smax_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_smax_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smax_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_smax_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smax_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_umax_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_umax_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_umax_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_umax_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_umax_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_umax_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_umax_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_umax_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_umax_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_umax_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMAX, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_umax_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_v8b_v8b_v8b(dst, src, src2)) } +emit_umax_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_v16b_v16b_v16b(dst, src, src2)) } +emit_umax_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_v4h_v4h_v4h(dst, src, src2)) } +emit_umax_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_v8h_v8h_v8h(dst, src, src2)) } +emit_umax_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_v2s_v2s_v2s(dst, src, src2)) } +emit_umax_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umax_v4s_v4s_v4s(dst, src, src2)) } +emit_umax_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umax_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_umax_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umax_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_umax_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umax_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_umax_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umax_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_smin_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_smin_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_smin_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_smin_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_smin_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_smin_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_smin_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_smin_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_smin_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_smin_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMIN, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_smin_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_v8b_v8b_v8b(dst, src, src2)) } +emit_smin_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_v16b_v16b_v16b(dst, src, src2)) } +emit_smin_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_v4h_v4h_v4h(dst, src, src2)) } +emit_smin_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_v8h_v8h_v8h(dst, src, src2)) } +emit_smin_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_v2s_v2s_v2s(dst, src, src2)) } +emit_smin_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smin_v4s_v4s_v4s(dst, src, src2)) } +emit_smin_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smin_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_smin_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smin_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_smin_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smin_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_smin_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smin_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_umin_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_umin_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_umin_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_umin_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_umin_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_umin_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_umin_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_umin_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_umin_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_umin_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMIN, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_umin_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_v8b_v8b_v8b(dst, src, src2)) } +emit_umin_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_v16b_v16b_v16b(dst, src, src2)) } +emit_umin_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_v4h_v4h_v4h(dst, src, src2)) } +emit_umin_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_v8h_v8h_v8h(dst, src, src2)) } +emit_umin_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_v2s_v2s_v2s(dst, src, src2)) } +emit_umin_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umin_v4s_v4s_v4s(dst, src, src2)) } +emit_umin_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umin_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_umin_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umin_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_umin_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umin_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_umin_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umin_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_sabd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_sabd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_sabd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sabd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sabd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sabd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_sabd_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_sabd_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_sabd_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_sabd_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SABD, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_sabd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_v8b_v8b_v8b(dst, src, src2)) } +emit_sabd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_v16b_v16b_v16b(dst, src, src2)) } +emit_sabd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_v4h_v4h_v4h(dst, src, src2)) } +emit_sabd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_v8h_v8h_v8h(dst, src, src2)) } +emit_sabd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_v2s_v2s_v2s(dst, src, src2)) } +emit_sabd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sabd_v4s_v4s_v4s(dst, src, src2)) } +emit_sabd_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sabd_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_sabd_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sabd_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_sabd_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sabd_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_sabd_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sabd_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_uabd_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uabd_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uabd_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uabd_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uabd_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uabd_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_uabd_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_uabd_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_uabd_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_uabd_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UABD, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_uabd_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_v8b_v8b_v8b(dst, src, src2)) } +emit_uabd_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_v16b_v16b_v16b(dst, src, src2)) } +emit_uabd_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_v4h_v4h_v4h(dst, src, src2)) } +emit_uabd_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_v8h_v8h_v8h(dst, src, src2)) } +emit_uabd_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_v2s_v2s_v2s(dst, src, src2)) } +emit_uabd_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uabd_v4s_v4s_v4s(dst, src, src2)) } +emit_uabd_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_uabd_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_uabd_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_uabd_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_uabd_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_uabd_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_uabd_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_uabd_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_saba_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_saba_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_saba_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_saba_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_saba_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_saba_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SABA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_saba_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_v8b_v8b_v8b(dst, src, src2)) } +emit_saba_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_v16b_v16b_v16b(dst, src, src2)) } +emit_saba_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_v4h_v4h_v4h(dst, src, src2)) } +emit_saba_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_v8h_v8h_v8h(dst, src, src2)) } +emit_saba_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_v2s_v2s_v2s(dst, src, src2)) } +emit_saba_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saba_v4s_v4s_v4s(dst, src, src2)) } +inst_uaba_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uaba_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uaba_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uaba_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uaba_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uaba_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UABA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_uaba_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_v8b_v8b_v8b(dst, src, src2)) } +emit_uaba_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_v16b_v16b_v16b(dst, src, src2)) } +emit_uaba_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_v4h_v4h_v4h(dst, src, src2)) } +emit_uaba_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_v8h_v8h_v8h(dst, src, src2)) } +emit_uaba_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_v2s_v2s_v2s(dst, src, src2)) } +emit_uaba_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaba_v4s_v4s_v4s(dst, src, src2)) } +inst_addp_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_addp_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_addp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_addp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_addp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_addp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_addp_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_addp_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v8b_v8b_v8b(dst, src, src2)) } +emit_addp_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v16b_v16b_v16b(dst, src, src2)) } +emit_addp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v4h_v4h_v4h(dst, src, src2)) } +emit_addp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v8h_v8h_v8h(dst, src, src2)) } +emit_addp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v2s_v2s_v2s(dst, src, src2)) } +emit_addp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v4s_v4s_v4s(dst, src, src2)) } +emit_addp_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addp_v2d_v2d_v2d(dst, src, src2)) } +inst_addv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADDV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_addv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADDV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_addv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADDV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_addv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADDV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_addv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .ADDV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_addv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_addv_r_v8b(dst, src)) } +emit_addv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_addv_r_v16b(dst, src)) } +emit_addv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_addv_r_v4h(dst, src)) } +emit_addv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_addv_r_v8h(dst, src)) } +emit_addv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_addv_r_v4s(dst, src)) } +inst_saddlp_v4h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_8b(src), {}, {}, {}}} } +inst_saddlp_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_16b(src), {}, {}, {}}} } +inst_saddlp_v2s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_4h(src), {}, {}, {}}} } +inst_saddlp_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_saddlp_v1d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_1d(dst), op_v_2s(src), {}, {}, {}}} } +inst_saddlp_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLP, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_saddlp_v4h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_v4h_v8b(dst, src)) } +emit_saddlp_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_v8h_v16b(dst, src)) } +emit_saddlp_v2s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_v2s_v4h(dst, src)) } +emit_saddlp_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_v4s_v8h(dst, src)) } +emit_saddlp_v1d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_v1d_v2s(dst, src)) } +emit_saddlp_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlp_v2d_v4s(dst, src)) } +inst_uaddlp_v4h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_8b(src), {}, {}, {}}} } +inst_uaddlp_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_16b(src), {}, {}, {}}} } +inst_uaddlp_v2s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_4h(src), {}, {}, {}}} } +inst_uaddlp_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_uaddlp_v1d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_1d(dst), op_v_2s(src), {}, {}, {}}} } +inst_uaddlp_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLP, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_uaddlp_v4h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_v4h_v8b(dst, src)) } +emit_uaddlp_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_v8h_v16b(dst, src)) } +emit_uaddlp_v2s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_v2s_v4h(dst, src)) } +emit_uaddlp_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_v4s_v8h(dst, src)) } +emit_uaddlp_v1d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_v1d_v2s(dst, src)) } +emit_uaddlp_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlp_v2d_v4s(dst, src)) } +inst_sadalp_v4h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_8b(src), {}, {}, {}}} } +inst_sadalp_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_16b(src), {}, {}, {}}} } +inst_sadalp_v2s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_4h(src), {}, {}, {}}} } +inst_sadalp_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_sadalp_v1d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_1d(dst), op_v_2s(src), {}, {}, {}}} } +inst_sadalp_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADALP, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_sadalp_v4h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_v4h_v8b(dst, src)) } +emit_sadalp_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_v8h_v16b(dst, src)) } +emit_sadalp_v2s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_v2s_v4h(dst, src)) } +emit_sadalp_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_v4s_v8h(dst, src)) } +emit_sadalp_v1d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_v1d_v2s(dst, src)) } +emit_sadalp_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sadalp_v2d_v4s(dst, src)) } +inst_uadalp_v4h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_8b(src), {}, {}, {}}} } +inst_uadalp_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_16b(src), {}, {}, {}}} } +inst_uadalp_v2s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_4h(src), {}, {}, {}}} } +inst_uadalp_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_uadalp_v1d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_1d(dst), op_v_2s(src), {}, {}, {}}} } +inst_uadalp_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADALP, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_uadalp_v4h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_v4h_v8b(dst, src)) } +emit_uadalp_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_v8h_v16b(dst, src)) } +emit_uadalp_v2s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_v2s_v4h(dst, src)) } +emit_uadalp_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_v4s_v8h(dst, src)) } +emit_uadalp_v1d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_v1d_v2s(dst, src)) } +emit_uadalp_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uadalp_v2d_v4s(dst, src)) } +inst_saddlv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_saddlv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_saddlv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_saddlv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_saddlv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_saddlv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlv_r_v8b(dst, src)) } +emit_saddlv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlv_r_v16b(dst, src)) } +emit_saddlv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlv_r_v4h(dst, src)) } +emit_saddlv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlv_r_v8h(dst, src)) } +emit_saddlv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_saddlv_r_v4s(dst, src)) } +inst_uaddlv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_uaddlv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_uaddlv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_uaddlv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_uaddlv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UADDLV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_uaddlv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlv_r_v8b(dst, src)) } +emit_uaddlv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlv_r_v16b(dst, src)) } +emit_uaddlv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlv_r_v4h(dst, src)) } +emit_uaddlv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlv_r_v8h(dst, src)) } +emit_uaddlv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uaddlv_r_v4s(dst, src)) } +inst_smaxv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_smaxv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_smaxv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_smaxv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_smaxv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_smaxv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_smaxv_r_v8b(dst, src)) } +emit_smaxv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_smaxv_r_v16b(dst, src)) } +emit_smaxv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_smaxv_r_v4h(dst, src)) } +emit_smaxv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_smaxv_r_v8h(dst, src)) } +emit_smaxv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_smaxv_r_v4s(dst, src)) } +inst_umaxv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_umaxv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_umaxv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_umaxv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_umaxv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_umaxv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_umaxv_r_v8b(dst, src)) } +emit_umaxv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_umaxv_r_v16b(dst, src)) } +emit_umaxv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_umaxv_r_v4h(dst, src)) } +emit_umaxv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_umaxv_r_v8h(dst, src)) } +emit_umaxv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_umaxv_r_v4s(dst, src)) } +inst_sminv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_sminv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_sminv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_sminv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_sminv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_sminv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sminv_r_v8b(dst, src)) } +emit_sminv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sminv_r_v16b(dst, src)) } +emit_sminv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sminv_r_v4h(dst, src)) } +emit_sminv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sminv_r_v8h(dst, src)) } +emit_sminv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sminv_r_v4s(dst, src)) } +inst_uminv_r_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8b(src), {}, {}, {}}} } +inst_uminv_r_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_16b(src), {}, {}, {}}} } +inst_uminv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_uminv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +inst_uminv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +emit_uminv_r_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uminv_r_v8b(dst, src)) } +emit_uminv_r_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uminv_r_v16b(dst, src)) } +emit_uminv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uminv_r_v4h(dst, src)) } +emit_uminv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uminv_r_v8h(dst, src)) } +emit_uminv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uminv_r_v4s(dst, src)) } +inst_smaxp_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_smaxp_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_smaxp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_smaxp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_smaxp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_smaxp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMAXP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_smaxp_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_v8b_v8b_v8b(dst, src, src2)) } +emit_smaxp_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_v16b_v16b_v16b(dst, src, src2)) } +emit_smaxp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_v4h_v4h_v4h(dst, src, src2)) } +emit_smaxp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_v8h_v8h_v8h(dst, src, src2)) } +emit_smaxp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_v2s_v2s_v2s(dst, src, src2)) } +emit_smaxp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smaxp_v4s_v4s_v4s(dst, src, src2)) } +inst_umaxp_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_umaxp_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_umaxp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_umaxp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_umaxp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_umaxp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMAXP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_umaxp_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_v8b_v8b_v8b(dst, src, src2)) } +emit_umaxp_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_v16b_v16b_v16b(dst, src, src2)) } +emit_umaxp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_v4h_v4h_v4h(dst, src, src2)) } +emit_umaxp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_v8h_v8h_v8h(dst, src, src2)) } +emit_umaxp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_v2s_v2s_v2s(dst, src, src2)) } +emit_umaxp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umaxp_v4s_v4s_v4s(dst, src, src2)) } +inst_sminp_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_sminp_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_sminp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sminp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sminp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sminp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMINP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sminp_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_v8b_v8b_v8b(dst, src, src2)) } +emit_sminp_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_v16b_v16b_v16b(dst, src, src2)) } +emit_sminp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_v4h_v4h_v4h(dst, src, src2)) } +emit_sminp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_v8h_v8h_v8h(dst, src, src2)) } +emit_sminp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_v2s_v2s_v2s(dst, src, src2)) } +emit_sminp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sminp_v4s_v4s_v4s(dst, src, src2)) } +inst_uminp_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uminp_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uminp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uminp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uminp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uminp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMINP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_uminp_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_v8b_v8b_v8b(dst, src, src2)) } +emit_uminp_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_v16b_v16b_v16b(dst, src, src2)) } +emit_uminp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_v4h_v4h_v4h(dst, src, src2)) } +emit_uminp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_v8h_v8h_v8h(dst, src, src2)) } +emit_uminp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_v2s_v2s_v2s(dst, src, src2)) } +emit_uminp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uminp_v4s_v4s_v4s(dst, src, src2)) } +inst_saddl_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_saddl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_saddl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_saddl_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl_v8h_v8b_v8b(dst, src, src2)) } +emit_saddl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl_v4s_v4h_v4h(dst, src, src2)) } +emit_saddl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl_v2d_v2s_v2s(dst, src, src2)) } +inst_saddl2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_saddl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_saddl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_saddl2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl2_v8h_v16b_v16b(dst, src, src2)) } +emit_saddl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl2_v4s_v8h_v8h(dst, src, src2)) } +emit_saddl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddl2_v2d_v4s_v4s(dst, src, src2)) } +inst_uaddl_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uaddl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uaddl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_uaddl_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl_v8h_v8b_v8b(dst, src, src2)) } +emit_uaddl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl_v4s_v4h_v4h(dst, src, src2)) } +emit_uaddl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl_v2d_v2s_v2s(dst, src, src2)) } +inst_uaddl2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uaddl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uaddl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_uaddl2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl2_v8h_v16b_v16b(dst, src, src2)) } +emit_uaddl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl2_v4s_v8h_v8h(dst, src, src2)) } +emit_uaddl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddl2_v2d_v4s_v4s(dst, src, src2)) } +inst_ssubl_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_ssubl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_ssubl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_ssubl_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl_v8h_v8b_v8b(dst, src, src2)) } +emit_ssubl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl_v4s_v4h_v4h(dst, src, src2)) } +emit_ssubl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl_v2d_v2s_v2s(dst, src, src2)) } +inst_ssubl2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_ssubl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_ssubl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_ssubl2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl2_v8h_v16b_v16b(dst, src, src2)) } +emit_ssubl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl2_v4s_v8h_v8h(dst, src, src2)) } +emit_ssubl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubl2_v2d_v4s_v4s(dst, src, src2)) } +inst_usubl_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_usubl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_usubl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_usubl_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl_v8h_v8b_v8b(dst, src, src2)) } +emit_usubl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl_v4s_v4h_v4h(dst, src, src2)) } +emit_usubl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl_v2d_v2s_v2s(dst, src, src2)) } +inst_usubl2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_usubl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_usubl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_usubl2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl2_v8h_v16b_v16b(dst, src, src2)) } +emit_usubl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl2_v4s_v8h_v8h(dst, src, src2)) } +emit_usubl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubl2_v2d_v4s_v4s(dst, src, src2)) } +inst_saddw_v8h_v8h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8b(src2), {}, {}}} } +inst_saddw_v4s_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4h(src2), {}, {}}} } +inst_saddw_v2d_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2s(src2), {}, {}}} } +emit_saddw_v8h_v8h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw_v8h_v8h_v8b(dst, src, src2)) } +emit_saddw_v4s_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw_v4s_v4s_v4h(dst, src, src2)) } +emit_saddw_v2d_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw_v2d_v2d_v2s(dst, src, src2)) } +inst_saddw2_v8h_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_16b(src2), {}, {}}} } +inst_saddw2_v4s_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_8h(src2), {}, {}}} } +inst_saddw2_v2d_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SADDW2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_4s(src2), {}, {}}} } +emit_saddw2_v8h_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw2_v8h_v8h_v16b(dst, src, src2)) } +emit_saddw2_v4s_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw2_v4s_v4s_v8h(dst, src, src2)) } +emit_saddw2_v2d_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_saddw2_v2d_v2d_v4s(dst, src, src2)) } +inst_uaddw_v8h_v8h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8b(src2), {}, {}}} } +inst_uaddw_v4s_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4h(src2), {}, {}}} } +inst_uaddw_v2d_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2s(src2), {}, {}}} } +emit_uaddw_v8h_v8h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw_v8h_v8h_v8b(dst, src, src2)) } +emit_uaddw_v4s_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw_v4s_v4s_v4h(dst, src, src2)) } +emit_uaddw_v2d_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw_v2d_v2d_v2s(dst, src, src2)) } +inst_uaddw2_v8h_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_16b(src2), {}, {}}} } +inst_uaddw2_v4s_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_8h(src2), {}, {}}} } +inst_uaddw2_v2d_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UADDW2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_4s(src2), {}, {}}} } +emit_uaddw2_v8h_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw2_v8h_v8h_v16b(dst, src, src2)) } +emit_uaddw2_v4s_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw2_v4s_v4s_v8h(dst, src, src2)) } +emit_uaddw2_v2d_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uaddw2_v2d_v2d_v4s(dst, src, src2)) } +inst_ssubw_v8h_v8h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8b(src2), {}, {}}} } +inst_ssubw_v4s_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4h(src2), {}, {}}} } +inst_ssubw_v2d_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2s(src2), {}, {}}} } +emit_ssubw_v8h_v8h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw_v8h_v8h_v8b(dst, src, src2)) } +emit_ssubw_v4s_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw_v4s_v4s_v4h(dst, src, src2)) } +emit_ssubw_v2d_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw_v2d_v2d_v2s(dst, src, src2)) } +inst_ssubw2_v8h_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_16b(src2), {}, {}}} } +inst_ssubw2_v4s_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_8h(src2), {}, {}}} } +inst_ssubw2_v2d_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSUBW2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_4s(src2), {}, {}}} } +emit_ssubw2_v8h_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw2_v8h_v8h_v16b(dst, src, src2)) } +emit_ssubw2_v4s_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw2_v4s_v4s_v8h(dst, src, src2)) } +emit_ssubw2_v2d_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ssubw2_v2d_v2d_v4s(dst, src, src2)) } +inst_usubw_v8h_v8h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8b(src2), {}, {}}} } +inst_usubw_v4s_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4h(src2), {}, {}}} } +inst_usubw_v2d_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2s(src2), {}, {}}} } +emit_usubw_v8h_v8h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw_v8h_v8h_v8b(dst, src, src2)) } +emit_usubw_v4s_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw_v4s_v4s_v4h(dst, src, src2)) } +emit_usubw_v2d_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw_v2d_v2d_v2s(dst, src, src2)) } +inst_usubw2_v8h_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_16b(src2), {}, {}}} } +inst_usubw2_v4s_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_8h(src2), {}, {}}} } +inst_usubw2_v2d_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USUBW2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_4s(src2), {}, {}}} } +emit_usubw2_v8h_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw2_v8h_v8h_v16b(dst, src, src2)) } +emit_usubw2_v4s_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw2_v4s_v4s_v8h(dst, src, src2)) } +emit_usubw2_v2d_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usubw2_v2d_v2d_v4s(dst, src, src2)) } +inst_raddhn_v8b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_raddhn_v4h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_raddhn_v2s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_raddhn_v8b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn_v8b_v8h_v8h(dst, src, src2)) } +emit_raddhn_v4h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn_v4h_v4s_v4s(dst, src, src2)) } +emit_raddhn_v2s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn_v2s_v2d_v2d(dst, src, src2)) } +inst_raddhn2_v16b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_raddhn2_v8h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_raddhn2_v4s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RADDHN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_raddhn2_v16b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn2_v16b_v8h_v8h(dst, src, src2)) } +emit_raddhn2_v8h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn2_v8h_v4s_v4s(dst, src, src2)) } +emit_raddhn2_v4s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_raddhn2_v4s_v2d_v2d(dst, src, src2)) } +inst_rsubhn_v8b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_rsubhn_v4h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_rsubhn_v2s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_rsubhn_v8b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn_v8b_v8h_v8h(dst, src, src2)) } +emit_rsubhn_v4h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn_v4h_v4s_v4s(dst, src, src2)) } +emit_rsubhn_v2s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn_v2s_v2d_v2d(dst, src, src2)) } +inst_rsubhn2_v16b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_rsubhn2_v8h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_rsubhn2_v4s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .RSUBHN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_rsubhn2_v16b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn2_v16b_v8h_v8h(dst, src, src2)) } +emit_rsubhn2_v8h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn2_v8h_v4s_v4s(dst, src, src2)) } +emit_rsubhn2_v4s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_rsubhn2_v4s_v2d_v2d(dst, src, src2)) } +inst_addhn_v8b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_addhn_v4h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_addhn_v2s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_addhn_v8b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn_v8b_v8h_v8h(dst, src, src2)) } +emit_addhn_v4h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn_v4h_v4s_v4s(dst, src, src2)) } +emit_addhn_v2s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn_v2s_v2d_v2d(dst, src, src2)) } +inst_addhn2_v16b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_addhn2_v8h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_addhn2_v4s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ADDHN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_addhn2_v16b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn2_v16b_v8h_v8h(dst, src, src2)) } +emit_addhn2_v8h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn2_v8h_v4s_v4s(dst, src, src2)) } +emit_addhn2_v4s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_addhn2_v4s_v2d_v2d(dst, src, src2)) } +inst_subhn_v8b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_subhn_v4h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_subhn_v2s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_subhn_v8b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn_v8b_v8h_v8h(dst, src, src2)) } +emit_subhn_v4h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn_v4h_v4s_v4s(dst, src, src2)) } +emit_subhn_v2s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn_v2s_v2d_v2d(dst, src, src2)) } +inst_subhn2_v16b_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_subhn2_v8h_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_subhn2_v4s_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SUBHN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_subhn2_v16b_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn2_v16b_v8h_v8h(dst, src, src2)) } +emit_subhn2_v8h_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn2_v8h_v4s_v4s(dst, src, src2)) } +emit_subhn2_v4s_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_subhn2_v4s_v2d_v2d(dst, src, src2)) } +inst_xtn_v8b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8h(src), {}, {}, {}}} } +inst_xtn_v4h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4s(src), {}, {}, {}}} } +inst_xtn_v2s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2d(src), {}, {}, {}}} } +emit_xtn_v8b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn_v8b_v8h(dst, src)) } +emit_xtn_v4h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn_v4h_v4s(dst, src)) } +emit_xtn_v2s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn_v2s_v2d(dst, src)) } +inst_xtn2_v16b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN2, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_8h(src), {}, {}, {}}} } +inst_xtn2_v8h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_4s(src), {}, {}, {}}} } +inst_xtn2_v4s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .XTN2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_2d(src), {}, {}, {}}} } +emit_xtn2_v16b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn2_v16b_v8h(dst, src)) } +emit_xtn2_v8h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn2_v8h_v4s(dst, src)) } +emit_xtn2_v4s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_xtn2_v4s_v2d(dst, src)) } +inst_sqxtn_v8b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8h(src), {}, {}, {}}} } +inst_sqxtn_v4h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4s(src), {}, {}, {}}} } +inst_sqxtn_v2s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2d(src), {}, {}, {}}} } +emit_sqxtn_v8b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn_v8b_v8h(dst, src)) } +emit_sqxtn_v4h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn_v4h_v4s(dst, src)) } +emit_sqxtn_v2s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn_v2s_v2d(dst, src)) } +inst_sqxtn2_v16b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN2, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_8h(src), {}, {}, {}}} } +inst_sqxtn2_v8h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_4s(src), {}, {}, {}}} } +inst_sqxtn2_v4s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTN2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_2d(src), {}, {}, {}}} } +emit_sqxtn2_v16b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn2_v16b_v8h(dst, src)) } +emit_sqxtn2_v8h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn2_v8h_v4s(dst, src)) } +emit_sqxtn2_v4s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtn2_v4s_v2d(dst, src)) } +inst_uqxtn_v8b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8h(src), {}, {}, {}}} } +inst_uqxtn_v4h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4s(src), {}, {}, {}}} } +inst_uqxtn_v2s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2d(src), {}, {}, {}}} } +emit_uqxtn_v8b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn_v8b_v8h(dst, src)) } +emit_uqxtn_v4h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn_v4h_v4s(dst, src)) } +emit_uqxtn_v2s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn_v2s_v2d(dst, src)) } +inst_uqxtn2_v16b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN2, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_8h(src), {}, {}, {}}} } +inst_uqxtn2_v8h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_4s(src), {}, {}, {}}} } +inst_uqxtn2_v4s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UQXTN2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_2d(src), {}, {}, {}}} } +emit_uqxtn2_v16b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn2_v16b_v8h(dst, src)) } +emit_uqxtn2_v8h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn2_v8h_v4s(dst, src)) } +emit_uqxtn2_v4s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uqxtn2_v4s_v2d(dst, src)) } +inst_sqxtun_v8b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8h(src), {}, {}, {}}} } +inst_sqxtun_v4h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4s(src), {}, {}, {}}} } +inst_sqxtun_v2s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2d(src), {}, {}, {}}} } +emit_sqxtun_v8b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun_v8b_v8h(dst, src)) } +emit_sqxtun_v4h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun_v4h_v4s(dst, src)) } +emit_sqxtun_v2s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun_v2s_v2d(dst, src)) } +inst_sqxtun2_v16b_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN2, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_8h(src), {}, {}, {}}} } +inst_sqxtun2_v8h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_4s(src), {}, {}, {}}} } +inst_sqxtun2_v4s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SQXTUN2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_2d(src), {}, {}, {}}} } +emit_sqxtun2_v16b_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun2_v16b_v8h(dst, src)) } +emit_sqxtun2_v8h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun2_v8h_v4s(dst, src)) } +emit_sqxtun2_v4s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sqxtun2_v4s_v2d(dst, src)) } +inst_smull_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_smull_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_smull_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_smull_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull_v8h_v8b_v8b(dst, src, src2)) } +emit_smull_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull_v4s_v4h_v4h(dst, src, src2)) } +emit_smull_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull_v2d_v2s_v2s(dst, src, src2)) } +inst_smull2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_smull2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_smull2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMULL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_smull2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull2_v8h_v16b_v16b(dst, src, src2)) } +emit_smull2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull2_v4s_v8h_v8h(dst, src, src2)) } +emit_smull2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smull2_v2d_v4s_v4s(dst, src, src2)) } +inst_umull_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_umull_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_umull_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_umull_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull_v8h_v8b_v8b(dst, src, src2)) } +emit_umull_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull_v4s_v4h_v4h(dst, src, src2)) } +emit_umull_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull_v2d_v2s_v2s(dst, src, src2)) } +inst_umull2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_umull2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_umull2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMULL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_umull2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull2_v8h_v16b_v16b(dst, src, src2)) } +emit_umull2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull2_v4s_v8h_v8h(dst, src, src2)) } +emit_umull2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umull2_v2d_v4s_v4s(dst, src, src2)) } +inst_smlal_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_smlal_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_smlal_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_smlal_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal_v8h_v8b_v8b(dst, src, src2)) } +emit_smlal_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal_v4s_v4h_v4h(dst, src, src2)) } +emit_smlal_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal_v2d_v2s_v2s(dst, src, src2)) } +inst_smlal2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_smlal2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_smlal2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLAL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_smlal2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal2_v8h_v16b_v16b(dst, src, src2)) } +emit_smlal2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal2_v4s_v8h_v8h(dst, src, src2)) } +emit_smlal2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlal2_v2d_v4s_v4s(dst, src, src2)) } +inst_umlal_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_umlal_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_umlal_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_umlal_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal_v8h_v8b_v8b(dst, src, src2)) } +emit_umlal_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal_v4s_v4h_v4h(dst, src, src2)) } +emit_umlal_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal_v2d_v2s_v2s(dst, src, src2)) } +inst_umlal2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_umlal2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_umlal2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLAL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_umlal2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal2_v8h_v16b_v16b(dst, src, src2)) } +emit_umlal2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal2_v4s_v8h_v8h(dst, src, src2)) } +emit_umlal2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlal2_v2d_v4s_v4s(dst, src, src2)) } +inst_smlsl_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_smlsl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_smlsl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_smlsl_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl_v8h_v8b_v8b(dst, src, src2)) } +emit_smlsl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl_v4s_v4h_v4h(dst, src, src2)) } +emit_smlsl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl_v2d_v2s_v2s(dst, src, src2)) } +inst_smlsl2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_smlsl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_smlsl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SMLSL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_smlsl2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl2_v8h_v16b_v16b(dst, src, src2)) } +emit_smlsl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl2_v4s_v8h_v8h(dst, src, src2)) } +emit_smlsl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_smlsl2_v2d_v4s_v4s(dst, src, src2)) } +inst_umlsl_v8h_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_umlsl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_umlsl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_umlsl_v8h_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl_v8h_v8b_v8b(dst, src, src2)) } +emit_umlsl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl_v4s_v4h_v4h(dst, src, src2)) } +emit_umlsl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl_v2d_v2s_v2s(dst, src, src2)) } +inst_umlsl2_v8h_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_umlsl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_umlsl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UMLSL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_umlsl2_v8h_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl2_v8h_v16b_v16b(dst, src, src2)) } +emit_umlsl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl2_v4s_v8h_v8h(dst, src, src2)) } +emit_umlsl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_umlsl2_v2d_v4s_v4s(dst, src, src2)) } +inst_sqdmull_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqdmull_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_sqdmull_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmull_v4s_v4h_v4h(dst, src, src2)) } +emit_sqdmull_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmull_v2d_v2s_v2s(dst, src, src2)) } +inst_sqdmull2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqdmull2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sqdmull2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmull2_v4s_v8h_v8h(dst, src, src2)) } +emit_sqdmull2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmull2_v2d_v4s_v4s(dst, src, src2)) } +inst_sqdmlal_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLAL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqdmlal_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLAL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_sqdmlal_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlal_v4s_v4h_v4h(dst, src, src2)) } +emit_sqdmlal_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlal_v2d_v2s_v2s(dst, src, src2)) } +inst_sqdmlal2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLAL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqdmlal2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLAL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sqdmlal2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlal2_v4s_v8h_v8h(dst, src, src2)) } +emit_sqdmlal2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlal2_v2d_v4s_v4s(dst, src, src2)) } +inst_sqdmlsl_v4s_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLSL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqdmlsl_v2d_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLSL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +emit_sqdmlsl_v4s_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlsl_v4s_v4h_v4h(dst, src, src2)) } +emit_sqdmlsl_v2d_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlsl_v2d_v2s_v2s(dst, src, src2)) } +inst_sqdmlsl2_v4s_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLSL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqdmlsl2_v2d_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMLSL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sqdmlsl2_v4s_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlsl2_v4s_v8h_v8h(dst, src, src2)) } +emit_sqdmlsl2_v2d_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmlsl2_v2d_v4s_v4s(dst, src, src2)) } +inst_sqdmulh_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULH, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqdmulh_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULH, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqdmulh_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULH, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sqdmulh_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQDMULH, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sqdmulh_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmulh_v4h_v4h_v4h(dst, src, src2)) } +emit_sqdmulh_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmulh_v8h_v8h_v8h(dst, src, src2)) } +emit_sqdmulh_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmulh_v2s_v2s_v2s(dst, src, src2)) } +emit_sqdmulh_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqdmulh_v4s_v4s_v4s(dst, src, src2)) } +inst_sqrdmulh_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQRDMULH, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sqrdmulh_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQRDMULH, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sqrdmulh_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQRDMULH, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sqrdmulh_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SQRDMULH, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +emit_sqrdmulh_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqrdmulh_v4h_v4h_v4h(dst, src, src2)) } +emit_sqrdmulh_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqrdmulh_v8h_v8h_v8h(dst, src, src2)) } +emit_sqrdmulh_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqrdmulh_v2s_v2s_v2s(dst, src, src2)) } +emit_sqrdmulh_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sqrdmulh_v4s_v4s_v4s(dst, src, src2)) } +inst_sdot_v2s_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SDOT, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_sdot_v4s_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SDOT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +emit_sdot_v2s_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdot_v2s_v8b_v8b(dst, src, src2)) } +emit_sdot_v4s_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sdot_v4s_v16b_v16b(dst, src, src2)) } +inst_udot_v2s_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UDOT, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_udot_v4s_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UDOT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +emit_udot_v2s_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udot_v2s_v8b_v8b(dst, src, src2)) } +emit_udot_v4s_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_udot_v4s_v16b_v16b(dst, src, src2)) } +inst_usdot_v2s_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USDOT, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_usdot_v4s_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USDOT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +emit_usdot_v2s_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usdot_v2s_v8b_v8b(dst, src, src2)) } +emit_usdot_v4s_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_usdot_v4s_v16b_v16b(dst, src, src2)) } +inst_fmla_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmla_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmla_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fmla_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fmla_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_fmla_zh_zh_zh_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), op_lane_index(imm), {}}} } +inst_fmla_zs_zs_zs_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 4, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), op_lane_index(imm), {}}} } +inst_fmla_zd_zd_zd_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .FMLA, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_lane_index(imm), {}}} } +emit_fmla_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmla_v4s_v4s_v4s(dst, src, src2)) } +emit_fmla_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmla_v2d_v2d_v2d(dst, src, src2)) } +emit_fmla_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmla_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fmla_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmla_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fmla_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmla_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_fmla_zh_zh_zh_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_fmla_zh_zh_zh_i(rz, rz2, rz3, imm)) } +emit_fmla_zs_zs_zs_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_fmla_zs_zs_zs_i(rz, rz2, rz3, imm)) } +emit_fmla_zd_zd_zd_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_fmla_zd_zd_zd_i(rz, rz2, rz3, imm)) } +inst_fmls_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmls_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmls_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fmls_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fmls_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +inst_fmls_zh_zh_zh_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), op_lane_index(imm), {}}} } +inst_fmls_zs_zs_zs_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 4, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), op_lane_index(imm), {}}} } +inst_fmls_zd_zd_zd_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .FMLS, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_lane_index(imm), {}}} } +emit_fmls_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmls_v4s_v4s_v4s(dst, src, src2)) } +emit_fmls_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmls_v2d_v2d_v2d(dst, src, src2)) } +emit_fmls_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmls_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fmls_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmls_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fmls_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmls_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +emit_fmls_zh_zh_zh_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_fmls_zh_zh_zh_i(rz, rz2, rz3, imm)) } +emit_fmls_zs_zs_zs_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_fmls_zs_zs_zs_i(rz, rz2, rz3, imm)) } +emit_fmls_zd_zd_zd_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_fmls_zd_zd_zd_i(rz, rz2, rz3, imm)) } +inst_fmulx_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMULX, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmulx_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMULX, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmulx_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMULX, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmulx_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMULX, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fmulx_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMULX, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_fmulx_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmulx_v2s_v2s_v2s(dst, src, src2)) } +emit_fmulx_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmulx_v4s_v4s_v4s(dst, src, src2)) } +emit_fmulx_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmulx_v2d_v2d_v2d(dst, src, src2)) } +emit_fmulx_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmulx_v4h_v4h_v4h(dst, src, src2)) } +emit_fmulx_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmulx_v8h_v8h_v8h(dst, src, src2)) } +inst_fmaxp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmaxp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmaxp_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmaxp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fmaxp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_fmaxp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxp_v2s_v2s_v2s(dst, src, src2)) } +emit_fmaxp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxp_v4s_v4s_v4s(dst, src, src2)) } +emit_fmaxp_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxp_v2d_v2d_v2d(dst, src, src2)) } +emit_fmaxp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxp_v4h_v4h_v4h(dst, src, src2)) } +emit_fmaxp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxp_v8h_v8h_v8h(dst, src, src2)) } +inst_fminp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fminp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fminp_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fminp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fminp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_fminp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminp_v2s_v2s_v2s(dst, src, src2)) } +emit_fminp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminp_v4s_v4s_v4s(dst, src, src2)) } +emit_fminp_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminp_v2d_v2d_v2d(dst, src, src2)) } +emit_fminp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminp_v4h_v4h_v4h(dst, src, src2)) } +emit_fminp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminp_v8h_v8h_v8h(dst, src, src2)) } +inst_fmaxnmp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fmaxnmp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fmaxnmp_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fmaxnmp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fmaxnmp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_fmaxnmp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnmp_v2s_v2s_v2s(dst, src, src2)) } +emit_fmaxnmp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnmp_v4s_v4s_v4s(dst, src, src2)) } +emit_fmaxnmp_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnmp_v2d_v2d_v2d(dst, src, src2)) } +emit_fmaxnmp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnmp_v4h_v4h_v4h(dst, src, src2)) } +emit_fmaxnmp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fmaxnmp_v8h_v8h_v8h(dst, src, src2)) } +inst_fminnmp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNMP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fminnmp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNMP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fminnmp_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNMP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fminnmp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNMP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fminnmp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FMINNMP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_fminnmp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnmp_v2s_v2s_v2s(dst, src, src2)) } +emit_fminnmp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnmp_v4s_v4s_v4s(dst, src, src2)) } +emit_fminnmp_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnmp_v2d_v2d_v2d(dst, src, src2)) } +emit_fminnmp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnmp_v4h_v4h_v4h(dst, src, src2)) } +emit_fminnmp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fminnmp_v8h_v8h_v8h(dst, src, src2)) } +inst_fmaxv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +inst_fmaxv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_fmaxv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +emit_fmaxv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxv_r_v4s(dst, src)) } +emit_fmaxv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxv_r_v4h(dst, src)) } +emit_fmaxv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxv_r_v8h(dst, src)) } +inst_fminv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +inst_fminv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_fminv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +emit_fminv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminv_r_v4s(dst, src)) } +emit_fminv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminv_r_v4h(dst, src)) } +emit_fminv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminv_r_v8h(dst, src)) } +inst_fmaxnmv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +inst_fmaxnmv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_fmaxnmv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMAXNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +emit_fmaxnmv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxnmv_r_v4s(dst, src)) } +emit_fmaxnmv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxnmv_r_v4h(dst, src)) } +emit_fmaxnmv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fmaxnmv_r_v8h(dst, src)) } +inst_fminnmv_r_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4s(src), {}, {}, {}}} } +inst_fminnmv_r_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_4h(src), {}, {}, {}}} } +inst_fminnmv_r_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FMINNMV, operand_count = 2, length = 4, ops = {op_reg(dst), op_v_8h(src), {}, {}, {}}} } +emit_fminnmv_r_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminnmv_r_v4s(dst, src)) } +emit_fminnmv_r_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminnmv_r_v4h(dst, src)) } +emit_fminnmv_r_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fminnmv_r_v8h(dst, src)) } +inst_frecpe_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRECPE, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frecpe_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRECPE, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frecpe_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRECPE, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frecpe_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRECPE, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frecpe_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRECPE, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_frecpe_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpe_v2s_v2s(dst, src)) } +emit_frecpe_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpe_v4s_v4s(dst, src)) } +emit_frecpe_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpe_v2d_v2d(dst, src)) } +emit_frecpe_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpe_v4h_v4h(dst, src)) } +emit_frecpe_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpe_v8h_v8h(dst, src)) } +inst_frsqrte_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTE, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_frsqrte_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTE, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_frsqrte_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTE, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_frsqrte_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTE, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_frsqrte_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTE, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +emit_frsqrte_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frsqrte_v2s_v2s(dst, src)) } +emit_frsqrte_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frsqrte_v4s_v4s(dst, src)) } +emit_frsqrte_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frsqrte_v2d_v2d(dst, src)) } +emit_frsqrte_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frsqrte_v4h_v4h(dst, src)) } +emit_frsqrte_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frsqrte_v8h_v8h(dst, src)) } +inst_frecps_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_frecps_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_frecps_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_frecps_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_frecps_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_frecps_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_frecps_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_frecps_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRECPS, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_frecps_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frecps_v2s_v2s_v2s(dst, src, src2)) } +emit_frecps_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frecps_v4s_v4s_v4s(dst, src, src2)) } +emit_frecps_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frecps_v2d_v2d_v2d(dst, src, src2)) } +emit_frecps_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frecps_v4h_v4h_v4h(dst, src, src2)) } +emit_frecps_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frecps_v8h_v8h_v8h(dst, src, src2)) } +emit_frecps_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frecps_zh_zh_zh(rz, rz2, rz3)) } +emit_frecps_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frecps_zs_zs_zs(rz, rz2, rz3)) } +emit_frecps_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frecps_zd_zd_zd(rz, rz2, rz3)) } +inst_frsqrts_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_frsqrts_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_frsqrts_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_frsqrts_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_frsqrts_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_frsqrts_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_frsqrts_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_frsqrts_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRSQRTS, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_frsqrts_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frsqrts_v2s_v2s_v2s(dst, src, src2)) } +emit_frsqrts_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frsqrts_v4s_v4s_v4s(dst, src, src2)) } +emit_frsqrts_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frsqrts_v2d_v2d_v2d(dst, src, src2)) } +emit_frsqrts_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frsqrts_v4h_v4h_v4h(dst, src, src2)) } +emit_frsqrts_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_frsqrts_v8h_v8h_v8h(dst, src, src2)) } +emit_frsqrts_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frsqrts_zh_zh_zh(rz, rz2, rz3)) } +emit_frsqrts_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frsqrts_zs_zs_zs(rz, rz2, rz3)) } +emit_frsqrts_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frsqrts_zd_zd_zd(rz, rz2, rz3)) } +inst_frecpx_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.FRECPX, dst, src) } +inst_frecpx_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRECPX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_frecpx_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRECPX, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_frecpx_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FRECPX, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_frecpx_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_frecpx_r_r(dst, src)) } +emit_frecpx_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frecpx_zh_p_zh(rz, rz2, rz3)) } +emit_frecpx_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frecpx_zs_p_zs(rz, rz2, rz3)) } +emit_frecpx_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_frecpx_zd_p_zd(rz, rz2, rz3)) } +inst_faddp_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADDP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_faddp_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADDP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_faddp_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADDP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_faddp_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADDP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_faddp_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FADDP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_faddp_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_faddp_v2s_v2s_v2s(dst, src, src2)) } +emit_faddp_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_faddp_v4s_v4s_v4s(dst, src, src2)) } +emit_faddp_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_faddp_v2d_v2d_v2d(dst, src, src2)) } +emit_faddp_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_faddp_v4h_v4h_v4h(dst, src, src2)) } +emit_faddp_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_faddp_v8h_v8h_v8h(dst, src, src2)) } +inst_fcvtl_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTL, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcvtl_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTL, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2s(src), {}, {}, {}}} } +emit_fcvtl_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtl_v4s_v4h(dst, src)) } +emit_fcvtl_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtl_v2d_v2s(dst, src)) } +inst_fcvtl2_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTL2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_fcvtl2_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTL2, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_fcvtl2_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtl2_v4s_v8h(dst, src)) } +emit_fcvtl2_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtl2_v2d_v4s(dst, src)) } +inst_fcvtn_v4h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTN, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtn_v2s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2d(src), {}, {}, {}}} } +emit_fcvtn_v4h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtn_v4h_v4s(dst, src)) } +emit_fcvtn_v2s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtn_v2s_v2d(dst, src)) } +inst_fcvtn2_v8h_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTN2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcvtn2_v4s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTN2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_2d(src), {}, {}, {}}} } +emit_fcvtn2_v8h_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtn2_v8h_v4s(dst, src)) } +emit_fcvtn2_v4s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtn2_v4s_v2d(dst, src)) } +inst_fcvtxn_v2s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTXN, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2d(src), {}, {}, {}}} } +emit_fcvtxn_v2s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtxn_v2s_v2d(dst, src)) } +inst_fcvtxn2_v4s_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCVTXN2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_2d(src), {}, {}, {}}} } +emit_fcvtxn2_v4s_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcvtxn2_v4s_v2d(dst, src)) } +inst_fcmeq_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fcmeq_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fcmeq_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fcmeq_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fcmeq_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fcmeq_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fcmeq_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fcmeq_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fcmeq_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_v2s_v2s_v2s(dst, src, src2)) } +emit_fcmeq_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_v4s_v4s_v4s(dst, src, src2)) } +emit_fcmeq_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_v2d_v2d_v2d(dst, src, src2)) } +emit_fcmeq_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_v4h_v4h_v4h(dst, src, src2)) } +emit_fcmeq_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmeq_v8h_v8h_v8h(dst, src, src2)) } +emit_fcmeq_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmeq_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fcmeq_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmeq_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fcmeq_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmeq_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fcmge_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fcmge_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fcmge_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fcmge_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fcmge_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fcmge_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fcmge_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fcmge_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fcmge_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmge_v2s_v2s_v2s(dst, src, src2)) } +emit_fcmge_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmge_v4s_v4s_v4s(dst, src, src2)) } +emit_fcmge_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmge_v2d_v2d_v2d(dst, src, src2)) } +emit_fcmge_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmge_v4h_v4h_v4h(dst, src, src2)) } +emit_fcmge_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmge_v8h_v8h_v8h(dst, src, src2)) } +emit_fcmge_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmge_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fcmge_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmge_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fcmge_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmge_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fcmgt_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_fcmgt_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_fcmgt_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_fcmgt_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_fcmgt_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_fcmgt_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fcmgt_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fcmgt_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fcmgt_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmgt_v2s_v2s_v2s(dst, src, src2)) } +emit_fcmgt_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmgt_v4s_v4s_v4s(dst, src, src2)) } +emit_fcmgt_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmgt_v2d_v2d_v2d(dst, src, src2)) } +emit_fcmgt_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmgt_v4h_v4h_v4h(dst, src, src2)) } +emit_fcmgt_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_fcmgt_v8h_v8h_v8h(dst, src, src2)) } +emit_fcmgt_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmgt_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fcmgt_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmgt_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fcmgt_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmgt_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fcmle_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcmle_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcmle_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcmle_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcmle_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_fcmle_ph_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_fcmle_ps_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_fcmle_pd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FCMLE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_fcmle_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmle_v2s_v2s(dst, src)) } +emit_fcmle_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmle_v4s_v4s(dst, src)) } +emit_fcmle_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmle_v2d_v2d(dst, src)) } +emit_fcmle_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmle_v4h_v4h(dst, src)) } +emit_fcmle_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmle_v8h_v8h(dst, src)) } +emit_fcmle_ph_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fcmle_ph_p_zh(rz, rz2, rz3)) } +emit_fcmle_ps_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fcmle_ps_p_zs(rz, rz2, rz3)) } +emit_fcmle_pd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fcmle_pd_p_zd(rz, rz2, rz3)) } +inst_fcmlt_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_fcmlt_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_fcmlt_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +inst_fcmlt_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_fcmlt_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_fcmlt_ph_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_fcmlt_ps_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_fcmlt_pd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FCMLT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_fcmlt_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmlt_v2s_v2s(dst, src)) } +emit_fcmlt_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmlt_v4s_v4s(dst, src)) } +emit_fcmlt_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmlt_v2d_v2d(dst, src)) } +emit_fcmlt_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmlt_v4h_v4h(dst, src)) } +emit_fcmlt_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_fcmlt_v8h_v8h(dst, src)) } +emit_fcmlt_ph_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fcmlt_ph_p_zh(rz, rz2, rz3)) } +emit_fcmlt_ps_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fcmlt_ps_p_zs(rz, rz2, rz3)) } +emit_fcmlt_pd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_fcmlt_pd_p_zd(rz, rz2, rz3)) } +inst_facge_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGE, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_facge_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGE, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_facge_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGE, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_facge_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGE, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_facge_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGE, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_facge_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facge_v2s_v2s_v2s(dst, src, src2)) } +emit_facge_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facge_v4s_v4s_v4s(dst, src, src2)) } +emit_facge_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facge_v2d_v2d_v2d(dst, src, src2)) } +emit_facge_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facge_v4h_v4h_v4h(dst, src, src2)) } +emit_facge_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facge_v8h_v8h_v8h(dst, src, src2)) } +inst_facgt_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGT, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_facgt_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGT, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_facgt_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGT, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_facgt_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGT, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_facgt_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .FACGT, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +emit_facgt_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facgt_v2s_v2s_v2s(dst, src, src2)) } +emit_facgt_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facgt_v4s_v4s_v4s(dst, src, src2)) } +emit_facgt_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facgt_v2d_v2d_v2d(dst, src, src2)) } +emit_facgt_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facgt_v4h_v4h_v4h(dst, src, src2)) } +emit_facgt_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_facgt_v8h_v8h_v8h(dst, src, src2)) } +inst_cmeq_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMEQ, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_cmeq_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMEQ, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_cmeq_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMEQ, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_cmeq_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMEQ, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_cmeq_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmeq_v16b_v16b_v16b(dst, src, src2)) } +emit_cmeq_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmeq_v8h_v8h_v8h(dst, src, src2)) } +emit_cmeq_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmeq_v4s_v4s_v4s(dst, src, src2)) } +emit_cmeq_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmeq_v2d_v2d_v2d(dst, src, src2)) } +inst_cmge_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_cmge_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_cmge_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_cmge_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_cmge_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_cmge_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_cmge_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGE, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_cmge_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v8b_v8b_v8b(dst, src, src2)) } +emit_cmge_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v16b_v16b_v16b(dst, src, src2)) } +emit_cmge_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v4h_v4h_v4h(dst, src, src2)) } +emit_cmge_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v8h_v8h_v8h(dst, src, src2)) } +emit_cmge_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v2s_v2s_v2s(dst, src, src2)) } +emit_cmge_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v4s_v4s_v4s(dst, src, src2)) } +emit_cmge_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmge_v2d_v2d_v2d(dst, src, src2)) } +inst_cmgt_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGT, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_cmgt_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMGT, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_cmgt_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmgt_v16b_v16b_v16b(dst, src, src2)) } +emit_cmgt_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmgt_v2d_v2d_v2d(dst, src, src2)) } +inst_cmhi_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHI, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_cmhi_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHI, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_cmhi_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhi_v16b_v16b_v16b(dst, src, src2)) } +emit_cmhi_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhi_v2d_v2d_v2d(dst, src, src2)) } +inst_cmhs_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_cmhs_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_cmhs_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_cmhs_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_cmhs_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_cmhs_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_cmhs_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMHS, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_cmhs_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v8b_v8b_v8b(dst, src, src2)) } +emit_cmhs_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v16b_v16b_v16b(dst, src, src2)) } +emit_cmhs_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v4h_v4h_v4h(dst, src, src2)) } +emit_cmhs_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v8h_v8h_v8h(dst, src, src2)) } +emit_cmhs_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v2s_v2s_v2s(dst, src, src2)) } +emit_cmhs_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v4s_v4s_v4s(dst, src, src2)) } +emit_cmhs_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmhs_v2d_v2d_v2d(dst, src, src2)) } +inst_cmle_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_cmle_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_cmle_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_cmle_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_cmle_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_cmle_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_cmle_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLE, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +emit_cmle_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v8b_v8b(dst, src)) } +emit_cmle_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v16b_v16b(dst, src)) } +emit_cmle_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v4h_v4h(dst, src)) } +emit_cmle_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v8h_v8h(dst, src)) } +emit_cmle_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v2s_v2s(dst, src)) } +emit_cmle_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v4s_v4s(dst, src)) } +emit_cmle_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmle_v2d_v2d(dst, src)) } +inst_cmlt_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_cmlt_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_cmlt_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_cmlt_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_cmlt_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_cmlt_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +inst_cmlt_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CMLT, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2d(src), {}, {}, {}}} } +emit_cmlt_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v8b_v8b(dst, src)) } +emit_cmlt_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v16b_v16b(dst, src)) } +emit_cmlt_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v4h_v4h(dst, src)) } +emit_cmlt_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v8h_v8h(dst, src)) } +emit_cmlt_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v2s_v2s(dst, src)) } +emit_cmlt_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v4s_v4s(dst, src)) } +emit_cmlt_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cmlt_v2d_v2d(dst, src)) } +inst_cmtst_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_cmtst_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_cmtst_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_cmtst_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_cmtst_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_cmtst_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_cmtst_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .CMTST, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_cmtst_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v8b_v8b_v8b(dst, src, src2)) } +emit_cmtst_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v16b_v16b_v16b(dst, src, src2)) } +emit_cmtst_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v4h_v4h_v4h(dst, src, src2)) } +emit_cmtst_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v8h_v8h_v8h(dst, src, src2)) } +emit_cmtst_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v2s_v2s_v2s(dst, src, src2)) } +emit_cmtst_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v4s_v4s_v4s(dst, src, src2)) } +emit_cmtst_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cmtst_v2d_v2d_v2d(dst, src, src2)) } +inst_mvn_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_mvn_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MVN, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_mvn_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.MVN, dst, src) } +emit_mvn_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_v8b_v8b(dst, src)) } +emit_mvn_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_v16b_v16b(dst, src)) } +emit_mvn_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mvn_r_r(dst, src)) } +inst_bit_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BIT, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +emit_bit_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bit_v16b_v16b_v16b(dst, src, src2)) } +inst_bif_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BIF, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +emit_bif_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bif_v16b_v16b_v16b(dst, src, src2)) } +inst_bsl_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .BSL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_bsl_zd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BSL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_bsl_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_bsl_v16b_v16b_v16b(dst, src, src2)) } +emit_bsl_zd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bsl_zd_zd_zd_zd(rz, rz2, rz3, rz4)) } +inst_shl_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_shl_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_shl_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_shl_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_shl_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_shl_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_shl_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_shl_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v8b_v8b_i(dst, src, imm)) } +emit_shl_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v16b_v16b_i(dst, src, imm)) } +emit_shl_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v4h_v4h_i(dst, src, imm)) } +emit_shl_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v8h_v8h_i(dst, src, imm)) } +emit_shl_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v2s_v2s_i(dst, src, imm)) } +emit_shl_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v4s_v4s_i(dst, src, imm)) } +emit_shl_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shl_v2d_v2d_i(dst, src, imm)) } +inst_sqshl_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_sqshl_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_sqshl_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshl_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshl_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshl_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshl_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqshl_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v8b_v8b_i(dst, src, imm)) } +emit_sqshl_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v16b_v16b_i(dst, src, imm)) } +emit_sqshl_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v4h_v4h_i(dst, src, imm)) } +emit_sqshl_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v8h_v8h_i(dst, src, imm)) } +emit_sqshl_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v2s_v2s_i(dst, src, imm)) } +emit_sqshl_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v4s_v4s_i(dst, src, imm)) } +emit_sqshl_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshl_v2d_v2d_i(dst, src, imm)) } +inst_sqshlu_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_sqshlu_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_sqshlu_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshlu_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshlu_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshlu_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshlu_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHLU, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqshlu_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v8b_v8b_i(dst, src, imm)) } +emit_sqshlu_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v16b_v16b_i(dst, src, imm)) } +emit_sqshlu_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v4h_v4h_i(dst, src, imm)) } +emit_sqshlu_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v8h_v8h_i(dst, src, imm)) } +emit_sqshlu_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v2s_v2s_i(dst, src, imm)) } +emit_sqshlu_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v4s_v4s_i(dst, src, imm)) } +emit_sqshlu_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshlu_v2d_v2d_i(dst, src, imm)) } +inst_srshl_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_srshl_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_srshl_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_srshl_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_srshl_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_srshl_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_srshl_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SRSHL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_srshl_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v8b_v8b_v8b(dst, src, src2)) } +emit_srshl_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v16b_v16b_v16b(dst, src, src2)) } +emit_srshl_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v4h_v4h_v4h(dst, src, src2)) } +emit_srshl_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v8h_v8h_v8h(dst, src, src2)) } +emit_srshl_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v2s_v2s_v2s(dst, src, src2)) } +emit_srshl_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v4s_v4s_v4s(dst, src, src2)) } +emit_srshl_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_srshl_v2d_v2d_v2d(dst, src, src2)) } +inst_urshl_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_urshl_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_urshl_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_urshl_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_urshl_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_urshl_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_urshl_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .URSHL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_urshl_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v8b_v8b_v8b(dst, src, src2)) } +emit_urshl_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v16b_v16b_v16b(dst, src, src2)) } +emit_urshl_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v4h_v4h_v4h(dst, src, src2)) } +emit_urshl_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v8h_v8h_v8h(dst, src, src2)) } +emit_urshl_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v2s_v2s_v2s(dst, src, src2)) } +emit_urshl_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v4s_v4s_v4s(dst, src, src2)) } +emit_urshl_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_urshl_v2d_v2d_v2d(dst, src, src2)) } +inst_sshr_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_sshr_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_sshr_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_sshr_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sshr_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_sshr_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sshr_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHR, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sshr_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v8b_v8b_i(dst, src, imm)) } +emit_sshr_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v16b_v16b_i(dst, src, imm)) } +emit_sshr_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v4h_v4h_i(dst, src, imm)) } +emit_sshr_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v8h_v8h_i(dst, src, imm)) } +emit_sshr_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v2s_v2s_i(dst, src, imm)) } +emit_sshr_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v4s_v4s_i(dst, src, imm)) } +emit_sshr_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshr_v2d_v2d_i(dst, src, imm)) } +inst_ushr_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_ushr_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_ushr_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_ushr_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_ushr_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_ushr_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_ushr_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHR, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_ushr_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v8b_v8b_i(dst, src, imm)) } +emit_ushr_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v16b_v16b_i(dst, src, imm)) } +emit_ushr_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v4h_v4h_i(dst, src, imm)) } +emit_ushr_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v8h_v8h_i(dst, src, imm)) } +emit_ushr_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v2s_v2s_i(dst, src, imm)) } +emit_ushr_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v4s_v4s_i(dst, src, imm)) } +emit_ushr_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushr_v2d_v2d_i(dst, src, imm)) } +inst_ssra_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_ssra_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_ssra_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_ssra_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_ssra_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_ssra_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_ssra_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSRA, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_ssra_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v8b_v8b_i(dst, src, imm)) } +emit_ssra_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v16b_v16b_i(dst, src, imm)) } +emit_ssra_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v4h_v4h_i(dst, src, imm)) } +emit_ssra_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v8h_v8h_i(dst, src, imm)) } +emit_ssra_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v2s_v2s_i(dst, src, imm)) } +emit_ssra_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v4s_v4s_i(dst, src, imm)) } +emit_ssra_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ssra_v2d_v2d_i(dst, src, imm)) } +inst_usra_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_usra_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_usra_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_usra_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_usra_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_usra_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_usra_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USRA, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_usra_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v8b_v8b_i(dst, src, imm)) } +emit_usra_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v16b_v16b_i(dst, src, imm)) } +emit_usra_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v4h_v4h_i(dst, src, imm)) } +emit_usra_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v8h_v8h_i(dst, src, imm)) } +emit_usra_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v2s_v2s_i(dst, src, imm)) } +emit_usra_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v4s_v4s_i(dst, src, imm)) } +emit_usra_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_usra_v2d_v2d_i(dst, src, imm)) } +inst_srshr_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_srshr_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_srshr_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_srshr_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_srshr_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_srshr_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_srshr_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSHR, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_srshr_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v8b_v8b_i(dst, src, imm)) } +emit_srshr_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v16b_v16b_i(dst, src, imm)) } +emit_srshr_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v4h_v4h_i(dst, src, imm)) } +emit_srshr_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v8h_v8h_i(dst, src, imm)) } +emit_srshr_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v2s_v2s_i(dst, src, imm)) } +emit_srshr_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v4s_v4s_i(dst, src, imm)) } +emit_srshr_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srshr_v2d_v2d_i(dst, src, imm)) } +inst_urshr_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_urshr_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_urshr_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_urshr_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_urshr_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_urshr_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_urshr_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSHR, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_urshr_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v8b_v8b_i(dst, src, imm)) } +emit_urshr_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v16b_v16b_i(dst, src, imm)) } +emit_urshr_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v4h_v4h_i(dst, src, imm)) } +emit_urshr_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v8h_v8h_i(dst, src, imm)) } +emit_urshr_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v2s_v2s_i(dst, src, imm)) } +emit_urshr_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v4s_v4s_i(dst, src, imm)) } +emit_urshr_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_urshr_v2d_v2d_i(dst, src, imm)) } +inst_srsra_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_srsra_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_srsra_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_srsra_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_srsra_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_srsra_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_srsra_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRSRA, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_srsra_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v8b_v8b_i(dst, src, imm)) } +emit_srsra_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v16b_v16b_i(dst, src, imm)) } +emit_srsra_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v4h_v4h_i(dst, src, imm)) } +emit_srsra_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v8h_v8h_i(dst, src, imm)) } +emit_srsra_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v2s_v2s_i(dst, src, imm)) } +emit_srsra_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v4s_v4s_i(dst, src, imm)) } +emit_srsra_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_srsra_v2d_v2d_i(dst, src, imm)) } +inst_ursra_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_ursra_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_ursra_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_ursra_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_ursra_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_ursra_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_ursra_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .URSRA, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_ursra_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v8b_v8b_i(dst, src, imm)) } +emit_ursra_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v16b_v16b_i(dst, src, imm)) } +emit_ursra_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v4h_v4h_i(dst, src, imm)) } +emit_ursra_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v8h_v8h_i(dst, src, imm)) } +emit_ursra_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v2s_v2s_i(dst, src, imm)) } +emit_ursra_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v4s_v4s_i(dst, src, imm)) } +emit_ursra_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ursra_v2d_v2d_i(dst, src, imm)) } +inst_sshl_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_sshl_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_sshl_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_sshl_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_sshl_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_sshl_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_sshl_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .SSHL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_sshl_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v8b_v8b_v8b(dst, src, src2)) } +emit_sshl_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v16b_v16b_v16b(dst, src, src2)) } +emit_sshl_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v4h_v4h_v4h(dst, src, src2)) } +emit_sshl_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v8h_v8h_v8h(dst, src, src2)) } +emit_sshl_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v2s_v2s_v2s(dst, src, src2)) } +emit_sshl_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v4s_v4s_v4s(dst, src, src2)) } +emit_sshl_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sshl_v2d_v2d_v2d(dst, src, src2)) } +inst_ushl_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_ushl_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_ushl_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_ushl_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_ushl_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_ushl_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_ushl_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .USHL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +emit_ushl_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v8b_v8b_v8b(dst, src, src2)) } +emit_ushl_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v16b_v16b_v16b(dst, src, src2)) } +emit_ushl_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v4h_v4h_v4h(dst, src, src2)) } +emit_ushl_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v8h_v8h_v8h(dst, src, src2)) } +emit_ushl_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v2s_v2s_v2s(dst, src, src2)) } +emit_ushl_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v4s_v4s_v4s(dst, src, src2)) } +emit_ushl_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_ushl_v2d_v2d_v2d(dst, src, src2)) } +inst_sli_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_sli_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_sli_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_sli_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sli_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_sli_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sli_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SLI, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sli_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v8b_v8b_i(dst, src, imm)) } +emit_sli_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v16b_v16b_i(dst, src, imm)) } +emit_sli_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v4h_v4h_i(dst, src, imm)) } +emit_sli_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v8h_v8h_i(dst, src, imm)) } +emit_sli_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v2s_v2s_i(dst, src, imm)) } +emit_sli_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v4s_v4s_i(dst, src, imm)) } +emit_sli_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sli_v2d_v2d_i(dst, src, imm)) } +inst_sri_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_sri_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_sri_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_sri_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sri_v2s_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +inst_sri_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sri_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SRI, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sri_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v8b_v8b_i(dst, src, imm)) } +emit_sri_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v16b_v16b_i(dst, src, imm)) } +emit_sri_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v4h_v4h_i(dst, src, imm)) } +emit_sri_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v8h_v8h_i(dst, src, imm)) } +emit_sri_v2s_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v2s_v2s_i(dst, src, imm)) } +emit_sri_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v4s_v4s_i(dst, src, imm)) } +emit_sri_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sri_v2d_v2d_i(dst, src, imm)) } +inst_sshll_v8h_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_sshll_v4s_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_sshll_v2d_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +emit_sshll_v8h_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll_v8h_v8b_i(dst, src, imm)) } +emit_sshll_v4s_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll_v4s_v4h_i(dst, src, imm)) } +emit_sshll_v2d_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll_v2d_v2s_i(dst, src, imm)) } +inst_sshll2_v8h_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_sshll2_v4s_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sshll2_v2d_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SSHLL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +emit_sshll2_v8h_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll2_v8h_v16b_i(dst, src, imm)) } +emit_sshll2_v4s_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll2_v4s_v8h_i(dst, src, imm)) } +emit_sshll2_v2d_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sshll2_v2d_v4s_i(dst, src, imm)) } +inst_ushll_v8h_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8b(src), op_imm(imm, 4), {}, {}}} } +inst_ushll_v4s_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4h(src), op_imm(imm, 4), {}, {}}} } +inst_ushll_v2d_v2s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2s(src), op_imm(imm, 4), {}, {}}} } +emit_ushll_v8h_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll_v8h_v8b_i(dst, src, imm)) } +emit_ushll_v4s_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll_v4s_v4h_i(dst, src, imm)) } +emit_ushll_v2d_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll_v2d_v2s_i(dst, src, imm)) } +inst_ushll2_v8h_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_16b(src), op_imm(imm, 4), {}, {}}} } +inst_ushll2_v4s_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_ushll2_v2d_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .USHLL2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +emit_ushll2_v8h_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll2_v8h_v16b_i(dst, src, imm)) } +emit_ushll2_v4s_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll2_v4s_v8h_i(dst, src, imm)) } +emit_ushll2_v2d_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_ushll2_v2d_v4s_i(dst, src, imm)) } +inst_sxtl_v8h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8b(src), {}, {}, {}}} } +inst_sxtl_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4h(src), {}, {}, {}}} } +inst_sxtl_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2s(src), {}, {}, {}}} } +emit_sxtl_v8h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl_v8h_v8b(dst, src)) } +emit_sxtl_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl_v4s_v4h(dst, src)) } +emit_sxtl_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl_v2d_v2s(dst, src)) } +inst_sxtl2_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_16b(src), {}, {}, {}}} } +inst_sxtl2_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_sxtl2_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .SXTL2, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_sxtl2_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl2_v8h_v16b(dst, src)) } +emit_sxtl2_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl2_v4s_v8h(dst, src)) } +emit_sxtl2_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtl2_v2d_v4s(dst, src)) } +inst_uxtl_v8h_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8b(src), {}, {}, {}}} } +inst_uxtl_v4s_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4h(src), {}, {}, {}}} } +inst_uxtl_v2d_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_2s(src), {}, {}, {}}} } +emit_uxtl_v8h_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl_v8h_v8b(dst, src)) } +emit_uxtl_v4s_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl_v4s_v4h(dst, src)) } +emit_uxtl_v2d_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl_v2d_v2s(dst, src)) } +inst_uxtl2_v8h_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL2, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_16b(src), {}, {}, {}}} } +inst_uxtl2_v4s_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL2, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_8h(src), {}, {}, {}}} } +inst_uxtl2_v2d_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .UXTL2, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_v_4s(src), {}, {}, {}}} } +emit_uxtl2_v8h_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl2_v8h_v16b(dst, src)) } +emit_uxtl2_v4s_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl2_v4s_v8h(dst, src)) } +emit_uxtl2_v2d_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtl2_v2d_v4s(dst, src)) } +inst_shrn_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_shrn_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_shrn_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_shrn_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn_v8b_v8h_i(dst, src, imm)) } +emit_shrn_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn_v4h_v4s_i(dst, src, imm)) } +emit_shrn_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn_v2s_v2d_i(dst, src, imm)) } +inst_shrn2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_shrn2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_shrn2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SHRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_shrn2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn2_v16b_v8h_i(dst, src, imm)) } +emit_shrn2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn2_v8h_v4s_i(dst, src, imm)) } +emit_shrn2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_shrn2_v4s_v2d_i(dst, src, imm)) } +inst_rshrn_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_rshrn_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_rshrn_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_rshrn_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn_v8b_v8h_i(dst, src, imm)) } +emit_rshrn_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn_v4h_v4s_i(dst, src, imm)) } +emit_rshrn_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn_v2s_v2d_i(dst, src, imm)) } +inst_rshrn2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_rshrn2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_rshrn2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .RSHRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_rshrn2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn2_v16b_v8h_i(dst, src, imm)) } +emit_rshrn2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn2_v8h_v4s_i(dst, src, imm)) } +emit_rshrn2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_rshrn2_v4s_v2d_i(dst, src, imm)) } +inst_sqshrn_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrn_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrn_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqshrn_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn_v8b_v8h_i(dst, src, imm)) } +emit_sqshrn_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn_v4h_v4s_i(dst, src, imm)) } +emit_sqshrn_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn_v2s_v2d_i(dst, src, imm)) } +inst_sqshrn2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrn2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrn2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqshrn2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn2_v16b_v8h_i(dst, src, imm)) } +emit_sqshrn2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn2_v8h_v4s_i(dst, src, imm)) } +emit_sqshrn2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrn2_v4s_v2d_i(dst, src, imm)) } +inst_uqshrn_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_uqshrn_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_uqshrn_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_uqshrn_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn_v8b_v8h_i(dst, src, imm)) } +emit_uqshrn_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn_v4h_v4s_i(dst, src, imm)) } +emit_uqshrn_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn_v2s_v2d_i(dst, src, imm)) } +inst_uqshrn2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_uqshrn2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_uqshrn2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQSHRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_uqshrn2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn2_v16b_v8h_i(dst, src, imm)) } +emit_uqshrn2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn2_v8h_v4s_i(dst, src, imm)) } +emit_uqshrn2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqshrn2_v4s_v2d_i(dst, src, imm)) } +inst_sqrshrn_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrn_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrn_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqrshrn_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn_v8b_v8h_i(dst, src, imm)) } +emit_sqrshrn_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn_v4h_v4s_i(dst, src, imm)) } +emit_sqrshrn_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn_v2s_v2d_i(dst, src, imm)) } +inst_sqrshrn2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrn2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrn2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqrshrn2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn2_v16b_v8h_i(dst, src, imm)) } +emit_sqrshrn2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn2_v8h_v4s_i(dst, src, imm)) } +emit_sqrshrn2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrn2_v4s_v2d_i(dst, src, imm)) } +inst_uqrshrn_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_uqrshrn_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_uqrshrn_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_uqrshrn_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn_v8b_v8h_i(dst, src, imm)) } +emit_uqrshrn_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn_v4h_v4s_i(dst, src, imm)) } +emit_uqrshrn_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn_v2s_v2d_i(dst, src, imm)) } +inst_uqrshrn2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_uqrshrn2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_uqrshrn2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .UQRSHRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_uqrshrn2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn2_v16b_v8h_i(dst, src, imm)) } +emit_uqrshrn2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn2_v8h_v4s_i(dst, src, imm)) } +emit_uqrshrn2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_uqrshrn2_v4s_v2d_i(dst, src, imm)) } +inst_sqshrun_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrun_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrun_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqshrun_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun_v8b_v8h_i(dst, src, imm)) } +emit_sqshrun_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun_v4h_v4s_i(dst, src, imm)) } +emit_sqshrun_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun_v2s_v2d_i(dst, src, imm)) } +inst_sqshrun2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrun2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqshrun2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQSHRUN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqshrun2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun2_v16b_v8h_i(dst, src, imm)) } +emit_sqshrun2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun2_v8h_v4s_i(dst, src, imm)) } +emit_sqshrun2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqshrun2_v4s_v2d_i(dst, src, imm)) } +inst_sqrshrun_v8b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrun_v4h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrun_v2s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqrshrun_v8b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun_v8b_v8h_i(dst, src, imm)) } +emit_sqrshrun_v4h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun_v4h_v4s_i(dst, src, imm)) } +emit_sqrshrun_v2s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun_v2s_v2d_i(dst, src, imm)) } +inst_sqrshrun2_v16b_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_8h(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrun2_v8h_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_4s(src), op_imm(imm, 4), {}, {}}} } +inst_sqrshrun2_v4s_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .SQRSHRUN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_2d(src), op_imm(imm, 4), {}, {}}} } +emit_sqrshrun2_v16b_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun2_v16b_v8h_i(dst, src, imm)) } +emit_sqrshrun2_v8h_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun2_v8h_v4s_i(dst, src, imm)) } +emit_sqrshrun2_v4s_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_sqrshrun2_v4s_v2d_i(dst, src, imm)) } +inst_dup_v8b_veb_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_elem_b(src), op_lane_index(imm), {}, {}}} } +inst_dup_v16b_veb_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_elem_b(src), op_lane_index(imm), {}, {}}} } +inst_dup_v4h_veh_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_elem_h(src), op_lane_index(imm), {}, {}}} } +inst_dup_v8h_veh_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_elem_h(src), op_lane_index(imm), {}, {}}} } +inst_dup_v2s_ves_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_elem_s(src), op_lane_index(imm), {}, {}}} } +inst_dup_v4s_ves_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_elem_s(src), op_lane_index(imm), {}, {}}} } +inst_dup_v2d_ved_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_elem_d(src), op_lane_index(imm), {}, {}}} } +inst_dup_v8b_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_reg(src), {}, {}, {}}} } +inst_dup_v16b_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_reg(src), {}, {}, {}}} } +inst_dup_v4h_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_reg(src), {}, {}, {}}} } +inst_dup_v8h_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_reg(src), {}, {}, {}}} } +inst_dup_v2s_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_reg(src), {}, {}, {}}} } +inst_dup_v4s_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_reg(src), {}, {}, {}}} } +inst_dup_v2d_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_reg(src), {}, {}, {}}} } +inst_dup_zb_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_z_b(rz), op_reg(src), {}, {}, {}}} } +inst_dup_zh_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(src), {}, {}, {}}} } +inst_dup_zs_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(src), {}, {}, {}}} } +inst_dup_zd_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .DUP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(src), {}, {}, {}}} } +emit_dup_v8b_veb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v8b_veb_i(dst, src, imm)) } +emit_dup_v16b_veb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v16b_veb_i(dst, src, imm)) } +emit_dup_v4h_veh_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v4h_veh_i(dst, src, imm)) } +emit_dup_v8h_veh_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v8h_veh_i(dst, src, imm)) } +emit_dup_v2s_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v2s_ves_i(dst, src, imm)) } +emit_dup_v4s_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v4s_ves_i(dst, src, imm)) } +emit_dup_v2d_ved_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64) { append(instructions, inst_dup_v2d_ved_i(dst, src, imm)) } +emit_dup_v8b_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v8b_r(dst, src)) } +emit_dup_v16b_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v16b_r(dst, src)) } +emit_dup_v4h_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v4h_r(dst, src)) } +emit_dup_v8h_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v8h_r(dst, src)) } +emit_dup_v2s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v2s_r(dst, src)) } +emit_dup_v4s_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v4s_r(dst, src)) } +emit_dup_v2d_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_dup_v2d_r(dst, src)) } +emit_dup_zb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_dup_zb_r(rz, src)) } +emit_dup_zh_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_dup_zh_r(rz, src)) } +emit_dup_zs_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_dup_zs_r(rz, src)) } +emit_dup_zd_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_dup_zd_r(rz, src)) } +inst_ins_veb_i_veb_i :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 4, length = 4, ops = {op_v_elem_b(dst), op_lane_index(imm), op_v_elem_b(src), op_lane_index(imm2), {}}} } +inst_ins_veh_i_veh_i :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 4, length = 4, ops = {op_v_elem_h(dst), op_lane_index(imm), op_v_elem_h(src), op_lane_index(imm2), {}}} } +inst_ins_ves_i_ves_i :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 4, length = 4, ops = {op_v_elem_s(dst), op_lane_index(imm), op_v_elem_s(src), op_lane_index(imm2), {}}} } +inst_ins_ved_i_ved_i :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register, imm2: i64) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 4, length = 4, ops = {op_v_elem_d(dst), op_lane_index(imm), op_v_elem_d(src), op_lane_index(imm2), {}}} } +inst_ins_veb_i_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 3, length = 4, ops = {op_v_elem_b(dst), op_lane_index(imm), op_reg(src), {}, {}}} } +inst_ins_veh_i_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 3, length = 4, ops = {op_v_elem_h(dst), op_lane_index(imm), op_reg(src), {}, {}}} } +inst_ins_ves_i_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 3, length = 4, ops = {op_v_elem_s(dst), op_lane_index(imm), op_reg(src), {}, {}}} } +inst_ins_ved_i_r :: #force_inline proc "contextless" (dst: Register, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INS, operand_count = 3, length = 4, ops = {op_v_elem_d(dst), op_lane_index(imm), op_reg(src), {}, {}}} } +emit_ins_veb_i_veb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64) { append(instructions, inst_ins_veb_i_veb_i(dst, imm, src, imm2)) } +emit_ins_veh_i_veh_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64) { append(instructions, inst_ins_veh_i_veh_i(dst, imm, src, imm2)) } +emit_ins_ves_i_ves_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64) { append(instructions, inst_ins_ves_i_ves_i(dst, imm, src, imm2)) } +emit_ins_ved_i_ved_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register, imm2: i64) { append(instructions, inst_ins_ved_i_ved_i(dst, imm, src, imm2)) } +emit_ins_veb_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ins_veb_i_r(dst, imm, src)) } +emit_ins_veh_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ins_veh_i_r(dst, imm, src)) } +emit_ins_ves_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ins_ves_i_r(dst, imm, src)) } +emit_ins_ved_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, src: Register) { append(instructions, inst_ins_ved_i_r(dst, imm, src)) } +inst_mov_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_mov_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_mov_zb_p_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}, {}}} } +inst_mov_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_mov_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_mov_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +inst_mov_pb_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +inst_mov_pb_p :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .MOV, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_mov_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.MOV, dst, src) } +inst_mov_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.MOV, dst, imm) } +emit_mov_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_v8b_v8b(dst, src)) } +emit_mov_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_v16b_v16b(dst, src)) } +emit_mov_zb_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_mov_zb_p_zb(rz, rz2, rz3)) } +emit_mov_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_mov_zh_p_zh(rz, rz2, rz3)) } +emit_mov_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_mov_zs_p_zs(rz, rz2, rz3)) } +emit_mov_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_mov_zd_p_zd(rz, rz2, rz3)) } +emit_mov_pb_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_mov_pb_p_p(rz, rz2, rz3)) } +emit_mov_pb_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_mov_pb_p(rz, rz2)) } +emit_mov_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_mov_r_r(dst, src)) } +emit_mov_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mov_r_i(dst, imm)) } +inst_ext_v8b_v8b_v8b_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EXT, operand_count = 4, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), op_imm(imm, 4), {}}} } +inst_ext_v16b_v16b_v16b_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .EXT, operand_count = 4, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), op_imm(imm, 4), {}}} } +inst_ext_zb_zb_zb_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .EXT, operand_count = 4, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), op_imm(imm, 4), {}}} } +emit_ext_v8b_v8b_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_ext_v8b_v8b_v8b_i(dst, src, src2, imm)) } +emit_ext_v16b_v16b_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_ext_v16b_v16b_v16b_i(dst, src, src2, imm)) } +emit_ext_zb_zb_zb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, imm: i64) { append(instructions, inst_ext_zb_zb_zb_i(rz, rz2, rz3, imm)) } +inst_tbl_v8b_v16b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_list(src, VSHAPE_16B, 1), op_v_8b(src2), {}, {}}} } +inst_tbl_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_list(src, VSHAPE_16B, 1), op_v_16b(src2), {}, {}}} } +inst_tbl_zb_zl1b_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_z_b(rz), op_v_list(Register(REG_Z | (u16(rz2) & 0x1F)), ZSHAPE_B, 1), op_z_b(rz3), {}, {}}} } +inst_tbl_zh_zl1h_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_z_h(rz), op_v_list(Register(REG_Z | (u16(rz2) & 0x1F)), ZSHAPE_H, 1), op_z_h(rz3), {}, {}}} } +inst_tbl_zs_zl1s_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_z_s(rz), op_v_list(Register(REG_Z | (u16(rz2) & 0x1F)), ZSHAPE_S, 1), op_z_s(rz3), {}, {}}} } +inst_tbl_zd_zl1d_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_z_d(rz), op_v_list(Register(REG_Z | (u16(rz2) & 0x1F)), ZSHAPE_D, 1), op_z_d(rz3), {}, {}}} } +inst_tbl_zb_zl2b_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TBL, operand_count = 3, length = 4, ops = {op_z_b(rz), op_v_list(Register(REG_Z | (u16(rz2) & 0x1F)), ZSHAPE_B, 2), op_z_b(rz3), {}, {}}} } +emit_tbl_v8b_v16b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_tbl_v8b_v16b_v8b(dst, src, src2)) } +emit_tbl_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_tbl_v16b_v16b_v16b(dst, src, src2)) } +emit_tbl_zb_zl1b_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_tbl_zb_zl1b_zb(rz, rz2, rz3)) } +emit_tbl_zh_zl1h_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_tbl_zh_zl1h_zh(rz, rz2, rz3)) } +emit_tbl_zs_zl1s_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_tbl_zs_zl1s_zs(rz, rz2, rz3)) } +emit_tbl_zd_zl1d_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_tbl_zd_zl1d_zd(rz, rz2, rz3)) } +emit_tbl_zb_zl2b_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_tbl_zb_zl2b_zb(rz, rz2, rz3)) } +inst_tbx_v8b_v16b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TBX, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_list(src, VSHAPE_16B, 1), op_v_8b(src2), {}, {}}} } +inst_tbx_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TBX, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_list(src, VSHAPE_16B, 1), op_v_16b(src2), {}, {}}} } +inst_tbx_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TBX, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +emit_tbx_v8b_v16b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_tbx_v8b_v16b_v8b(dst, src, src2)) } +emit_tbx_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_tbx_v16b_v16b_v16b(dst, src, src2)) } +emit_tbx_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_tbx_zb_zb_zb(rz, rz2, rz3)) } +inst_zip1_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_zip1_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_zip1_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_zip1_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_zip1_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_zip1_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_zip1_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_zip1_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_zip1_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_zip1_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_zip1_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_zip1_pb_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP1, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_zip1_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v8b_v8b_v8b(dst, src, src2)) } +emit_zip1_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v16b_v16b_v16b(dst, src, src2)) } +emit_zip1_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v4h_v4h_v4h(dst, src, src2)) } +emit_zip1_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v8h_v8h_v8h(dst, src, src2)) } +emit_zip1_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v2s_v2s_v2s(dst, src, src2)) } +emit_zip1_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v4s_v4s_v4s(dst, src, src2)) } +emit_zip1_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip1_v2d_v2d_v2d(dst, src, src2)) } +emit_zip1_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip1_zb_zb_zb(rz, rz2, rz3)) } +emit_zip1_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip1_zh_zh_zh(rz, rz2, rz3)) } +emit_zip1_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip1_zs_zs_zs(rz, rz2, rz3)) } +emit_zip1_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip1_zd_zd_zd(rz, rz2, rz3)) } +emit_zip1_pb_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip1_pb_pb_pb(rz, rz2, rz3)) } +inst_zip2_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_zip2_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_zip2_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_zip2_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_zip2_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_zip2_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_zip2_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_zip2_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_zip2_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_zip2_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_zip2_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_zip2_pb_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_zip2_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v8b_v8b_v8b(dst, src, src2)) } +emit_zip2_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v16b_v16b_v16b(dst, src, src2)) } +emit_zip2_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v4h_v4h_v4h(dst, src, src2)) } +emit_zip2_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v8h_v8h_v8h(dst, src, src2)) } +emit_zip2_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v2s_v2s_v2s(dst, src, src2)) } +emit_zip2_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v4s_v4s_v4s(dst, src, src2)) } +emit_zip2_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_zip2_v2d_v2d_v2d(dst, src, src2)) } +emit_zip2_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip2_zb_zb_zb(rz, rz2, rz3)) } +emit_zip2_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip2_zh_zh_zh(rz, rz2, rz3)) } +emit_zip2_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip2_zs_zs_zs(rz, rz2, rz3)) } +emit_zip2_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip2_zd_zd_zd(rz, rz2, rz3)) } +emit_zip2_pb_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip2_pb_pb_pb(rz, rz2, rz3)) } +inst_uzp1_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uzp1_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uzp1_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uzp1_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uzp1_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uzp1_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_uzp1_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_uzp1_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_uzp1_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_uzp1_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_uzp1_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_uzp1_pb_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP1, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_uzp1_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v8b_v8b_v8b(dst, src, src2)) } +emit_uzp1_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v16b_v16b_v16b(dst, src, src2)) } +emit_uzp1_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v4h_v4h_v4h(dst, src, src2)) } +emit_uzp1_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v8h_v8h_v8h(dst, src, src2)) } +emit_uzp1_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v2s_v2s_v2s(dst, src, src2)) } +emit_uzp1_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v4s_v4s_v4s(dst, src, src2)) } +emit_uzp1_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp1_v2d_v2d_v2d(dst, src, src2)) } +emit_uzp1_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp1_zb_zb_zb(rz, rz2, rz3)) } +emit_uzp1_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp1_zh_zh_zh(rz, rz2, rz3)) } +emit_uzp1_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp1_zs_zs_zs(rz, rz2, rz3)) } +emit_uzp1_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp1_zd_zd_zd(rz, rz2, rz3)) } +emit_uzp1_pb_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp1_pb_pb_pb(rz, rz2, rz3)) } +inst_uzp2_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_uzp2_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_uzp2_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_uzp2_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_uzp2_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_uzp2_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_uzp2_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_uzp2_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_uzp2_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_uzp2_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_uzp2_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_uzp2_pb_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_uzp2_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v8b_v8b_v8b(dst, src, src2)) } +emit_uzp2_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v16b_v16b_v16b(dst, src, src2)) } +emit_uzp2_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v4h_v4h_v4h(dst, src, src2)) } +emit_uzp2_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v8h_v8h_v8h(dst, src, src2)) } +emit_uzp2_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v2s_v2s_v2s(dst, src, src2)) } +emit_uzp2_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v4s_v4s_v4s(dst, src, src2)) } +emit_uzp2_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_uzp2_v2d_v2d_v2d(dst, src, src2)) } +emit_uzp2_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp2_zb_zb_zb(rz, rz2, rz3)) } +emit_uzp2_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp2_zh_zh_zh(rz, rz2, rz3)) } +emit_uzp2_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp2_zs_zs_zs(rz, rz2, rz3)) } +emit_uzp2_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp2_zd_zd_zd(rz, rz2, rz3)) } +emit_uzp2_pb_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp2_pb_pb_pb(rz, rz2, rz3)) } +inst_trn1_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_trn1_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_trn1_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_trn1_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_trn1_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_trn1_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_trn1_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_trn1_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_trn1_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_trn1_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_trn1_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_trn1_pb_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN1, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_trn1_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v8b_v8b_v8b(dst, src, src2)) } +emit_trn1_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v16b_v16b_v16b(dst, src, src2)) } +emit_trn1_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v4h_v4h_v4h(dst, src, src2)) } +emit_trn1_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v8h_v8h_v8h(dst, src, src2)) } +emit_trn1_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v2s_v2s_v2s(dst, src, src2)) } +emit_trn1_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v4s_v4s_v4s(dst, src, src2)) } +emit_trn1_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn1_v2d_v2d_v2d(dst, src, src2)) } +emit_trn1_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn1_zb_zb_zb(rz, rz2, rz3)) } +emit_trn1_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn1_zh_zh_zh(rz, rz2, rz3)) } +emit_trn1_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn1_zs_zs_zs(rz, rz2, rz3)) } +emit_trn1_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn1_zd_zd_zd(rz, rz2, rz3)) } +emit_trn1_pb_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn1_pb_pb_pb(rz, rz2, rz3)) } +inst_trn2_v8b_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_8b(dst), op_v_8b(src), op_v_8b(src2), {}, {}}} } +inst_trn2_v16b_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_16b(dst), op_v_16b(src), op_v_16b(src2), {}, {}}} } +inst_trn2_v4h_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), {}, {}}} } +inst_trn2_v8h_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), {}, {}}} } +inst_trn2_v2s_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_2s(dst), op_v_2s(src), op_v_2s(src2), {}, {}}} } +inst_trn2_v4s_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), {}, {}}} } +inst_trn2_v2d_v2d_v2d :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), {}, {}}} } +inst_trn2_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_trn2_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_trn2_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_trn2_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +inst_trn2_pb_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .TRN2, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_trn2_v8b_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v8b_v8b_v8b(dst, src, src2)) } +emit_trn2_v16b_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v16b_v16b_v16b(dst, src, src2)) } +emit_trn2_v4h_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v4h_v4h_v4h(dst, src, src2)) } +emit_trn2_v8h_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v8h_v8h_v8h(dst, src, src2)) } +emit_trn2_v2s_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v2s_v2s_v2s(dst, src, src2)) } +emit_trn2_v4s_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v4s_v4s_v4s(dst, src, src2)) } +emit_trn2_v2d_v2d_v2d :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_trn2_v2d_v2d_v2d(dst, src, src2)) } +emit_trn2_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn2_zb_zb_zb(rz, rz2, rz3)) } +emit_trn2_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn2_zh_zh_zh(rz, rz2, rz3)) } +emit_trn2_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn2_zs_zs_zs(rz, rz2, rz3)) } +emit_trn2_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn2_zd_zd_zd(rz, rz2, rz3)) } +emit_trn2_pb_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_trn2_pb_pb_pb(rz, rz2, rz3)) } +inst_not_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NOT, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_not_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .NOT, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_not_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .NOT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_not_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_not_v8b_v8b(dst, src)) } +emit_not_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_not_v16b_v16b(dst, src)) } +emit_not_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_not_pb_p_pb(rz, rz2, rz3)) } +inst_rev64_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_rev64_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_rev64_v4h_v4h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_v_4h(src), {}, {}, {}}} } +inst_rev64_v8h_v8h :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_v_8h(src), {}, {}, {}}} } +inst_rev64_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_rev64_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .REV64, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +emit_rev64_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_v8b_v8b(dst, src)) } +emit_rev64_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_v16b_v16b(dst, src)) } +emit_rev64_v4h_v4h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_v4h_v4h(dst, src)) } +emit_rev64_v8h_v8h :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_v8h_v8h(dst, src)) } +emit_rev64_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_v2s_v2s(dst, src)) } +emit_rev64_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_rev64_v4s_v4s(dst, src)) } +inst_cnt_v8b_v8b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_v_8b(src), {}, {}, {}}} } +inst_cnt_v16b_v16b :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_v_16b(src), {}, {}, {}}} } +inst_cnt_zb_p_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), {}, {}}} } +inst_cnt_zh_p_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), {}, {}}} } +inst_cnt_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_cnt_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .CNT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_cnt_v8b_v8b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cnt_v8b_v8b(dst, src)) } +emit_cnt_v16b_v16b :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_cnt_v16b_v16b(dst, src)) } +emit_cnt_zb_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cnt_zb_p_zb(rz, rz2, rz3)) } +emit_cnt_zh_p_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cnt_zh_p_zh(rz, rz2, rz3)) } +emit_cnt_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cnt_zs_p_zs(rz, rz2, rz3)) } +emit_cnt_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_cnt_zd_p_zd(rz, rz2, rz3)) } +inst_urecpe_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .URECPE, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_urecpe_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .URECPE, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +emit_urecpe_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_urecpe_v2s_v2s(dst, src)) } +emit_urecpe_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_urecpe_v4s_v4s(dst, src)) } +inst_ursqrte_v2s_v2s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .URSQRTE, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_v_2s(src), {}, {}, {}}} } +inst_ursqrte_v4s_v4s :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return Instruction{mnemonic = .URSQRTE, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_v_4s(src), {}, {}, {}}} } +emit_ursqrte_v2s_v2s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ursqrte_v2s_v2s(dst, src)) } +emit_ursqrte_v4s_v4s :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ursqrte_v4s_v4s(dst, src)) } +inst_movi_v8b_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_8b(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_movi_v16b_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_16b(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_movi_v4h_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_movi_v8h_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_movi_v2s_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_movi_v4s_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_movi_v2d_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVI, operand_count = 2, length = 4, ops = {op_v_2d(dst), op_imm(imm, 1), {}, {}, {}}} } +emit_movi_v8b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v8b_i(dst, imm)) } +emit_movi_v16b_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v16b_i(dst, imm)) } +emit_movi_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v4h_i(dst, imm)) } +emit_movi_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v8h_i(dst, imm)) } +emit_movi_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v2s_i(dst, imm)) } +emit_movi_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v4s_i(dst, imm)) } +emit_movi_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_movi_v2d_i(dst, imm)) } +inst_mvni_v4h_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVNI, operand_count = 2, length = 4, ops = {op_v_4h(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_mvni_v8h_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVNI, operand_count = 2, length = 4, ops = {op_v_8h(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_mvni_v2s_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVNI, operand_count = 2, length = 4, ops = {op_v_2s(dst), op_imm(imm, 1), {}, {}, {}}} } +inst_mvni_v4s_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .MVNI, operand_count = 2, length = 4, ops = {op_v_4s(dst), op_imm(imm, 1), {}, {}, {}}} } +emit_mvni_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvni_v4h_i(dst, imm)) } +emit_mvni_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvni_v8h_i(dst, imm)) } +emit_mvni_v2s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvni_v2s_i(dst, imm)) } +emit_mvni_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_mvni_v4s_i(dst, imm)) } +inst_ld1_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 1), op_mem(mem), {}, {}, {}}} } +inst_ld1_v8h_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_8H, 1), op_mem(mem), {}, {}, {}}} } +inst_ld1_v4s_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_4S, 1), op_mem(mem), {}, {}, {}}} } +inst_ld1_v2d_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_2D, 1), op_mem(mem), {}, {}, {}}} } +inst_ld1_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld1_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld1_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld1_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_ld1_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1_v16b_m(dst, mem)) } +emit_ld1_v8h_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1_v8h_m(dst, mem)) } +emit_ld1_v4s_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1_v4s_m(dst, mem)) } +emit_ld1_v2d_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1_v2d_m(dst, mem)) } +emit_ld1_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld1_veb_i_m(dst, imm, mem)) } +emit_ld1_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld1_veh_i_m(dst, imm, mem)) } +emit_ld1_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld1_ves_i_m(dst, imm, mem)) } +emit_ld1_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld1_ved_i_m(dst, imm, mem)) } +inst_ld2_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 2), op_mem(mem), {}, {}, {}}} } +inst_ld2_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld2_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld2_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld2_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_ld2_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld2_v16b_m(dst, mem)) } +emit_ld2_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld2_veb_i_m(dst, imm, mem)) } +emit_ld2_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld2_veh_i_m(dst, imm, mem)) } +emit_ld2_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld2_ves_i_m(dst, imm, mem)) } +emit_ld2_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld2_ved_i_m(dst, imm, mem)) } +inst_ld3_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 3), op_mem(mem), {}, {}, {}}} } +inst_ld3_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld3_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld3_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld3_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_ld3_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld3_v16b_m(dst, mem)) } +emit_ld3_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld3_veb_i_m(dst, imm, mem)) } +emit_ld3_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld3_veh_i_m(dst, imm, mem)) } +emit_ld3_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld3_ves_i_m(dst, imm, mem)) } +emit_ld3_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld3_ved_i_m(dst, imm, mem)) } +inst_ld4_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 4), op_mem(mem), {}, {}, {}}} } +inst_ld4_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld4_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld4_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_ld4_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_ld4_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld4_v16b_m(dst, mem)) } +emit_ld4_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld4_veb_i_m(dst, imm, mem)) } +emit_ld4_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld4_veh_i_m(dst, imm, mem)) } +emit_ld4_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld4_ves_i_m(dst, imm, mem)) } +emit_ld4_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_ld4_ved_i_m(dst, imm, mem)) } +inst_st1_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 1), op_mem(mem), {}, {}, {}}} } +inst_st1_v8h_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_8H, 1), op_mem(mem), {}, {}, {}}} } +inst_st1_v4s_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_4S, 1), op_mem(mem), {}, {}, {}}} } +inst_st1_v2d_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_2D, 1), op_mem(mem), {}, {}, {}}} } +inst_st1_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st1_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st1_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st1_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 1), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_st1_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st1_v16b_m(dst, mem)) } +emit_st1_v8h_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st1_v8h_m(dst, mem)) } +emit_st1_v4s_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st1_v4s_m(dst, mem)) } +emit_st1_v2d_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st1_v2d_m(dst, mem)) } +emit_st1_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st1_veb_i_m(dst, imm, mem)) } +emit_st1_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st1_veh_i_m(dst, imm, mem)) } +emit_st1_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st1_ves_i_m(dst, imm, mem)) } +emit_st1_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st1_ved_i_m(dst, imm, mem)) } +inst_st2_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 2), op_mem(mem), {}, {}, {}}} } +inst_st2_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st2_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st2_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st2_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST2, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 2), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_st2_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st2_v16b_m(dst, mem)) } +emit_st2_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st2_veb_i_m(dst, imm, mem)) } +emit_st2_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st2_veh_i_m(dst, imm, mem)) } +emit_st2_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st2_ves_i_m(dst, imm, mem)) } +emit_st2_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st2_ved_i_m(dst, imm, mem)) } +inst_st3_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 3), op_mem(mem), {}, {}, {}}} } +inst_st3_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st3_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st3_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st3_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST3, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 3), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_st3_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st3_v16b_m(dst, mem)) } +emit_st3_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st3_veb_i_m(dst, imm, mem)) } +emit_st3_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st3_veh_i_m(dst, imm, mem)) } +emit_st3_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st3_ves_i_m(dst, imm, mem)) } +emit_st3_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st3_ved_i_m(dst, imm, mem)) } +inst_st4_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 4), op_mem(mem), {}, {}, {}}} } +inst_st4_veb_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_B, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st4_veh_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_H, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st4_ves_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_S, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +inst_st4_ved_i_m :: #force_inline proc "contextless" (dst: Register, imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST4, operand_count = 3, length = 4, ops = {op_v_list(dst, VSHAPE_ELEM_D, 4), op_lane_index(imm), op_mem(mem), {}, {}}} } +emit_st4_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_st4_v16b_m(dst, mem)) } +emit_st4_veb_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st4_veb_i_m(dst, imm, mem)) } +emit_st4_veh_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st4_veh_i_m(dst, imm, mem)) } +emit_st4_ves_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st4_ves_i_m(dst, imm, mem)) } +emit_st4_ved_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, mem: Memory) { append(instructions, inst_st4_ved_i_m(dst, imm, mem)) } +inst_ld1r_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1R, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 1), op_mem(mem), {}, {}, {}}} } +emit_ld1r_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld1r_v16b_m(dst, mem)) } +inst_ld2r_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD2R, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 2), op_mem(mem), {}, {}, {}}} } +emit_ld2r_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld2r_v16b_m(dst, mem)) } +inst_ld3r_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD3R, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 3), op_mem(mem), {}, {}, {}}} } +emit_ld3r_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld3r_v16b_m(dst, mem)) } +inst_ld4r_v16b_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD4R, operand_count = 2, length = 4, ops = {op_v_list(dst, VSHAPE_16B, 4), op_mem(mem), {}, {}, {}}} } +emit_ld4r_v16b_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ld4r_v16b_m(dst, mem)) } +inst_subr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUBR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_subr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUBR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_subr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUBR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_subr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUBR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_subr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_subr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_subr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_subr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_subr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_subr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_subr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_subr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_asrr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASRR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_asrr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASRR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_asrr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASRR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_asrr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ASRR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_asrr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asrr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_asrr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asrr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_asrr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asrr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_asrr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_asrr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_lslr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSLR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_lslr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSLR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_lslr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSLR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_lslr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSLR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_lslr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lslr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_lslr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lslr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_lslr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lslr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_lslr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lslr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_lsrr_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSRR, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_lsrr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSRR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_lsrr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSRR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_lsrr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .LSRR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_lsrr_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsrr_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_lsrr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsrr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_lsrr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsrr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_lsrr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_lsrr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_ftsmul_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FTSMUL, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_ftsmul_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FTSMUL, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_ftsmul_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .FTSMUL, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_ftsmul_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_ftsmul_zh_zh_zh(rz, rz2, rz3)) } +emit_ftsmul_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_ftsmul_zs_zs_zs(rz, rz2, rz3)) } +emit_ftsmul_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_ftsmul_zd_zd_zd(rz, rz2, rz3)) } +inst_fsubr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FSUBR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fsubr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FSUBR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fsubr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FSUBR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fsubr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fsubr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fsubr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fsubr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fsubr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fsubr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fdivr_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FDIVR, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fdivr_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FDIVR, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fdivr_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FDIVR, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fdivr_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fdivr_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fdivr_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fdivr_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fdivr_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fdivr_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fnmla_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FNMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fnmla_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FNMLA, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fnmla_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FNMLA, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fnmla_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fnmla_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fnmla_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fnmla_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fnmla_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fnmla_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fnmls_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FNMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fnmls_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FNMLS, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fnmls_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FNMLS, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fnmls_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fnmls_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fnmls_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fnmls_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fnmls_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fnmls_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_nand_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NAND, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_nand_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nand_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_nor_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NOR, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_nor_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nor_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_sel_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SEL, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_sel_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sel_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_orrs_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORRS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_orrs_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orrs_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_eors_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .EORS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_eors_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_eors_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_nands_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NANDS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_nands_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nands_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_nors_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NORS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_nors_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nors_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_orns_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .ORNS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_orns_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_orns_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_movs_pb_p_p :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .MOVS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_movs_pb_p_p :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_movs_pb_p_p(rz, rz2, rz3)) } +inst_ptrue_pb_i :: #force_inline proc "contextless" (rz: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .PTRUE, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_imm(imm, 4), {}, {}, {}}} } +emit_ptrue_pb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64) { append(instructions, inst_ptrue_pb_i(rz, imm)) } +inst_ptrues_pb_i :: #force_inline proc "contextless" (rz: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .PTRUES, operand_count = 2, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_imm(imm, 4), {}, {}, {}}} } +emit_ptrues_pb_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64) { append(instructions, inst_ptrues_pb_i(rz, imm)) } +inst_pfalse_pb :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .PFALSE, operand_count = 1, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), {}, {}, {}, {}}} } +emit_pfalse_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_pfalse_pb(rz)) } +inst_pfirst_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .PFIRST, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_pfirst_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_pfirst_pb_p_pb(rz, rz2, rz3)) } +inst_pnext_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .PNEXT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_pnext_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_pnext_pb_p_pb(rz, rz2, rz3)) } +inst_brka_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BRKA, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_brka_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_brka_pb_p_pb(rz, rz2, rz3)) } +inst_brkb_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BRKB, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_brkb_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_brkb_pb_p_pb(rz, rz2, rz3)) } +inst_brkas_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BRKAS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_brkas_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_brkas_pb_p_pb(rz, rz2, rz3)) } +inst_brkbs_pb_p_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BRKBS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), {}, {}}} } +emit_brkbs_pb_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_brkbs_pb_p_pb(rz, rz2, rz3)) } +inst_brkpa_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BRKPA, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_brkpa_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_brkpa_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_brkpb_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BRKPB, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_brkpb_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_brkpb_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_brkn_pb_p_pb_pb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BRKN, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(Register(REG_P | (u16(rz3) & 0xF))), op_reg(Register(REG_P | (u16(rz4) & 0xF))), {}}} } +emit_brkn_pb_p_pb_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_brkn_pb_p_pb_pb(rz, rz2, rz3, rz4)) } +inst_rdffr_pb :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .RDFFR, operand_count = 1, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), {}, {}, {}, {}}} } +emit_rdffr_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_rdffr_pb(rz)) } +inst_wrffr_pb :: #force_inline proc "contextless" (rz: u8) -> Instruction { return Instruction{mnemonic = .WRFFR, operand_count = 1, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), {}, {}, {}, {}}} } +emit_wrffr_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8) { append(instructions, inst_wrffr_pb(rz)) } +inst_setffr_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SETFFR) } +emit_setffr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_setffr_none()) } +inst_cmpeq_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmpeq_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmpeq_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmpeq_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPEQ, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmpeq_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpeq_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmpeq_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpeq_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmpeq_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpeq_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmpeq_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpeq_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmpne_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmpne_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmpne_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmpne_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmpne_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpne_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmpne_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpne_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmpne_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpne_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmpne_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpne_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmpge_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmpge_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmpge_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmpge_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmpge_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpge_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmpge_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpge_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmpge_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpge_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmpge_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpge_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmpgt_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmpgt_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmpgt_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmpgt_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPGT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmpgt_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpgt_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmpgt_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpgt_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmpgt_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpgt_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmpgt_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpgt_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmple_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmple_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmple_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmple_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmple_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmple_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmple_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmple_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmple_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmple_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmple_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmple_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmplt_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmplt_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmplt_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmplt_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLT, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmplt_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplt_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmplt_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplt_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmplt_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplt_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmplt_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplt_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmphi_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHI, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmphi_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHI, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmphi_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHI, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmphi_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHI, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmphi_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphi_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmphi_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphi_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmphi_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphi_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmphi_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphi_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmphs_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmphs_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmphs_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmphs_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPHS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmphs_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphs_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmphs_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphs_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmphs_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphs_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmphs_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmphs_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmplo_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmplo_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmplo_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmplo_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmplo_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplo_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmplo_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplo_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmplo_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplo_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmplo_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmplo_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_cmpls_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_cmpls_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_cmpls_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_cmpls_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .CMPLS, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_cmpls_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpls_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_cmpls_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpls_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_cmpls_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpls_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_cmpls_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_cmpls_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fcmne_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fcmne_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fcmne_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMNE, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fcmne_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmne_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fcmne_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmne_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fcmne_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmne_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_fcmuo_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMUO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_fcmuo_ps_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMUO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_fcmuo_pd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FCMUO, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_fcmuo_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmuo_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_fcmuo_ps_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmuo_ps_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_fcmuo_pd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fcmuo_pd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_insr_zb_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .INSR, operand_count = 2, length = 4, ops = {op_z_b(rz), op_reg(src), {}, {}, {}}} } +inst_insr_zh_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .INSR, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(src), {}, {}, {}}} } +inst_insr_zs_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .INSR, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(src), {}, {}, {}}} } +inst_insr_zd_r :: #force_inline proc "contextless" (rz: u8, src: Register) -> Instruction { return Instruction{mnemonic = .INSR, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(src), {}, {}, {}}} } +emit_insr_zb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_insr_zb_r(rz, src)) } +emit_insr_zh_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_insr_zh_r(rz, src)) } +emit_insr_zs_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_insr_zs_r(rz, src)) } +emit_insr_zd_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register) { append(instructions, inst_insr_zd_r(rz, src)) } +inst_cpy_zb_p_r :: #force_inline proc "contextless" (rz: u8, rz2: u8, src: Register) -> Instruction { return Instruction{mnemonic = .CPY, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(src), {}, {}}} } +inst_cpy_zh_p_r :: #force_inline proc "contextless" (rz: u8, rz2: u8, src: Register) -> Instruction { return Instruction{mnemonic = .CPY, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(src), {}, {}}} } +inst_cpy_zs_p_r :: #force_inline proc "contextless" (rz: u8, rz2: u8, src: Register) -> Instruction { return Instruction{mnemonic = .CPY, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(src), {}, {}}} } +inst_cpy_zd_p_r :: #force_inline proc "contextless" (rz: u8, rz2: u8, src: Register) -> Instruction { return Instruction{mnemonic = .CPY, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_reg(src), {}, {}}} } +emit_cpy_zb_p_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register) { append(instructions, inst_cpy_zb_p_r(rz, rz2, src)) } +emit_cpy_zh_p_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register) { append(instructions, inst_cpy_zh_p_r(rz, rz2, src)) } +emit_cpy_zs_p_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register) { append(instructions, inst_cpy_zs_p_r(rz, rz2, src)) } +emit_cpy_zd_p_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, src: Register) { append(instructions, inst_cpy_zd_p_r(rz, rz2, src)) } +inst_compact_zs_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .COMPACT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +inst_compact_zd_p_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .COMPACT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), {}, {}}} } +emit_compact_zs_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_compact_zs_p_zs(rz, rz2, rz3)) } +emit_compact_zd_p_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_compact_zd_p_zd(rz, rz2, rz3)) } +inst_ld1b_zb_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_B, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1b_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1b_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1b_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1B, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1b_zpb_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_ld1b_zqb_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_ld1b_zb_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1b_zb_p_m(rz, rz2, mem)) } +emit_ld1b_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1b_zs_p_m(rz, rz2, mem)) } +emit_ld1b_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1b_zd_p_m(rz, rz2, mem)) } +emit_ld1b_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_ld1b_i_p_m(imm, rz1, mem)) } +emit_ld1b_zpb_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1b_zpb_pnz_m(rz, rz2, mem)) } +emit_ld1b_zqb_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1b_zqb_pnz_m(rz, rz2, mem)) } +inst_ld1h_zh_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_H, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1h_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1h_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1h_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1H, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1h_zph_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_ld1h_zqh_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_ld1h_zh_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1h_zh_p_m(rz, rz2, mem)) } +emit_ld1h_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1h_zs_p_m(rz, rz2, mem)) } +emit_ld1h_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1h_zd_p_m(rz, rz2, mem)) } +emit_ld1h_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_ld1h_i_p_m(imm, rz1, mem)) } +emit_ld1h_zph_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1h_zph_pnz_m(rz, rz2, mem)) } +emit_ld1h_zqh_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1h_zqh_pnz_m(rz, rz2, mem)) } +inst_ld1w_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1w_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1w_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1W, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1w_zps_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_ld1w_zqs_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_ld1w_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1w_zs_p_m(rz, rz2, mem)) } +emit_ld1w_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1w_zd_p_m(rz, rz2, mem)) } +emit_ld1w_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_ld1w_i_p_m(imm, rz1, mem)) } +emit_ld1w_zps_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1w_zps_pnz_m(rz, rz2, mem)) } +emit_ld1w_zqs_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1w_zqs_pnz_m(rz, rz2, mem)) } +inst_ld1d_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1D, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1d_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1D, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1d_zpd_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_ld1d_zqd_pnz_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_ld1d_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1d_zd_p_m(rz, rz2, mem)) } +emit_ld1d_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_ld1d_i_p_m(imm, rz1, mem)) } +emit_ld1d_zpd_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1d_zpd_pnz_m(rz, rz2, mem)) } +emit_ld1d_zqd_pnz_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1d_zqd_pnz_m(rz, rz2, mem)) } +inst_ld1sb_zh_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1SB, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_H, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1sb_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1SB, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1sb_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1SB, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ld1sb_zh_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1sb_zh_p_m(rz, rz2, mem)) } +emit_ld1sb_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1sb_zs_p_m(rz, rz2, mem)) } +emit_ld1sb_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1sb_zd_p_m(rz, rz2, mem)) } +inst_ld1sh_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1SH, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_ld1sh_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1SH, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ld1sh_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1sh_zd_p_m(rz, rz2, mem)) } +emit_ld1sh_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1sh_zs_p_m(rz, rz2, mem)) } +inst_ld1sw_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1SW, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ld1sw_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ld1sw_zd_p_m(rz, rz2, mem)) } +inst_st1b_zb_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_B, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1b_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1b_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1b_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1B, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1b_zpb_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_st1b_zqb_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1B, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_st1b_zb_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1b_zb_p_m(rz, rz2, mem)) } +emit_st1b_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1b_zs_p_m(rz, rz2, mem)) } +emit_st1b_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1b_zd_p_m(rz, rz2, mem)) } +emit_st1b_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_st1b_i_p_m(imm, rz1, mem)) } +emit_st1b_zpb_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1b_zpb_pn_m(rz, rz2, mem)) } +emit_st1b_zqb_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1b_zqb_pn_m(rz, rz2, mem)) } +inst_st1h_zh_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_H, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1h_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1h_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1H, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1h_zph_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_st1h_zqh_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1H, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_st1h_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_st1h_zh_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1h_zh_p_m(rz, rz2, mem)) } +emit_st1h_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1h_zd_p_m(rz, rz2, mem)) } +emit_st1h_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_st1h_i_p_m(imm, rz1, mem)) } +emit_st1h_zph_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1h_zph_pn_m(rz, rz2, mem)) } +emit_st1h_zqh_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1h_zqh_pn_m(rz, rz2, mem)) } +emit_st1h_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1h_zs_p_m(rz, rz2, mem)) } +inst_st1w_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1w_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1w_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1W, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1w_zps_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_st1w_zqs_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1W, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_st1w_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1w_zs_p_m(rz, rz2, mem)) } +emit_st1w_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1w_zd_p_m(rz, rz2, mem)) } +emit_st1w_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_st1w_i_p_m(imm, rz1, mem)) } +emit_st1w_zps_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1w_zps_pn_m(rz, rz2, mem)) } +emit_st1w_zqs_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1w_zqs_pn_m(rz, rz2, mem)) } +inst_st1d_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1D, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1d_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1D, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +inst_st1d_zpd_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +inst_st1d_zqd_pn_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1D, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_PN | (8 + (u16(rz2) & 0x7)))), op_mem(mem), {}, {}}} } +emit_st1d_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1d_zd_p_m(rz, rz2, mem)) } +emit_st1d_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_st1d_i_p_m(imm, rz1, mem)) } +emit_st1d_zpd_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1d_zpd_pn_m(rz, rz2, mem)) } +emit_st1d_zqd_pn_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_st1d_zqd_pn_m(rz, rz2, mem)) } +inst_ldff1b_zb_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDFF1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_B, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldff1b_zb_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldff1b_zb_p_m(rz, rz2, mem)) } +inst_ldff1h_zh_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDFF1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_H, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldff1h_zh_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldff1h_zh_p_m(rz, rz2, mem)) } +inst_ldff1w_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDFF1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldff1w_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldff1w_zs_p_m(rz, rz2, mem)) } +inst_ldff1d_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDFF1D, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldff1d_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldff1d_zd_p_m(rz, rz2, mem)) } +inst_whilege_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilege_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilege_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilege_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilege_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilege_pb_r_r(rz, src, src2)) } +emit_whilege_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilege_ph_r_r(rz, src, src2)) } +emit_whilege_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilege_ps_r_r(rz, src, src2)) } +emit_whilege_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilege_pd_r_r(rz, src, src2)) } +inst_whilegt_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilegt_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilegt_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilegt_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEGT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilegt_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilegt_pb_r_r(rz, src, src2)) } +emit_whilegt_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilegt_ph_r_r(rz, src, src2)) } +emit_whilegt_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilegt_ps_r_r(rz, src, src2)) } +emit_whilegt_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilegt_pd_r_r(rz, src, src2)) } +inst_whilele_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilele_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilele_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilele_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELE, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilele_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilele_pb_r_r(rz, src, src2)) } +emit_whilele_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilele_ph_r_r(rz, src, src2)) } +emit_whilele_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilele_ps_r_r(rz, src, src2)) } +emit_whilele_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilele_pd_r_r(rz, src, src2)) } +inst_whilelt_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilelt_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilelt_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilelt_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELT, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilelt_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelt_pb_r_r(rz, src, src2)) } +emit_whilelt_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelt_ph_r_r(rz, src, src2)) } +emit_whilelt_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelt_ps_r_r(rz, src, src2)) } +emit_whilelt_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelt_pd_r_r(rz, src, src2)) } +inst_whilehi_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHI, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilehi_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHI, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilehi_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHI, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilehi_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHI, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilehi_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehi_pb_r_r(rz, src, src2)) } +emit_whilehi_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehi_ph_r_r(rz, src, src2)) } +emit_whilehi_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehi_ps_r_r(rz, src, src2)) } +emit_whilehi_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehi_pd_r_r(rz, src, src2)) } +inst_whilehs_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilehs_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilehs_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilehs_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILEHS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilehs_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehs_pb_r_r(rz, src, src2)) } +emit_whilehs_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehs_ph_r_r(rz, src, src2)) } +emit_whilehs_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehs_ps_r_r(rz, src, src2)) } +emit_whilehs_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilehs_pd_r_r(rz, src, src2)) } +inst_whilelo_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELO, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilelo_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELO, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilelo_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELO, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilelo_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELO, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilelo_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelo_pb_r_r(rz, src, src2)) } +emit_whilelo_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelo_ph_r_r(rz, src, src2)) } +emit_whilelo_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelo_ps_r_r(rz, src, src2)) } +emit_whilelo_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilelo_pd_r_r(rz, src, src2)) } +inst_whilels_pb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilels_ph_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilels_ps_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +inst_whilels_pd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .WHILELS, operand_count = 3, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(src), op_reg(src2), {}, {}}} } +emit_whilels_pb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilels_pb_r_r(rz, src, src2)) } +emit_whilels_ph_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilels_ph_r_r(rz, src, src2)) } +emit_whilels_ps_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilels_ps_r_r(rz, src, src2)) } +emit_whilels_pd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_whilels_pd_r_r(rz, src, src2)) } +inst_sqrdmlah_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLAH, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_sqrdmlah_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLAH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_sqrdmlah_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLAH, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sqrdmlah_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLAH, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_sqrdmlah_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlah_zb_zb_zb(rz, rz2, rz3)) } +emit_sqrdmlah_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlah_zh_zh_zh(rz, rz2, rz3)) } +emit_sqrdmlah_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlah_zs_zs_zs(rz, rz2, rz3)) } +emit_sqrdmlah_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlah_zd_zd_zd(rz, rz2, rz3)) } +inst_sqrdmlsh_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLSH, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_sqrdmlsh_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLSH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +inst_sqrdmlsh_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLSH, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sqrdmlsh_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SQRDMLSH, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_sqrdmlsh_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlsh_zb_zb_zb(rz, rz2, rz3)) } +emit_sqrdmlsh_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlsh_zh_zh_zh(rz, rz2, rz3)) } +emit_sqrdmlsh_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlsh_zs_zs_zs(rz, rz2, rz3)) } +emit_sqrdmlsh_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sqrdmlsh_zd_zd_zd(rz, rz2, rz3)) } +inst_adclb_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADCLB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_adclb_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADCLB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_adclb_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_adclb_zs_zs_zs(rz, rz2, rz3)) } +emit_adclb_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_adclb_zd_zd_zd(rz, rz2, rz3)) } +inst_adclt_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADCLT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_adclt_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADCLT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_adclt_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_adclt_zs_zs_zs(rz, rz2, rz3)) } +emit_adclt_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_adclt_zd_zd_zd(rz, rz2, rz3)) } +inst_sbclb_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SBCLB, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sbclb_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SBCLB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_sbclb_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sbclb_zs_zs_zs(rz, rz2, rz3)) } +emit_sbclb_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sbclb_zd_zd_zd(rz, rz2, rz3)) } +inst_sbclt_zs_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SBCLT, operand_count = 3, length = 4, ops = {op_z_s(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +inst_sbclt_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .SBCLT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), {}, {}}} } +emit_sbclt_zs_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sbclt_zs_zs_zs(rz, rz2, rz3)) } +emit_sbclt_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_sbclt_zd_zd_zd(rz, rz2, rz3)) } +inst_match_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .MATCH, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_match_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .MATCH, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +emit_match_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_match_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_match_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_match_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +inst_nmatch_pb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NMATCH, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +inst_nmatch_ph_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NMATCH, operand_count = 4, length = 4, ops = {op_reg(Register(REG_P | (u16(rz) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +emit_nmatch_pb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nmatch_pb_p_zb_zb(rz, rz2, rz3, rz4)) } +emit_nmatch_ph_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nmatch_ph_p_zh_zh(rz, rz2, rz3, rz4)) } +inst_histcnt_zs_p_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .HISTCNT, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4), {}}} } +inst_histcnt_zd_p_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .HISTCNT, operand_count = 4, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_histcnt_zs_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_histcnt_zs_p_zs_zs(rz, rz2, rz3, rz4)) } +emit_histcnt_zd_p_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_histcnt_zd_p_zd_zd(rz, rz2, rz3, rz4)) } +inst_histseg_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .HISTSEG, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +emit_histseg_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_histseg_zb_zb_zb(rz, rz2, rz3)) } +inst_smstart_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SMSTART) } +emit_smstart_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_smstart_none()) } +inst_smstop_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SMSTOP) } +emit_smstop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_smstop_none()) } +inst_rdsvl_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.RDSVL, dst, imm) } +emit_rdsvl_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_rdsvl_r_i(dst, imm)) } +inst_addha_i_p_p_zs :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADDHA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}}} } +emit_addha_i_p_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_addha_i_p_p_zs(imm, rz1, rz2, rz3)) } +inst_addva_i_p_p_zs :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ADDVA, operand_count = 4, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}}} } +emit_addva_i_p_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8) { append(instructions, inst_addva_i_p_p_zs(imm, rz1, rz2, rz3)) } +inst_zero_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .ZERO, operand_count = 1, length = 4, ops = {op_imm(imm, 4), {}, {}, {}, {}}} } +emit_zero_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_zero_i(imm)) } +inst_fmopa_i_p_p_zs_zs :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4)}} } +emit_fmopa_i_p_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmopa_i_p_p_zs_zs(imm, rz1, rz2, rz3, rz4)) } +inst_fmops_i_p_p_zs_zs :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .FMOPS, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), op_z_s(rz4)}} } +emit_fmops_i_p_p_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_fmops_i_p_p_zs_zs(imm, rz1, rz2, rz3, rz4)) } +inst_bfmopa_i_p_p_zh_zh :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } +emit_bfmopa_i_p_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfmopa_i_p_p_zh_zh(imm, rz1, rz2, rz3, rz4)) } +inst_bfmops_i_p_p_zh_zh :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMOPS, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } +emit_bfmops_i_p_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfmops_i_p_p_zh_zh(imm, rz1, rz2, rz3, rz4)) } +inst_smopa_i_p_p_zb_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } +inst_smopa_i_p_p_zh_zh :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } +emit_smopa_i_p_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smopa_i_p_p_zb_zb(imm, rz1, rz2, rz3, rz4)) } +emit_smopa_i_p_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smopa_i_p_p_zh_zh(imm, rz1, rz2, rz3, rz4)) } +inst_smops_i_p_p_zb_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMOPS, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } +inst_smops_i_p_p_zh_zh :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SMOPS, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } +emit_smops_i_p_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smops_i_p_p_zb_zb(imm, rz1, rz2, rz3, rz4)) } +emit_smops_i_p_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_smops_i_p_p_zh_zh(imm, rz1, rz2, rz3, rz4)) } +inst_umopa_i_p_p_zb_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } +inst_umopa_i_p_p_zh_zh :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } +emit_umopa_i_p_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umopa_i_p_p_zb_zb(imm, rz1, rz2, rz3, rz4)) } +emit_umopa_i_p_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umopa_i_p_p_zh_zh(imm, rz1, rz2, rz3, rz4)) } +inst_umops_i_p_p_zb_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMOPS, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } +inst_umops_i_p_p_zh_zh :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .UMOPS, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4)}} } +emit_umops_i_p_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umops_i_p_p_zb_zb(imm, rz1, rz2, rz3, rz4)) } +emit_umops_i_p_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_umops_i_p_p_zh_zh(imm, rz1, rz2, rz3, rz4)) } +inst_usmopa_i_p_p_zb_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .USMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } +emit_usmopa_i_p_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_usmopa_i_p_p_zb_zb(imm, rz1, rz2, rz3, rz4)) } +inst_sumopa_i_p_p_zb_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SUMOPA, operand_count = 5, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4)}} } +emit_sumopa_i_p_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_sumopa_i_p_p_zb_zb(imm, rz1, rz2, rz3, rz4)) } +inst_cntb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .CNTB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_cntb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_cntb_r_i_i(dst, imm, imm2)) } +inst_cnth_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .CNTH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_cnth_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_cnth_r_i_i(dst, imm, imm2)) } +inst_cntw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .CNTW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_cntw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_cntw_r_i_i(dst, imm, imm2)) } +inst_cntd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .CNTD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_cntd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_cntd_r_i_i(dst, imm, imm2)) } +inst_incb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_incb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_incb_r_i_i(dst, imm, imm2)) } +inst_inch_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_inch_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_inch_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_inch_r_i_i(dst, imm, imm2)) } +emit_inch_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_inch_zh_i_i(rz, imm, imm2)) } +inst_incw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_incw_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCW, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_incw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_incw_r_i_i(dst, imm, imm2)) } +emit_incw_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_incw_zs_i_i(rz, imm, imm2)) } +inst_incd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_incd_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INCD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_incd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_incd_r_i_i(dst, imm, imm2)) } +emit_incd_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_incd_zd_i_i(rz, imm, imm2)) } +inst_decb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_decb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_decb_r_i_i(dst, imm, imm2)) } +inst_dech_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_dech_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_dech_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_dech_r_i_i(dst, imm, imm2)) } +emit_dech_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_dech_zh_i_i(rz, imm, imm2)) } +inst_decw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_decw_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECW, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_decw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_decw_r_i_i(dst, imm, imm2)) } +emit_decw_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_decw_zs_i_i(rz, imm, imm2)) } +inst_decd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_decd_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .DECD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_decd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_decd_r_i_i(dst, imm, imm2)) } +emit_decd_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_decd_zd_i_i(rz, imm, imm2)) } +inst_sqincb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqincb_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCB, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +emit_sqincb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqincb_r_i_i(dst, imm, imm2)) } +emit_sqincb_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqincb_r_r_i_i(dst, src, imm, imm2)) } +inst_sqinch_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqinch_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCH, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +inst_sqinch_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_sqinch_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqinch_r_i_i(dst, imm, imm2)) } +emit_sqinch_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqinch_r_r_i_i(dst, src, imm, imm2)) } +emit_sqinch_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sqinch_zh_i_i(rz, imm, imm2)) } +inst_sqincw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqincw_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCW, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +inst_sqincw_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCW, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_sqincw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqincw_r_i_i(dst, imm, imm2)) } +emit_sqincw_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqincw_r_r_i_i(dst, src, imm, imm2)) } +emit_sqincw_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sqincw_zs_i_i(rz, imm, imm2)) } +inst_sqincd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqincd_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCD, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +inst_sqincd_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQINCD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_sqincd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqincd_r_i_i(dst, imm, imm2)) } +emit_sqincd_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqincd_r_r_i_i(dst, src, imm, imm2)) } +emit_sqincd_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sqincd_zd_i_i(rz, imm, imm2)) } +inst_sqdecb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqdecb_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECB, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +emit_sqdecb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdecb_r_i_i(dst, imm, imm2)) } +emit_sqdecb_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdecb_r_r_i_i(dst, src, imm, imm2)) } +inst_sqdech_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqdech_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECH, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +inst_sqdech_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_sqdech_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdech_r_i_i(dst, imm, imm2)) } +emit_sqdech_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdech_r_r_i_i(dst, src, imm, imm2)) } +emit_sqdech_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sqdech_zh_i_i(rz, imm, imm2)) } +inst_sqdecw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqdecw_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECW, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +inst_sqdecw_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECW, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_sqdecw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdecw_r_i_i(dst, imm, imm2)) } +emit_sqdecw_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdecw_r_r_i_i(dst, src, imm, imm2)) } +emit_sqdecw_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sqdecw_zs_i_i(rz, imm, imm2)) } +inst_sqdecd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_sqdecd_r_r_i_i :: #force_inline proc "contextless" (dst: Register, src: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECD, operand_count = 4, length = 4, ops = {op_reg(dst), op_reg(src), op_imm(imm, 4), op_imm(imm2, 4), {}}} } +inst_sqdecd_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .SQDECD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_sqdecd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdecd_r_i_i(dst, imm, imm2)) } +emit_sqdecd_r_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, imm: i64, imm2: i64) { append(instructions, inst_sqdecd_r_r_i_i(dst, src, imm, imm2)) } +emit_sqdecd_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_sqdecd_zd_i_i(rz, imm, imm2)) } +inst_uqincb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqincb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqincb_r_i_i(dst, imm, imm2)) } +inst_uqinch_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_uqinch_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqinch_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqinch_r_i_i(dst, imm, imm2)) } +emit_uqinch_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_uqinch_zh_i_i(rz, imm, imm2)) } +inst_uqincw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_uqincw_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCW, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqincw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqincw_r_i_i(dst, imm, imm2)) } +emit_uqincw_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_uqincw_zs_i_i(rz, imm, imm2)) } +inst_uqincd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_uqincd_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQINCD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqincd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqincd_r_i_i(dst, imm, imm2)) } +emit_uqincd_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_uqincd_zd_i_i(rz, imm, imm2)) } +inst_uqdecb_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECB, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqdecb_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqdecb_r_i_i(dst, imm, imm2)) } +inst_uqdech_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECH, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_uqdech_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECH, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqdech_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqdech_r_i_i(dst, imm, imm2)) } +emit_uqdech_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_uqdech_zh_i_i(rz, imm, imm2)) } +inst_uqdecw_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECW, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_uqdecw_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECW, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqdecw_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqdecw_r_i_i(dst, imm, imm2)) } +emit_uqdecw_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_uqdecw_zs_i_i(rz, imm, imm2)) } +inst_uqdecd_r_i_i :: #force_inline proc "contextless" (dst: Register, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECD, operand_count = 3, length = 4, ops = {op_reg(dst), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +inst_uqdecd_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .UQDECD, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 4), op_imm(imm2, 4), {}, {}}} } +emit_uqdecd_r_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64, imm2: i64) { append(instructions, inst_uqdecd_r_i_i(dst, imm, imm2)) } +emit_uqdecd_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_uqdecd_zd_i_i(rz, imm, imm2)) } +inst_cntp_r_p_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .CNTP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}}} } +inst_cntp_r_p_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .CNTP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}}} } +inst_cntp_r_p_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .CNTP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}}} } +inst_cntp_r_p_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .CNTP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}}} } +emit_cntp_r_p_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8) { append(instructions, inst_cntp_r_p_pb(dst, rz1, rz2)) } +emit_cntp_r_p_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8) { append(instructions, inst_cntp_r_p_ph(dst, rz1, rz2)) } +emit_cntp_r_p_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8) { append(instructions, inst_cntp_r_p_ps(dst, rz1, rz2)) } +emit_cntp_r_p_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, rz2: u8) { append(instructions, inst_cntp_r_p_pd(dst, rz1, rz2)) } +inst_incp_r_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_incp_r_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_incp_r_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_incp_r_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_incp_zh_ph :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_incp_zs_ps :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_incp_zd_pd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .INCP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_incp_r_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_incp_r_pb(dst, rz1)) } +emit_incp_r_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_incp_r_ph(dst, rz1)) } +emit_incp_r_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_incp_r_ps(dst, rz1)) } +emit_incp_r_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_incp_r_pd(dst, rz1)) } +emit_incp_zh_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_incp_zh_ph(rz, rz2)) } +emit_incp_zs_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_incp_zs_ps(rz, rz2)) } +emit_incp_zd_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_incp_zd_pd(rz, rz2)) } +inst_decp_r_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_decp_r_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_decp_r_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_decp_r_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_decp_zh_ph :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_decp_zs_ps :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_decp_zd_pd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .DECP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_decp_r_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_decp_r_pb(dst, rz1)) } +emit_decp_r_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_decp_r_ph(dst, rz1)) } +emit_decp_r_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_decp_r_ps(dst, rz1)) } +emit_decp_r_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_decp_r_pd(dst, rz1)) } +emit_decp_zh_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_decp_zh_ph(rz, rz2)) } +emit_decp_zs_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_decp_zs_ps(rz, rz2)) } +emit_decp_zd_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_decp_zd_pd(rz, rz2)) } +inst_sqincp_r_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqincp_r_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqincp_r_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqincp_r_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqincp_r_pb_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqincp_r_ph_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqincp_r_ps_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqincp_r_pd_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqincp_zh_ph :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_sqincp_zs_ps :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_sqincp_zd_pd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SQINCP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_sqincp_r_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqincp_r_pb(dst, rz1)) } +emit_sqincp_r_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqincp_r_ph(dst, rz1)) } +emit_sqincp_r_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqincp_r_ps(dst, rz1)) } +emit_sqincp_r_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqincp_r_pd(dst, rz1)) } +emit_sqincp_r_pb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqincp_r_pb_r(dst, rz1, src)) } +emit_sqincp_r_ph_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqincp_r_ph_r(dst, rz1, src)) } +emit_sqincp_r_ps_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqincp_r_ps_r(dst, rz1, src)) } +emit_sqincp_r_pd_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqincp_r_pd_r(dst, rz1, src)) } +emit_sqincp_zh_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sqincp_zh_ph(rz, rz2)) } +emit_sqincp_zs_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sqincp_zs_ps(rz, rz2)) } +emit_sqincp_zd_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sqincp_zd_pd(rz, rz2)) } +inst_sqdecp_r_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqdecp_r_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqdecp_r_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqdecp_r_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_sqdecp_r_pb_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqdecp_r_ph_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqdecp_r_ps_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqdecp_r_pd_r :: #force_inline proc "contextless" (dst: Register, rz1: u8, src: Register) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 3, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_reg(src), {}, {}}} } +inst_sqdecp_zh_ph :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_sqdecp_zs_ps :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_sqdecp_zd_pd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .SQDECP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_sqdecp_r_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqdecp_r_pb(dst, rz1)) } +emit_sqdecp_r_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqdecp_r_ph(dst, rz1)) } +emit_sqdecp_r_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqdecp_r_ps(dst, rz1)) } +emit_sqdecp_r_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_sqdecp_r_pd(dst, rz1)) } +emit_sqdecp_r_pb_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqdecp_r_pb_r(dst, rz1, src)) } +emit_sqdecp_r_ph_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqdecp_r_ph_r(dst, rz1, src)) } +emit_sqdecp_r_ps_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqdecp_r_ps_r(dst, rz1, src)) } +emit_sqdecp_r_pd_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8, src: Register) { append(instructions, inst_sqdecp_r_pd_r(dst, rz1, src)) } +emit_sqdecp_zh_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sqdecp_zh_ph(rz, rz2)) } +emit_sqdecp_zs_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sqdecp_zs_ps(rz, rz2)) } +emit_sqdecp_zd_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_sqdecp_zd_pd(rz, rz2)) } +inst_uqincp_r_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqincp_r_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqincp_r_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqincp_r_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqincp_zh_ph :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_uqincp_zs_ps :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_uqincp_zd_pd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UQINCP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_uqincp_r_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqincp_r_pb(dst, rz1)) } +emit_uqincp_r_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqincp_r_ph(dst, rz1)) } +emit_uqincp_r_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqincp_r_ps(dst, rz1)) } +emit_uqincp_r_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqincp_r_pd(dst, rz1)) } +emit_uqincp_zh_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uqincp_zh_ph(rz, rz2)) } +emit_uqincp_zs_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uqincp_zs_ps(rz, rz2)) } +emit_uqincp_zd_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uqincp_zd_pd(rz, rz2)) } +inst_uqdecp_r_pb :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqdecp_r_ph :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqdecp_r_ps :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqdecp_r_pd :: #force_inline proc "contextless" (dst: Register, rz1: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_reg(dst), op_reg(Register(REG_P | (u16(rz1) & 0xF))), {}, {}, {}}} } +inst_uqdecp_zh_ph :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_uqdecp_zs_ps :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_z_s(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +inst_uqdecp_zd_pd :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UQDECP, operand_count = 2, length = 4, ops = {op_z_d(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), {}, {}, {}}} } +emit_uqdecp_r_pb :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqdecp_r_pb(dst, rz1)) } +emit_uqdecp_r_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqdecp_r_ph(dst, rz1)) } +emit_uqdecp_r_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqdecp_r_ps(dst, rz1)) } +emit_uqdecp_r_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, rz1: u8) { append(instructions, inst_uqdecp_r_pd(dst, rz1)) } +emit_uqdecp_zh_ph :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uqdecp_zh_ph(rz, rz2)) } +emit_uqdecp_zs_ps :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uqdecp_zs_ps(rz, rz2)) } +emit_uqdecp_zd_pd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uqdecp_zd_pd(rz, rz2)) } +inst_ld1q_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LD1Q, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +emit_ld1q_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_ld1q_i_p_m(imm, rz1, mem)) } +inst_st1q_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .ST1Q, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +emit_st1q_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_st1q_i_p_m(imm, rz1, mem)) } +inst_mova_zb_p_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .MOVA, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_imm(imm, 4), {}, {}}} } +inst_mova_i_p_zb :: #force_inline proc "contextless" (imm: i64, rz1: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .MOVA, operand_count = 3, length = 4, ops = {op_imm(imm, 4), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_z_b(rz2), {}, {}}} } +emit_mova_zb_p_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_mova_zb_p_i(rz, rz2, imm)) } +emit_mova_i_p_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, rz2: u8) { append(instructions, inst_mova_i_p_zb(imm, rz1, rz2)) } +inst_fcmla_v4h_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA, operand_count = 4, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), op_imm(imm, 1), {}}} } +inst_fcmla_v8h_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA, operand_count = 4, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), op_imm(imm, 1), {}}} } +inst_fcmla_v4s_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), op_imm(imm, 1), {}}} } +inst_fcmla_v2d_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCMLA, operand_count = 4, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), op_imm(imm, 1), {}}} } +emit_fcmla_v4h_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_v4h_v4h_v4h_i(dst, src, src2, imm)) } +emit_fcmla_v8h_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_v8h_v8h_v8h_i(dst, src, src2, imm)) } +emit_fcmla_v4s_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_v4s_v4s_v4s_i(dst, src, src2, imm)) } +emit_fcmla_v2d_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcmla_v2d_v2d_v2d_i(dst, src, src2, imm)) } +inst_fcadd_v4h_v4h_v4h_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD, operand_count = 4, length = 4, ops = {op_v_4h(dst), op_v_4h(src), op_v_4h(src2), op_imm(imm, 1), {}}} } +inst_fcadd_v8h_v8h_v8h_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD, operand_count = 4, length = 4, ops = {op_v_8h(dst), op_v_8h(src), op_v_8h(src2), op_imm(imm, 1), {}}} } +inst_fcadd_v4s_v4s_v4s_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD, operand_count = 4, length = 4, ops = {op_v_4s(dst), op_v_4s(src), op_v_4s(src2), op_imm(imm, 1), {}}} } +inst_fcadd_v2d_v2d_v2d_i :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .FCADD, operand_count = 4, length = 4, ops = {op_v_2d(dst), op_v_2d(src), op_v_2d(src2), op_imm(imm, 1), {}}} } +emit_fcadd_v4h_v4h_v4h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_v4h_v4h_v4h_i(dst, src, src2, imm)) } +emit_fcadd_v8h_v8h_v8h_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_v8h_v8h_v8h_i(dst, src, src2, imm)) } +emit_fcadd_v4s_v4s_v4s_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_v4s_v4s_v4s_i(dst, src, src2, imm)) } +emit_fcadd_v2d_v2d_v2d_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register, imm: i64) { append(instructions, inst_fcadd_v2d_v2d_v2d_i(dst, src, src2, imm)) } +inst_prfb_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFB, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +emit_prfb_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_prfb_i_p_m(imm, rz1, mem)) } +inst_prfh_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFH, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +emit_prfh_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_prfh_i_p_m(imm, rz1, mem)) } +inst_prfw_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFW, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +emit_prfw_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_prfw_i_p_m(imm, rz1, mem)) } +inst_prfd_i_p_m :: #force_inline proc "contextless" (imm: i64, rz1: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFD, operand_count = 3, length = 4, ops = {op_imm(imm, 1), op_reg(Register(REG_P | (u16(rz1) & 0xF))), op_mem(mem), {}, {}}} } +emit_prfd_i_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, rz1: u8, mem: Memory) { append(instructions, inst_prfd_i_p_m(imm, rz1, mem)) } +inst_ldnt1b_zb_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDNT1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_B, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldnt1b_zb_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldnt1b_zb_p_m(rz, rz2, mem)) } +inst_ldnt1h_zh_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDNT1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_H, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldnt1h_zh_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldnt1h_zh_p_m(rz, rz2, mem)) } +inst_ldnt1w_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDNT1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldnt1w_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldnt1w_zs_p_m(rz, rz2, mem)) } +inst_ldnt1d_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .LDNT1D, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_ldnt1d_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_ldnt1d_zd_p_m(rz, rz2, mem)) } +inst_stnt1b_zb_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .STNT1B, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_B, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_stnt1b_zb_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_stnt1b_zb_p_m(rz, rz2, mem)) } +inst_stnt1h_zh_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .STNT1H, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_H, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_stnt1h_zh_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_stnt1h_zh_p_m(rz, rz2, mem)) } +inst_stnt1w_zs_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .STNT1W, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_S, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_stnt1w_zs_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_stnt1w_zs_p_m(rz, rz2, mem)) } +inst_stnt1d_zd_p_m :: #force_inline proc "contextless" (rz: u8, rz2: u8, mem: Memory) -> Instruction { return Instruction{mnemonic = .STNT1D, operand_count = 3, length = 4, ops = {op_v_list(Register(REG_Z | (u16(rz) & 0x1F)), ZSHAPE_D, 1), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_mem(mem), {}, {}}} } +emit_stnt1d_zd_p_m :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, mem: Memory) { append(instructions, inst_stnt1d_zd_p_m(rz, rz2, mem)) } +inst_splice_zb_p_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .SPLICE, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_b(rz3), op_z_b(rz4), {}}} } +emit_splice_zb_p_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_splice_zb_p_zb_zb(rz, rz2, rz3, rz4)) } +inst_index_zb_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_b(rz), op_imm(imm, 1), op_imm(imm2, 1), {}, {}}} } +inst_index_zb_i_r :: #force_inline proc "contextless" (rz: u8, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_b(rz), op_imm(imm, 1), op_reg(src), {}, {}}} } +inst_index_zb_r_i :: #force_inline proc "contextless" (rz: u8, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(src), op_imm(imm, 1), {}, {}}} } +inst_index_zb_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_b(rz), op_reg(src), op_reg(src2), {}, {}}} } +inst_index_zh_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 1), op_imm(imm2, 1), {}, {}}} } +inst_index_zh_i_r :: #force_inline proc "contextless" (rz: u8, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_imm(imm, 1), op_reg(src), {}, {}}} } +inst_index_zh_r_i :: #force_inline proc "contextless" (rz: u8, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(src), op_imm(imm, 1), {}, {}}} } +inst_index_zh_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(src), op_reg(src2), {}, {}}} } +inst_index_zs_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 1), op_imm(imm2, 1), {}, {}}} } +inst_index_zs_i_r :: #force_inline proc "contextless" (rz: u8, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_s(rz), op_imm(imm, 1), op_reg(src), {}, {}}} } +inst_index_zs_r_i :: #force_inline proc "contextless" (rz: u8, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(src), op_imm(imm, 1), {}, {}}} } +inst_index_zs_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_s(rz), op_reg(src), op_reg(src2), {}, {}}} } +inst_index_zd_i_i :: #force_inline proc "contextless" (rz: u8, imm: i64, imm2: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 1), op_imm(imm2, 1), {}, {}}} } +inst_index_zd_i_r :: #force_inline proc "contextless" (rz: u8, imm: i64, src: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_d(rz), op_imm(imm, 1), op_reg(src), {}, {}}} } +inst_index_zd_r_i :: #force_inline proc "contextless" (rz: u8, src: Register, imm: i64) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(src), op_imm(imm, 1), {}, {}}} } +inst_index_zd_r_r :: #force_inline proc "contextless" (rz: u8, src: Register, src2: Register) -> Instruction { return Instruction{mnemonic = .INDEX, operand_count = 3, length = 4, ops = {op_z_d(rz), op_reg(src), op_reg(src2), {}, {}}} } +emit_index_zb_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_index_zb_i_i(rz, imm, imm2)) } +emit_index_zb_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register) { append(instructions, inst_index_zb_i_r(rz, imm, src)) } +emit_index_zb_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64) { append(instructions, inst_index_zb_r_i(rz, src, imm)) } +emit_index_zb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_index_zb_r_r(rz, src, src2)) } +emit_index_zh_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_index_zh_i_i(rz, imm, imm2)) } +emit_index_zh_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register) { append(instructions, inst_index_zh_i_r(rz, imm, src)) } +emit_index_zh_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64) { append(instructions, inst_index_zh_r_i(rz, src, imm)) } +emit_index_zh_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_index_zh_r_r(rz, src, src2)) } +emit_index_zs_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_index_zs_i_i(rz, imm, imm2)) } +emit_index_zs_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register) { append(instructions, inst_index_zs_i_r(rz, imm, src)) } +emit_index_zs_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64) { append(instructions, inst_index_zs_r_i(rz, src, imm)) } +emit_index_zs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_index_zs_r_r(rz, src, src2)) } +emit_index_zd_i_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, imm2: i64) { append(instructions, inst_index_zd_i_i(rz, imm, imm2)) } +emit_index_zd_i_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, imm: i64, src: Register) { append(instructions, inst_index_zd_i_r(rz, imm, src)) } +emit_index_zd_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, imm: i64) { append(instructions, inst_index_zd_r_i(rz, src, imm)) } +emit_index_zd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, src: Register, src2: Register) { append(instructions, inst_index_zd_r_r(rz, src, src2)) } +inst_bsl1n_zd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BSL1N, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_bsl1n_zd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bsl1n_zd_zd_zd_zd(rz, rz2, rz3, rz4)) } +inst_bsl2n_zd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BSL2N, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_bsl2n_zd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bsl2n_zd_zd_zd_zd(rz, rz2, rz3, rz4)) } +inst_nbsl_zd_zd_zd_zd :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .NBSL, operand_count = 4, length = 4, ops = {op_z_d(rz), op_z_d(rz2), op_z_d(rz3), op_z_d(rz4), {}}} } +emit_nbsl_zd_zd_zd_zd :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_nbsl_zd_zd_zd_zd(rz, rz2, rz3, rz4)) } +inst_pmul_zb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .PMUL, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +emit_pmul_zb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_pmul_zb_zb_zb(rz, rz2, rz3)) } +inst_pmullb_zd_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .PMULLB, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +emit_pmullb_zd_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_pmullb_zd_zs_zs(rz, rz2, rz3)) } +inst_pmullt_zd_zs_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .PMULLT, operand_count = 3, length = 4, ops = {op_z_d(rz), op_z_s(rz2), op_z_s(rz3), {}, {}}} } +emit_pmullt_zd_zs_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_pmullt_zd_zs_zs(rz, rz2, rz3)) } +inst_bfcvtnt_zh_p_zs :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BFCVTNT, operand_count = 3, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_s(rz3), {}, {}}} } +emit_bfcvtnt_zh_p_zs :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_bfcvtnt_zh_p_zs(rz, rz2, rz3)) } +inst_ldraa_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRAA, dst, mem) } +emit_ldraa_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldraa_r_m(dst, mem)) } +inst_ldrab_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDRAB, dst, mem) } +emit_ldrab_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldrab_r_m(dst, mem)) } +inst_tstart_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TSTART, dst) } +emit_tstart_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tstart_r(dst)) } +inst_tcommit_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TCOMMIT) } +emit_tcommit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tcommit_none()) } +inst_tcancel_i :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .TCANCEL, operand_count = 1, length = 4, ops = {op_imm(imm, 2), {}, {}, {}, {}}} } +emit_tcancel_i :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_tcancel_i(imm)) } +inst_ttest_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TTEST, dst) } +emit_ttest_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_ttest_r(dst)) } +inst_wfet_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.WFET, dst) } +emit_wfet_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_wfet_r(dst)) } +inst_wfit_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.WFIT, dst) } +emit_wfit_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_wfit_r(dst)) } +inst_bc_eq_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_EQ, label) } +emit_bc_eq_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_eq_l(label)) } +inst_bc_ne_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_NE, label) } +emit_bc_ne_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_ne_l(label)) } +inst_bc_cs_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_CS, label) } +emit_bc_cs_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_cs_l(label)) } +inst_bc_cc_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_CC, label) } +emit_bc_cc_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_cc_l(label)) } +inst_bc_mi_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_MI, label) } +emit_bc_mi_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_mi_l(label)) } +inst_bc_pl_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_PL, label) } +emit_bc_pl_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_pl_l(label)) } +inst_bc_vs_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_VS, label) } +emit_bc_vs_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_vs_l(label)) } +inst_bc_vc_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_VC, label) } +emit_bc_vc_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_vc_l(label)) } +inst_bc_hi_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_HI, label) } +emit_bc_hi_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_hi_l(label)) } +inst_bc_ls_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_LS, label) } +emit_bc_ls_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_ls_l(label)) } +inst_bc_ge_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_GE, label) } +emit_bc_ge_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_ge_l(label)) } +inst_bc_lt_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_LT, label) } +emit_bc_lt_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_lt_l(label)) } +inst_bc_gt_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_GT, label) } +emit_bc_gt_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_gt_l(label)) } +inst_bc_le_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_LE, label) } +emit_bc_le_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_le_l(label)) } +inst_bc_al_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_AL, label) } +emit_bc_al_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_al_l(label)) } +inst_bc_nv_l :: #force_inline proc "contextless" (label: u32) -> Instruction { return inst_branch(.BC_NV, label) } +emit_bc_nv_l :: #force_inline proc(instructions: ^[dynamic]Instruction, label: u32) { append(instructions, inst_bc_nv_l(label)) } +inst_uxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UXTB, dst, src) } +emit_uxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtb_r_r(dst, src)) } +inst_uxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UXTH, dst, src) } +emit_uxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxth_r_r(dst, src)) } +inst_uxtw_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.UXTW, dst, src) } +emit_uxtw_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_uxtw_r_r(dst, src)) } +inst_sxtb_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SXTB, dst, src) } +emit_sxtb_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtb_r_r(dst, src)) } +inst_sxth_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SXTH, dst, src) } +emit_sxth_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxth_r_r(dst, src)) } +inst_sxtw_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.SXTW, dst, src) } +emit_sxtw_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_sxtw_r_r(dst, src)) } +inst_adc_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ADC, dst, src, src2) } +emit_adc_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_adc_r_r_r(dst, src, src2)) } +inst_adcs_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.ADCS, dst, src, src2) } +emit_adcs_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_adcs_r_r_r(dst, src, src2)) } +inst_sbc_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SBC, dst, src, src2) } +emit_sbc_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sbc_r_r_r(dst, src, src2)) } +inst_sbcs_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SBCS, dst, src, src2) } +emit_sbcs_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sbcs_r_r_r(dst, src, src2)) } +inst_ngc_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.NGC, dst, src) } +emit_ngc_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ngc_r_r(dst, src)) } +inst_ngcs_r_r :: #force_inline proc "contextless" (dst: Register, src: Register) -> Instruction { return inst_r_r(.NGCS, dst, src) } +emit_ngcs_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register) { append(instructions, inst_ngcs_r_r(dst, src)) } +inst_ldapur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPUR, dst, mem) } +emit_ldapur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapur_r_m(dst, mem)) } +inst_stlur_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLUR, dst, mem) } +emit_stlur_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlur_r_m(dst, mem)) } +inst_ldapurb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURB, dst, mem) } +emit_ldapurb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapurb_r_m(dst, mem)) } +inst_stlurb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLURB, dst, mem) } +emit_stlurb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlurb_r_m(dst, mem)) } +inst_ldapurh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURH, dst, mem) } +emit_ldapurh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapurh_r_m(dst, mem)) } +inst_stlurh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.STLURH, dst, mem) } +emit_stlurh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_stlurh_r_m(dst, mem)) } +inst_ldapursb_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURSB, dst, mem) } +emit_ldapursb_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapursb_r_m(dst, mem)) } +inst_ldapursh_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURSH, dst, mem) } +emit_ldapursh_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapursh_r_m(dst, mem)) } +inst_ldapursw_r_m :: #force_inline proc "contextless" (dst: Register, mem: Memory) -> Instruction { return inst_ldst(.LDAPURSW, dst, mem) } +emit_ldapursw_r_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, mem: Memory) { append(instructions, inst_ldapursw_r_m(dst, mem)) } +inst_bfadd_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFADD, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_bfadd_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BFADD, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +emit_bfadd_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfadd_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_bfadd_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_bfadd_zh_zh_zh(rz, rz2, rz3)) } +inst_bfsub_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFSUB, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_bfsub_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BFSUB, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +emit_bfsub_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfsub_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_bfsub_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_bfsub_zh_zh_zh(rz, rz2, rz3)) } +inst_bfmul_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMUL, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +inst_bfmul_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BFMUL, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +emit_bfmul_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfmul_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +emit_bfmul_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_bfmul_zh_zh_zh(rz, rz2, rz3)) } +inst_bfmla_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMLA, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +emit_bfmla_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfmla_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +inst_bfmls_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMLS, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +emit_bfmls_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfmls_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +inst_sb_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SB) } +emit_sb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sb_none()) } +inst_csdb_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.CSDB) } +emit_csdb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_csdb_none()) } +inst_dgh_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.DGH) } +emit_dgh_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dgh_none()) } +inst_psb_csync_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.PSB_CSYNC) } +emit_psb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_psb_csync_none()) } +inst_tsb_csync_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TSB_CSYNC) } +emit_tsb_csync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tsb_csync_none()) } +inst_bti_j_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI_J) } +emit_bti_j_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_j_none()) } +inst_bti_c_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI_C) } +emit_bti_c_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_c_none()) } +inst_bti_jc_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.BTI_JC) } +emit_bti_jc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_bti_jc_none()) } +inst_bfclamp_zh_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .BFCLAMP, operand_count = 3, length = 4, ops = {op_z_h(rz), op_z_h(rz2), op_z_h(rz3), {}, {}}} } +emit_bfclamp_zh_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_bfclamp_zh_zh_zh(rz, rz2, rz3)) } +inst_bfmaxnm_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMAXNM, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +emit_bfmaxnm_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfmaxnm_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +inst_bfminnm_zh_p_zh_zh :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8, rz4: u8) -> Instruction { return Instruction{mnemonic = .BFMINNM, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(Register(REG_P | (u16(rz2) & 0xF))), op_z_h(rz3), op_z_h(rz4), {}}} } +emit_bfminnm_zh_p_zh_zh :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8, rz4: u8) { append(instructions, inst_bfminnm_zh_p_zh_zh(rz, rz2, rz3, rz4)) } +inst_luti2_zpb_zt_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .LUTI2, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(ZT0), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_lane_index(imm), {}}} } +inst_luti2_zph_zt_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .LUTI2, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(ZT0), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_lane_index(imm), {}}} } +inst_luti2_zps_zt_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .LUTI2, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(ZT0), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_lane_index(imm), {}}} } +emit_luti2_zpb_zt_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_luti2_zpb_zt_z_i(rz, rz2, imm)) } +emit_luti2_zph_zt_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_luti2_zph_zt_z_i(rz, rz2, imm)) } +emit_luti2_zps_zt_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_luti2_zps_zt_z_i(rz, rz2, imm)) } +inst_luti4_zpb_zt_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .LUTI4, operand_count = 4, length = 4, ops = {op_z_b(rz), op_reg(ZT0), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_lane_index(imm), {}}} } +inst_luti4_zph_zt_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .LUTI4, operand_count = 4, length = 4, ops = {op_z_h(rz), op_reg(ZT0), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_lane_index(imm), {}}} } +inst_luti4_zps_zt_z_i :: #force_inline proc "contextless" (rz: u8, rz2: u8, imm: i64) -> Instruction { return Instruction{mnemonic = .LUTI4, operand_count = 4, length = 4, ops = {op_z_s(rz), op_reg(ZT0), op_reg(Register(REG_Z | (u16(rz2) & 0x1F))), op_lane_index(imm), {}}} } +emit_luti4_zpb_zt_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_luti4_zpb_zt_z_i(rz, rz2, imm)) } +emit_luti4_zph_zt_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_luti4_zph_zt_z_i(rz, rz2, imm)) } +emit_luti4_zps_zt_z_i :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, imm: i64) { append(instructions, inst_luti4_zps_zt_z_i(rz, rz2, imm)) } +inst_zip_zpb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .ZIP, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_zip_zqb_zqb :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .ZIP, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}, {}}} } +emit_zip_zpb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_zip_zpb_zb_zb(rz, rz2, rz3)) } +emit_zip_zqb_zqb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_zip_zqb_zqb(rz, rz2)) } +inst_uzp_zpb_zb_zb :: #force_inline proc "contextless" (rz: u8, rz2: u8, rz3: u8) -> Instruction { return Instruction{mnemonic = .UZP, operand_count = 3, length = 4, ops = {op_z_b(rz), op_z_b(rz2), op_z_b(rz3), {}, {}}} } +inst_uzp_zqb_zqb :: #force_inline proc "contextless" (rz: u8, rz2: u8) -> Instruction { return Instruction{mnemonic = .UZP, operand_count = 2, length = 4, ops = {op_z_b(rz), op_z_b(rz2), {}, {}, {}}} } +emit_uzp_zpb_zb_zb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8, rz3: u8) { append(instructions, inst_uzp_zpb_zb_zb(rz, rz2, rz3)) } +emit_uzp_zqb_zqb :: #force_inline proc(instructions: ^[dynamic]Instruction, rz: u8, rz2: u8) { append(instructions, inst_uzp_zqb_zqb(rz, rz2)) } +inst_tlbi_rpalos_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_RPALOS, dst) } +emit_tlbi_rpalos_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_rpalos_r(dst)) } +inst_tlbi_rpaos_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_RPAOS, dst) } +emit_tlbi_rpaos_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_rpaos_r(dst)) } +inst_at_s1e1a_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E1A, dst) } +emit_at_s1e1a_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e1a_r(dst)) } +inst_dc_cipapa_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CIPAPA, dst) } +emit_dc_cipapa_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cipapa_r(dst)) } +inst_dc_cigdpapa_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CIGDPAPA, dst) } +emit_dc_cigdpapa_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cigdpapa_r(dst)) } +inst_tlbi_paall_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_PAALL) } +emit_tlbi_paall_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_paall_none()) } +inst_tlbi_paallos_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_PAALLOS) } +emit_tlbi_paallos_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_paallos_none()) } +inst_amx_ldx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDX, dst) } +emit_amx_ldx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldx_r(dst)) } +inst_amx_ldy_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDY, dst) } +emit_amx_ldy_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldy_r(dst)) } +inst_amx_stx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STX, dst) } +emit_amx_stx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_stx_r(dst)) } +inst_amx_sty_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STY, dst) } +emit_amx_sty_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_sty_r(dst)) } +inst_amx_ldz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDZ, dst) } +emit_amx_ldz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldz_r(dst)) } +inst_amx_stz_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STZ, dst) } +emit_amx_stz_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_stz_r(dst)) } +inst_amx_ldzi_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_LDZI, dst) } +emit_amx_ldzi_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_ldzi_r(dst)) } +inst_amx_stzi_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_STZI, dst) } +emit_amx_stzi_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_stzi_r(dst)) } +inst_amx_extrx_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_EXTRX, dst) } +emit_amx_extrx_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_extrx_r(dst)) } +inst_amx_extry_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_EXTRY, dst) } +emit_amx_extry_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_extry_r(dst)) } +inst_amx_fma64_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMA64, dst) } +emit_amx_fma64_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fma64_r(dst)) } +inst_amx_fms64_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMS64, dst) } +emit_amx_fms64_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fms64_r(dst)) } +inst_amx_fma32_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMA32, dst) } +emit_amx_fma32_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fma32_r(dst)) } +inst_amx_fms32_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMS32, dst) } +emit_amx_fms32_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fms32_r(dst)) } +inst_amx_mac16_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_MAC16, dst) } +emit_amx_mac16_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_mac16_r(dst)) } +inst_amx_fma16_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMA16, dst) } +emit_amx_fma16_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fma16_r(dst)) } +inst_amx_fms16_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_FMS16, dst) } +emit_amx_fms16_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_fms16_r(dst)) } +inst_amx_set_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AMX_SET) } +emit_amx_set_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_amx_set_none()) } +inst_amx_clr_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.AMX_CLR) } +emit_amx_clr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_amx_clr_none()) } +inst_amx_vecint_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_VECINT, dst) } +emit_amx_vecint_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_vecint_r(dst)) } +inst_amx_vecfp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_VECFP, dst) } +emit_amx_vecfp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_vecfp_r(dst)) } +inst_amx_matint_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_MATINT, dst) } +emit_amx_matint_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_matint_r(dst)) } +inst_amx_matfp_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_MATFP, dst) } +emit_amx_matfp_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_matfp_r(dst)) } +inst_amx_genlut_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AMX_GENLUT, dst) } +emit_amx_genlut_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_amx_genlut_r(dst)) } +inst_cpyp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYP, dst, src, src2) } +emit_cpyp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyp_r_r_r(dst, src, src2)) } +inst_cpym_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYM, dst, src, src2) } +emit_cpym_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpym_r_r_r(dst, src, src2)) } +inst_cpye_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYE, dst, src, src2) } +emit_cpye_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpye_r_r_r(dst, src, src2)) } +inst_cpyfp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYFP, dst, src, src2) } +emit_cpyfp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyfp_r_r_r(dst, src, src2)) } +inst_cpyfm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYFM, dst, src, src2) } +emit_cpyfm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyfm_r_r_r(dst, src, src2)) } +inst_cpyfe_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.CPYFE, dst, src, src2) } +emit_cpyfe_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_cpyfe_r_r_r(dst, src, src2)) } +inst_setp_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SETP, dst, src, src2) } +emit_setp_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_setp_r_r_r(dst, src, src2)) } +inst_setm_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SETM, dst, src, src2) } +emit_setm_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_setm_r_r_r(dst, src, src2)) } +inst_sete_r_r_r :: #force_inline proc "contextless" (dst: Register, src: Register, src2: Register) -> Instruction { return inst_r_r_r(.SETE, dst, src, src2) } +emit_sete_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src2: Register) { append(instructions, inst_sete_r_r_r(dst, src, src2)) } +inst_dc_ivac_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_IVAC, dst) } +emit_dc_ivac_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_ivac_r(dst)) } +inst_dc_isw_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_ISW, dst) } +emit_dc_isw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_isw_r(dst)) } +inst_dc_csw_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CSW, dst) } +emit_dc_csw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_csw_r(dst)) } +inst_dc_cisw_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CISW, dst) } +emit_dc_cisw_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cisw_r(dst)) } +inst_dc_zva_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_ZVA, dst) } +emit_dc_zva_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_zva_r(dst)) } +inst_dc_cvac_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CVAC, dst) } +emit_dc_cvac_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cvac_r(dst)) } +inst_dc_cvau_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CVAU, dst) } +emit_dc_cvau_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_cvau_r(dst)) } +inst_dc_civac_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.DC_CIVAC, dst) } +emit_dc_civac_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_dc_civac_r(dst)) } +inst_ic_ialluis_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.IC_IALLUIS) } +emit_ic_ialluis_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ic_ialluis_none()) } +inst_ic_iallu_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.IC_IALLU) } +emit_ic_iallu_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ic_iallu_none()) } +inst_ic_ivau_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.IC_IVAU, dst) } +emit_ic_ivau_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_ic_ivau_r(dst)) } +inst_at_s1e1r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E1R, dst) } +emit_at_s1e1r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e1r_r(dst)) } +inst_at_s1e1w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E1W, dst) } +emit_at_s1e1w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e1w_r(dst)) } +inst_at_s1e0r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E0R, dst) } +emit_at_s1e0r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e0r_r(dst)) } +inst_at_s1e0w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E0W, dst) } +emit_at_s1e0w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e0w_r(dst)) } +inst_at_s1e2r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E2R, dst) } +emit_at_s1e2r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e2r_r(dst)) } +inst_at_s1e2w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E2W, dst) } +emit_at_s1e2w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e2w_r(dst)) } +inst_at_s1e3r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E3R, dst) } +emit_at_s1e3r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e3r_r(dst)) } +inst_at_s1e3w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S1E3W, dst) } +emit_at_s1e3w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s1e3w_r(dst)) } +inst_at_s12e1r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E1R, dst) } +emit_at_s12e1r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e1r_r(dst)) } +inst_at_s12e1w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E1W, dst) } +emit_at_s12e1w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e1w_r(dst)) } +inst_at_s12e0r_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E0R, dst) } +emit_at_s12e0r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e0r_r(dst)) } +inst_at_s12e0w_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.AT_S12E0W, dst) } +emit_at_s12e0w_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_at_s12e0w_r(dst)) } +inst_tlbi_vmalle1_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_VMALLE1) } +emit_tlbi_vmalle1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_vmalle1_none()) } +inst_tlbi_vmalle1is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_VMALLE1IS) } +emit_tlbi_vmalle1is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_vmalle1is_none()) } +inst_tlbi_vae1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAE1, dst) } +emit_tlbi_vae1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vae1_r(dst)) } +inst_tlbi_vae1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAE1IS, dst) } +emit_tlbi_vae1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vae1is_r(dst)) } +inst_tlbi_aside1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_ASIDE1, dst) } +emit_tlbi_aside1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_aside1_r(dst)) } +inst_tlbi_aside1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_ASIDE1IS, dst) } +emit_tlbi_aside1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_aside1is_r(dst)) } +inst_tlbi_vaae1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAAE1, dst) } +emit_tlbi_vaae1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaae1_r(dst)) } +inst_tlbi_vaae1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAAE1IS, dst) } +emit_tlbi_vaae1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaae1is_r(dst)) } +inst_tlbi_vale1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VALE1, dst) } +emit_tlbi_vale1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vale1_r(dst)) } +inst_tlbi_vale1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VALE1IS, dst) } +emit_tlbi_vale1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vale1is_r(dst)) } +inst_tlbi_vaale1_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAALE1, dst) } +emit_tlbi_vaale1_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaale1_r(dst)) } +inst_tlbi_vaale1is_r :: #force_inline proc "contextless" (dst: Register) -> Instruction { return inst_r(.TLBI_VAALE1IS, dst) } +emit_tlbi_vaale1is_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register) { append(instructions, inst_tlbi_vaale1is_r(dst)) } +inst_tlbi_alle1_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE1) } +emit_tlbi_alle1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle1_none()) } +inst_tlbi_alle1is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE1IS) } +emit_tlbi_alle1is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle1is_none()) } +inst_tlbi_alle2_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE2) } +emit_tlbi_alle2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle2_none()) } +inst_tlbi_alle2is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE2IS) } +emit_tlbi_alle2is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle2is_none()) } +inst_tlbi_alle3_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE3) } +emit_tlbi_alle3_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle3_none()) } +inst_tlbi_alle3is_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.TLBI_ALLE3IS) } +emit_tlbi_alle3is_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbi_alle3is_none()) } +inst_prfm_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFM, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_mem(mem), {}, {}, {}}} } +inst_prfm_i_l :: #force_inline proc "contextless" (imm: i64, label: u32) -> Instruction { return Instruction{mnemonic = .PRFM, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_label(label, 4), {}, {}, {}}} } +emit_prfm_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_prfm_i_m(imm, mem)) } +emit_prfm_i_l :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, label: u32) { append(instructions, inst_prfm_i_l(imm, label)) } +inst_prfum_i_m :: #force_inline proc "contextless" (imm: i64, mem: Memory) -> Instruction { return Instruction{mnemonic = .PRFUM, operand_count = 2, length = 4, ops = {op_imm(imm, 1), op_mem(mem), {}, {}, {}}} } +emit_prfum_i_m :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64, mem: Memory) { append(instructions, inst_prfum_i_m(imm, mem)) } +inst_negs_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .NEGS, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}, {}}} } +emit_negs_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_negs_r_sh(dst, src, src_shift, src_amount)) } +inst_cmp_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}, {}}} } +inst_cmp_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src_ext: Extend, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMP, operand_count = 2, length = 4, ops = {op_reg(dst), op_extended(src, src_ext, src_amount), {}, {}, {}}} } +inst_cmp_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.CMP, dst, imm) } +emit_cmp_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_cmp_r_sh(dst, src, src_shift, src_amount)) } +emit_cmp_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_ext: Extend, src_amount: u8) { append(instructions, inst_cmp_r_ex(dst, src, src_ext, src_amount)) } +emit_cmp_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmp_r_i(dst, imm)) } +inst_cmn_r_sh :: #force_inline proc "contextless" (dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, length = 4, ops = {op_reg(dst), op_shifted(src, src_shift, src_amount), {}, {}, {}}} } +inst_cmn_r_ex :: #force_inline proc "contextless" (dst: Register, src: Register, src_ext: Extend, src_amount: u8) -> Instruction { return Instruction{mnemonic = .CMN, operand_count = 2, length = 4, ops = {op_reg(dst), op_extended(src, src_ext, src_amount), {}, {}, {}}} } +inst_cmn_r_i :: #force_inline proc "contextless" (dst: Register, imm: i64) -> Instruction { return inst_r_i(.CMN, dst, imm) } +emit_cmn_r_sh :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_shift: Shift_Type, src_amount: u8) { append(instructions, inst_cmn_r_sh(dst, src, src_shift, src_amount)) } +emit_cmn_r_ex :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, src: Register, src_ext: Extend, src_amount: u8) { append(instructions, inst_cmn_r_ex(dst, src, src_ext, src_amount)) } +emit_cmn_r_i :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Register, imm: i64) { append(instructions, inst_cmn_r_i(dst, imm)) } // ============================================================================= // Overload Groups // ============================================================================= -inst_add_imm :: inst_add_imm_r_r_i -emit_add_imm :: emit_add_imm_r_r_i -inst_adds_imm :: inst_adds_imm_r_r_i -emit_adds_imm :: emit_adds_imm_r_r_i -inst_sub_imm :: inst_sub_imm_r_r_i -emit_sub_imm :: emit_sub_imm_r_r_i -inst_subs_imm :: inst_subs_imm_r_r_i -emit_subs_imm :: emit_subs_imm_r_r_i -inst_movz :: inst_movz_r_i_i -emit_movz :: emit_movz_r_i_i -inst_movn :: inst_movn_r_i_i -emit_movn :: emit_movn_r_i_i -inst_movk :: inst_movk_r_i_i -emit_movk :: emit_movk_r_i_i -inst_adr :: inst_adr_r_l -emit_adr :: emit_adr_r_l -inst_adrp :: inst_adrp_r_l -emit_adrp :: emit_adrp_r_l -inst_add_sr :: inst_add_sr_r_r_sh -emit_add_sr :: emit_add_sr_r_r_sh -inst_adds_sr :: inst_adds_sr_r_r_sh -emit_adds_sr :: emit_adds_sr_r_r_sh -inst_sub_sr :: inst_sub_sr_r_r_sh -emit_sub_sr :: emit_sub_sr_r_r_sh -inst_subs_sr :: inst_subs_sr_r_r_sh -emit_subs_sr :: emit_subs_sr_r_r_sh -inst_and_sr :: inst_and_sr_r_r_sh -emit_and_sr :: emit_and_sr_r_r_sh -inst_ands_sr :: inst_ands_sr_r_r_sh -emit_ands_sr :: emit_ands_sr_r_r_sh -inst_orr_sr :: inst_orr_sr_r_r_sh -emit_orr_sr :: emit_orr_sr_r_r_sh -inst_eor_sr :: inst_eor_sr_r_r_sh -emit_eor_sr :: emit_eor_sr_r_r_sh -inst_bic_sr :: inst_bic_sr_r_r_sh -emit_bic_sr :: emit_bic_sr_r_r_sh -inst_bics_sr :: inst_bics_sr_r_r_sh -emit_bics_sr :: emit_bics_sr_r_r_sh -inst_orn_sr :: inst_orn_sr_r_r_sh -emit_orn_sr :: emit_orn_sr_r_r_sh -inst_eon_sr :: inst_eon_sr_r_r_sh -emit_eon_sr :: emit_eon_sr_r_r_sh -inst_add_er :: inst_add_er_r_r_ex -emit_add_er :: emit_add_er_r_r_ex -inst_adds_er :: inst_adds_er_r_r_ex -emit_adds_er :: emit_adds_er_r_r_ex -inst_sub_er :: inst_sub_er_r_r_ex -emit_sub_er :: emit_sub_er_r_r_ex -inst_subs_er :: inst_subs_er_r_r_ex -emit_subs_er :: emit_subs_er_r_r_ex -inst_lslv :: inst_lslv_r_r_r -emit_lslv :: emit_lslv_r_r_r -inst_lsrv :: inst_lsrv_r_r_r -emit_lsrv :: emit_lsrv_r_r_r -inst_asrv :: inst_asrv_r_r_r -emit_asrv :: emit_asrv_r_r_r -inst_rorv :: inst_rorv_r_r_r -emit_rorv :: emit_rorv_r_r_r -inst_udiv :: inst_udiv_r_r_r -emit_udiv :: emit_udiv_r_r_r -inst_sdiv :: inst_sdiv_r_r_r -emit_sdiv :: emit_sdiv_r_r_r -inst_madd :: inst_madd_r_r_r_r -emit_madd :: emit_madd_r_r_r_r -inst_msub :: inst_msub_r_r_r_r -emit_msub :: emit_msub_r_r_r_r -inst_smaddl :: inst_smaddl_r_r_r_r -emit_smaddl :: emit_smaddl_r_r_r_r -inst_smsubl :: inst_smsubl_r_r_r_r -emit_smsubl :: emit_smsubl_r_r_r_r -inst_umaddl :: inst_umaddl_r_r_r_r -emit_umaddl :: emit_umaddl_r_r_r_r -inst_umsubl :: inst_umsubl_r_r_r_r -emit_umsubl :: emit_umsubl_r_r_r_r -inst_smulh :: inst_smulh_r_r_r -emit_smulh :: emit_smulh_r_r_r -inst_umulh :: inst_umulh_r_r_r -emit_umulh :: emit_umulh_r_r_r -inst_clz :: inst_clz_r_r -emit_clz :: emit_clz_r_r -inst_cls :: inst_cls_r_r -emit_cls :: emit_cls_r_r -inst_rbit :: inst_rbit_r_r -emit_rbit :: emit_rbit_r_r -inst_rev :: inst_rev_r_r -emit_rev :: emit_rev_r_r -inst_rev16 :: inst_rev16_r_r -emit_rev16 :: emit_rev16_r_r -inst_rev32 :: inst_rev32_r_r -emit_rev32 :: emit_rev32_r_r -inst_csel :: inst_csel_r_r_r_c -emit_csel :: emit_csel_r_r_r_c -inst_csinc :: inst_csinc_r_r_r_c -emit_csinc :: emit_csinc_r_r_r_c -inst_csinv :: inst_csinv_r_r_r_c -emit_csinv :: emit_csinv_r_r_r_c -inst_csneg :: inst_csneg_r_r_r_c -emit_csneg :: emit_csneg_r_r_r_c -inst_ccmp_reg :: inst_ccmp_reg_r_r_i_c -emit_ccmp_reg :: emit_ccmp_reg_r_r_i_c -inst_ccmp_imm :: inst_ccmp_imm_r_i_i_c -emit_ccmp_imm :: emit_ccmp_imm_r_i_i_c -inst_ccmn_reg :: inst_ccmn_reg_r_r_i_c -emit_ccmn_reg :: emit_ccmn_reg_r_r_i_c -inst_ccmn_imm :: inst_ccmn_imm_r_i_i_c -emit_ccmn_imm :: emit_ccmn_imm_r_i_i_c -inst_extr :: inst_extr_r_r_r_i -emit_extr :: emit_extr_r_r_r_i -inst_b :: inst_b_l -emit_b :: emit_b_l -inst_bl :: inst_bl_l -emit_bl :: emit_bl_l -inst_br :: inst_br_r -emit_br :: emit_br_r -inst_blr :: inst_blr_r -emit_blr :: emit_blr_r -inst_ret :: proc{ inst_ret_r, inst_ret_none } -emit_ret :: proc{ emit_ret_r, emit_ret_none } -inst_b_cond :: inst_b_cond_c_l -emit_b_cond :: emit_b_cond_c_l -inst_cbz :: inst_cbz_r_l -emit_cbz :: emit_cbz_r_l -inst_cbnz :: inst_cbnz_r_l -emit_cbnz :: emit_cbnz_r_l -inst_tbz :: inst_tbz_r_i_l -emit_tbz :: emit_tbz_r_i_l -inst_tbnz :: inst_tbnz_r_i_l -emit_tbnz :: emit_tbnz_r_i_l -inst_ldr :: inst_ldr_r_m -emit_ldr :: emit_ldr_r_m -inst_str :: inst_str_r_m -emit_str :: emit_str_r_m -inst_ldrb :: inst_ldrb_r_m -emit_ldrb :: emit_ldrb_r_m -inst_strb :: inst_strb_r_m -emit_strb :: emit_strb_r_m -inst_ldrsb :: inst_ldrsb_r_m -emit_ldrsb :: emit_ldrsb_r_m -inst_ldrh :: inst_ldrh_r_m -emit_ldrh :: emit_ldrh_r_m -inst_strh :: inst_strh_r_m -emit_strh :: emit_strh_r_m -inst_ldrsh :: inst_ldrsh_r_m -emit_ldrsh :: emit_ldrsh_r_m -inst_ldrsw :: inst_ldrsw_r_m -emit_ldrsw :: emit_ldrsw_r_m -inst_ldp :: inst_ldp_r_r_m -emit_ldp :: emit_ldp_r_r_m -inst_stp :: inst_stp_r_r_m -emit_stp :: emit_stp_r_r_m -inst_ldpsw :: inst_ldpsw_r_r_m -emit_ldpsw :: emit_ldpsw_r_r_m -inst_ldr_lit :: inst_ldr_lit_r_l -emit_ldr_lit :: emit_ldr_lit_r_l -inst_ldar :: inst_ldar_r_m -emit_ldar :: emit_ldar_r_m -inst_stlr :: inst_stlr_r_m -emit_stlr :: emit_stlr_r_m -inst_ldarb :: inst_ldarb_r_m -emit_ldarb :: emit_ldarb_r_m -inst_stlrb :: inst_stlrb_r_m -emit_stlrb :: emit_stlrb_r_m -inst_ldarh :: inst_ldarh_r_m -emit_ldarh :: emit_ldarh_r_m -inst_stlrh :: inst_stlrh_r_m -emit_stlrh :: emit_stlrh_r_m -inst_ldxr :: inst_ldxr_r_m -emit_ldxr :: emit_ldxr_r_m -inst_stxr :: inst_stxr_r_r_m -emit_stxr :: emit_stxr_r_r_m -inst_ldaxr :: inst_ldaxr_r_m -emit_ldaxr :: emit_ldaxr_r_m -inst_stlxr :: inst_stlxr_r_r_m -emit_stlxr :: emit_stlxr_r_r_m -inst_nop :: inst_nop_none -emit_nop :: emit_nop_none -inst_yield :: inst_yield_none -emit_yield :: emit_yield_none -inst_wfe :: inst_wfe_none -emit_wfe :: emit_wfe_none -inst_wfi :: inst_wfi_none -emit_wfi :: emit_wfi_none -inst_sev :: inst_sev_none -emit_sev :: emit_sev_none -inst_sevl :: inst_sevl_none -emit_sevl :: emit_sevl_none -inst_hint :: inst_hint_i -emit_hint :: emit_hint_i -inst_mrs :: inst_mrs_r_i -emit_mrs :: emit_mrs_r_i -inst_msr_imm :: inst_msr_imm_i_i -emit_msr_imm :: emit_msr_imm_i_i -inst_msr_reg :: inst_msr_reg_i_r -emit_msr_reg :: emit_msr_reg_i_r -inst_isb :: inst_isb_i -emit_isb :: emit_isb_i -inst_dsb :: inst_dsb_i -emit_dsb :: emit_dsb_i -inst_dmb :: inst_dmb_i -emit_dmb :: emit_dmb_i -inst_svc :: inst_svc_i -emit_svc :: emit_svc_i -inst_hvc :: inst_hvc_i -emit_hvc :: emit_hvc_i -inst_smc :: inst_smc_i -emit_smc :: emit_smc_i -inst_brk :: inst_brk_i -emit_brk :: emit_brk_i -inst_hlt :: inst_hlt_i -emit_hlt :: emit_hlt_i -inst_eret :: inst_eret_none -emit_eret :: emit_eret_none -inst_fmov_reg :: inst_fmov_reg_r_r -emit_fmov_reg :: emit_fmov_reg_r_r -inst_fmov_imm :: inst_fmov_imm_r_i -emit_fmov_imm :: emit_fmov_imm_r_i -inst_fmov_gen :: inst_fmov_gen_r_r -emit_fmov_gen :: emit_fmov_gen_r_r -inst_fabs :: inst_fabs_r_r -emit_fabs :: emit_fabs_r_r -inst_fneg :: inst_fneg_r_r -emit_fneg :: emit_fneg_r_r -inst_fsqrt :: inst_fsqrt_r_r -emit_fsqrt :: emit_fsqrt_r_r -inst_fadd :: inst_fadd_r_r_r -emit_fadd :: emit_fadd_r_r_r -inst_fsub :: inst_fsub_r_r_r -emit_fsub :: emit_fsub_r_r_r -inst_fmul :: inst_fmul_r_r_r -emit_fmul :: emit_fmul_r_r_r -inst_fdiv :: inst_fdiv_r_r_r -emit_fdiv :: emit_fdiv_r_r_r -inst_fnmul :: inst_fnmul_r_r_r -emit_fnmul :: emit_fnmul_r_r_r -inst_fmadd :: inst_fmadd_r_r_r_r -emit_fmadd :: emit_fmadd_r_r_r_r -inst_fmsub :: inst_fmsub_r_r_r_r -emit_fmsub :: emit_fmsub_r_r_r_r -inst_fnmadd :: inst_fnmadd_r_r_r_r -emit_fnmadd :: emit_fnmadd_r_r_r_r -inst_fnmsub :: inst_fnmsub_r_r_r_r -emit_fnmsub :: emit_fnmsub_r_r_r_r -inst_fcmp :: inst_fcmp_r_r -emit_fcmp :: emit_fcmp_r_r -inst_fcmpe :: inst_fcmpe_r_r -emit_fcmpe :: emit_fcmpe_r_r -inst_fcsel :: inst_fcsel_r_r_r_c -emit_fcsel :: emit_fcsel_r_r_r_c -inst_fmax :: inst_fmax_r_r_r -emit_fmax :: emit_fmax_r_r_r -inst_fmin :: inst_fmin_r_r_r -emit_fmin :: emit_fmin_r_r_r -inst_fmaxnm :: inst_fmaxnm_r_r_r -emit_fmaxnm :: emit_fmaxnm_r_r_r -inst_fminnm :: inst_fminnm_r_r_r -emit_fminnm :: emit_fminnm_r_r_r -inst_fcvt :: inst_fcvt_r_r -emit_fcvt :: emit_fcvt_r_r -inst_scvtf :: inst_scvtf_r_r -emit_scvtf :: emit_scvtf_r_r -inst_ucvtf :: inst_ucvtf_r_r -emit_ucvtf :: emit_ucvtf_r_r -inst_fcvtzs :: inst_fcvtzs_r_r -emit_fcvtzs :: emit_fcvtzs_r_r -inst_fcvtzu :: inst_fcvtzu_r_r -emit_fcvtzu :: emit_fcvtzu_r_r -inst_fcvtas :: inst_fcvtas_r_r -emit_fcvtas :: emit_fcvtas_r_r -inst_fcvtau :: inst_fcvtau_r_r -emit_fcvtau :: emit_fcvtau_r_r -inst_fcvtns :: inst_fcvtns_r_r -emit_fcvtns :: emit_fcvtns_r_r -inst_fcvtnu :: inst_fcvtnu_r_r -emit_fcvtnu :: emit_fcvtnu_r_r -inst_fcvtps :: inst_fcvtps_r_r -emit_fcvtps :: emit_fcvtps_r_r -inst_fcvtpu :: inst_fcvtpu_r_r -emit_fcvtpu :: emit_fcvtpu_r_r -inst_fcvtms :: inst_fcvtms_r_r -emit_fcvtms :: emit_fcvtms_r_r -inst_fcvtmu :: inst_fcvtmu_r_r -emit_fcvtmu :: emit_fcvtmu_r_r -inst_frinta :: inst_frinta_r_r -emit_frinta :: emit_frinta_r_r -inst_frinti :: inst_frinti_r_r -emit_frinti :: emit_frinti_r_r -inst_frintm :: inst_frintm_r_r -emit_frintm :: emit_frintm_r_r -inst_frintn :: inst_frintn_r_r -emit_frintn :: emit_frintn_r_r -inst_frintp :: inst_frintp_r_r -emit_frintp :: emit_frintp_r_r -inst_frintx :: inst_frintx_r_r -emit_frintx :: emit_frintx_r_r -inst_frintz :: inst_frintz_r_r -emit_frintz :: emit_frintz_r_r -inst_and_imm :: inst_and_imm_r_r_i -emit_and_imm :: emit_and_imm_r_r_i -inst_ands_imm :: inst_ands_imm_r_r_i -emit_ands_imm :: emit_ands_imm_r_r_i -inst_orr_imm :: inst_orr_imm_r_r_i -emit_orr_imm :: emit_orr_imm_r_r_i -inst_eor_imm :: inst_eor_imm_r_r_i -emit_eor_imm :: emit_eor_imm_r_r_i -inst_tst_imm :: inst_tst_imm_r_i -emit_tst_imm :: emit_tst_imm_r_i -inst_ldur :: inst_ldur_r_m -emit_ldur :: emit_ldur_r_m -inst_stur :: inst_stur_r_m -emit_stur :: emit_stur_r_m -inst_ldurb :: inst_ldurb_r_m -emit_ldurb :: emit_ldurb_r_m -inst_sturb :: inst_sturb_r_m -emit_sturb :: emit_sturb_r_m -inst_ldursb :: inst_ldursb_r_m -emit_ldursb :: emit_ldursb_r_m -inst_ldurh :: inst_ldurh_r_m -emit_ldurh :: emit_ldurh_r_m -inst_sturh :: inst_sturh_r_m -emit_sturh :: emit_sturh_r_m -inst_ldursh :: inst_ldursh_r_m -emit_ldursh :: emit_ldursh_r_m -inst_ldursw :: inst_ldursw_r_m -emit_ldursw :: emit_ldursw_r_m -inst_ldr_pre :: inst_ldr_pre_r_m -emit_ldr_pre :: emit_ldr_pre_r_m -inst_str_pre :: inst_str_pre_r_m -emit_str_pre :: emit_str_pre_r_m -inst_ldr_post :: inst_ldr_post_r_m -emit_ldr_post :: emit_ldr_post_r_m -inst_str_post :: inst_str_post_r_m -emit_str_post :: emit_str_post_r_m -inst_ldrb_pre :: inst_ldrb_pre_r_m -emit_ldrb_pre :: emit_ldrb_pre_r_m -inst_strb_pre :: inst_strb_pre_r_m -emit_strb_pre :: emit_strb_pre_r_m -inst_ldrb_post :: inst_ldrb_post_r_m -emit_ldrb_post :: emit_ldrb_post_r_m -inst_strb_post :: inst_strb_post_r_m -emit_strb_post :: emit_strb_post_r_m -inst_ldrh_pre :: inst_ldrh_pre_r_m -emit_ldrh_pre :: emit_ldrh_pre_r_m -inst_strh_pre :: inst_strh_pre_r_m -emit_strh_pre :: emit_strh_pre_r_m -inst_ldrh_post :: inst_ldrh_post_r_m -emit_ldrh_post :: emit_ldrh_post_r_m -inst_strh_post :: inst_strh_post_r_m -emit_strh_post :: emit_strh_post_r_m -inst_ldr_reg :: inst_ldr_reg_r_m -emit_ldr_reg :: emit_ldr_reg_r_m -inst_str_reg :: inst_str_reg_r_m -emit_str_reg :: emit_str_reg_r_m -inst_ldrb_reg :: inst_ldrb_reg_r_m -emit_ldrb_reg :: emit_ldrb_reg_r_m -inst_strb_reg :: inst_strb_reg_r_m -emit_strb_reg :: emit_strb_reg_r_m -inst_ldrh_reg :: inst_ldrh_reg_r_m -emit_ldrh_reg :: emit_ldrh_reg_r_m -inst_strh_reg :: inst_strh_reg_r_m -emit_strh_reg :: emit_strh_reg_r_m -inst_ldrsb_reg :: inst_ldrsb_reg_r_m -emit_ldrsb_reg :: emit_ldrsb_reg_r_m -inst_ldrsh_reg :: inst_ldrsh_reg_r_m -emit_ldrsh_reg :: emit_ldrsh_reg_r_m -inst_ldrsw_reg :: inst_ldrsw_reg_r_m -emit_ldrsw_reg :: emit_ldrsw_reg_r_m -inst_ldp_pre :: inst_ldp_pre_r_r_m -emit_ldp_pre :: emit_ldp_pre_r_r_m -inst_stp_pre :: inst_stp_pre_r_r_m -emit_stp_pre :: emit_stp_pre_r_r_m -inst_ldp_post :: inst_ldp_post_r_r_m -emit_ldp_post :: emit_ldp_post_r_r_m -inst_stp_post :: inst_stp_post_r_r_m -emit_stp_post :: emit_stp_post_r_r_m -inst_ldpsw_pre :: inst_ldpsw_pre_r_r_m -emit_ldpsw_pre :: emit_ldpsw_pre_r_r_m -inst_ldpsw_post :: inst_ldpsw_post_r_r_m -emit_ldpsw_post :: emit_ldpsw_post_r_r_m -inst_ldnp :: inst_ldnp_r_r_m -emit_ldnp :: emit_ldnp_r_r_m -inst_stnp :: inst_stnp_r_r_m -emit_stnp :: emit_stnp_r_r_m -inst_ldxp :: inst_ldxp_r_r_m -emit_ldxp :: emit_ldxp_r_r_m -inst_stxp :: inst_stxp_r_r_r_m -emit_stxp :: emit_stxp_r_r_r_m -inst_ldaxp :: inst_ldaxp_r_r_m -emit_ldaxp :: emit_ldaxp_r_r_m -inst_stlxp :: inst_stlxp_r_r_r_m -emit_stlxp :: emit_stlxp_r_r_r_m -inst_ldxrb :: inst_ldxrb_r_m -emit_ldxrb :: emit_ldxrb_r_m -inst_stxrb :: inst_stxrb_r_r_m -emit_stxrb :: emit_stxrb_r_r_m -inst_ldaxrb :: inst_ldaxrb_r_m -emit_ldaxrb :: emit_ldaxrb_r_m -inst_stlxrb :: inst_stlxrb_r_r_m -emit_stlxrb :: emit_stlxrb_r_r_m -inst_ldxrh :: inst_ldxrh_r_m -emit_ldxrh :: emit_ldxrh_r_m -inst_stxrh :: inst_stxrh_r_r_m -emit_stxrh :: emit_stxrh_r_r_m -inst_ldaxrh :: inst_ldaxrh_r_m -emit_ldaxrh :: emit_ldaxrh_r_m -inst_stlxrh :: inst_stlxrh_r_r_m -emit_stlxrh :: emit_stlxrh_r_r_m -inst_ldapr :: inst_ldapr_r_m -emit_ldapr :: emit_ldapr_r_m -inst_ldaprb :: inst_ldaprb_r_m -emit_ldaprb :: emit_ldaprb_r_m -inst_ldaprh :: inst_ldaprh_r_m -emit_ldaprh :: emit_ldaprh_r_m -inst_ldadd :: inst_ldadd_r_r_m -emit_ldadd :: emit_ldadd_r_r_m -inst_ldadda :: inst_ldadda_r_r_m -emit_ldadda :: emit_ldadda_r_r_m -inst_ldaddl :: inst_ldaddl_r_r_m -emit_ldaddl :: emit_ldaddl_r_r_m -inst_ldaddal :: inst_ldaddal_r_r_m -emit_ldaddal :: emit_ldaddal_r_r_m -inst_ldclr :: inst_ldclr_r_r_m -emit_ldclr :: emit_ldclr_r_r_m -inst_ldclra :: inst_ldclra_r_r_m -emit_ldclra :: emit_ldclra_r_r_m -inst_ldclrl :: inst_ldclrl_r_r_m -emit_ldclrl :: emit_ldclrl_r_r_m -inst_ldclral :: inst_ldclral_r_r_m -emit_ldclral :: emit_ldclral_r_r_m -inst_ldeor :: inst_ldeor_r_r_m -emit_ldeor :: emit_ldeor_r_r_m -inst_ldeora :: inst_ldeora_r_r_m -emit_ldeora :: emit_ldeora_r_r_m -inst_ldeorl :: inst_ldeorl_r_r_m -emit_ldeorl :: emit_ldeorl_r_r_m -inst_ldeoral :: inst_ldeoral_r_r_m -emit_ldeoral :: emit_ldeoral_r_r_m -inst_ldset :: inst_ldset_r_r_m -emit_ldset :: emit_ldset_r_r_m -inst_ldseta :: inst_ldseta_r_r_m -emit_ldseta :: emit_ldseta_r_r_m -inst_ldsetl :: inst_ldsetl_r_r_m -emit_ldsetl :: emit_ldsetl_r_r_m -inst_ldsetal :: inst_ldsetal_r_r_m -emit_ldsetal :: emit_ldsetal_r_r_m -inst_ldsmax :: inst_ldsmax_r_r_m -emit_ldsmax :: emit_ldsmax_r_r_m -inst_ldsmaxa :: inst_ldsmaxa_r_r_m -emit_ldsmaxa :: emit_ldsmaxa_r_r_m -inst_ldsmaxl :: inst_ldsmaxl_r_r_m -emit_ldsmaxl :: emit_ldsmaxl_r_r_m -inst_ldsmaxal :: inst_ldsmaxal_r_r_m -emit_ldsmaxal :: emit_ldsmaxal_r_r_m -inst_ldsmin :: inst_ldsmin_r_r_m -emit_ldsmin :: emit_ldsmin_r_r_m -inst_ldsmina :: inst_ldsmina_r_r_m -emit_ldsmina :: emit_ldsmina_r_r_m -inst_ldsminl :: inst_ldsminl_r_r_m -emit_ldsminl :: emit_ldsminl_r_r_m -inst_ldsminal :: inst_ldsminal_r_r_m -emit_ldsminal :: emit_ldsminal_r_r_m -inst_ldumax :: inst_ldumax_r_r_m -emit_ldumax :: emit_ldumax_r_r_m -inst_ldumaxa :: inst_ldumaxa_r_r_m -emit_ldumaxa :: emit_ldumaxa_r_r_m -inst_ldumaxl :: inst_ldumaxl_r_r_m -emit_ldumaxl :: emit_ldumaxl_r_r_m -inst_ldumaxal :: inst_ldumaxal_r_r_m -emit_ldumaxal :: emit_ldumaxal_r_r_m -inst_ldumin :: inst_ldumin_r_r_m -emit_ldumin :: emit_ldumin_r_r_m -inst_ldumina :: inst_ldumina_r_r_m -emit_ldumina :: emit_ldumina_r_r_m -inst_lduminl :: inst_lduminl_r_r_m -emit_lduminl :: emit_lduminl_r_r_m -inst_lduminal :: inst_lduminal_r_r_m -emit_lduminal :: emit_lduminal_r_r_m -inst_swp :: inst_swp_r_r_m -emit_swp :: emit_swp_r_r_m -inst_swpa :: inst_swpa_r_r_m -emit_swpa :: emit_swpa_r_r_m -inst_swpl :: inst_swpl_r_r_m -emit_swpl :: emit_swpl_r_r_m -inst_swpal :: inst_swpal_r_r_m -emit_swpal :: emit_swpal_r_r_m -inst_cas :: inst_cas_r_r_m -emit_cas :: emit_cas_r_r_m -inst_casa :: inst_casa_r_r_m -emit_casa :: emit_casa_r_r_m -inst_casl :: inst_casl_r_r_m -emit_casl :: emit_casl_r_r_m -inst_casal :: inst_casal_r_r_m -emit_casal :: emit_casal_r_r_m -inst_casb :: inst_casb_r_r_m -emit_casb :: emit_casb_r_r_m -inst_casab :: inst_casab_r_r_m -emit_casab :: emit_casab_r_r_m -inst_caslb :: inst_caslb_r_r_m -emit_caslb :: emit_caslb_r_r_m -inst_casalb :: inst_casalb_r_r_m -emit_casalb :: emit_casalb_r_r_m -inst_cash :: inst_cash_r_r_m -emit_cash :: emit_cash_r_r_m -inst_casah :: inst_casah_r_r_m -emit_casah :: emit_casah_r_r_m -inst_caslh :: inst_caslh_r_r_m -emit_caslh :: emit_caslh_r_r_m -inst_casalh :: inst_casalh_r_r_m -emit_casalh :: emit_casalh_r_r_m -inst_casp :: inst_casp_r_r_m -emit_casp :: emit_casp_r_r_m -inst_caspa :: inst_caspa_r_r_m -emit_caspa :: emit_caspa_r_r_m -inst_caspl :: inst_caspl_r_r_m -emit_caspl :: emit_caspl_r_r_m -inst_caspal :: inst_caspal_r_r_m -emit_caspal :: emit_caspal_r_r_m -inst_pacia :: inst_pacia_r_r -emit_pacia :: emit_pacia_r_r -inst_pacib :: inst_pacib_r_r -emit_pacib :: emit_pacib_r_r -inst_pacda :: inst_pacda_r_r -emit_pacda :: emit_pacda_r_r -inst_pacdb :: inst_pacdb_r_r -emit_pacdb :: emit_pacdb_r_r -inst_paciza :: inst_paciza_r -emit_paciza :: emit_paciza_r -inst_pacizb :: inst_pacizb_r -emit_pacizb :: emit_pacizb_r -inst_pacdza :: inst_pacdza_r -emit_pacdza :: emit_pacdza_r -inst_pacdzb :: inst_pacdzb_r -emit_pacdzb :: emit_pacdzb_r -inst_autia :: inst_autia_r_r -emit_autia :: emit_autia_r_r -inst_autib :: inst_autib_r_r -emit_autib :: emit_autib_r_r -inst_autda :: inst_autda_r_r -emit_autda :: emit_autda_r_r -inst_autdb :: inst_autdb_r_r -emit_autdb :: emit_autdb_r_r -inst_autiza :: inst_autiza_r -emit_autiza :: emit_autiza_r -inst_autizb :: inst_autizb_r -emit_autizb :: emit_autizb_r -inst_autdza :: inst_autdza_r -emit_autdza :: emit_autdza_r -inst_autdzb :: inst_autdzb_r -emit_autdzb :: emit_autdzb_r -inst_paciasp :: inst_paciasp_none -emit_paciasp :: emit_paciasp_none -inst_pacibsp :: inst_pacibsp_none -emit_pacibsp :: emit_pacibsp_none -inst_autiasp :: inst_autiasp_none -emit_autiasp :: emit_autiasp_none -inst_autibsp :: inst_autibsp_none -emit_autibsp :: emit_autibsp_none -inst_pacia1716 :: inst_pacia1716_none -emit_pacia1716 :: emit_pacia1716_none -inst_pacib1716 :: inst_pacib1716_none -emit_pacib1716 :: emit_pacib1716_none -inst_autia1716 :: inst_autia1716_none -emit_autia1716 :: emit_autia1716_none -inst_autib1716 :: inst_autib1716_none -emit_autib1716 :: emit_autib1716_none -inst_pacga :: inst_pacga_r_r_r -emit_pacga :: emit_pacga_r_r_r -inst_xpaci :: inst_xpaci_r -emit_xpaci :: emit_xpaci_r -inst_xpacd :: inst_xpacd_r -emit_xpacd :: emit_xpacd_r -inst_xpaclri :: inst_xpaclri_none -emit_xpaclri :: emit_xpaclri_none -inst_retaa :: inst_retaa_none -emit_retaa :: emit_retaa_none -inst_retab :: inst_retab_none -emit_retab :: emit_retab_none -inst_braa :: inst_braa_r_r -emit_braa :: emit_braa_r_r -inst_brab :: inst_brab_r_r -emit_brab :: emit_brab_r_r -inst_braaz :: inst_braaz_r -emit_braaz :: emit_braaz_r -inst_brabz :: inst_brabz_r -emit_brabz :: emit_brabz_r -inst_blraa :: inst_blraa_r_r -emit_blraa :: emit_blraa_r_r -inst_blrab :: inst_blrab_r_r -emit_blrab :: emit_blrab_r_r -inst_blraaz :: inst_blraaz_r -emit_blraaz :: emit_blraaz_r -inst_blrabz :: inst_blrabz_r -emit_blrabz :: emit_blrabz_r -inst_eretaa :: inst_eretaa_none -emit_eretaa :: emit_eretaa_none -inst_eretab :: inst_eretab_none -emit_eretab :: emit_eretab_none -inst_bti :: inst_bti_i -emit_bti :: emit_bti_i -inst_irg :: inst_irg_r_r_r -emit_irg :: emit_irg_r_r_r -inst_addg :: inst_addg_r_r_i_i -emit_addg :: emit_addg_r_r_i_i -inst_subg :: inst_subg_r_r_i_i -emit_subg :: emit_subg_r_r_i_i -inst_gmi :: inst_gmi_r_r_r -emit_gmi :: emit_gmi_r_r_r -inst_subp :: inst_subp_r_r_r -emit_subp :: emit_subp_r_r_r -inst_subps :: inst_subps_r_r_r -emit_subps :: emit_subps_r_r_r -inst_ldg :: inst_ldg_r_m -emit_ldg :: emit_ldg_r_m -inst_stg :: inst_stg_r_m -emit_stg :: emit_stg_r_m -inst_st2g :: inst_st2g_r_m -emit_st2g :: emit_st2g_r_m -inst_stzg :: inst_stzg_r_m -emit_stzg :: emit_stzg_r_m -inst_stz2g :: inst_stz2g_r_m -emit_stz2g :: emit_stz2g_r_m -inst_stgp :: inst_stgp_r_r_m -emit_stgp :: emit_stgp_r_r_m -inst_ldgm :: inst_ldgm_r_m -emit_ldgm :: emit_ldgm_r_m -inst_stgm :: inst_stgm_r_m -emit_stgm :: emit_stgm_r_m -inst_stzgm :: inst_stzgm_r_m -emit_stzgm :: emit_stzgm_r_m -inst_crc32b :: inst_crc32b_r_r_r -emit_crc32b :: emit_crc32b_r_r_r -inst_crc32h :: inst_crc32h_r_r_r -emit_crc32h :: emit_crc32h_r_r_r -inst_crc32w :: inst_crc32w_r_r_r -emit_crc32w :: emit_crc32w_r_r_r -inst_crc32x :: inst_crc32x_r_r_r -emit_crc32x :: emit_crc32x_r_r_r -inst_crc32cb :: inst_crc32cb_r_r_r -emit_crc32cb :: emit_crc32cb_r_r_r -inst_crc32ch :: inst_crc32ch_r_r_r -emit_crc32ch :: emit_crc32ch_r_r_r -inst_crc32cw :: inst_crc32cw_r_r_r -emit_crc32cw :: emit_crc32cw_r_r_r -inst_crc32cx :: inst_crc32cx_r_r_r -emit_crc32cx :: emit_crc32cx_r_r_r -inst_aese :: inst_aese_r_r -emit_aese :: emit_aese_r_r -inst_aesd :: inst_aesd_r_r -emit_aesd :: emit_aesd_r_r -inst_aesmc :: inst_aesmc_r_r -emit_aesmc :: emit_aesmc_r_r -inst_aesimc :: inst_aesimc_r_r -emit_aesimc :: emit_aesimc_r_r -inst_sha1h :: inst_sha1h_r_r -emit_sha1h :: emit_sha1h_r_r -inst_sha1c :: inst_sha1c_r_r_r -emit_sha1c :: emit_sha1c_r_r_r -inst_sha1p :: inst_sha1p_r_r_r -emit_sha1p :: emit_sha1p_r_r_r -inst_sha1m :: inst_sha1m_r_r_r -emit_sha1m :: emit_sha1m_r_r_r -inst_sha1su0 :: inst_sha1su0_r_r_r -emit_sha1su0 :: emit_sha1su0_r_r_r -inst_sha1su1 :: inst_sha1su1_r_r -emit_sha1su1 :: emit_sha1su1_r_r -inst_sha256h :: inst_sha256h_r_r_r -emit_sha256h :: emit_sha256h_r_r_r -inst_sha256h2 :: inst_sha256h2_r_r_r -emit_sha256h2 :: emit_sha256h2_r_r_r -inst_sha256su0 :: inst_sha256su0_r_r -emit_sha256su0 :: emit_sha256su0_r_r -inst_sha256su1 :: inst_sha256su1_r_r_r -emit_sha256su1 :: emit_sha256su1_r_r_r -inst_sha512h :: inst_sha512h_r_r_r -emit_sha512h :: emit_sha512h_r_r_r -inst_sha512h2 :: inst_sha512h2_r_r_r -emit_sha512h2 :: emit_sha512h2_r_r_r -inst_sha512su0 :: inst_sha512su0_r_r -emit_sha512su0 :: emit_sha512su0_r_r -inst_sha512su1 :: inst_sha512su1_r_r_r -emit_sha512su1 :: emit_sha512su1_r_r_r -inst_eor3 :: inst_eor3_r_r_r_r -emit_eor3 :: emit_eor3_r_r_r_r -inst_bcax :: inst_bcax_r_r_r_r -emit_bcax :: emit_bcax_r_r_r_r -inst_rax1 :: inst_rax1_r_r_r -emit_rax1 :: emit_rax1_r_r_r -inst_xar :: inst_xar_r_r_r_i -emit_xar :: emit_xar_r_r_r_i -inst_sm3partw1 :: inst_sm3partw1_r_r_r -emit_sm3partw1 :: emit_sm3partw1_r_r_r -inst_sm3partw2 :: inst_sm3partw2_r_r_r -emit_sm3partw2 :: emit_sm3partw2_r_r_r -inst_sm3ss1 :: inst_sm3ss1_r_r_r_r -emit_sm3ss1 :: emit_sm3ss1_r_r_r_r -inst_sm3tt1a :: inst_sm3tt1a_r_r_r -emit_sm3tt1a :: emit_sm3tt1a_r_r_r -inst_sm3tt1b :: inst_sm3tt1b_r_r_r -emit_sm3tt1b :: emit_sm3tt1b_r_r_r -inst_sm3tt2a :: inst_sm3tt2a_r_r_r -emit_sm3tt2a :: emit_sm3tt2a_r_r_r -inst_sm3tt2b :: inst_sm3tt2b_r_r_r -emit_sm3tt2b :: emit_sm3tt2b_r_r_r -inst_sm4e :: inst_sm4e_r_r -emit_sm4e :: emit_sm4e_r_r -inst_sm4ekey :: inst_sm4ekey_r_r_r -emit_sm4ekey :: emit_sm4ekey_r_r_r -inst_pmull :: inst_pmull_r_r_r -emit_pmull :: emit_pmull_r_r_r -inst_pmull2 :: inst_pmull2_r_r_r -emit_pmull2 :: emit_pmull2_r_r_r -inst_fabs_h :: inst_fabs_h_r_r -emit_fabs_h :: emit_fabs_h_r_r -inst_fneg_h :: inst_fneg_h_r_r -emit_fneg_h :: emit_fneg_h_r_r -inst_fsqrt_h :: inst_fsqrt_h_r_r -emit_fsqrt_h :: emit_fsqrt_h_r_r -inst_fadd_h :: inst_fadd_h_r_r_r -emit_fadd_h :: emit_fadd_h_r_r_r -inst_fsub_h :: inst_fsub_h_r_r_r -emit_fsub_h :: emit_fsub_h_r_r_r -inst_fmul_h :: inst_fmul_h_r_r_r -emit_fmul_h :: emit_fmul_h_r_r_r -inst_fdiv_h :: inst_fdiv_h_r_r_r -emit_fdiv_h :: emit_fdiv_h_r_r_r -inst_fnmul_h :: inst_fnmul_h_r_r_r -emit_fnmul_h :: emit_fnmul_h_r_r_r -inst_fmadd_h :: inst_fmadd_h_r_r_r_r -emit_fmadd_h :: emit_fmadd_h_r_r_r_r -inst_fmsub_h :: inst_fmsub_h_r_r_r_r -emit_fmsub_h :: emit_fmsub_h_r_r_r_r -inst_fnmadd_h :: inst_fnmadd_h_r_r_r_r -emit_fnmadd_h :: emit_fnmadd_h_r_r_r_r -inst_fnmsub_h :: inst_fnmsub_h_r_r_r_r -emit_fnmsub_h :: emit_fnmsub_h_r_r_r_r -inst_fcmp_h :: inst_fcmp_h_r_r -emit_fcmp_h :: emit_fcmp_h_r_r -inst_fcmpe_h :: inst_fcmpe_h_r_r -emit_fcmpe_h :: emit_fcmpe_h_r_r -inst_fcsel_h :: inst_fcsel_h_r_r_r_c -emit_fcsel_h :: emit_fcsel_h_r_r_r_c -inst_fmax_h :: inst_fmax_h_r_r_r -emit_fmax_h :: emit_fmax_h_r_r_r -inst_fmin_h :: inst_fmin_h_r_r_r -emit_fmin_h :: emit_fmin_h_r_r_r -inst_fmaxnm_h :: inst_fmaxnm_h_r_r_r -emit_fmaxnm_h :: emit_fmaxnm_h_r_r_r -inst_fminnm_h :: inst_fminnm_h_r_r_r -emit_fminnm_h :: emit_fminnm_h_r_r_r -inst_fcvt_h_s :: inst_fcvt_h_s_r_r -emit_fcvt_h_s :: emit_fcvt_h_s_r_r -inst_fcvt_h_d :: inst_fcvt_h_d_r_r -emit_fcvt_h_d :: emit_fcvt_h_d_r_r -inst_fcvt_s_h :: inst_fcvt_s_h_r_r -emit_fcvt_s_h :: emit_fcvt_s_h_r_r -inst_fcvt_d_h :: inst_fcvt_d_h_r_r -emit_fcvt_d_h :: emit_fcvt_d_h_r_r -inst_fmov_h :: inst_fmov_h_r_r -emit_fmov_h :: emit_fmov_h_r_r -inst_scvtf_h :: inst_scvtf_h_r_r -emit_scvtf_h :: emit_scvtf_h_r_r -inst_ucvtf_h :: inst_ucvtf_h_r_r -emit_ucvtf_h :: emit_ucvtf_h_r_r -inst_fcvtzs_h :: inst_fcvtzs_h_r_r -emit_fcvtzs_h :: emit_fcvtzs_h_r_r -inst_fcvtzu_h :: inst_fcvtzu_h_r_r -emit_fcvtzu_h :: emit_fcvtzu_h_r_r -inst_bfcvt :: inst_bfcvt_r_r -emit_bfcvt :: emit_bfcvt_r_r -inst_bfdot :: inst_bfdot_r_r_r -emit_bfdot :: emit_bfdot_r_r_r -inst_bfmmla :: inst_bfmmla_r_r_r -emit_bfmmla :: emit_bfmmla_r_r_r -inst_bfmlalb :: inst_bfmlalb_r_r_r -emit_bfmlalb :: emit_bfmlalb_r_r_r -inst_bfmlalt :: inst_bfmlalt_r_r_r -emit_bfmlalt :: emit_bfmlalt_r_r_r -inst_bfcvtn :: inst_bfcvtn_r_r -emit_bfcvtn :: emit_bfcvtn_r_r -inst_bfcvtn2 :: inst_bfcvtn2_r_r -emit_bfcvtn2 :: emit_bfcvtn2_r_r -inst_add_v :: inst_add_v_r_r_r -emit_add_v :: emit_add_v_r_r_r -inst_sub_v :: inst_sub_v_r_r_r -emit_sub_v :: emit_sub_v_r_r_r -inst_mul_v :: inst_mul_v_r_r_r -emit_mul_v :: emit_mul_v_r_r_r -inst_mla_v :: inst_mla_v_r_r_r -emit_mla_v :: emit_mla_v_r_r_r -inst_mls_v :: inst_mls_v_r_r_r -emit_mls_v :: emit_mls_v_r_r_r -inst_neg_v :: inst_neg_v_r_r -emit_neg_v :: emit_neg_v_r_r -inst_abs_v :: inst_abs_v_r_r -emit_abs_v :: emit_abs_v_r_r -inst_shadd :: inst_shadd_r_r_r -emit_shadd :: emit_shadd_r_r_r -inst_uhadd :: inst_uhadd_r_r_r -emit_uhadd :: emit_uhadd_r_r_r -inst_shsub :: inst_shsub_r_r_r -emit_shsub :: emit_shsub_r_r_r -inst_uhsub :: inst_uhsub_r_r_r -emit_uhsub :: emit_uhsub_r_r_r -inst_srhadd :: inst_srhadd_r_r_r -emit_srhadd :: emit_srhadd_r_r_r -inst_urhadd :: inst_urhadd_r_r_r -emit_urhadd :: emit_urhadd_r_r_r -inst_sqadd :: inst_sqadd_r_r_r -emit_sqadd :: emit_sqadd_r_r_r -inst_uqadd :: inst_uqadd_r_r_r -emit_uqadd :: emit_uqadd_r_r_r -inst_sqsub :: inst_sqsub_r_r_r -emit_sqsub :: emit_sqsub_r_r_r -inst_uqsub :: inst_uqsub_r_r_r -emit_uqsub :: emit_uqsub_r_r_r -inst_smax :: inst_smax_r_r_r -emit_smax :: emit_smax_r_r_r -inst_umax :: inst_umax_r_r_r -emit_umax :: emit_umax_r_r_r -inst_smin :: inst_smin_r_r_r -emit_smin :: emit_smin_r_r_r -inst_umin :: inst_umin_r_r_r -emit_umin :: emit_umin_r_r_r -inst_sabd :: inst_sabd_r_r_r -emit_sabd :: emit_sabd_r_r_r -inst_uabd :: inst_uabd_r_r_r -emit_uabd :: emit_uabd_r_r_r -inst_saba :: inst_saba_r_r_r -emit_saba :: emit_saba_r_r_r -inst_uaba :: inst_uaba_r_r_r -emit_uaba :: emit_uaba_r_r_r -inst_addp_v :: inst_addp_v_r_r_r -emit_addp_v :: emit_addp_v_r_r_r -inst_addv :: inst_addv_r_r -emit_addv :: emit_addv_r_r -inst_saddlp :: inst_saddlp_r_r -emit_saddlp :: emit_saddlp_r_r -inst_uaddlp :: inst_uaddlp_r_r -emit_uaddlp :: emit_uaddlp_r_r -inst_sadalp :: inst_sadalp_r_r -emit_sadalp :: emit_sadalp_r_r -inst_uadalp :: inst_uadalp_r_r -emit_uadalp :: emit_uadalp_r_r -inst_saddlv :: inst_saddlv_r_r -emit_saddlv :: emit_saddlv_r_r -inst_uaddlv :: inst_uaddlv_r_r -emit_uaddlv :: emit_uaddlv_r_r -inst_smaxv :: inst_smaxv_r_r -emit_smaxv :: emit_smaxv_r_r -inst_umaxv :: inst_umaxv_r_r -emit_umaxv :: emit_umaxv_r_r -inst_sminv :: inst_sminv_r_r -emit_sminv :: emit_sminv_r_r -inst_uminv :: inst_uminv_r_r -emit_uminv :: emit_uminv_r_r -inst_smaxp :: inst_smaxp_r_r_r -emit_smaxp :: emit_smaxp_r_r_r -inst_umaxp :: inst_umaxp_r_r_r -emit_umaxp :: emit_umaxp_r_r_r -inst_sminp :: inst_sminp_r_r_r -emit_sminp :: emit_sminp_r_r_r -inst_uminp :: inst_uminp_r_r_r -emit_uminp :: emit_uminp_r_r_r -inst_saddl :: inst_saddl_r_r_r -emit_saddl :: emit_saddl_r_r_r -inst_saddl2 :: inst_saddl2_r_r_r -emit_saddl2 :: emit_saddl2_r_r_r -inst_uaddl :: inst_uaddl_r_r_r -emit_uaddl :: emit_uaddl_r_r_r -inst_uaddl2 :: inst_uaddl2_r_r_r -emit_uaddl2 :: emit_uaddl2_r_r_r -inst_ssubl :: inst_ssubl_r_r_r -emit_ssubl :: emit_ssubl_r_r_r -inst_ssubl2 :: inst_ssubl2_r_r_r -emit_ssubl2 :: emit_ssubl2_r_r_r -inst_usubl :: inst_usubl_r_r_r -emit_usubl :: emit_usubl_r_r_r -inst_usubl2 :: inst_usubl2_r_r_r -emit_usubl2 :: emit_usubl2_r_r_r -inst_saddw :: inst_saddw_r_r_r -emit_saddw :: emit_saddw_r_r_r -inst_saddw2 :: inst_saddw2_r_r_r -emit_saddw2 :: emit_saddw2_r_r_r -inst_uaddw :: inst_uaddw_r_r_r -emit_uaddw :: emit_uaddw_r_r_r -inst_uaddw2 :: inst_uaddw2_r_r_r -emit_uaddw2 :: emit_uaddw2_r_r_r -inst_ssubw :: inst_ssubw_r_r_r -emit_ssubw :: emit_ssubw_r_r_r -inst_ssubw2 :: inst_ssubw2_r_r_r -emit_ssubw2 :: emit_ssubw2_r_r_r -inst_usubw :: inst_usubw_r_r_r -emit_usubw :: emit_usubw_r_r_r -inst_usubw2 :: inst_usubw2_r_r_r -emit_usubw2 :: emit_usubw2_r_r_r -inst_raddhn :: inst_raddhn_r_r_r -emit_raddhn :: emit_raddhn_r_r_r -inst_raddhn2 :: inst_raddhn2_r_r_r -emit_raddhn2 :: emit_raddhn2_r_r_r -inst_rsubhn :: inst_rsubhn_r_r_r -emit_rsubhn :: emit_rsubhn_r_r_r -inst_rsubhn2 :: inst_rsubhn2_r_r_r -emit_rsubhn2 :: emit_rsubhn2_r_r_r -inst_addhn :: inst_addhn_r_r_r -emit_addhn :: emit_addhn_r_r_r -inst_addhn2 :: inst_addhn2_r_r_r -emit_addhn2 :: emit_addhn2_r_r_r -inst_subhn :: inst_subhn_r_r_r -emit_subhn :: emit_subhn_r_r_r -inst_subhn2 :: inst_subhn2_r_r_r -emit_subhn2 :: emit_subhn2_r_r_r -inst_xtn :: inst_xtn_r_r -emit_xtn :: emit_xtn_r_r -inst_xtn2 :: inst_xtn2_r_r -emit_xtn2 :: emit_xtn2_r_r -inst_sqxtn :: inst_sqxtn_r_r -emit_sqxtn :: emit_sqxtn_r_r -inst_sqxtn2 :: inst_sqxtn2_r_r -emit_sqxtn2 :: emit_sqxtn2_r_r -inst_uqxtn :: inst_uqxtn_r_r -emit_uqxtn :: emit_uqxtn_r_r -inst_uqxtn2 :: inst_uqxtn2_r_r -emit_uqxtn2 :: emit_uqxtn2_r_r -inst_sqxtun :: inst_sqxtun_r_r -emit_sqxtun :: emit_sqxtun_r_r -inst_sqxtun2 :: inst_sqxtun2_r_r -emit_sqxtun2 :: emit_sqxtun2_r_r -inst_smull_v :: inst_smull_v_r_r_r -emit_smull_v :: emit_smull_v_r_r_r -inst_smull2_v :: inst_smull2_v_r_r_r -emit_smull2_v :: emit_smull2_v_r_r_r -inst_umull_v :: inst_umull_v_r_r_r -emit_umull_v :: emit_umull_v_r_r_r -inst_umull2_v :: inst_umull2_v_r_r_r -emit_umull2_v :: emit_umull2_v_r_r_r -inst_smlal :: inst_smlal_r_r_r -emit_smlal :: emit_smlal_r_r_r -inst_smlal2 :: inst_smlal2_r_r_r -emit_smlal2 :: emit_smlal2_r_r_r -inst_umlal :: inst_umlal_r_r_r -emit_umlal :: emit_umlal_r_r_r -inst_umlal2 :: inst_umlal2_r_r_r -emit_umlal2 :: emit_umlal2_r_r_r -inst_smlsl :: inst_smlsl_r_r_r -emit_smlsl :: emit_smlsl_r_r_r -inst_smlsl2 :: inst_smlsl2_r_r_r -emit_smlsl2 :: emit_smlsl2_r_r_r -inst_umlsl :: inst_umlsl_r_r_r -emit_umlsl :: emit_umlsl_r_r_r -inst_umlsl2 :: inst_umlsl2_r_r_r -emit_umlsl2 :: emit_umlsl2_r_r_r -inst_sqdmull :: inst_sqdmull_r_r_r -emit_sqdmull :: emit_sqdmull_r_r_r -inst_sqdmull2 :: inst_sqdmull2_r_r_r -emit_sqdmull2 :: emit_sqdmull2_r_r_r -inst_sqdmlal :: inst_sqdmlal_r_r_r -emit_sqdmlal :: emit_sqdmlal_r_r_r -inst_sqdmlal2 :: inst_sqdmlal2_r_r_r -emit_sqdmlal2 :: emit_sqdmlal2_r_r_r -inst_sqdmlsl :: inst_sqdmlsl_r_r_r -emit_sqdmlsl :: emit_sqdmlsl_r_r_r -inst_sqdmlsl2 :: inst_sqdmlsl2_r_r_r -emit_sqdmlsl2 :: emit_sqdmlsl2_r_r_r -inst_sqdmulh :: inst_sqdmulh_r_r_r -emit_sqdmulh :: emit_sqdmulh_r_r_r -inst_sqrdmulh :: inst_sqrdmulh_r_r_r -emit_sqrdmulh :: emit_sqrdmulh_r_r_r -inst_sdot :: inst_sdot_r_r_r -emit_sdot :: emit_sdot_r_r_r -inst_udot :: inst_udot_r_r_r -emit_udot :: emit_udot_r_r_r -inst_usdot :: inst_usdot_r_r_r -emit_usdot :: emit_usdot_r_r_r -inst_fadd_v :: inst_fadd_v_r_r_r -emit_fadd_v :: emit_fadd_v_r_r_r -inst_fsub_v :: inst_fsub_v_r_r_r -emit_fsub_v :: emit_fsub_v_r_r_r -inst_fmul_v :: inst_fmul_v_r_r_r -emit_fmul_v :: emit_fmul_v_r_r_r -inst_fdiv_v :: inst_fdiv_v_r_r_r -emit_fdiv_v :: emit_fdiv_v_r_r_r -inst_fneg_v :: inst_fneg_v_r_r -emit_fneg_v :: emit_fneg_v_r_r -inst_fabs_v :: inst_fabs_v_r_r -emit_fabs_v :: emit_fabs_v_r_r -inst_fsqrt_v :: inst_fsqrt_v_r_r -emit_fsqrt_v :: emit_fsqrt_v_r_r -inst_fmla_v :: inst_fmla_v_r_r_r -emit_fmla_v :: emit_fmla_v_r_r_r -inst_fmls_v :: inst_fmls_v_r_r_r -emit_fmls_v :: emit_fmls_v_r_r_r -inst_fmulx :: inst_fmulx_r_r_r -emit_fmulx :: emit_fmulx_r_r_r -inst_fmax_v :: inst_fmax_v_r_r_r -emit_fmax_v :: emit_fmax_v_r_r_r -inst_fmin_v :: inst_fmin_v_r_r_r -emit_fmin_v :: emit_fmin_v_r_r_r -inst_fmaxnm_v :: inst_fmaxnm_v_r_r_r -emit_fmaxnm_v :: emit_fmaxnm_v_r_r_r -inst_fminnm_v :: inst_fminnm_v_r_r_r -emit_fminnm_v :: emit_fminnm_v_r_r_r -inst_fmaxp_v :: inst_fmaxp_v_r_r_r -emit_fmaxp_v :: emit_fmaxp_v_r_r_r -inst_fminp_v :: inst_fminp_v_r_r_r -emit_fminp_v :: emit_fminp_v_r_r_r -inst_fmaxnmp :: inst_fmaxnmp_r_r_r -emit_fmaxnmp :: emit_fmaxnmp_r_r_r -inst_fminnmp :: inst_fminnmp_r_r_r -emit_fminnmp :: emit_fminnmp_r_r_r -inst_fmaxv_v :: inst_fmaxv_v_r_r -emit_fmaxv_v :: emit_fmaxv_v_r_r -inst_fminv_v :: inst_fminv_v_r_r -emit_fminv_v :: emit_fminv_v_r_r -inst_fmaxnmv :: inst_fmaxnmv_r_r -emit_fmaxnmv :: emit_fmaxnmv_r_r -inst_fminnmv :: inst_fminnmv_r_r -emit_fminnmv :: emit_fminnmv_r_r -inst_frecpe :: inst_frecpe_r_r -emit_frecpe :: emit_frecpe_r_r -inst_frsqrte :: inst_frsqrte_r_r -emit_frsqrte :: emit_frsqrte_r_r -inst_frecps :: inst_frecps_r_r_r -emit_frecps :: emit_frecps_r_r_r -inst_frsqrts :: inst_frsqrts_r_r_r -emit_frsqrts :: emit_frsqrts_r_r_r -inst_frecpx :: inst_frecpx_r_r -emit_frecpx :: emit_frecpx_r_r -inst_faddp_v :: inst_faddp_v_r_r_r -emit_faddp_v :: emit_faddp_v_r_r_r -inst_frinta_v :: inst_frinta_v_r_r -emit_frinta_v :: emit_frinta_v_r_r -inst_frinti_v :: inst_frinti_v_r_r -emit_frinti_v :: emit_frinti_v_r_r -inst_frintm_v :: inst_frintm_v_r_r -emit_frintm_v :: emit_frintm_v_r_r -inst_frintn_v :: inst_frintn_v_r_r -emit_frintn_v :: emit_frintn_v_r_r -inst_frintp_v :: inst_frintp_v_r_r -emit_frintp_v :: emit_frintp_v_r_r -inst_frintx_v :: inst_frintx_v_r_r -emit_frintx_v :: emit_frintx_v_r_r -inst_frintz_v :: inst_frintz_v_r_r -emit_frintz_v :: emit_frintz_v_r_r -inst_scvtf_v :: inst_scvtf_v_r_r -emit_scvtf_v :: emit_scvtf_v_r_r -inst_ucvtf_v :: inst_ucvtf_v_r_r -emit_ucvtf_v :: emit_ucvtf_v_r_r -inst_fcvtas_v :: inst_fcvtas_v_r_r -emit_fcvtas_v :: emit_fcvtas_v_r_r -inst_fcvtau_v :: inst_fcvtau_v_r_r -emit_fcvtau_v :: emit_fcvtau_v_r_r -inst_fcvtms_v :: inst_fcvtms_v_r_r -emit_fcvtms_v :: emit_fcvtms_v_r_r -inst_fcvtmu_v :: inst_fcvtmu_v_r_r -emit_fcvtmu_v :: emit_fcvtmu_v_r_r -inst_fcvtns_v :: inst_fcvtns_v_r_r -emit_fcvtns_v :: emit_fcvtns_v_r_r -inst_fcvtnu_v :: inst_fcvtnu_v_r_r -emit_fcvtnu_v :: emit_fcvtnu_v_r_r -inst_fcvtps_v :: inst_fcvtps_v_r_r -emit_fcvtps_v :: emit_fcvtps_v_r_r -inst_fcvtpu_v :: inst_fcvtpu_v_r_r -emit_fcvtpu_v :: emit_fcvtpu_v_r_r -inst_fcvtzs_v :: inst_fcvtzs_v_r_r -emit_fcvtzs_v :: emit_fcvtzs_v_r_r -inst_fcvtzu_v :: inst_fcvtzu_v_r_r -emit_fcvtzu_v :: emit_fcvtzu_v_r_r -inst_fcvtl :: inst_fcvtl_r_r -emit_fcvtl :: emit_fcvtl_r_r -inst_fcvtl2 :: inst_fcvtl2_r_r -emit_fcvtl2 :: emit_fcvtl2_r_r -inst_fcvtn :: inst_fcvtn_r_r -emit_fcvtn :: emit_fcvtn_r_r -inst_fcvtn2 :: inst_fcvtn2_r_r -emit_fcvtn2 :: emit_fcvtn2_r_r -inst_fcvtxn :: inst_fcvtxn_r_r -emit_fcvtxn :: emit_fcvtxn_r_r -inst_fcvtxn2 :: inst_fcvtxn2_r_r -emit_fcvtxn2 :: emit_fcvtxn2_r_r -inst_fcmeq :: inst_fcmeq_r_r_r -emit_fcmeq :: emit_fcmeq_r_r_r -inst_fcmge :: inst_fcmge_r_r_r -emit_fcmge :: emit_fcmge_r_r_r -inst_fcmgt :: inst_fcmgt_r_r_r -emit_fcmgt :: emit_fcmgt_r_r_r -inst_fcmle :: inst_fcmle_r_r -emit_fcmle :: emit_fcmle_r_r -inst_fcmlt :: inst_fcmlt_r_r -emit_fcmlt :: emit_fcmlt_r_r -inst_facge :: inst_facge_r_r_r -emit_facge :: emit_facge_r_r_r -inst_facgt :: inst_facgt_r_r_r -emit_facgt :: emit_facgt_r_r_r -inst_cmeq :: inst_cmeq_r_r_r -emit_cmeq :: emit_cmeq_r_r_r -inst_cmge :: inst_cmge_r_r_r -emit_cmge :: emit_cmge_r_r_r -inst_cmgt :: inst_cmgt_r_r_r -emit_cmgt :: emit_cmgt_r_r_r -inst_cmhi :: inst_cmhi_r_r_r -emit_cmhi :: emit_cmhi_r_r_r -inst_cmhs :: inst_cmhs_r_r_r -emit_cmhs :: emit_cmhs_r_r_r -inst_cmle :: inst_cmle_r_r -emit_cmle :: emit_cmle_r_r -inst_cmlt :: inst_cmlt_r_r -emit_cmlt :: emit_cmlt_r_r -inst_cmtst :: inst_cmtst_r_r_r -emit_cmtst :: emit_cmtst_r_r_r -inst_and_v :: inst_and_v_r_r_r -emit_and_v :: emit_and_v_r_r_r -inst_orr_v :: inst_orr_v_r_r_r -emit_orr_v :: emit_orr_v_r_r_r -inst_eor_v :: inst_eor_v_r_r_r -emit_eor_v :: emit_eor_v_r_r_r -inst_bic_v :: inst_bic_v_r_r_r -emit_bic_v :: emit_bic_v_r_r_r -inst_orn_v :: inst_orn_v_r_r_r -emit_orn_v :: emit_orn_v_r_r_r -inst_mvn_v :: inst_mvn_v_r_r -emit_mvn_v :: emit_mvn_v_r_r -inst_bit :: inst_bit_r_r_r -emit_bit :: emit_bit_r_r_r -inst_bif :: inst_bif_r_r_r -emit_bif :: emit_bif_r_r_r -inst_bsl :: inst_bsl_r_r_r -emit_bsl :: emit_bsl_r_r_r -inst_shl_v :: inst_shl_v_r_r_i -emit_shl_v :: emit_shl_v_r_r_i -inst_sqshl_v :: inst_sqshl_v_r_r_i -emit_sqshl_v :: emit_sqshl_v_r_r_i -inst_sqshlu :: inst_sqshlu_r_r_i -emit_sqshlu :: emit_sqshlu_r_r_i -inst_srshl :: inst_srshl_r_r_r -emit_srshl :: emit_srshl_r_r_r -inst_urshl :: inst_urshl_r_r_r -emit_urshl :: emit_urshl_r_r_r -inst_sshr :: inst_sshr_r_r_i -emit_sshr :: emit_sshr_r_r_i -inst_ushr :: inst_ushr_r_r_i -emit_ushr :: emit_ushr_r_r_i -inst_ssra :: inst_ssra_r_r_i -emit_ssra :: emit_ssra_r_r_i -inst_usra :: inst_usra_r_r_i -emit_usra :: emit_usra_r_r_i -inst_srshr :: inst_srshr_r_r_i -emit_srshr :: emit_srshr_r_r_i -inst_urshr :: inst_urshr_r_r_i -emit_urshr :: emit_urshr_r_r_i -inst_srsra :: inst_srsra_r_r_i -emit_srsra :: emit_srsra_r_r_i -inst_ursra :: inst_ursra_r_r_i -emit_ursra :: emit_ursra_r_r_i -inst_sshl :: inst_sshl_r_r_r -emit_sshl :: emit_sshl_r_r_r -inst_ushl :: inst_ushl_r_r_r -emit_ushl :: emit_ushl_r_r_r -inst_sli :: inst_sli_r_r_i -emit_sli :: emit_sli_r_r_i -inst_sri :: inst_sri_r_r_i -emit_sri :: emit_sri_r_r_i -inst_sshll :: inst_sshll_r_r_i -emit_sshll :: emit_sshll_r_r_i -inst_sshll2 :: inst_sshll2_r_r_i -emit_sshll2 :: emit_sshll2_r_r_i -inst_ushll :: inst_ushll_r_r_i -emit_ushll :: emit_ushll_r_r_i -inst_ushll2 :: inst_ushll2_r_r_i -emit_ushll2 :: emit_ushll2_r_r_i -inst_sxtl :: inst_sxtl_r_r -emit_sxtl :: emit_sxtl_r_r -inst_sxtl2 :: inst_sxtl2_r_r -emit_sxtl2 :: emit_sxtl2_r_r -inst_uxtl :: inst_uxtl_r_r -emit_uxtl :: emit_uxtl_r_r -inst_uxtl2 :: inst_uxtl2_r_r -emit_uxtl2 :: emit_uxtl2_r_r -inst_shrn :: inst_shrn_r_r_i -emit_shrn :: emit_shrn_r_r_i -inst_shrn2 :: inst_shrn2_r_r_i -emit_shrn2 :: emit_shrn2_r_r_i -inst_rshrn :: inst_rshrn_r_r_i -emit_rshrn :: emit_rshrn_r_r_i -inst_rshrn2 :: inst_rshrn2_r_r_i -emit_rshrn2 :: emit_rshrn2_r_r_i -inst_sqshrn :: inst_sqshrn_r_r_i -emit_sqshrn :: emit_sqshrn_r_r_i -inst_sqshrn2 :: inst_sqshrn2_r_r_i -emit_sqshrn2 :: emit_sqshrn2_r_r_i -inst_uqshrn :: inst_uqshrn_r_r_i -emit_uqshrn :: emit_uqshrn_r_r_i -inst_uqshrn2 :: inst_uqshrn2_r_r_i -emit_uqshrn2 :: emit_uqshrn2_r_r_i -inst_sqrshrn :: inst_sqrshrn_r_r_i -emit_sqrshrn :: emit_sqrshrn_r_r_i -inst_sqrshrn2 :: inst_sqrshrn2_r_r_i -emit_sqrshrn2 :: emit_sqrshrn2_r_r_i -inst_uqrshrn :: inst_uqrshrn_r_r_i -emit_uqrshrn :: emit_uqrshrn_r_r_i -inst_uqrshrn2 :: inst_uqrshrn2_r_r_i -emit_uqrshrn2 :: emit_uqrshrn2_r_r_i -inst_sqshrun :: inst_sqshrun_r_r_i -emit_sqshrun :: emit_sqshrun_r_r_i -inst_sqshrun2 :: inst_sqshrun2_r_r_i -emit_sqshrun2 :: emit_sqshrun2_r_r_i -inst_sqrshrun :: inst_sqrshrun_r_r_i -emit_sqrshrun :: emit_sqrshrun_r_r_i -inst_sqrshrun2 :: inst_sqrshrun2_r_r_i -emit_sqrshrun2 :: emit_sqrshrun2_r_r_i -inst_dup_v :: proc{ inst_dup_v_r_r_i, inst_dup_v_r_r } -emit_dup_v :: proc{ emit_dup_v_r_r_i, emit_dup_v_r_r } -inst_ins :: proc{ inst_ins_r_i_r_i, inst_ins_r_i_r } -emit_ins :: proc{ emit_ins_r_i_r_i, emit_ins_r_i_r } -inst_mov_v :: inst_mov_v_r_r -emit_mov_v :: emit_mov_v_r_r -inst_ext_v :: inst_ext_v_r_r_r_i -emit_ext_v :: emit_ext_v_r_r_r_i -inst_tbl :: inst_tbl_r_r_r -emit_tbl :: emit_tbl_r_r_r -inst_tbx :: inst_tbx_r_r_r -emit_tbx :: emit_tbx_r_r_r -inst_zip1 :: inst_zip1_r_r_r -emit_zip1 :: emit_zip1_r_r_r -inst_zip2 :: inst_zip2_r_r_r -emit_zip2 :: emit_zip2_r_r_r -inst_uzp1 :: inst_uzp1_r_r_r -emit_uzp1 :: emit_uzp1_r_r_r -inst_uzp2 :: inst_uzp2_r_r_r -emit_uzp2 :: emit_uzp2_r_r_r -inst_trn1 :: inst_trn1_r_r_r -emit_trn1 :: emit_trn1_r_r_r -inst_trn2 :: inst_trn2_r_r_r -emit_trn2 :: emit_trn2_r_r_r -inst_not_v :: inst_not_v_r_r -emit_not_v :: emit_not_v_r_r -inst_rbit_v :: inst_rbit_v_r_r -emit_rbit_v :: emit_rbit_v_r_r -inst_rev16_v :: inst_rev16_v_r_r -emit_rev16_v :: emit_rev16_v_r_r -inst_rev32_v :: inst_rev32_v_r_r -emit_rev32_v :: emit_rev32_v_r_r -inst_rev64 :: inst_rev64_r_r -emit_rev64 :: emit_rev64_r_r -inst_cls_v :: inst_cls_v_r_r -emit_cls_v :: emit_cls_v_r_r -inst_clz_v :: inst_clz_v_r_r -emit_clz_v :: emit_clz_v_r_r -inst_cnt :: inst_cnt_r_r -emit_cnt :: emit_cnt_r_r -inst_urecpe_v :: inst_urecpe_v_r_r -emit_urecpe_v :: emit_urecpe_v_r_r -inst_ursqrte_v :: inst_ursqrte_v_r_r -emit_ursqrte_v :: emit_ursqrte_v_r_r -inst_movi :: inst_movi_r_i -emit_movi :: emit_movi_r_i -inst_mvni :: inst_mvni_r_i -emit_mvni :: emit_mvni_r_i -inst_fmov_v_imm :: inst_fmov_v_imm_r_i -emit_fmov_v_imm :: emit_fmov_v_imm_r_i -inst_ld1 :: inst_ld1_r_m -emit_ld1 :: emit_ld1_r_m -inst_ld2 :: inst_ld2_r_m -emit_ld2 :: emit_ld2_r_m -inst_ld3 :: inst_ld3_r_m -emit_ld3 :: emit_ld3_r_m -inst_ld4 :: inst_ld4_r_m -emit_ld4 :: emit_ld4_r_m -inst_st1 :: inst_st1_r_m -emit_st1 :: emit_st1_r_m -inst_st2 :: inst_st2_r_m -emit_st2 :: emit_st2_r_m -inst_st3 :: inst_st3_r_m -emit_st3 :: emit_st3_r_m -inst_st4 :: inst_st4_r_m -emit_st4 :: emit_st4_r_m -inst_ld1r :: inst_ld1r_r_m -emit_ld1r :: emit_ld1r_r_m -inst_ld2r :: inst_ld2r_r_m -emit_ld2r :: emit_ld2r_r_m -inst_ld3r :: inst_ld3r_r_m -emit_ld3r :: emit_ld3r_r_m -inst_ld4r :: inst_ld4r_r_m -emit_ld4r :: emit_ld4r_r_m -inst_ld1_lane :: inst_ld1_lane_r_i_m -emit_ld1_lane :: emit_ld1_lane_r_i_m -inst_ld2_lane :: inst_ld2_lane_r_i_m -emit_ld2_lane :: emit_ld2_lane_r_i_m -inst_ld3_lane :: inst_ld3_lane_r_i_m -emit_ld3_lane :: emit_ld3_lane_r_i_m -inst_ld4_lane :: inst_ld4_lane_r_i_m -emit_ld4_lane :: emit_ld4_lane_r_i_m -inst_st1_lane :: inst_st1_lane_r_i_m -emit_st1_lane :: emit_st1_lane_r_i_m -inst_st2_lane :: inst_st2_lane_r_i_m -emit_st2_lane :: emit_st2_lane_r_i_m -inst_st3_lane :: inst_st3_lane_r_i_m -emit_st3_lane :: emit_st3_lane_r_i_m -inst_st4_lane :: inst_st4_lane_r_i_m -emit_st4_lane :: emit_st4_lane_r_i_m -inst_ldr_v :: inst_ldr_v_r_m -emit_ldr_v :: emit_ldr_v_r_m -inst_str_v :: inst_str_v_r_m -emit_str_v :: emit_str_v_r_m -inst_ldp_v :: inst_ldp_v_r_r_m -emit_ldp_v :: emit_ldp_v_r_r_m -inst_stp_v :: inst_stp_v_r_r_m -emit_stp_v :: emit_stp_v_r_r_m -inst_ldur_v :: inst_ldur_v_r_m -emit_ldur_v :: emit_ldur_v_r_m -inst_stur_v :: inst_stur_v_r_m -emit_stur_v :: emit_stur_v_r_m -inst_sve_add_z :: inst_sve_add_z_z_z_z -emit_sve_add_z :: emit_sve_add_z_z_z_z -inst_sve_sub_z :: inst_sve_sub_z_z_z_z -emit_sve_sub_z :: emit_sve_sub_z_z_z_z -inst_sve_sqadd_z :: inst_sve_sqadd_z_z_z_z -emit_sve_sqadd_z :: emit_sve_sqadd_z_z_z_z -inst_sve_uqadd_z :: inst_sve_uqadd_z_z_z_z -emit_sve_uqadd_z :: emit_sve_uqadd_z_z_z_z -inst_sve_sqsub_z :: inst_sve_sqsub_z_z_z_z -emit_sve_sqsub_z :: emit_sve_sqsub_z_z_z_z -inst_sve_uqsub_z :: inst_sve_uqsub_z_z_z_z -emit_sve_uqsub_z :: emit_sve_uqsub_z_z_z_z -inst_sve_add_pred :: inst_sve_add_pred_z_p_z_z -emit_sve_add_pred :: emit_sve_add_pred_z_p_z_z -inst_sve_sub_pred :: inst_sve_sub_pred_z_p_z_z -emit_sve_sub_pred :: emit_sve_sub_pred_z_p_z_z -inst_sve_subr_pred :: inst_sve_subr_pred_z_p_z_z -emit_sve_subr_pred :: emit_sve_subr_pred_z_p_z_z -inst_sve_mul_pred :: inst_sve_mul_pred_z_p_z_z -emit_sve_mul_pred :: emit_sve_mul_pred_z_p_z_z -inst_sve_smulh_pred :: inst_sve_smulh_pred_z_p_z_z -emit_sve_smulh_pred :: emit_sve_smulh_pred_z_p_z_z -inst_sve_umulh_pred :: inst_sve_umulh_pred_z_p_z_z -emit_sve_umulh_pred :: emit_sve_umulh_pred_z_p_z_z -inst_sve_sdiv_pred :: inst_sve_sdiv_pred_z_p_z_z -emit_sve_sdiv_pred :: emit_sve_sdiv_pred_z_p_z_z -inst_sve_udiv_pred :: inst_sve_udiv_pred_z_p_z_z -emit_sve_udiv_pred :: emit_sve_udiv_pred_z_p_z_z -inst_sve_smax_pred :: inst_sve_smax_pred_z_p_z_z -emit_sve_smax_pred :: emit_sve_smax_pred_z_p_z_z -inst_sve_umax_pred :: inst_sve_umax_pred_z_p_z_z -emit_sve_umax_pred :: emit_sve_umax_pred_z_p_z_z -inst_sve_smin_pred :: inst_sve_smin_pred_z_p_z_z -emit_sve_smin_pred :: emit_sve_smin_pred_z_p_z_z -inst_sve_umin_pred :: inst_sve_umin_pred_z_p_z_z -emit_sve_umin_pred :: emit_sve_umin_pred_z_p_z_z -inst_sve_sabd_pred :: inst_sve_sabd_pred_z_p_z_z -emit_sve_sabd_pred :: emit_sve_sabd_pred_z_p_z_z -inst_sve_uabd_pred :: inst_sve_uabd_pred_z_p_z_z -emit_sve_uabd_pred :: emit_sve_uabd_pred_z_p_z_z -inst_sve_and_pred :: inst_sve_and_pred_z_p_z_z -emit_sve_and_pred :: emit_sve_and_pred_z_p_z_z -inst_sve_orr_pred :: inst_sve_orr_pred_z_p_z_z -emit_sve_orr_pred :: emit_sve_orr_pred_z_p_z_z -inst_sve_eor_pred :: inst_sve_eor_pred_z_p_z_z -emit_sve_eor_pred :: emit_sve_eor_pred_z_p_z_z -inst_sve_bic_pred :: inst_sve_bic_pred_z_p_z_z -emit_sve_bic_pred :: emit_sve_bic_pred_z_p_z_z -inst_sve_asr_pred :: inst_sve_asr_pred_z_p_z_z -emit_sve_asr_pred :: emit_sve_asr_pred_z_p_z_z -inst_sve_lsl_pred :: inst_sve_lsl_pred_z_p_z_z -emit_sve_lsl_pred :: emit_sve_lsl_pred_z_p_z_z -inst_sve_lsr_pred :: inst_sve_lsr_pred_z_p_z_z -emit_sve_lsr_pred :: emit_sve_lsr_pred_z_p_z_z -inst_sve_asrr_pred :: inst_sve_asrr_pred_z_p_z_z -emit_sve_asrr_pred :: emit_sve_asrr_pred_z_p_z_z -inst_sve_lslr_pred :: inst_sve_lslr_pred_z_p_z_z -emit_sve_lslr_pred :: emit_sve_lslr_pred_z_p_z_z -inst_sve_lsrr_pred :: inst_sve_lsrr_pred_z_p_z_z -emit_sve_lsrr_pred :: emit_sve_lsrr_pred_z_p_z_z -inst_sve_abs_pred :: inst_sve_abs_pred_z_p_z -emit_sve_abs_pred :: emit_sve_abs_pred_z_p_z -inst_sve_neg_pred :: inst_sve_neg_pred_z_p_z -emit_sve_neg_pred :: emit_sve_neg_pred_z_p_z -inst_sve_cls_pred :: inst_sve_cls_pred_z_p_z -emit_sve_cls_pred :: emit_sve_cls_pred_z_p_z -inst_sve_clz_pred :: inst_sve_clz_pred_z_p_z -emit_sve_clz_pred :: emit_sve_clz_pred_z_p_z -inst_sve_cnt_pred :: inst_sve_cnt_pred_z_p_z -emit_sve_cnt_pred :: emit_sve_cnt_pred_z_p_z -inst_sve_mov_pred :: inst_sve_mov_pred_z_p_z -emit_sve_mov_pred :: emit_sve_mov_pred_z_p_z -inst_sve_fadd_z :: inst_sve_fadd_z_z_z_z -emit_sve_fadd_z :: emit_sve_fadd_z_z_z_z -inst_sve_fsub_z :: inst_sve_fsub_z_z_z_z -emit_sve_fsub_z :: emit_sve_fsub_z_z_z_z -inst_sve_fmul_z :: inst_sve_fmul_z_z_z_z -emit_sve_fmul_z :: emit_sve_fmul_z_z_z_z -inst_sve_frecps :: inst_sve_frecps_z_z_z -emit_sve_frecps :: emit_sve_frecps_z_z_z -inst_sve_frsqrts :: inst_sve_frsqrts_z_z_z -emit_sve_frsqrts :: emit_sve_frsqrts_z_z_z -inst_sve_ftsmul :: inst_sve_ftsmul_z_z_z -emit_sve_ftsmul :: emit_sve_ftsmul_z_z_z -inst_sve_fadd_pred :: inst_sve_fadd_pred_z_p_z_z -emit_sve_fadd_pred :: emit_sve_fadd_pred_z_p_z_z -inst_sve_fsub_pred :: inst_sve_fsub_pred_z_p_z_z -emit_sve_fsub_pred :: emit_sve_fsub_pred_z_p_z_z -inst_sve_fsubr_pred :: inst_sve_fsubr_pred_z_p_z_z -emit_sve_fsubr_pred :: emit_sve_fsubr_pred_z_p_z_z -inst_sve_fmul_pred :: inst_sve_fmul_pred_z_p_z_z -emit_sve_fmul_pred :: emit_sve_fmul_pred_z_p_z_z -inst_sve_fdiv_pred :: inst_sve_fdiv_pred_z_p_z_z -emit_sve_fdiv_pred :: emit_sve_fdiv_pred_z_p_z_z -inst_sve_fdivr_pred :: inst_sve_fdivr_pred_z_p_z_z -emit_sve_fdivr_pred :: emit_sve_fdivr_pred_z_p_z_z -inst_sve_fmax_pred :: inst_sve_fmax_pred_z_p_z_z -emit_sve_fmax_pred :: emit_sve_fmax_pred_z_p_z_z -inst_sve_fmin_pred :: inst_sve_fmin_pred_z_p_z_z -emit_sve_fmin_pred :: emit_sve_fmin_pred_z_p_z_z -inst_sve_fmaxnm_pred :: inst_sve_fmaxnm_pred_z_p_z_z -emit_sve_fmaxnm_pred :: emit_sve_fmaxnm_pred_z_p_z_z -inst_sve_fminnm_pred :: inst_sve_fminnm_pred_z_p_z_z -emit_sve_fminnm_pred :: emit_sve_fminnm_pred_z_p_z_z -inst_sve_fabs_z :: inst_sve_fabs_z_z_p_z -emit_sve_fabs_z :: emit_sve_fabs_z_z_p_z -inst_sve_fneg_z :: inst_sve_fneg_z_z_p_z -emit_sve_fneg_z :: emit_sve_fneg_z_z_p_z -inst_sve_fsqrt_z :: inst_sve_fsqrt_z_z_p_z -emit_sve_fsqrt_z :: emit_sve_fsqrt_z_z_p_z -inst_sve_frecpx_z :: inst_sve_frecpx_z_z_p_z -emit_sve_frecpx_z :: emit_sve_frecpx_z_z_p_z -inst_sve_frintn :: inst_sve_frintn_z_p_z -emit_sve_frintn :: emit_sve_frintn_z_p_z -inst_sve_frintp :: inst_sve_frintp_z_p_z -emit_sve_frintp :: emit_sve_frintp_z_p_z -inst_sve_frintm :: inst_sve_frintm_z_p_z -emit_sve_frintm :: emit_sve_frintm_z_p_z -inst_sve_frintz :: inst_sve_frintz_z_p_z -emit_sve_frintz :: emit_sve_frintz_z_p_z -inst_sve_frinta :: inst_sve_frinta_z_p_z -emit_sve_frinta :: emit_sve_frinta_z_p_z -inst_sve_frintx :: inst_sve_frintx_z_p_z -emit_sve_frintx :: emit_sve_frintx_z_p_z -inst_sve_frinti :: inst_sve_frinti_z_p_z -emit_sve_frinti :: emit_sve_frinti_z_p_z -inst_sve_fmla :: inst_sve_fmla_z_p_z_z -emit_sve_fmla :: emit_sve_fmla_z_p_z_z -inst_sve_fmls :: inst_sve_fmls_z_p_z_z -emit_sve_fmls :: emit_sve_fmls_z_p_z_z -inst_sve_fnmla :: inst_sve_fnmla_z_p_z_z -emit_sve_fnmla :: emit_sve_fnmla_z_p_z_z -inst_sve_fnmls :: inst_sve_fnmls_z_p_z_z -emit_sve_fnmls :: emit_sve_fnmls_z_p_z_z -inst_sve_and_p :: inst_sve_and_p_p_p_p_p -emit_sve_and_p :: emit_sve_and_p_p_p_p_p -inst_sve_bic_p :: inst_sve_bic_p_p_p_p_p -emit_sve_bic_p :: emit_sve_bic_p_p_p_p_p -inst_sve_orr_p :: inst_sve_orr_p_p_p_p_p -emit_sve_orr_p :: emit_sve_orr_p_p_p_p_p -inst_sve_eor_p :: inst_sve_eor_p_p_p_p_p -emit_sve_eor_p :: emit_sve_eor_p_p_p_p_p -inst_sve_nand_p :: inst_sve_nand_p_p_p_p_p -emit_sve_nand_p :: emit_sve_nand_p_p_p_p_p -inst_sve_nor_p :: inst_sve_nor_p_p_p_p_p -emit_sve_nor_p :: emit_sve_nor_p_p_p_p_p -inst_sve_orn_p :: inst_sve_orn_p_p_p_p_p -emit_sve_orn_p :: emit_sve_orn_p_p_p_p_p -inst_sve_sel_p :: inst_sve_sel_p_p_p_p_p -emit_sve_sel_p :: emit_sve_sel_p_p_p_p_p -inst_sve_ands_p :: inst_sve_ands_p_p_p_p_p -emit_sve_ands_p :: emit_sve_ands_p_p_p_p_p -inst_sve_bics_p :: inst_sve_bics_p_p_p_p_p -emit_sve_bics_p :: emit_sve_bics_p_p_p_p_p -inst_sve_orrs_p :: inst_sve_orrs_p_p_p_p_p -emit_sve_orrs_p :: emit_sve_orrs_p_p_p_p_p -inst_sve_eors_p :: inst_sve_eors_p_p_p_p_p -emit_sve_eors_p :: emit_sve_eors_p_p_p_p_p -inst_sve_nands_p :: inst_sve_nands_p_p_p_p_p -emit_sve_nands_p :: emit_sve_nands_p_p_p_p_p -inst_sve_nors_p :: inst_sve_nors_p_p_p_p_p -emit_sve_nors_p :: emit_sve_nors_p_p_p_p_p -inst_sve_orns_p :: inst_sve_orns_p_p_p_p_p -emit_sve_orns_p :: emit_sve_orns_p_p_p_p_p -inst_sve_not_p :: inst_sve_not_p_p_p_p -emit_sve_not_p :: emit_sve_not_p_p_p_p -inst_sve_mov_p :: proc{ inst_sve_mov_p_p_p_p, inst_sve_mov_p_p_p } -emit_sve_mov_p :: proc{ emit_sve_mov_p_p_p_p, emit_sve_mov_p_p_p } -inst_sve_movs_p :: inst_sve_movs_p_p_p_p -emit_sve_movs_p :: emit_sve_movs_p_p_p_p -inst_sve_ptrue :: inst_sve_ptrue_p_i -emit_sve_ptrue :: emit_sve_ptrue_p_i -inst_sve_ptrues :: inst_sve_ptrues_p_i -emit_sve_ptrues :: emit_sve_ptrues_p_i -inst_sve_pfalse :: inst_sve_pfalse_p -emit_sve_pfalse :: emit_sve_pfalse_p -inst_sve_pfirst :: inst_sve_pfirst_p_p_p -emit_sve_pfirst :: emit_sve_pfirst_p_p_p -inst_sve_pnext :: inst_sve_pnext_p_p_p -emit_sve_pnext :: emit_sve_pnext_p_p_p -inst_sve_brka :: inst_sve_brka_p_p_p -emit_sve_brka :: emit_sve_brka_p_p_p -inst_sve_brkb :: inst_sve_brkb_p_p_p -emit_sve_brkb :: emit_sve_brkb_p_p_p -inst_sve_brkas :: inst_sve_brkas_p_p_p -emit_sve_brkas :: emit_sve_brkas_p_p_p -inst_sve_brkbs :: inst_sve_brkbs_p_p_p -emit_sve_brkbs :: emit_sve_brkbs_p_p_p -inst_sve_brkpa :: inst_sve_brkpa_p_p_p_p -emit_sve_brkpa :: emit_sve_brkpa_p_p_p_p -inst_sve_brkpb :: inst_sve_brkpb_p_p_p_p -emit_sve_brkpb :: emit_sve_brkpb_p_p_p_p -inst_sve_brkn :: inst_sve_brkn_p_p_p_p -emit_sve_brkn :: emit_sve_brkn_p_p_p_p -inst_sve_rdffr :: inst_sve_rdffr_p -emit_sve_rdffr :: emit_sve_rdffr_p -inst_sve_wrffr :: inst_sve_wrffr_p -emit_sve_wrffr :: emit_sve_wrffr_p -inst_sve_setffr :: inst_sve_setffr_none -emit_sve_setffr :: emit_sve_setffr_none -inst_sve_cmpeq :: inst_sve_cmpeq_p_p_z_z -emit_sve_cmpeq :: emit_sve_cmpeq_p_p_z_z -inst_sve_cmpne :: inst_sve_cmpne_p_p_z_z -emit_sve_cmpne :: emit_sve_cmpne_p_p_z_z -inst_sve_cmpge :: inst_sve_cmpge_p_p_z_z -emit_sve_cmpge :: emit_sve_cmpge_p_p_z_z -inst_sve_cmpgt :: inst_sve_cmpgt_p_p_z_z -emit_sve_cmpgt :: emit_sve_cmpgt_p_p_z_z -inst_sve_cmple :: inst_sve_cmple_p_p_z_z -emit_sve_cmple :: emit_sve_cmple_p_p_z_z -inst_sve_cmplt :: inst_sve_cmplt_p_p_z_z -emit_sve_cmplt :: emit_sve_cmplt_p_p_z_z -inst_sve_cmphi :: inst_sve_cmphi_p_p_z_z -emit_sve_cmphi :: emit_sve_cmphi_p_p_z_z -inst_sve_cmphs :: inst_sve_cmphs_p_p_z_z -emit_sve_cmphs :: emit_sve_cmphs_p_p_z_z -inst_sve_cmplo :: inst_sve_cmplo_p_p_z_z -emit_sve_cmplo :: emit_sve_cmplo_p_p_z_z -inst_sve_cmpls :: inst_sve_cmpls_p_p_z_z -emit_sve_cmpls :: emit_sve_cmpls_p_p_z_z -inst_sve_fcmeq :: inst_sve_fcmeq_p_p_z_z -emit_sve_fcmeq :: emit_sve_fcmeq_p_p_z_z -inst_sve_fcmne :: inst_sve_fcmne_p_p_z_z -emit_sve_fcmne :: emit_sve_fcmne_p_p_z_z -inst_sve_fcmge :: inst_sve_fcmge_p_p_z_z -emit_sve_fcmge :: emit_sve_fcmge_p_p_z_z -inst_sve_fcmgt :: inst_sve_fcmgt_p_p_z_z -emit_sve_fcmgt :: emit_sve_fcmgt_p_p_z_z -inst_sve_fcmle :: inst_sve_fcmle_p_p_z -emit_sve_fcmle :: emit_sve_fcmle_p_p_z -inst_sve_fcmlt :: inst_sve_fcmlt_p_p_z -emit_sve_fcmlt :: emit_sve_fcmlt_p_p_z -inst_sve_fcmuo :: inst_sve_fcmuo_p_p_z_z -emit_sve_fcmuo :: emit_sve_fcmuo_p_p_z_z -inst_sve_dup_z :: inst_sve_dup_z_z_r -emit_sve_dup_z :: emit_sve_dup_z_z_r -inst_sve_insr :: inst_sve_insr_z_r -emit_sve_insr :: emit_sve_insr_z_r -inst_sve_rev_z :: inst_sve_rev_z_z_z -emit_sve_rev_z :: emit_sve_rev_z_z_z -inst_sve_rev_p :: inst_sve_rev_p_p_p -emit_sve_rev_p :: emit_sve_rev_p_p_p -inst_sve_tbl :: inst_sve_tbl_z_z_z -emit_sve_tbl :: emit_sve_tbl_z_z_z -inst_sve_zip1_z :: inst_sve_zip1_z_z_z_z -emit_sve_zip1_z :: emit_sve_zip1_z_z_z_z -inst_sve_zip2_z :: inst_sve_zip2_z_z_z_z -emit_sve_zip2_z :: emit_sve_zip2_z_z_z_z -inst_sve_uzp1_z :: inst_sve_uzp1_z_z_z_z -emit_sve_uzp1_z :: emit_sve_uzp1_z_z_z_z -inst_sve_uzp2_z :: inst_sve_uzp2_z_z_z_z -emit_sve_uzp2_z :: emit_sve_uzp2_z_z_z_z -inst_sve_trn1_z :: inst_sve_trn1_z_z_z_z -emit_sve_trn1_z :: emit_sve_trn1_z_z_z_z -inst_sve_trn2_z :: inst_sve_trn2_z_z_z_z -emit_sve_trn2_z :: emit_sve_trn2_z_z_z_z -inst_sve_zip1_p :: inst_sve_zip1_p_p_p_p -emit_sve_zip1_p :: emit_sve_zip1_p_p_p_p -inst_sve_zip2_p :: inst_sve_zip2_p_p_p_p -emit_sve_zip2_p :: emit_sve_zip2_p_p_p_p -inst_sve_uzp1_p :: inst_sve_uzp1_p_p_p_p -emit_sve_uzp1_p :: emit_sve_uzp1_p_p_p_p -inst_sve_uzp2_p :: inst_sve_uzp2_p_p_p_p -emit_sve_uzp2_p :: emit_sve_uzp2_p_p_p_p -inst_sve_trn1_p :: inst_sve_trn1_p_p_p_p -emit_sve_trn1_p :: emit_sve_trn1_p_p_p_p -inst_sve_trn2_p :: inst_sve_trn2_p_p_p_p -emit_sve_trn2_p :: emit_sve_trn2_p_p_p_p -inst_sve_cpy_z :: inst_sve_cpy_z_z_p_r -emit_sve_cpy_z :: emit_sve_cpy_z_z_p_r -inst_sve_compact :: inst_sve_compact_z_p_z -emit_sve_compact :: emit_sve_compact_z_p_z -inst_sve_ext_z :: inst_sve_ext_z_z_z_z_i -emit_sve_ext_z :: emit_sve_ext_z_z_z_z_i -inst_sve_ld1b :: inst_sve_ld1b_z_p_m -emit_sve_ld1b :: emit_sve_ld1b_z_p_m -inst_sve_ld1h :: inst_sve_ld1h_z_p_m -emit_sve_ld1h :: emit_sve_ld1h_z_p_m -inst_sve_ld1w :: inst_sve_ld1w_z_p_m -emit_sve_ld1w :: emit_sve_ld1w_z_p_m -inst_sve_ld1d :: inst_sve_ld1d_z_p_m -emit_sve_ld1d :: emit_sve_ld1d_z_p_m -inst_sve_ld1sb :: inst_sve_ld1sb_z_p_m -emit_sve_ld1sb :: emit_sve_ld1sb_z_p_m -inst_sve_ld1sh :: inst_sve_ld1sh_z_p_m -emit_sve_ld1sh :: emit_sve_ld1sh_z_p_m -inst_sve_ld1sw :: inst_sve_ld1sw_z_p_m -emit_sve_ld1sw :: emit_sve_ld1sw_z_p_m -inst_sve_st1b :: inst_sve_st1b_z_p_m -emit_sve_st1b :: emit_sve_st1b_z_p_m -inst_sve_st1h :: inst_sve_st1h_z_p_m -emit_sve_st1h :: emit_sve_st1h_z_p_m -inst_sve_st1w :: inst_sve_st1w_z_p_m -emit_sve_st1w :: emit_sve_st1w_z_p_m -inst_sve_st1d :: inst_sve_st1d_z_p_m -emit_sve_st1d :: emit_sve_st1d_z_p_m -inst_sve_ldr_z :: inst_sve_ldr_z_z_m -emit_sve_ldr_z :: emit_sve_ldr_z_z_m -inst_sve_str_z :: inst_sve_str_z_z_m -emit_sve_str_z :: emit_sve_str_z_z_m -inst_sve_ldr_p :: inst_sve_ldr_p_p_m -emit_sve_ldr_p :: emit_sve_ldr_p_p_m -inst_sve_str_p :: inst_sve_str_p_p_m -emit_sve_str_p :: emit_sve_str_p_p_m -inst_sve_ldff1b :: inst_sve_ldff1b_z_p_m -emit_sve_ldff1b :: emit_sve_ldff1b_z_p_m -inst_sve_ldff1h :: inst_sve_ldff1h_z_p_m -emit_sve_ldff1h :: emit_sve_ldff1h_z_p_m -inst_sve_ldff1w :: inst_sve_ldff1w_z_p_m -emit_sve_ldff1w :: emit_sve_ldff1w_z_p_m -inst_sve_ldff1d :: inst_sve_ldff1d_z_p_m -emit_sve_ldff1d :: emit_sve_ldff1d_z_p_m -inst_sve_whilege :: inst_sve_whilege_p_r_r -emit_sve_whilege :: emit_sve_whilege_p_r_r -inst_sve_whilegt :: inst_sve_whilegt_p_r_r -emit_sve_whilegt :: emit_sve_whilegt_p_r_r -inst_sve_whilele :: inst_sve_whilele_p_r_r -emit_sve_whilele :: emit_sve_whilele_p_r_r -inst_sve_whilelt :: inst_sve_whilelt_p_r_r -emit_sve_whilelt :: emit_sve_whilelt_p_r_r -inst_sve_whilehi :: inst_sve_whilehi_p_r_r -emit_sve_whilehi :: emit_sve_whilehi_p_r_r -inst_sve_whilehs :: inst_sve_whilehs_p_r_r -emit_sve_whilehs :: emit_sve_whilehs_p_r_r -inst_sve_whilelo :: inst_sve_whilelo_p_r_r -emit_sve_whilelo :: emit_sve_whilelo_p_r_r -inst_sve_whilels :: inst_sve_whilels_p_r_r -emit_sve_whilels :: emit_sve_whilels_p_r_r -inst_sve_sqrdmlah :: inst_sve_sqrdmlah_z_z_z -emit_sve_sqrdmlah :: emit_sve_sqrdmlah_z_z_z -inst_sve_sqrdmlsh :: inst_sve_sqrdmlsh_z_z_z -emit_sve_sqrdmlsh :: emit_sve_sqrdmlsh_z_z_z -inst_sve_adclb :: inst_sve_adclb_z_z_z -emit_sve_adclb :: emit_sve_adclb_z_z_z -inst_sve_adclt :: inst_sve_adclt_z_z_z -emit_sve_adclt :: emit_sve_adclt_z_z_z -inst_sve_sbclb :: inst_sve_sbclb_z_z_z -emit_sve_sbclb :: emit_sve_sbclb_z_z_z -inst_sve_sbclt :: inst_sve_sbclt_z_z_z -emit_sve_sbclt :: emit_sve_sbclt_z_z_z -inst_sve_tbl2 :: inst_sve_tbl2_z_z_z -emit_sve_tbl2 :: emit_sve_tbl2_z_z_z -inst_sve_tbx :: inst_sve_tbx_z_z_z -emit_sve_tbx :: emit_sve_tbx_z_z_z -inst_sve_aese :: inst_sve_aese_z_z -emit_sve_aese :: emit_sve_aese_z_z -inst_sve_aesd :: inst_sve_aesd_z_z -emit_sve_aesd :: emit_sve_aesd_z_z -inst_sve_aesmc :: inst_sve_aesmc_z -emit_sve_aesmc :: emit_sve_aesmc_z -inst_sve_aesimc :: inst_sve_aesimc_z -emit_sve_aesimc :: emit_sve_aesimc_z -inst_sve_bcax_z :: inst_sve_bcax_z_z_z_z_z -emit_sve_bcax_z :: emit_sve_bcax_z_z_z_z_z -inst_sve_xar_z :: inst_sve_xar_z_z_z_z_i -emit_sve_xar_z :: emit_sve_xar_z_z_z_z_i -inst_sve_eor3_z :: inst_sve_eor3_z_z_z_z_z -emit_sve_eor3_z :: emit_sve_eor3_z_z_z_z_z -inst_sve_match :: inst_sve_match_p_p_z_z -emit_sve_match :: emit_sve_match_p_p_z_z -inst_sve_nmatch :: inst_sve_nmatch_p_p_z_z -emit_sve_nmatch :: emit_sve_nmatch_p_p_z_z -inst_sve_histcnt :: inst_sve_histcnt_z_p_z_z -emit_sve_histcnt :: emit_sve_histcnt_z_p_z_z -inst_sve_histseg :: inst_sve_histseg_z_z_z -emit_sve_histseg :: emit_sve_histseg_z_z_z -inst_sme_smstart :: inst_sme_smstart_none -emit_sme_smstart :: emit_sme_smstart_none -inst_sme_smstop :: inst_sme_smstop_none -emit_sme_smstop :: emit_sme_smstop_none -inst_sme_rdsvl :: inst_sme_rdsvl_r_i -emit_sme_rdsvl :: emit_sme_rdsvl_r_i -inst_sme_addha :: inst_sme_addha_i_p_p_z -emit_sme_addha :: emit_sme_addha_i_p_p_z -inst_sme_addva :: inst_sme_addva_i_p_p_z -emit_sme_addva :: emit_sme_addva_i_p_p_z -inst_sme_zero :: inst_sme_zero_i -emit_sme_zero :: emit_sme_zero_i -inst_sme_fmopa :: inst_sme_fmopa_i_p_p_z -emit_sme_fmopa :: emit_sme_fmopa_i_p_p_z -inst_sme_fmops :: inst_sme_fmops_i_p_p_z -emit_sme_fmops :: emit_sme_fmops_i_p_p_z -inst_sme_bfmopa :: inst_sme_bfmopa_i_p_p_z -emit_sme_bfmopa :: emit_sme_bfmopa_i_p_p_z -inst_sme_bfmops :: inst_sme_bfmops_i_p_p_z -emit_sme_bfmops :: emit_sme_bfmops_i_p_p_z -inst_sme_smopa :: inst_sme_smopa_i_p_p_z -emit_sme_smopa :: emit_sme_smopa_i_p_p_z -inst_sme_smops :: inst_sme_smops_i_p_p_z -emit_sme_smops :: emit_sme_smops_i_p_p_z -inst_sme_umopa :: inst_sme_umopa_i_p_p_z -emit_sme_umopa :: emit_sme_umopa_i_p_p_z -inst_sme_umops :: inst_sme_umops_i_p_p_z -emit_sme_umops :: emit_sme_umops_i_p_p_z -inst_sme_usmopa :: inst_sme_usmopa_i_p_p_z -emit_sme_usmopa :: emit_sme_usmopa_i_p_p_z -inst_sme_sumopa :: inst_sme_sumopa_i_p_p_z -emit_sme_sumopa :: emit_sme_sumopa_i_p_p_z -inst_sme_ldr_za :: inst_sme_ldr_za_i_m -emit_sme_ldr_za :: emit_sme_ldr_za_i_m -inst_sme_str_za :: inst_sme_str_za_i_m -emit_sme_str_za :: emit_sme_str_za_i_m -inst_sve_fmla_idx_h :: inst_sve_fmla_idx_h_z_z_z_i -emit_sve_fmla_idx_h :: emit_sve_fmla_idx_h_z_z_z_i -inst_sve_fmla_idx_s :: inst_sve_fmla_idx_s_z_z_z_i -emit_sve_fmla_idx_s :: emit_sve_fmla_idx_s_z_z_z_i -inst_sve_fmla_idx_d :: inst_sve_fmla_idx_d_z_z_z_i -emit_sve_fmla_idx_d :: emit_sve_fmla_idx_d_z_z_z_i -inst_sve_fmls_idx_h :: inst_sve_fmls_idx_h_z_z_z_i -emit_sve_fmls_idx_h :: emit_sve_fmls_idx_h_z_z_z_i -inst_sve_fmls_idx_s :: inst_sve_fmls_idx_s_z_z_z_i -emit_sve_fmls_idx_s :: emit_sve_fmls_idx_s_z_z_z_i -inst_sve_fmls_idx_d :: inst_sve_fmls_idx_d_z_z_z_i -emit_sve_fmls_idx_d :: emit_sve_fmls_idx_d_z_z_z_i -inst_sve_ld1b_gather_s :: inst_sve_ld1b_gather_s_z_p_m -emit_sve_ld1b_gather_s :: emit_sve_ld1b_gather_s_z_p_m -inst_sve_ld1b_gather_d :: inst_sve_ld1b_gather_d_z_p_m -emit_sve_ld1b_gather_d :: emit_sve_ld1b_gather_d_z_p_m -inst_sve_ld1h_gather_s :: inst_sve_ld1h_gather_s_z_p_m -emit_sve_ld1h_gather_s :: emit_sve_ld1h_gather_s_z_p_m -inst_sve_ld1h_gather_d :: inst_sve_ld1h_gather_d_z_p_m -emit_sve_ld1h_gather_d :: emit_sve_ld1h_gather_d_z_p_m -inst_sve_ld1w_gather_s :: inst_sve_ld1w_gather_s_z_p_m -emit_sve_ld1w_gather_s :: emit_sve_ld1w_gather_s_z_p_m -inst_sve_ld1w_gather_d :: inst_sve_ld1w_gather_d_z_p_m -emit_sve_ld1w_gather_d :: emit_sve_ld1w_gather_d_z_p_m -inst_sve_ld1d_gather_d :: inst_sve_ld1d_gather_d_z_p_m -emit_sve_ld1d_gather_d :: emit_sve_ld1d_gather_d_z_p_m -inst_sve_ld1sb_gather_s :: inst_sve_ld1sb_gather_s_z_p_m -emit_sve_ld1sb_gather_s :: emit_sve_ld1sb_gather_s_z_p_m -inst_sve_ld1sb_gather_d :: inst_sve_ld1sb_gather_d_z_p_m -emit_sve_ld1sb_gather_d :: emit_sve_ld1sb_gather_d_z_p_m -inst_sve_ld1sh_gather_s :: inst_sve_ld1sh_gather_s_z_p_m -emit_sve_ld1sh_gather_s :: emit_sve_ld1sh_gather_s_z_p_m -inst_sve_ld1sh_gather_d :: inst_sve_ld1sh_gather_d_z_p_m -emit_sve_ld1sh_gather_d :: emit_sve_ld1sh_gather_d_z_p_m -inst_sve_ld1sw_gather_d :: inst_sve_ld1sw_gather_d_z_p_m -emit_sve_ld1sw_gather_d :: emit_sve_ld1sw_gather_d_z_p_m -inst_sve_st1b_scatter_s :: inst_sve_st1b_scatter_s_z_p_m -emit_sve_st1b_scatter_s :: emit_sve_st1b_scatter_s_z_p_m -inst_sve_st1b_scatter_d :: inst_sve_st1b_scatter_d_z_p_m -emit_sve_st1b_scatter_d :: emit_sve_st1b_scatter_d_z_p_m -inst_sve_st1h_scatter_s :: inst_sve_st1h_scatter_s_z_p_m -emit_sve_st1h_scatter_s :: emit_sve_st1h_scatter_s_z_p_m -inst_sve_st1h_scatter_d :: inst_sve_st1h_scatter_d_z_p_m -emit_sve_st1h_scatter_d :: emit_sve_st1h_scatter_d_z_p_m -inst_sve_st1w_scatter_s :: inst_sve_st1w_scatter_s_z_p_m -emit_sve_st1w_scatter_s :: emit_sve_st1w_scatter_s_z_p_m -inst_sve_st1w_scatter_d :: inst_sve_st1w_scatter_d_z_p_m -emit_sve_st1w_scatter_d :: emit_sve_st1w_scatter_d_z_p_m -inst_sve_st1d_scatter_d :: inst_sve_st1d_scatter_d_z_p_m -emit_sve_st1d_scatter_d :: emit_sve_st1d_scatter_d_z_p_m -inst_sme_ld1b_tile :: inst_sme_ld1b_tile_i_p_m -emit_sme_ld1b_tile :: emit_sme_ld1b_tile_i_p_m -inst_sme_ld1h_tile :: inst_sme_ld1h_tile_i_p_m -emit_sme_ld1h_tile :: emit_sme_ld1h_tile_i_p_m -inst_sme_ld1w_tile :: inst_sme_ld1w_tile_i_p_m -emit_sme_ld1w_tile :: emit_sme_ld1w_tile_i_p_m -inst_sme_ld1d_tile :: inst_sme_ld1d_tile_i_p_m -emit_sme_ld1d_tile :: emit_sme_ld1d_tile_i_p_m -inst_sme_ld1q_tile :: inst_sme_ld1q_tile_i_p_m -emit_sme_ld1q_tile :: emit_sme_ld1q_tile_i_p_m -inst_sme_st1b_tile :: inst_sme_st1b_tile_i_p_m -emit_sme_st1b_tile :: emit_sme_st1b_tile_i_p_m -inst_sme_st1h_tile :: inst_sme_st1h_tile_i_p_m -emit_sme_st1h_tile :: emit_sme_st1h_tile_i_p_m -inst_sme_st1w_tile :: inst_sme_st1w_tile_i_p_m -emit_sme_st1w_tile :: emit_sme_st1w_tile_i_p_m -inst_sme_st1d_tile :: inst_sme_st1d_tile_i_p_m -emit_sme_st1d_tile :: emit_sme_st1d_tile_i_p_m -inst_sme_st1q_tile :: inst_sme_st1q_tile_i_p_m -emit_sme_st1q_tile :: emit_sme_st1q_tile_i_p_m -inst_sme_mova_z_from_tile :: inst_sme_mova_z_from_tile_z_p_i -emit_sme_mova_z_from_tile :: emit_sme_mova_z_from_tile_z_p_i -inst_sme_mova_tile_from_z :: inst_sme_mova_tile_from_z_i_p_z -emit_sme_mova_tile_from_z :: emit_sme_mova_tile_from_z_i_p_z -inst_fcmla_4h :: inst_fcmla_4h_r_r_r_i -emit_fcmla_4h :: emit_fcmla_4h_r_r_r_i -inst_fcmla_8h :: inst_fcmla_8h_r_r_r_i -emit_fcmla_8h :: emit_fcmla_8h_r_r_r_i -inst_fcmla_4s :: inst_fcmla_4s_r_r_r_i -emit_fcmla_4s :: emit_fcmla_4s_r_r_r_i -inst_fcmla_2d :: inst_fcmla_2d_r_r_r_i -emit_fcmla_2d :: emit_fcmla_2d_r_r_r_i -inst_fcadd_4h :: inst_fcadd_4h_r_r_r_i -emit_fcadd_4h :: emit_fcadd_4h_r_r_r_i -inst_fcadd_8h :: inst_fcadd_8h_r_r_r_i -emit_fcadd_8h :: emit_fcadd_8h_r_r_r_i -inst_fcadd_4s :: inst_fcadd_4s_r_r_r_i -emit_fcadd_4s :: emit_fcadd_4s_r_r_r_i -inst_fcadd_2d :: inst_fcadd_2d_r_r_r_i -emit_fcadd_2d :: emit_fcadd_2d_r_r_r_i -inst_sve_prfb :: inst_sve_prfb_i_p_m -emit_sve_prfb :: emit_sve_prfb_i_p_m -inst_sve_prfh :: inst_sve_prfh_i_p_m -emit_sve_prfh :: emit_sve_prfh_i_p_m -inst_sve_prfw :: inst_sve_prfw_i_p_m -emit_sve_prfw :: emit_sve_prfw_i_p_m -inst_sve_prfd :: inst_sve_prfd_i_p_m -emit_sve_prfd :: emit_sve_prfd_i_p_m -inst_sve_ldnt1b :: inst_sve_ldnt1b_z_p_m -emit_sve_ldnt1b :: emit_sve_ldnt1b_z_p_m -inst_sve_ldnt1h :: inst_sve_ldnt1h_z_p_m -emit_sve_ldnt1h :: emit_sve_ldnt1h_z_p_m -inst_sve_ldnt1w :: inst_sve_ldnt1w_z_p_m -emit_sve_ldnt1w :: emit_sve_ldnt1w_z_p_m -inst_sve_ldnt1d :: inst_sve_ldnt1d_z_p_m -emit_sve_ldnt1d :: emit_sve_ldnt1d_z_p_m -inst_sve_stnt1b :: inst_sve_stnt1b_z_p_m -emit_sve_stnt1b :: emit_sve_stnt1b_z_p_m -inst_sve_stnt1h :: inst_sve_stnt1h_z_p_m -emit_sve_stnt1h :: emit_sve_stnt1h_z_p_m -inst_sve_stnt1w :: inst_sve_stnt1w_z_p_m -emit_sve_stnt1w :: emit_sve_stnt1w_z_p_m -inst_sve_stnt1d :: inst_sve_stnt1d_z_p_m -emit_sve_stnt1d :: emit_sve_stnt1d_z_p_m -inst_sve_ext :: inst_sve_ext_z_z_z_i -emit_sve_ext :: emit_sve_ext_z_z_z_i -inst_sve_splice :: inst_sve_splice_z_p_z_z -emit_sve_splice :: emit_sve_splice_z_p_z_z -inst_sve_index_ii :: inst_sve_index_ii_z_i_i -emit_sve_index_ii :: emit_sve_index_ii_z_i_i -inst_sve_index_ir :: inst_sve_index_ir_z_i_r -emit_sve_index_ir :: emit_sve_index_ir_z_i_r -inst_sve_index_ri :: inst_sve_index_ri_z_r_i -emit_sve_index_ri :: emit_sve_index_ri_z_r_i -inst_sve_index_rr :: inst_sve_index_rr_z_r_r -emit_sve_index_rr :: emit_sve_index_rr_z_r_r -inst_sve_bsl :: inst_sve_bsl_z_z_z_z -emit_sve_bsl :: emit_sve_bsl_z_z_z_z -inst_sve_bsl1n :: inst_sve_bsl1n_z_z_z_z -emit_sve_bsl1n :: emit_sve_bsl1n_z_z_z_z -inst_sve_bsl2n :: inst_sve_bsl2n_z_z_z_z -emit_sve_bsl2n :: emit_sve_bsl2n_z_z_z_z -inst_sve_nbsl :: inst_sve_nbsl_z_z_z_z -emit_sve_nbsl :: emit_sve_nbsl_z_z_z_z -inst_sve_pmul_vec :: inst_sve_pmul_vec_z_z_z -emit_sve_pmul_vec :: emit_sve_pmul_vec_z_z_z -inst_sve_pmullb :: inst_sve_pmullb_z_z_z -emit_sve_pmullb :: emit_sve_pmullb_z_z_z -inst_sve_pmullt :: inst_sve_pmullt_z_z_z -emit_sve_pmullt :: emit_sve_pmullt_z_z_z -inst_sve_bfcvt :: inst_sve_bfcvt_z_p_z -emit_sve_bfcvt :: emit_sve_bfcvt_z_p_z -inst_sve_bfcvtnt :: inst_sve_bfcvtnt_z_p_z -emit_sve_bfcvtnt :: emit_sve_bfcvtnt_z_p_z -inst_ldraa :: inst_ldraa_r_m -emit_ldraa :: emit_ldraa_r_m -inst_ldrab :: inst_ldrab_r_m -emit_ldrab :: emit_ldrab_r_m -inst_ldraa_pre :: inst_ldraa_pre_r_m -emit_ldraa_pre :: emit_ldraa_pre_r_m -inst_ldrab_pre :: inst_ldrab_pre_r_m -emit_ldrab_pre :: emit_ldrab_pre_r_m -inst_tstart :: inst_tstart_r -emit_tstart :: emit_tstart_r -inst_tcommit :: inst_tcommit_none -emit_tcommit :: emit_tcommit_none -inst_tcancel :: inst_tcancel_i -emit_tcancel :: emit_tcancel_i -inst_ttest :: inst_ttest_r -emit_ttest :: emit_ttest_r -inst_wfet :: inst_wfet_r -emit_wfet :: emit_wfet_r -inst_wfit :: inst_wfit_r -emit_wfit :: emit_wfit_r -inst_bc_cond :: inst_bc_cond_c_l -emit_bc_cond :: emit_bc_cond_c_l -inst_uxtb :: inst_uxtb_r_r -emit_uxtb :: emit_uxtb_r_r -inst_uxth :: inst_uxth_r_r -emit_uxth :: emit_uxth_r_r -inst_uxtw :: inst_uxtw_r_r -emit_uxtw :: emit_uxtw_r_r -inst_sxtb :: inst_sxtb_r_r -emit_sxtb :: emit_sxtb_r_r -inst_sxth :: inst_sxth_r_r -emit_sxth :: emit_sxth_r_r -inst_sxtw :: inst_sxtw_r_r -emit_sxtw :: emit_sxtw_r_r -inst_adc :: inst_adc_r_r_r -emit_adc :: emit_adc_r_r_r -inst_adcs :: inst_adcs_r_r_r -emit_adcs :: emit_adcs_r_r_r -inst_sbc :: inst_sbc_r_r_r -emit_sbc :: emit_sbc_r_r_r -inst_sbcs :: inst_sbcs_r_r_r -emit_sbcs :: emit_sbcs_r_r_r -inst_ngc :: inst_ngc_r_r -emit_ngc :: emit_ngc_r_r -inst_ngcs :: inst_ngcs_r_r -emit_ngcs :: emit_ngcs_r_r -inst_ldapur :: inst_ldapur_r_m -emit_ldapur :: emit_ldapur_r_m -inst_stlur :: inst_stlur_r_m -emit_stlur :: emit_stlur_r_m -inst_ldapurb :: inst_ldapurb_r_m -emit_ldapurb :: emit_ldapurb_r_m -inst_stlurb :: inst_stlurb_r_m -emit_stlurb :: emit_stlurb_r_m -inst_ldapurh :: inst_ldapurh_r_m -emit_ldapurh :: emit_ldapurh_r_m -inst_stlurh :: inst_stlurh_r_m -emit_stlurh :: emit_stlurh_r_m -inst_ldapursb :: inst_ldapursb_r_m -emit_ldapursb :: emit_ldapursb_r_m -inst_ldapursh :: inst_ldapursh_r_m -emit_ldapursh :: emit_ldapursh_r_m -inst_ldapursw :: inst_ldapursw_r_m -emit_ldapursw :: emit_ldapursw_r_m -inst_sve_bfadd :: inst_sve_bfadd_z_p_z_z -emit_sve_bfadd :: emit_sve_bfadd_z_p_z_z -inst_sve_bfsub :: inst_sve_bfsub_z_p_z_z -emit_sve_bfsub :: emit_sve_bfsub_z_p_z_z -inst_sve_bfmul :: inst_sve_bfmul_z_p_z_z -emit_sve_bfmul :: emit_sve_bfmul_z_p_z_z -inst_sve_bfmla :: inst_sve_bfmla_z_p_z_z -emit_sve_bfmla :: emit_sve_bfmla_z_p_z_z -inst_sve_bfmls :: inst_sve_bfmls_z_p_z_z -emit_sve_bfmls :: emit_sve_bfmls_z_p_z_z -inst_sb :: inst_sb_none -emit_sb :: emit_sb_none -inst_csdb :: inst_csdb_none -emit_csdb :: emit_csdb_none -inst_dgh :: inst_dgh_none -emit_dgh :: emit_dgh_none -inst_psb_csync :: inst_psb_csync_none -emit_psb_csync :: emit_psb_csync_none -inst_tsb_csync :: inst_tsb_csync_none -emit_tsb_csync :: emit_tsb_csync_none -inst_bti_j :: inst_bti_j_none -emit_bti_j :: emit_bti_j_none -inst_bti_c :: inst_bti_c_none -emit_bti_c :: emit_bti_c_none -inst_bti_jc :: inst_bti_jc_none -emit_bti_jc :: emit_bti_jc_none -inst_mov_v_alias :: inst_mov_v_alias_r_r -emit_mov_v_alias :: emit_mov_v_alias_r_r -inst_not_v_alias :: inst_not_v_alias_r_r -emit_not_v_alias :: emit_not_v_alias_r_r -inst_lsl_imm :: inst_lsl_imm_r_r_i -emit_lsl_imm :: emit_lsl_imm_r_r_i -inst_lsr_imm :: inst_lsr_imm_r_r_i -emit_lsr_imm :: emit_lsr_imm_r_r_i -inst_asr_imm :: inst_asr_imm_r_r_i -emit_asr_imm :: emit_asr_imm_r_r_i -inst_ror_imm :: inst_ror_imm_r_r_i -emit_ror_imm :: emit_ror_imm_r_r_i -inst_sve_bfadd_unpred :: inst_sve_bfadd_unpred_z_z_z -emit_sve_bfadd_unpred :: emit_sve_bfadd_unpred_z_z_z -inst_sve_bfsub_unpred :: inst_sve_bfsub_unpred_z_z_z -emit_sve_bfsub_unpred :: emit_sve_bfsub_unpred_z_z_z -inst_sve_bfmul_unpred :: inst_sve_bfmul_unpred_z_z_z -emit_sve_bfmul_unpred :: emit_sve_bfmul_unpred_z_z_z -inst_sve_bfclamp :: inst_sve_bfclamp_z_z_z -emit_sve_bfclamp :: emit_sve_bfclamp_z_z_z -inst_sve_bfmaxnm :: inst_sve_bfmaxnm_z_p_z_z -emit_sve_bfmaxnm :: emit_sve_bfmaxnm_z_p_z_z -inst_sve_bfminnm :: inst_sve_bfminnm_z_p_z_z -emit_sve_bfminnm :: emit_sve_bfminnm_z_p_z_z -inst_sme2_luti2_b :: inst_sme2_luti2_b_z_z_z_i -emit_sme2_luti2_b :: emit_sme2_luti2_b_z_z_z_i -inst_sme2_luti4_b :: inst_sme2_luti4_b_z_z_z_i -emit_sme2_luti4_b :: emit_sme2_luti4_b_z_z_z_i -inst_sme2_ld1b_x2 :: inst_sme2_ld1b_x2_z_p_m -emit_sme2_ld1b_x2 :: emit_sme2_ld1b_x2_z_p_m -inst_sme2_ld1h_x2 :: inst_sme2_ld1h_x2_z_p_m -emit_sme2_ld1h_x2 :: emit_sme2_ld1h_x2_z_p_m -inst_sme2_ld1w_x2 :: inst_sme2_ld1w_x2_z_p_m -emit_sme2_ld1w_x2 :: emit_sme2_ld1w_x2_z_p_m -inst_sme2_ld1d_x2 :: inst_sme2_ld1d_x2_z_p_m -emit_sme2_ld1d_x2 :: emit_sme2_ld1d_x2_z_p_m -inst_sme2_ld1b_x4 :: inst_sme2_ld1b_x4_z_p_m -emit_sme2_ld1b_x4 :: emit_sme2_ld1b_x4_z_p_m -inst_sme2_ld1h_x4 :: inst_sme2_ld1h_x4_z_p_m -emit_sme2_ld1h_x4 :: emit_sme2_ld1h_x4_z_p_m -inst_sme2_ld1w_x4 :: inst_sme2_ld1w_x4_z_p_m -emit_sme2_ld1w_x4 :: emit_sme2_ld1w_x4_z_p_m -inst_sme2_ld1d_x4 :: inst_sme2_ld1d_x4_z_p_m -emit_sme2_ld1d_x4 :: emit_sme2_ld1d_x4_z_p_m -inst_sme2_st1b_x2 :: inst_sme2_st1b_x2_z_p_m -emit_sme2_st1b_x2 :: emit_sme2_st1b_x2_z_p_m -inst_sme2_st1h_x2 :: inst_sme2_st1h_x2_z_p_m -emit_sme2_st1h_x2 :: emit_sme2_st1h_x2_z_p_m -inst_sme2_st1w_x2 :: inst_sme2_st1w_x2_z_p_m -emit_sme2_st1w_x2 :: emit_sme2_st1w_x2_z_p_m -inst_sme2_st1d_x2 :: inst_sme2_st1d_x2_z_p_m -emit_sme2_st1d_x2 :: emit_sme2_st1d_x2_z_p_m -inst_sme2_st1b_x4 :: inst_sme2_st1b_x4_z_p_m -emit_sme2_st1b_x4 :: emit_sme2_st1b_x4_z_p_m -inst_sme2_st1h_x4 :: inst_sme2_st1h_x4_z_p_m -emit_sme2_st1h_x4 :: emit_sme2_st1h_x4_z_p_m -inst_sme2_st1w_x4 :: inst_sme2_st1w_x4_z_p_m -emit_sme2_st1w_x4 :: emit_sme2_st1w_x4_z_p_m -inst_sme2_st1d_x4 :: inst_sme2_st1d_x4_z_p_m -emit_sme2_st1d_x4 :: emit_sme2_st1d_x4_z_p_m -inst_sme2_zip_3 :: inst_sme2_zip_3_z_z_z -emit_sme2_zip_3 :: emit_sme2_zip_3_z_z_z -inst_sme2_zip_4 :: inst_sme2_zip_4_z_z -emit_sme2_zip_4 :: emit_sme2_zip_4_z_z -inst_sme2_uzp_3 :: inst_sme2_uzp_3_z_z_z -emit_sme2_uzp_3 :: emit_sme2_uzp_3_z_z_z -inst_sme2_uzp_4 :: inst_sme2_uzp_4_z_z -emit_sme2_uzp_4 :: emit_sme2_uzp_4_z_z -inst_tlbi_rpalos :: inst_tlbi_rpalos_r -emit_tlbi_rpalos :: emit_tlbi_rpalos_r -inst_tlbi_rpaos :: inst_tlbi_rpaos_r -emit_tlbi_rpaos :: emit_tlbi_rpaos_r -inst_at_s1e1a :: inst_at_s1e1a_r -emit_at_s1e1a :: emit_at_s1e1a_r -inst_dc_cipapa :: inst_dc_cipapa_r -emit_dc_cipapa :: emit_dc_cipapa_r -inst_dc_cigdpapa :: inst_dc_cigdpapa_r -emit_dc_cigdpapa :: emit_dc_cigdpapa_r -inst_tlbi_paall :: inst_tlbi_paall_none -emit_tlbi_paall :: emit_tlbi_paall_none -inst_tlbi_paallos :: inst_tlbi_paallos_none -emit_tlbi_paallos :: emit_tlbi_paallos_none -inst_amx_ldx :: inst_amx_ldx_r -emit_amx_ldx :: emit_amx_ldx_r -inst_amx_ldy :: inst_amx_ldy_r -emit_amx_ldy :: emit_amx_ldy_r -inst_amx_stx :: inst_amx_stx_r -emit_amx_stx :: emit_amx_stx_r -inst_amx_sty :: inst_amx_sty_r -emit_amx_sty :: emit_amx_sty_r -inst_amx_ldz :: inst_amx_ldz_r -emit_amx_ldz :: emit_amx_ldz_r -inst_amx_stz :: inst_amx_stz_r -emit_amx_stz :: emit_amx_stz_r -inst_amx_ldzi :: inst_amx_ldzi_r -emit_amx_ldzi :: emit_amx_ldzi_r -inst_amx_stzi :: inst_amx_stzi_r -emit_amx_stzi :: emit_amx_stzi_r -inst_amx_extrx :: inst_amx_extrx_r -emit_amx_extrx :: emit_amx_extrx_r -inst_amx_extry :: inst_amx_extry_r -emit_amx_extry :: emit_amx_extry_r -inst_amx_fma64 :: inst_amx_fma64_r -emit_amx_fma64 :: emit_amx_fma64_r -inst_amx_fms64 :: inst_amx_fms64_r -emit_amx_fms64 :: emit_amx_fms64_r -inst_amx_fma32 :: inst_amx_fma32_r -emit_amx_fma32 :: emit_amx_fma32_r -inst_amx_fms32 :: inst_amx_fms32_r -emit_amx_fms32 :: emit_amx_fms32_r -inst_amx_mac16 :: inst_amx_mac16_r -emit_amx_mac16 :: emit_amx_mac16_r -inst_amx_fma16 :: inst_amx_fma16_r -emit_amx_fma16 :: emit_amx_fma16_r -inst_amx_fms16 :: inst_amx_fms16_r -emit_amx_fms16 :: emit_amx_fms16_r -inst_amx_set :: inst_amx_set_none -emit_amx_set :: emit_amx_set_none -inst_amx_clr :: inst_amx_clr_none -emit_amx_clr :: emit_amx_clr_none -inst_amx_vecint :: inst_amx_vecint_r -emit_amx_vecint :: emit_amx_vecint_r -inst_amx_vecfp :: inst_amx_vecfp_r -emit_amx_vecfp :: emit_amx_vecfp_r -inst_amx_matint :: inst_amx_matint_r -emit_amx_matint :: emit_amx_matint_r -inst_amx_matfp :: inst_amx_matfp_r -emit_amx_matfp :: emit_amx_matfp_r -inst_amx_genlut :: inst_amx_genlut_r -emit_amx_genlut :: emit_amx_genlut_r -inst_cpyp :: inst_cpyp_r_r_r -emit_cpyp :: emit_cpyp_r_r_r -inst_cpym :: inst_cpym_r_r_r -emit_cpym :: emit_cpym_r_r_r -inst_cpye :: inst_cpye_r_r_r -emit_cpye :: emit_cpye_r_r_r -inst_cpyfp :: inst_cpyfp_r_r_r -emit_cpyfp :: emit_cpyfp_r_r_r -inst_cpyfm :: inst_cpyfm_r_r_r -emit_cpyfm :: emit_cpyfm_r_r_r -inst_cpyfe :: inst_cpyfe_r_r_r -emit_cpyfe :: emit_cpyfe_r_r_r -inst_setp :: inst_setp_r_r_r -emit_setp :: emit_setp_r_r_r -inst_setm :: inst_setm_r_r_r -emit_setm :: emit_setm_r_r_r -inst_sete :: inst_sete_r_r_r -emit_sete :: emit_sete_r_r_r -inst_dc_ivac :: inst_dc_ivac_r -emit_dc_ivac :: emit_dc_ivac_r -inst_dc_isw :: inst_dc_isw_r -emit_dc_isw :: emit_dc_isw_r -inst_dc_csw :: inst_dc_csw_r -emit_dc_csw :: emit_dc_csw_r -inst_dc_cisw :: inst_dc_cisw_r -emit_dc_cisw :: emit_dc_cisw_r -inst_dc_zva :: inst_dc_zva_r -emit_dc_zva :: emit_dc_zva_r -inst_dc_cvac :: inst_dc_cvac_r -emit_dc_cvac :: emit_dc_cvac_r -inst_dc_cvau :: inst_dc_cvau_r -emit_dc_cvau :: emit_dc_cvau_r -inst_dc_civac :: inst_dc_civac_r -emit_dc_civac :: emit_dc_civac_r -inst_ic_ialluis :: inst_ic_ialluis_none -emit_ic_ialluis :: emit_ic_ialluis_none -inst_ic_iallu :: inst_ic_iallu_none -emit_ic_iallu :: emit_ic_iallu_none -inst_ic_ivau :: inst_ic_ivau_r -emit_ic_ivau :: emit_ic_ivau_r -inst_at_s1e1r :: inst_at_s1e1r_r -emit_at_s1e1r :: emit_at_s1e1r_r -inst_at_s1e1w :: inst_at_s1e1w_r -emit_at_s1e1w :: emit_at_s1e1w_r -inst_at_s1e0r :: inst_at_s1e0r_r -emit_at_s1e0r :: emit_at_s1e0r_r -inst_at_s1e0w :: inst_at_s1e0w_r -emit_at_s1e0w :: emit_at_s1e0w_r -inst_at_s1e2r :: inst_at_s1e2r_r -emit_at_s1e2r :: emit_at_s1e2r_r -inst_at_s1e2w :: inst_at_s1e2w_r -emit_at_s1e2w :: emit_at_s1e2w_r -inst_at_s1e3r :: inst_at_s1e3r_r -emit_at_s1e3r :: emit_at_s1e3r_r -inst_at_s1e3w :: inst_at_s1e3w_r -emit_at_s1e3w :: emit_at_s1e3w_r -inst_at_s12e1r :: inst_at_s12e1r_r -emit_at_s12e1r :: emit_at_s12e1r_r -inst_at_s12e1w :: inst_at_s12e1w_r -emit_at_s12e1w :: emit_at_s12e1w_r -inst_at_s12e0r :: inst_at_s12e0r_r -emit_at_s12e0r :: emit_at_s12e0r_r -inst_at_s12e0w :: inst_at_s12e0w_r -emit_at_s12e0w :: emit_at_s12e0w_r -inst_tlbi_vmalle1 :: inst_tlbi_vmalle1_none -emit_tlbi_vmalle1 :: emit_tlbi_vmalle1_none -inst_tlbi_vmalle1is :: inst_tlbi_vmalle1is_none -emit_tlbi_vmalle1is :: emit_tlbi_vmalle1is_none -inst_tlbi_vae1 :: inst_tlbi_vae1_r -emit_tlbi_vae1 :: emit_tlbi_vae1_r -inst_tlbi_vae1is :: inst_tlbi_vae1is_r -emit_tlbi_vae1is :: emit_tlbi_vae1is_r -inst_tlbi_aside1 :: inst_tlbi_aside1_r -emit_tlbi_aside1 :: emit_tlbi_aside1_r -inst_tlbi_aside1is :: inst_tlbi_aside1is_r -emit_tlbi_aside1is :: emit_tlbi_aside1is_r -inst_tlbi_vaae1 :: inst_tlbi_vaae1_r -emit_tlbi_vaae1 :: emit_tlbi_vaae1_r -inst_tlbi_vaae1is :: inst_tlbi_vaae1is_r -emit_tlbi_vaae1is :: emit_tlbi_vaae1is_r -inst_tlbi_vale1 :: inst_tlbi_vale1_r -emit_tlbi_vale1 :: emit_tlbi_vale1_r -inst_tlbi_vale1is :: inst_tlbi_vale1is_r -emit_tlbi_vale1is :: emit_tlbi_vale1is_r -inst_tlbi_vaale1 :: inst_tlbi_vaale1_r -emit_tlbi_vaale1 :: emit_tlbi_vaale1_r -inst_tlbi_vaale1is :: inst_tlbi_vaale1is_r -emit_tlbi_vaale1is :: emit_tlbi_vaale1is_r -inst_tlbi_alle1 :: inst_tlbi_alle1_none -emit_tlbi_alle1 :: emit_tlbi_alle1_none -inst_tlbi_alle1is :: inst_tlbi_alle1is_none -emit_tlbi_alle1is :: emit_tlbi_alle1is_none -inst_tlbi_alle2 :: inst_tlbi_alle2_none -emit_tlbi_alle2 :: emit_tlbi_alle2_none -inst_tlbi_alle2is :: inst_tlbi_alle2is_none -emit_tlbi_alle2is :: emit_tlbi_alle2is_none -inst_tlbi_alle3 :: inst_tlbi_alle3_none -emit_tlbi_alle3 :: emit_tlbi_alle3_none -inst_tlbi_alle3is :: inst_tlbi_alle3is_none -emit_tlbi_alle3is :: emit_tlbi_alle3is_none -inst_prfm :: inst_prfm_i_m -emit_prfm :: emit_prfm_i_m -inst_prfum :: inst_prfum_i_m -emit_prfum :: emit_prfum_i_m -inst_prfm_lit :: inst_prfm_lit_i_l -emit_prfm_lit :: emit_prfm_lit_i_l -inst_mov_reg :: inst_mov_reg_r_r -emit_mov_reg :: emit_mov_reg_r_r -inst_mov_bitmask :: inst_mov_bitmask_r_i -emit_mov_bitmask :: emit_mov_bitmask_r_i -inst_mvn :: inst_mvn_r_r -emit_mvn :: emit_mvn_r_r -inst_neg_sr :: inst_neg_sr_r_sh -emit_neg_sr :: emit_neg_sr_r_sh -inst_negs :: inst_negs_r_sh -emit_negs :: emit_negs_r_sh -inst_cmp_sr :: inst_cmp_sr_r_sh -emit_cmp_sr :: emit_cmp_sr_r_sh -inst_cmp_er :: inst_cmp_er_r_ex -emit_cmp_er :: emit_cmp_er_r_ex -inst_cmp_imm :: inst_cmp_imm_r_i -emit_cmp_imm :: emit_cmp_imm_r_i -inst_cmn_sr :: inst_cmn_sr_r_sh -emit_cmn_sr :: emit_cmn_sr_r_sh -inst_cmn_er :: inst_cmn_er_r_ex -emit_cmn_er :: emit_cmn_er_r_ex -inst_cmn_imm :: inst_cmn_imm_r_i -emit_cmn_imm :: emit_cmn_imm_r_i -inst_tst_sr :: inst_tst_sr_r_sh -emit_tst_sr :: emit_tst_sr_r_sh - -// Aliases: redundant SME names -> canonical tile/MOVA builders. -inst_sme_ld1b_za :: inst_sme_ld1b_tile -emit_sme_ld1b_za :: emit_sme_ld1b_tile -inst_sme_ld1h_za :: inst_sme_ld1h_tile -emit_sme_ld1h_za :: emit_sme_ld1h_tile -inst_sme_ld1w_za :: inst_sme_ld1w_tile -emit_sme_ld1w_za :: emit_sme_ld1w_tile -inst_sme_ld1d_za :: inst_sme_ld1d_tile -emit_sme_ld1d_za :: emit_sme_ld1d_tile -inst_sme_ld1q_za :: inst_sme_ld1q_tile -emit_sme_ld1q_za :: emit_sme_ld1q_tile -inst_sme_st1b_za :: inst_sme_st1b_tile -emit_sme_st1b_za :: emit_sme_st1b_tile -inst_sme_st1h_za :: inst_sme_st1h_tile -emit_sme_st1h_za :: emit_sme_st1h_tile -inst_sme_st1w_za :: inst_sme_st1w_tile -emit_sme_st1w_za :: emit_sme_st1w_tile -inst_sme_st1d_za :: inst_sme_st1d_tile -emit_sme_st1d_za :: emit_sme_st1d_tile -inst_sme_st1q_za :: inst_sme_st1q_tile -emit_sme_st1q_za :: emit_sme_st1q_tile -inst_sme_mova_to_z :: inst_sme_mova_z_from_tile -emit_sme_mova_to_z :: emit_sme_mova_z_from_tile -inst_sme_mova_to_za :: inst_sme_mova_tile_from_z -emit_sme_mova_to_za :: emit_sme_mova_tile_from_z +inst_add :: proc{ inst_add_r_r_i, inst_add_r_r_sh, inst_add_r_r_ex, inst_add_v16b_v16b_v16b, inst_add_zb_zb_zb, inst_add_zb_p_zb_zb } +emit_add :: proc{ emit_add_r_r_i, emit_add_r_r_sh, emit_add_r_r_ex, emit_add_v16b_v16b_v16b, emit_add_zb_zb_zb, emit_add_zb_p_zb_zb } +inst_adds :: proc{ inst_adds_r_r_i, inst_adds_r_r_sh, inst_adds_r_r_ex } +emit_adds :: proc{ emit_adds_r_r_i, emit_adds_r_r_sh, emit_adds_r_r_ex } +inst_sub :: proc{ inst_sub_r_r_i, inst_sub_r_r_sh, inst_sub_r_r_ex, inst_sub_v16b_v16b_v16b, inst_sub_zb_zb_zb, inst_sub_zb_p_zb_zb } +emit_sub :: proc{ emit_sub_r_r_i, emit_sub_r_r_sh, emit_sub_r_r_ex, emit_sub_v16b_v16b_v16b, emit_sub_zb_zb_zb, emit_sub_zb_p_zb_zb } +inst_subs :: proc{ inst_subs_r_r_i, inst_subs_r_r_sh, inst_subs_r_r_ex } +emit_subs :: proc{ emit_subs_r_r_i, emit_subs_r_r_sh, emit_subs_r_r_ex } +inst_movz :: inst_movz_r_i_i +emit_movz :: emit_movz_r_i_i +inst_movn :: inst_movn_r_i_i +emit_movn :: emit_movn_r_i_i +inst_movk :: inst_movk_r_i_i +emit_movk :: emit_movk_r_i_i +inst_adr :: inst_adr_r_l +emit_adr :: emit_adr_r_l +inst_adrp :: inst_adrp_r_l +emit_adrp :: emit_adrp_r_l +inst_and :: proc{ inst_and_r_r_sh, inst_and_r_r_i, inst_and_v16b_v16b_v16b, inst_and_zb_p_zb_zb } +emit_and :: proc{ emit_and_r_r_sh, emit_and_r_r_i, emit_and_v16b_v16b_v16b, emit_and_zb_p_zb_zb } +inst_ands :: proc{ inst_ands_r_r_sh, inst_ands_r_r_i, inst_ands_pb_p_pb_pb } +emit_ands :: proc{ emit_ands_r_r_sh, emit_ands_r_r_i, emit_ands_pb_p_pb_pb } +inst_orr :: proc{ inst_orr_r_r_sh, inst_orr_r_r_i, inst_orr_v16b_v16b_v16b, inst_orr_zb_p_zb_zb } +emit_orr :: proc{ emit_orr_r_r_sh, emit_orr_r_r_i, emit_orr_v16b_v16b_v16b, emit_orr_zb_p_zb_zb } +inst_eor :: proc{ inst_eor_r_r_sh, inst_eor_r_r_i, inst_eor_v16b_v16b_v16b, inst_eor_zb_p_zb_zb } +emit_eor :: proc{ emit_eor_r_r_sh, emit_eor_r_r_i, emit_eor_v16b_v16b_v16b, emit_eor_zb_p_zb_zb } +inst_bic :: proc{ inst_bic_r_r_sh, inst_bic_v16b_v16b_v16b, inst_bic_zb_p_zb_zb } +emit_bic :: proc{ emit_bic_r_r_sh, emit_bic_v16b_v16b_v16b, emit_bic_zb_p_zb_zb } +inst_bics :: proc{ inst_bics_r_r_sh, inst_bics_pb_p_pb_pb } +emit_bics :: proc{ emit_bics_r_r_sh, emit_bics_pb_p_pb_pb } +inst_orn :: proc{ inst_orn_r_r_sh, inst_orn_v16b_v16b_v16b, inst_orn_pb_p_pb_pb } +emit_orn :: proc{ emit_orn_r_r_sh, emit_orn_v16b_v16b_v16b, emit_orn_pb_p_pb_pb } +inst_eon :: inst_eon_r_r_sh +emit_eon :: emit_eon_r_r_sh +inst_lsl :: proc{ inst_lsl_r_r_r, inst_lsl_zb_p_zb_zb, inst_lsl_r_r_i } +emit_lsl :: proc{ emit_lsl_r_r_r, emit_lsl_zb_p_zb_zb, emit_lsl_r_r_i } +inst_lsr :: proc{ inst_lsr_r_r_r, inst_lsr_zb_p_zb_zb, inst_lsr_r_r_i } +emit_lsr :: proc{ emit_lsr_r_r_r, emit_lsr_zb_p_zb_zb, emit_lsr_r_r_i } +inst_asr :: proc{ inst_asr_r_r_r, inst_asr_zb_p_zb_zb, inst_asr_r_r_i } +emit_asr :: proc{ emit_asr_r_r_r, emit_asr_zb_p_zb_zb, emit_asr_r_r_i } +inst_ror :: proc{ inst_ror_r_r_r, inst_ror_r_r_i } +emit_ror :: proc{ emit_ror_r_r_r, emit_ror_r_r_i } +inst_udiv :: proc{ inst_udiv_r_r_r, inst_udiv_zs_p_zs_zs } +emit_udiv :: proc{ emit_udiv_r_r_r, emit_udiv_zs_p_zs_zs } +inst_sdiv :: proc{ inst_sdiv_r_r_r, inst_sdiv_zs_p_zs_zs } +emit_sdiv :: proc{ emit_sdiv_r_r_r, emit_sdiv_zs_p_zs_zs } +inst_madd :: inst_madd_r_r_r_r +emit_madd :: emit_madd_r_r_r_r +inst_msub :: inst_msub_r_r_r_r +emit_msub :: emit_msub_r_r_r_r +inst_smaddl :: inst_smaddl_r_r_r_r +emit_smaddl :: emit_smaddl_r_r_r_r +inst_smsubl :: inst_smsubl_r_r_r_r +emit_smsubl :: emit_smsubl_r_r_r_r +inst_umaddl :: inst_umaddl_r_r_r_r +emit_umaddl :: emit_umaddl_r_r_r_r +inst_umsubl :: inst_umsubl_r_r_r_r +emit_umsubl :: emit_umsubl_r_r_r_r +inst_smulh :: proc{ inst_smulh_r_r_r, inst_smulh_zb_p_zb_zb } +emit_smulh :: proc{ emit_smulh_r_r_r, emit_smulh_zb_p_zb_zb } +inst_umulh :: proc{ inst_umulh_r_r_r, inst_umulh_zb_p_zb_zb } +emit_umulh :: proc{ emit_umulh_r_r_r, emit_umulh_zb_p_zb_zb } +inst_clz :: proc{ inst_clz_r_r, inst_clz_zb_p_zb } +emit_clz :: proc{ emit_clz_r_r, emit_clz_zb_p_zb } +inst_cls :: proc{ inst_cls_r_r, inst_cls_zb_p_zb } +emit_cls :: proc{ emit_cls_r_r, emit_cls_zb_p_zb } +inst_rbit :: inst_rbit_r_r +emit_rbit :: emit_rbit_r_r +inst_rev :: proc{ inst_rev_r_r, inst_rev_zb_zb } +emit_rev :: proc{ emit_rev_r_r, emit_rev_zb_zb } +inst_rev16 :: inst_rev16_r_r +emit_rev16 :: emit_rev16_r_r +inst_rev32 :: inst_rev32_r_r +emit_rev32 :: emit_rev32_r_r +inst_csel :: inst_csel_r_r_r_c +emit_csel :: emit_csel_r_r_r_c +inst_csinc :: inst_csinc_r_r_r_c +emit_csinc :: emit_csinc_r_r_r_c +inst_csinv :: inst_csinv_r_r_r_c +emit_csinv :: emit_csinv_r_r_r_c +inst_csneg :: inst_csneg_r_r_r_c +emit_csneg :: emit_csneg_r_r_r_c +inst_ccmp :: proc{ inst_ccmp_r_r_i_c, inst_ccmp_r_i_i_c } +emit_ccmp :: proc{ emit_ccmp_r_r_i_c, emit_ccmp_r_i_i_c } +inst_ccmn :: proc{ inst_ccmn_r_r_i_c, inst_ccmn_r_i_i_c } +emit_ccmn :: proc{ emit_ccmn_r_r_i_c, emit_ccmn_r_i_i_c } +inst_cset :: inst_cset_r_c +emit_cset :: emit_cset_r_c +inst_csetm :: inst_csetm_r_c +emit_csetm :: emit_csetm_r_c +inst_cinc :: inst_cinc_r_r_c +emit_cinc :: emit_cinc_r_r_c +inst_cinv :: inst_cinv_r_r_c +emit_cinv :: emit_cinv_r_r_c +inst_cneg :: inst_cneg_r_r_c +emit_cneg :: emit_cneg_r_r_c +inst_extr :: inst_extr_r_r_r_i +emit_extr :: emit_extr_r_r_r_i +inst_b :: inst_b_l +emit_b :: emit_b_l +inst_bl :: inst_bl_l +emit_bl :: emit_bl_l +inst_br :: inst_br_r +emit_br :: emit_br_r +inst_blr :: inst_blr_r +emit_blr :: emit_blr_r +inst_ret :: proc{ inst_ret_r, inst_ret_none } +emit_ret :: proc{ emit_ret_r, emit_ret_none } +inst_b_eq :: inst_b_eq_l +emit_b_eq :: emit_b_eq_l +inst_b_ne :: inst_b_ne_l +emit_b_ne :: emit_b_ne_l +inst_b_cs :: inst_b_cs_l +emit_b_cs :: emit_b_cs_l +inst_b_cc :: inst_b_cc_l +emit_b_cc :: emit_b_cc_l +inst_b_mi :: inst_b_mi_l +emit_b_mi :: emit_b_mi_l +inst_b_pl :: inst_b_pl_l +emit_b_pl :: emit_b_pl_l +inst_b_vs :: inst_b_vs_l +emit_b_vs :: emit_b_vs_l +inst_b_vc :: inst_b_vc_l +emit_b_vc :: emit_b_vc_l +inst_b_hi :: inst_b_hi_l +emit_b_hi :: emit_b_hi_l +inst_b_ls :: inst_b_ls_l +emit_b_ls :: emit_b_ls_l +inst_b_ge :: inst_b_ge_l +emit_b_ge :: emit_b_ge_l +inst_b_lt :: inst_b_lt_l +emit_b_lt :: emit_b_lt_l +inst_b_gt :: inst_b_gt_l +emit_b_gt :: emit_b_gt_l +inst_b_le :: inst_b_le_l +emit_b_le :: emit_b_le_l +inst_b_al :: inst_b_al_l +emit_b_al :: emit_b_al_l +inst_b_nv :: inst_b_nv_l +emit_b_nv :: emit_b_nv_l +inst_cbz :: inst_cbz_r_l +emit_cbz :: emit_cbz_r_l +inst_cbnz :: inst_cbnz_r_l +emit_cbnz :: emit_cbnz_r_l +inst_tbz :: inst_tbz_r_i_l +emit_tbz :: emit_tbz_r_i_l +inst_tbnz :: inst_tbnz_r_i_l +emit_tbnz :: emit_tbnz_r_i_l +inst_ldr :: proc{ inst_ldr_r_m, inst_ldr_r_l, inst_ldr_z_m, inst_ldr_i_m } +emit_ldr :: proc{ emit_ldr_r_m, emit_ldr_r_l, emit_ldr_z_m, emit_ldr_i_m } +inst_str :: proc{ inst_str_r_m, inst_str_z_m, inst_str_i_m } +emit_str :: proc{ emit_str_r_m, emit_str_z_m, emit_str_i_m } +inst_ldrb :: inst_ldrb_r_m +emit_ldrb :: emit_ldrb_r_m +inst_strb :: inst_strb_r_m +emit_strb :: emit_strb_r_m +inst_ldrsb :: inst_ldrsb_r_m +emit_ldrsb :: emit_ldrsb_r_m +inst_ldrh :: inst_ldrh_r_m +emit_ldrh :: emit_ldrh_r_m +inst_strh :: inst_strh_r_m +emit_strh :: emit_strh_r_m +inst_ldrsh :: inst_ldrsh_r_m +emit_ldrsh :: emit_ldrsh_r_m +inst_ldrsw :: inst_ldrsw_r_m +emit_ldrsw :: emit_ldrsw_r_m +inst_ldp :: inst_ldp_r_r_m +emit_ldp :: emit_ldp_r_r_m +inst_stp :: inst_stp_r_r_m +emit_stp :: emit_stp_r_r_m +inst_ldpsw :: inst_ldpsw_r_r_m +emit_ldpsw :: emit_ldpsw_r_r_m +inst_ldar :: inst_ldar_r_m +emit_ldar :: emit_ldar_r_m +inst_stlr :: inst_stlr_r_m +emit_stlr :: emit_stlr_r_m +inst_ldarb :: inst_ldarb_r_m +emit_ldarb :: emit_ldarb_r_m +inst_stlrb :: inst_stlrb_r_m +emit_stlrb :: emit_stlrb_r_m +inst_ldarh :: inst_ldarh_r_m +emit_ldarh :: emit_ldarh_r_m +inst_stlrh :: inst_stlrh_r_m +emit_stlrh :: emit_stlrh_r_m +inst_ldxr :: inst_ldxr_r_m +emit_ldxr :: emit_ldxr_r_m +inst_stxr :: inst_stxr_r_r_m +emit_stxr :: emit_stxr_r_r_m +inst_ldaxr :: inst_ldaxr_r_m +emit_ldaxr :: emit_ldaxr_r_m +inst_stlxr :: inst_stlxr_r_r_m +emit_stlxr :: emit_stlxr_r_r_m +inst_nop :: inst_nop_none +emit_nop :: emit_nop_none +inst_yield :: inst_yield_none +emit_yield :: emit_yield_none +inst_wfe :: inst_wfe_none +emit_wfe :: emit_wfe_none +inst_wfi :: inst_wfi_none +emit_wfi :: emit_wfi_none +inst_sev :: inst_sev_none +emit_sev :: emit_sev_none +inst_sevl :: inst_sevl_none +emit_sevl :: emit_sevl_none +inst_hint :: inst_hint_i +emit_hint :: emit_hint_i +inst_mrs :: inst_mrs_r_s +emit_mrs :: emit_mrs_r_s +inst_msr :: proc{ inst_msr_i_i, inst_msr_s_r } +emit_msr :: proc{ emit_msr_i_i, emit_msr_s_r } +inst_isb :: inst_isb_i +emit_isb :: emit_isb_i +inst_dsb :: inst_dsb_i +emit_dsb :: emit_dsb_i +inst_dmb :: inst_dmb_i +emit_dmb :: emit_dmb_i +inst_svc :: inst_svc_i +emit_svc :: emit_svc_i +inst_hvc :: inst_hvc_i +emit_hvc :: emit_hvc_i +inst_smc :: inst_smc_i +emit_smc :: emit_smc_i +inst_brk :: inst_brk_i +emit_brk :: emit_brk_i +inst_hlt :: inst_hlt_i +emit_hlt :: emit_hlt_i +inst_eret :: inst_eret_none +emit_eret :: emit_eret_none +inst_fmov :: proc{ inst_fmov_r_r, inst_fmov_r_i } +emit_fmov :: proc{ emit_fmov_r_r, emit_fmov_r_i } +inst_fabs :: proc{ inst_fabs_r_r, inst_fabs_zh_p_zh } +emit_fabs :: proc{ emit_fabs_r_r, emit_fabs_zh_p_zh } +inst_fneg :: proc{ inst_fneg_r_r, inst_fneg_zh_p_zh } +emit_fneg :: proc{ emit_fneg_r_r, emit_fneg_zh_p_zh } +inst_fsqrt :: proc{ inst_fsqrt_r_r, inst_fsqrt_zh_p_zh } +emit_fsqrt :: proc{ emit_fsqrt_r_r, emit_fsqrt_zh_p_zh } +inst_fadd :: proc{ inst_fadd_r_r_r, inst_fadd_zh_zh_zh, inst_fadd_zh_p_zh_zh } +emit_fadd :: proc{ emit_fadd_r_r_r, emit_fadd_zh_zh_zh, emit_fadd_zh_p_zh_zh } +inst_fsub :: proc{ inst_fsub_r_r_r, inst_fsub_zh_zh_zh, inst_fsub_zh_p_zh_zh } +emit_fsub :: proc{ emit_fsub_r_r_r, emit_fsub_zh_zh_zh, emit_fsub_zh_p_zh_zh } +inst_fmul :: proc{ inst_fmul_r_r_r, inst_fmul_zh_zh_zh, inst_fmul_zh_p_zh_zh } +emit_fmul :: proc{ emit_fmul_r_r_r, emit_fmul_zh_zh_zh, emit_fmul_zh_p_zh_zh } +inst_fdiv :: proc{ inst_fdiv_r_r_r, inst_fdiv_zh_p_zh_zh } +emit_fdiv :: proc{ emit_fdiv_r_r_r, emit_fdiv_zh_p_zh_zh } +inst_fnmul :: inst_fnmul_r_r_r +emit_fnmul :: emit_fnmul_r_r_r +inst_fmadd :: inst_fmadd_r_r_r_r +emit_fmadd :: emit_fmadd_r_r_r_r +inst_fmsub :: inst_fmsub_r_r_r_r +emit_fmsub :: emit_fmsub_r_r_r_r +inst_fnmadd :: inst_fnmadd_r_r_r_r +emit_fnmadd :: emit_fnmadd_r_r_r_r +inst_fnmsub :: inst_fnmsub_r_r_r_r +emit_fnmsub :: emit_fnmsub_r_r_r_r +inst_fcmp :: inst_fcmp_r_r +emit_fcmp :: emit_fcmp_r_r +inst_fcmpe :: inst_fcmpe_r_r +emit_fcmpe :: emit_fcmpe_r_r +inst_fcsel :: inst_fcsel_r_r_r_c +emit_fcsel :: emit_fcsel_r_r_r_c +inst_fmax :: proc{ inst_fmax_r_r_r, inst_fmax_zh_p_zh_zh } +emit_fmax :: proc{ emit_fmax_r_r_r, emit_fmax_zh_p_zh_zh } +inst_fmin :: proc{ inst_fmin_r_r_r, inst_fmin_zh_p_zh_zh } +emit_fmin :: proc{ emit_fmin_r_r_r, emit_fmin_zh_p_zh_zh } +inst_fmaxnm :: proc{ inst_fmaxnm_r_r_r, inst_fmaxnm_zh_p_zh_zh } +emit_fmaxnm :: proc{ emit_fmaxnm_r_r_r, emit_fmaxnm_zh_p_zh_zh } +inst_fminnm :: proc{ inst_fminnm_r_r_r, inst_fminnm_zh_p_zh_zh } +emit_fminnm :: proc{ emit_fminnm_r_r_r, emit_fminnm_zh_p_zh_zh } +inst_fcvt :: inst_fcvt_r_r +emit_fcvt :: emit_fcvt_r_r +inst_scvtf :: inst_scvtf_r_r +emit_scvtf :: emit_scvtf_r_r +inst_ucvtf :: inst_ucvtf_r_r +emit_ucvtf :: emit_ucvtf_r_r +inst_fcvtzs :: inst_fcvtzs_r_r +emit_fcvtzs :: emit_fcvtzs_r_r +inst_fcvtzu :: inst_fcvtzu_r_r +emit_fcvtzu :: emit_fcvtzu_r_r +inst_fcvtas :: inst_fcvtas_r_r +emit_fcvtas :: emit_fcvtas_r_r +inst_fcvtau :: inst_fcvtau_r_r +emit_fcvtau :: emit_fcvtau_r_r +inst_fcvtns :: inst_fcvtns_r_r +emit_fcvtns :: emit_fcvtns_r_r +inst_fcvtnu :: inst_fcvtnu_r_r +emit_fcvtnu :: emit_fcvtnu_r_r +inst_fcvtps :: inst_fcvtps_r_r +emit_fcvtps :: emit_fcvtps_r_r +inst_fcvtpu :: inst_fcvtpu_r_r +emit_fcvtpu :: emit_fcvtpu_r_r +inst_fcvtms :: inst_fcvtms_r_r +emit_fcvtms :: emit_fcvtms_r_r +inst_fcvtmu :: inst_fcvtmu_r_r +emit_fcvtmu :: emit_fcvtmu_r_r +inst_frinta :: proc{ inst_frinta_r_r, inst_frinta_zh_p_zh } +emit_frinta :: proc{ emit_frinta_r_r, emit_frinta_zh_p_zh } +inst_frinti :: proc{ inst_frinti_r_r, inst_frinti_zh_p_zh } +emit_frinti :: proc{ emit_frinti_r_r, emit_frinti_zh_p_zh } +inst_frintm :: proc{ inst_frintm_r_r, inst_frintm_zh_p_zh } +emit_frintm :: proc{ emit_frintm_r_r, emit_frintm_zh_p_zh } +inst_frintn :: proc{ inst_frintn_r_r, inst_frintn_zh_p_zh } +emit_frintn :: proc{ emit_frintn_r_r, emit_frintn_zh_p_zh } +inst_frintp :: proc{ inst_frintp_r_r, inst_frintp_zh_p_zh } +emit_frintp :: proc{ emit_frintp_r_r, emit_frintp_zh_p_zh } +inst_frintx :: proc{ inst_frintx_r_r, inst_frintx_zh_p_zh } +emit_frintx :: proc{ emit_frintx_r_r, emit_frintx_zh_p_zh } +inst_frintz :: proc{ inst_frintz_r_r, inst_frintz_zh_p_zh } +emit_frintz :: proc{ emit_frintz_r_r, emit_frintz_zh_p_zh } +inst_tst :: proc{ inst_tst_r_i, inst_tst_r_sh } +emit_tst :: proc{ emit_tst_r_i, emit_tst_r_sh } +inst_ldur :: inst_ldur_r_m +emit_ldur :: emit_ldur_r_m +inst_stur :: inst_stur_r_m +emit_stur :: emit_stur_r_m +inst_ldurb :: inst_ldurb_r_m +emit_ldurb :: emit_ldurb_r_m +inst_sturb :: inst_sturb_r_m +emit_sturb :: emit_sturb_r_m +inst_ldursb :: inst_ldursb_r_m +emit_ldursb :: emit_ldursb_r_m +inst_ldurh :: inst_ldurh_r_m +emit_ldurh :: emit_ldurh_r_m +inst_sturh :: inst_sturh_r_m +emit_sturh :: emit_sturh_r_m +inst_ldursh :: inst_ldursh_r_m +emit_ldursh :: emit_ldursh_r_m +inst_ldursw :: inst_ldursw_r_m +emit_ldursw :: emit_ldursw_r_m +inst_ldnp :: inst_ldnp_r_r_m +emit_ldnp :: emit_ldnp_r_r_m +inst_stnp :: inst_stnp_r_r_m +emit_stnp :: emit_stnp_r_r_m +inst_ldxp :: inst_ldxp_r_r_m +emit_ldxp :: emit_ldxp_r_r_m +inst_stxp :: inst_stxp_r_r_r_m +emit_stxp :: emit_stxp_r_r_r_m +inst_ldaxp :: inst_ldaxp_r_r_m +emit_ldaxp :: emit_ldaxp_r_r_m +inst_stlxp :: inst_stlxp_r_r_r_m +emit_stlxp :: emit_stlxp_r_r_r_m +inst_ldxrb :: inst_ldxrb_r_m +emit_ldxrb :: emit_ldxrb_r_m +inst_stxrb :: inst_stxrb_r_r_m +emit_stxrb :: emit_stxrb_r_r_m +inst_ldaxrb :: inst_ldaxrb_r_m +emit_ldaxrb :: emit_ldaxrb_r_m +inst_stlxrb :: inst_stlxrb_r_r_m +emit_stlxrb :: emit_stlxrb_r_r_m +inst_ldxrh :: inst_ldxrh_r_m +emit_ldxrh :: emit_ldxrh_r_m +inst_stxrh :: inst_stxrh_r_r_m +emit_stxrh :: emit_stxrh_r_r_m +inst_ldaxrh :: inst_ldaxrh_r_m +emit_ldaxrh :: emit_ldaxrh_r_m +inst_stlxrh :: inst_stlxrh_r_r_m +emit_stlxrh :: emit_stlxrh_r_r_m +inst_ldapr :: inst_ldapr_r_m +emit_ldapr :: emit_ldapr_r_m +inst_ldaprb :: inst_ldaprb_r_m +emit_ldaprb :: emit_ldaprb_r_m +inst_ldaprh :: inst_ldaprh_r_m +emit_ldaprh :: emit_ldaprh_r_m +inst_ldadd :: inst_ldadd_r_r_m +emit_ldadd :: emit_ldadd_r_r_m +inst_ldadda :: inst_ldadda_r_r_m +emit_ldadda :: emit_ldadda_r_r_m +inst_ldaddl :: inst_ldaddl_r_r_m +emit_ldaddl :: emit_ldaddl_r_r_m +inst_ldaddal :: inst_ldaddal_r_r_m +emit_ldaddal :: emit_ldaddal_r_r_m +inst_ldclr :: inst_ldclr_r_r_m +emit_ldclr :: emit_ldclr_r_r_m +inst_ldclra :: inst_ldclra_r_r_m +emit_ldclra :: emit_ldclra_r_r_m +inst_ldclrl :: inst_ldclrl_r_r_m +emit_ldclrl :: emit_ldclrl_r_r_m +inst_ldclral :: inst_ldclral_r_r_m +emit_ldclral :: emit_ldclral_r_r_m +inst_ldeor :: inst_ldeor_r_r_m +emit_ldeor :: emit_ldeor_r_r_m +inst_ldeora :: inst_ldeora_r_r_m +emit_ldeora :: emit_ldeora_r_r_m +inst_ldeorl :: inst_ldeorl_r_r_m +emit_ldeorl :: emit_ldeorl_r_r_m +inst_ldeoral :: inst_ldeoral_r_r_m +emit_ldeoral :: emit_ldeoral_r_r_m +inst_ldset :: inst_ldset_r_r_m +emit_ldset :: emit_ldset_r_r_m +inst_ldseta :: inst_ldseta_r_r_m +emit_ldseta :: emit_ldseta_r_r_m +inst_ldsetl :: inst_ldsetl_r_r_m +emit_ldsetl :: emit_ldsetl_r_r_m +inst_ldsetal :: inst_ldsetal_r_r_m +emit_ldsetal :: emit_ldsetal_r_r_m +inst_ldsmax :: inst_ldsmax_r_r_m +emit_ldsmax :: emit_ldsmax_r_r_m +inst_ldsmaxa :: inst_ldsmaxa_r_r_m +emit_ldsmaxa :: emit_ldsmaxa_r_r_m +inst_ldsmaxl :: inst_ldsmaxl_r_r_m +emit_ldsmaxl :: emit_ldsmaxl_r_r_m +inst_ldsmaxal :: inst_ldsmaxal_r_r_m +emit_ldsmaxal :: emit_ldsmaxal_r_r_m +inst_ldsmin :: inst_ldsmin_r_r_m +emit_ldsmin :: emit_ldsmin_r_r_m +inst_ldsmina :: inst_ldsmina_r_r_m +emit_ldsmina :: emit_ldsmina_r_r_m +inst_ldsminl :: inst_ldsminl_r_r_m +emit_ldsminl :: emit_ldsminl_r_r_m +inst_ldsminal :: inst_ldsminal_r_r_m +emit_ldsminal :: emit_ldsminal_r_r_m +inst_ldumax :: inst_ldumax_r_r_m +emit_ldumax :: emit_ldumax_r_r_m +inst_ldumaxa :: inst_ldumaxa_r_r_m +emit_ldumaxa :: emit_ldumaxa_r_r_m +inst_ldumaxl :: inst_ldumaxl_r_r_m +emit_ldumaxl :: emit_ldumaxl_r_r_m +inst_ldumaxal :: inst_ldumaxal_r_r_m +emit_ldumaxal :: emit_ldumaxal_r_r_m +inst_ldumin :: inst_ldumin_r_r_m +emit_ldumin :: emit_ldumin_r_r_m +inst_ldumina :: inst_ldumina_r_r_m +emit_ldumina :: emit_ldumina_r_r_m +inst_lduminl :: inst_lduminl_r_r_m +emit_lduminl :: emit_lduminl_r_r_m +inst_lduminal :: inst_lduminal_r_r_m +emit_lduminal :: emit_lduminal_r_r_m +inst_swp :: inst_swp_r_r_m +emit_swp :: emit_swp_r_r_m +inst_swpa :: inst_swpa_r_r_m +emit_swpa :: emit_swpa_r_r_m +inst_swpl :: inst_swpl_r_r_m +emit_swpl :: emit_swpl_r_r_m +inst_swpal :: inst_swpal_r_r_m +emit_swpal :: emit_swpal_r_r_m +inst_cas :: inst_cas_r_r_m +emit_cas :: emit_cas_r_r_m +inst_casa :: inst_casa_r_r_m +emit_casa :: emit_casa_r_r_m +inst_casl :: inst_casl_r_r_m +emit_casl :: emit_casl_r_r_m +inst_casal :: inst_casal_r_r_m +emit_casal :: emit_casal_r_r_m +inst_casb :: inst_casb_r_r_m +emit_casb :: emit_casb_r_r_m +inst_casab :: inst_casab_r_r_m +emit_casab :: emit_casab_r_r_m +inst_caslb :: inst_caslb_r_r_m +emit_caslb :: emit_caslb_r_r_m +inst_casalb :: inst_casalb_r_r_m +emit_casalb :: emit_casalb_r_r_m +inst_cash :: inst_cash_r_r_m +emit_cash :: emit_cash_r_r_m +inst_casah :: inst_casah_r_r_m +emit_casah :: emit_casah_r_r_m +inst_caslh :: inst_caslh_r_r_m +emit_caslh :: emit_caslh_r_r_m +inst_casalh :: inst_casalh_r_r_m +emit_casalh :: emit_casalh_r_r_m +inst_casp :: inst_casp_r_r_m +emit_casp :: emit_casp_r_r_m +inst_caspa :: inst_caspa_r_r_m +emit_caspa :: emit_caspa_r_r_m +inst_caspl :: inst_caspl_r_r_m +emit_caspl :: emit_caspl_r_r_m +inst_caspal :: inst_caspal_r_r_m +emit_caspal :: emit_caspal_r_r_m +inst_pacia :: inst_pacia_r_r +emit_pacia :: emit_pacia_r_r +inst_pacib :: inst_pacib_r_r +emit_pacib :: emit_pacib_r_r +inst_pacda :: inst_pacda_r_r +emit_pacda :: emit_pacda_r_r +inst_pacdb :: inst_pacdb_r_r +emit_pacdb :: emit_pacdb_r_r +inst_paciza :: inst_paciza_r +emit_paciza :: emit_paciza_r +inst_pacizb :: inst_pacizb_r +emit_pacizb :: emit_pacizb_r +inst_pacdza :: inst_pacdza_r +emit_pacdza :: emit_pacdza_r +inst_pacdzb :: inst_pacdzb_r +emit_pacdzb :: emit_pacdzb_r +inst_autia :: inst_autia_r_r +emit_autia :: emit_autia_r_r +inst_autib :: inst_autib_r_r +emit_autib :: emit_autib_r_r +inst_autda :: inst_autda_r_r +emit_autda :: emit_autda_r_r +inst_autdb :: inst_autdb_r_r +emit_autdb :: emit_autdb_r_r +inst_autiza :: inst_autiza_r +emit_autiza :: emit_autiza_r +inst_autizb :: inst_autizb_r +emit_autizb :: emit_autizb_r +inst_autdza :: inst_autdza_r +emit_autdza :: emit_autdza_r +inst_autdzb :: inst_autdzb_r +emit_autdzb :: emit_autdzb_r +inst_paciasp :: inst_paciasp_none +emit_paciasp :: emit_paciasp_none +inst_pacibsp :: inst_pacibsp_none +emit_pacibsp :: emit_pacibsp_none +inst_autiasp :: inst_autiasp_none +emit_autiasp :: emit_autiasp_none +inst_autibsp :: inst_autibsp_none +emit_autibsp :: emit_autibsp_none +inst_pacia1716 :: inst_pacia1716_none +emit_pacia1716 :: emit_pacia1716_none +inst_pacib1716 :: inst_pacib1716_none +emit_pacib1716 :: emit_pacib1716_none +inst_autia1716 :: inst_autia1716_none +emit_autia1716 :: emit_autia1716_none +inst_autib1716 :: inst_autib1716_none +emit_autib1716 :: emit_autib1716_none +inst_pacga :: inst_pacga_r_r_r +emit_pacga :: emit_pacga_r_r_r +inst_xpaci :: inst_xpaci_r +emit_xpaci :: emit_xpaci_r +inst_xpacd :: inst_xpacd_r +emit_xpacd :: emit_xpacd_r +inst_xpaclri :: inst_xpaclri_none +emit_xpaclri :: emit_xpaclri_none +inst_retaa :: inst_retaa_none +emit_retaa :: emit_retaa_none +inst_retab :: inst_retab_none +emit_retab :: emit_retab_none +inst_braa :: inst_braa_r_r +emit_braa :: emit_braa_r_r +inst_brab :: inst_brab_r_r +emit_brab :: emit_brab_r_r +inst_braaz :: inst_braaz_r +emit_braaz :: emit_braaz_r +inst_brabz :: inst_brabz_r +emit_brabz :: emit_brabz_r +inst_blraa :: inst_blraa_r_r +emit_blraa :: emit_blraa_r_r +inst_blrab :: inst_blrab_r_r +emit_blrab :: emit_blrab_r_r +inst_blraaz :: inst_blraaz_r +emit_blraaz :: emit_blraaz_r +inst_blrabz :: inst_blrabz_r +emit_blrabz :: emit_blrabz_r +inst_eretaa :: inst_eretaa_none +emit_eretaa :: emit_eretaa_none +inst_eretab :: inst_eretab_none +emit_eretab :: emit_eretab_none +inst_bti :: inst_bti_none +emit_bti :: emit_bti_none +inst_irg :: inst_irg_r_r_r +emit_irg :: emit_irg_r_r_r +inst_addg :: inst_addg_r_r_i_i +emit_addg :: emit_addg_r_r_i_i +inst_subg :: inst_subg_r_r_i_i +emit_subg :: emit_subg_r_r_i_i +inst_gmi :: inst_gmi_r_r_r +emit_gmi :: emit_gmi_r_r_r +inst_subp :: inst_subp_r_r_r +emit_subp :: emit_subp_r_r_r +inst_subps :: inst_subps_r_r_r +emit_subps :: emit_subps_r_r_r +inst_ldg :: inst_ldg_r_m +emit_ldg :: emit_ldg_r_m +inst_stg :: inst_stg_r_m +emit_stg :: emit_stg_r_m +inst_st2g :: inst_st2g_r_m +emit_st2g :: emit_st2g_r_m +inst_stzg :: inst_stzg_r_m +emit_stzg :: emit_stzg_r_m +inst_stz2g :: inst_stz2g_r_m +emit_stz2g :: emit_stz2g_r_m +inst_stgp :: inst_stgp_r_r_m +emit_stgp :: emit_stgp_r_r_m +inst_ldgm :: inst_ldgm_r_m +emit_ldgm :: emit_ldgm_r_m +inst_stgm :: inst_stgm_r_m +emit_stgm :: emit_stgm_r_m +inst_stzgm :: inst_stzgm_r_m +emit_stzgm :: emit_stzgm_r_m +inst_crc32b :: inst_crc32b_r_r_r +emit_crc32b :: emit_crc32b_r_r_r +inst_crc32h :: inst_crc32h_r_r_r +emit_crc32h :: emit_crc32h_r_r_r +inst_crc32w :: inst_crc32w_r_r_r +emit_crc32w :: emit_crc32w_r_r_r +inst_crc32x :: inst_crc32x_r_r_r +emit_crc32x :: emit_crc32x_r_r_r +inst_crc32cb :: inst_crc32cb_r_r_r +emit_crc32cb :: emit_crc32cb_r_r_r +inst_crc32ch :: inst_crc32ch_r_r_r +emit_crc32ch :: emit_crc32ch_r_r_r +inst_crc32cw :: inst_crc32cw_r_r_r +emit_crc32cw :: emit_crc32cw_r_r_r +inst_crc32cx :: inst_crc32cx_r_r_r +emit_crc32cx :: emit_crc32cx_r_r_r +inst_aese :: proc{ inst_aese_v16b_v16b, inst_aese_zb_zb_zb } +emit_aese :: proc{ emit_aese_v16b_v16b, emit_aese_zb_zb_zb } +inst_aesd :: proc{ inst_aesd_v16b_v16b, inst_aesd_zb_zb_zb } +emit_aesd :: proc{ emit_aesd_v16b_v16b, emit_aesd_zb_zb_zb } +inst_aesmc :: proc{ inst_aesmc_v16b_v16b, inst_aesmc_zb_zb } +emit_aesmc :: proc{ emit_aesmc_v16b_v16b, emit_aesmc_zb_zb } +inst_aesimc :: proc{ inst_aesimc_v16b_v16b, inst_aesimc_zb_zb } +emit_aesimc :: proc{ emit_aesimc_v16b_v16b, emit_aesimc_zb_zb } +inst_sha1h :: inst_sha1h_r_r +emit_sha1h :: emit_sha1h_r_r +inst_sha1c :: inst_sha1c_r_r_v4s +emit_sha1c :: emit_sha1c_r_r_v4s +inst_sha1p :: inst_sha1p_r_r_v4s +emit_sha1p :: emit_sha1p_r_r_v4s +inst_sha1m :: inst_sha1m_r_r_v4s +emit_sha1m :: emit_sha1m_r_r_v4s +inst_sha1su0 :: inst_sha1su0_v4s_v4s_v4s +emit_sha1su0 :: emit_sha1su0_v4s_v4s_v4s +inst_sha1su1 :: inst_sha1su1_v4s_v4s +emit_sha1su1 :: emit_sha1su1_v4s_v4s +inst_sha256h :: inst_sha256h_r_r_v4s +emit_sha256h :: emit_sha256h_r_r_v4s +inst_sha256h2 :: inst_sha256h2_r_r_v4s +emit_sha256h2 :: emit_sha256h2_r_r_v4s +inst_sha256su0 :: inst_sha256su0_v4s_v4s +emit_sha256su0 :: emit_sha256su0_v4s_v4s +inst_sha256su1 :: inst_sha256su1_v4s_v4s_v4s +emit_sha256su1 :: emit_sha256su1_v4s_v4s_v4s +inst_sha512h :: inst_sha512h_r_r_v2d +emit_sha512h :: emit_sha512h_r_r_v2d +inst_sha512h2 :: inst_sha512h2_r_r_v2d +emit_sha512h2 :: emit_sha512h2_r_r_v2d +inst_sha512su0 :: inst_sha512su0_v2d_v2d +emit_sha512su0 :: emit_sha512su0_v2d_v2d +inst_sha512su1 :: inst_sha512su1_v2d_v2d_v2d +emit_sha512su1 :: emit_sha512su1_v2d_v2d_v2d +inst_eor3 :: proc{ inst_eor3_v16b_v16b_v16b_v16b, inst_eor3_zd_zd_zd_zd } +emit_eor3 :: proc{ emit_eor3_v16b_v16b_v16b_v16b, emit_eor3_zd_zd_zd_zd } +inst_bcax :: proc{ inst_bcax_v16b_v16b_v16b_v16b, inst_bcax_zd_zd_zd_zd } +emit_bcax :: proc{ emit_bcax_v16b_v16b_v16b_v16b, emit_bcax_zd_zd_zd_zd } +inst_rax1 :: inst_rax1_v2d_v2d_v2d +emit_rax1 :: emit_rax1_v2d_v2d_v2d +inst_xar :: proc{ inst_xar_v2d_v2d_v2d_i, inst_xar_zd_zd_zd_i } +emit_xar :: proc{ emit_xar_v2d_v2d_v2d_i, emit_xar_zd_zd_zd_i } +inst_sm3partw1 :: inst_sm3partw1_v4s_v4s_v4s +emit_sm3partw1 :: emit_sm3partw1_v4s_v4s_v4s +inst_sm3partw2 :: inst_sm3partw2_v4s_v4s_v4s +emit_sm3partw2 :: emit_sm3partw2_v4s_v4s_v4s +inst_sm3ss1 :: inst_sm3ss1_v4s_v4s_v4s_v4s +emit_sm3ss1 :: emit_sm3ss1_v4s_v4s_v4s_v4s +inst_sm3tt1a :: inst_sm3tt1a_v4s_v4s_ves_i +emit_sm3tt1a :: emit_sm3tt1a_v4s_v4s_ves_i +inst_sm3tt1b :: inst_sm3tt1b_v4s_v4s_ves_i +emit_sm3tt1b :: emit_sm3tt1b_v4s_v4s_ves_i +inst_sm3tt2a :: inst_sm3tt2a_v4s_v4s_ves_i +emit_sm3tt2a :: emit_sm3tt2a_v4s_v4s_ves_i +inst_sm3tt2b :: inst_sm3tt2b_v4s_v4s_ves_i +emit_sm3tt2b :: emit_sm3tt2b_v4s_v4s_ves_i +inst_sm4e :: inst_sm4e_v4s_v4s +emit_sm4e :: emit_sm4e_v4s_v4s +inst_sm4ekey :: inst_sm4ekey_v4s_v4s_v4s +emit_sm4ekey :: emit_sm4ekey_v4s_v4s_v4s +inst_pmull :: inst_pmull_v8h_v8b_v8b +emit_pmull :: emit_pmull_v8h_v8b_v8b +inst_pmull2 :: inst_pmull2_v8h_v16b_v16b +emit_pmull2 :: emit_pmull2_v8h_v16b_v16b +inst_bfcvt :: proc{ inst_bfcvt_r_r, inst_bfcvt_zh_p_zs } +emit_bfcvt :: proc{ emit_bfcvt_r_r, emit_bfcvt_zh_p_zs } +inst_bfdot :: inst_bfdot_v4s_v8h_v8h +emit_bfdot :: emit_bfdot_v4s_v8h_v8h +inst_bfmmla :: inst_bfmmla_v4s_v8h_v8h +emit_bfmmla :: emit_bfmmla_v4s_v8h_v8h +inst_bfmlalb :: inst_bfmlalb_v4s_v8h_v8h +emit_bfmlalb :: emit_bfmlalb_v4s_v8h_v8h +inst_bfmlalt :: inst_bfmlalt_v4s_v8h_v8h +emit_bfmlalt :: emit_bfmlalt_v4s_v8h_v8h +inst_bfcvtn :: inst_bfcvtn_v4h_v4s +emit_bfcvtn :: emit_bfcvtn_v4h_v4s +inst_bfcvtn2 :: inst_bfcvtn2_v8h_v4s +emit_bfcvtn2 :: emit_bfcvtn2_v8h_v4s +inst_mul :: proc{ inst_mul_v16b_v16b_v16b, inst_mul_zb_p_zb_zb } +emit_mul :: proc{ emit_mul_v16b_v16b_v16b, emit_mul_zb_p_zb_zb } +inst_mla :: inst_mla_v8b_v8b_v8b +emit_mla :: emit_mla_v8b_v8b_v8b +inst_mls :: inst_mls_v8b_v8b_v8b +emit_mls :: emit_mls_v8b_v8b_v8b +inst_neg :: proc{ inst_neg_v8b_v8b, inst_neg_zb_p_zb, inst_neg_r_sh } +emit_neg :: proc{ emit_neg_v8b_v8b, emit_neg_zb_p_zb, emit_neg_r_sh } +inst_abs :: proc{ inst_abs_v8b_v8b, inst_abs_zb_p_zb } +emit_abs :: proc{ emit_abs_v8b_v8b, emit_abs_zb_p_zb } +inst_shadd :: inst_shadd_v8b_v8b_v8b +emit_shadd :: emit_shadd_v8b_v8b_v8b +inst_uhadd :: inst_uhadd_v8b_v8b_v8b +emit_uhadd :: emit_uhadd_v8b_v8b_v8b +inst_shsub :: inst_shsub_v8b_v8b_v8b +emit_shsub :: emit_shsub_v8b_v8b_v8b +inst_uhsub :: inst_uhsub_v8b_v8b_v8b +emit_uhsub :: emit_uhsub_v8b_v8b_v8b +inst_srhadd :: inst_srhadd_v8b_v8b_v8b +emit_srhadd :: emit_srhadd_v8b_v8b_v8b +inst_urhadd :: inst_urhadd_v8b_v8b_v8b +emit_urhadd :: emit_urhadd_v8b_v8b_v8b +inst_sqadd :: proc{ inst_sqadd_v8b_v8b_v8b, inst_sqadd_zb_zb_zb } +emit_sqadd :: proc{ emit_sqadd_v8b_v8b_v8b, emit_sqadd_zb_zb_zb } +inst_uqadd :: proc{ inst_uqadd_v8b_v8b_v8b, inst_uqadd_zb_zb_zb } +emit_uqadd :: proc{ emit_uqadd_v8b_v8b_v8b, emit_uqadd_zb_zb_zb } +inst_sqsub :: proc{ inst_sqsub_v8b_v8b_v8b, inst_sqsub_zb_zb_zb } +emit_sqsub :: proc{ emit_sqsub_v8b_v8b_v8b, emit_sqsub_zb_zb_zb } +inst_uqsub :: proc{ inst_uqsub_v8b_v8b_v8b, inst_uqsub_zb_zb_zb } +emit_uqsub :: proc{ emit_uqsub_v8b_v8b_v8b, emit_uqsub_zb_zb_zb } +inst_smax :: proc{ inst_smax_v8b_v8b_v8b, inst_smax_zb_p_zb_zb } +emit_smax :: proc{ emit_smax_v8b_v8b_v8b, emit_smax_zb_p_zb_zb } +inst_umax :: proc{ inst_umax_v8b_v8b_v8b, inst_umax_zb_p_zb_zb } +emit_umax :: proc{ emit_umax_v8b_v8b_v8b, emit_umax_zb_p_zb_zb } +inst_smin :: proc{ inst_smin_v8b_v8b_v8b, inst_smin_zb_p_zb_zb } +emit_smin :: proc{ emit_smin_v8b_v8b_v8b, emit_smin_zb_p_zb_zb } +inst_umin :: proc{ inst_umin_v8b_v8b_v8b, inst_umin_zb_p_zb_zb } +emit_umin :: proc{ emit_umin_v8b_v8b_v8b, emit_umin_zb_p_zb_zb } +inst_sabd :: proc{ inst_sabd_v8b_v8b_v8b, inst_sabd_zb_p_zb_zb } +emit_sabd :: proc{ emit_sabd_v8b_v8b_v8b, emit_sabd_zb_p_zb_zb } +inst_uabd :: proc{ inst_uabd_v8b_v8b_v8b, inst_uabd_zb_p_zb_zb } +emit_uabd :: proc{ emit_uabd_v8b_v8b_v8b, emit_uabd_zb_p_zb_zb } +inst_saba :: inst_saba_v8b_v8b_v8b +emit_saba :: emit_saba_v8b_v8b_v8b +inst_uaba :: inst_uaba_v8b_v8b_v8b +emit_uaba :: emit_uaba_v8b_v8b_v8b +inst_addp :: inst_addp_v8b_v8b_v8b +emit_addp :: emit_addp_v8b_v8b_v8b +inst_addv :: inst_addv_r_v8b +emit_addv :: emit_addv_r_v8b +inst_saddlp :: inst_saddlp_v4h_v8b +emit_saddlp :: emit_saddlp_v4h_v8b +inst_uaddlp :: inst_uaddlp_v4h_v8b +emit_uaddlp :: emit_uaddlp_v4h_v8b +inst_sadalp :: inst_sadalp_v4h_v8b +emit_sadalp :: emit_sadalp_v4h_v8b +inst_uadalp :: inst_uadalp_v4h_v8b +emit_uadalp :: emit_uadalp_v4h_v8b +inst_saddlv :: inst_saddlv_r_v8b +emit_saddlv :: emit_saddlv_r_v8b +inst_uaddlv :: inst_uaddlv_r_v8b +emit_uaddlv :: emit_uaddlv_r_v8b +inst_smaxv :: inst_smaxv_r_v8b +emit_smaxv :: emit_smaxv_r_v8b +inst_umaxv :: inst_umaxv_r_v8b +emit_umaxv :: emit_umaxv_r_v8b +inst_sminv :: inst_sminv_r_v8b +emit_sminv :: emit_sminv_r_v8b +inst_uminv :: inst_uminv_r_v8b +emit_uminv :: emit_uminv_r_v8b +inst_smaxp :: inst_smaxp_v8b_v8b_v8b +emit_smaxp :: emit_smaxp_v8b_v8b_v8b +inst_umaxp :: inst_umaxp_v8b_v8b_v8b +emit_umaxp :: emit_umaxp_v8b_v8b_v8b +inst_sminp :: inst_sminp_v8b_v8b_v8b +emit_sminp :: emit_sminp_v8b_v8b_v8b +inst_uminp :: inst_uminp_v8b_v8b_v8b +emit_uminp :: emit_uminp_v8b_v8b_v8b +inst_saddl :: inst_saddl_v8h_v8b_v8b +emit_saddl :: emit_saddl_v8h_v8b_v8b +inst_saddl2 :: inst_saddl2_v8h_v16b_v16b +emit_saddl2 :: emit_saddl2_v8h_v16b_v16b +inst_uaddl :: inst_uaddl_v8h_v8b_v8b +emit_uaddl :: emit_uaddl_v8h_v8b_v8b +inst_uaddl2 :: inst_uaddl2_v8h_v16b_v16b +emit_uaddl2 :: emit_uaddl2_v8h_v16b_v16b +inst_ssubl :: inst_ssubl_v8h_v8b_v8b +emit_ssubl :: emit_ssubl_v8h_v8b_v8b +inst_ssubl2 :: inst_ssubl2_v8h_v16b_v16b +emit_ssubl2 :: emit_ssubl2_v8h_v16b_v16b +inst_usubl :: inst_usubl_v8h_v8b_v8b +emit_usubl :: emit_usubl_v8h_v8b_v8b +inst_usubl2 :: inst_usubl2_v8h_v16b_v16b +emit_usubl2 :: emit_usubl2_v8h_v16b_v16b +inst_saddw :: inst_saddw_v8h_v8h_v8b +emit_saddw :: emit_saddw_v8h_v8h_v8b +inst_saddw2 :: inst_saddw2_v8h_v8h_v16b +emit_saddw2 :: emit_saddw2_v8h_v8h_v16b +inst_uaddw :: inst_uaddw_v8h_v8h_v8b +emit_uaddw :: emit_uaddw_v8h_v8h_v8b +inst_uaddw2 :: inst_uaddw2_v8h_v8h_v16b +emit_uaddw2 :: emit_uaddw2_v8h_v8h_v16b +inst_ssubw :: inst_ssubw_v8h_v8h_v8b +emit_ssubw :: emit_ssubw_v8h_v8h_v8b +inst_ssubw2 :: inst_ssubw2_v8h_v8h_v16b +emit_ssubw2 :: emit_ssubw2_v8h_v8h_v16b +inst_usubw :: inst_usubw_v8h_v8h_v8b +emit_usubw :: emit_usubw_v8h_v8h_v8b +inst_usubw2 :: inst_usubw2_v8h_v8h_v16b +emit_usubw2 :: emit_usubw2_v8h_v8h_v16b +inst_raddhn :: inst_raddhn_v8b_v8h_v8h +emit_raddhn :: emit_raddhn_v8b_v8h_v8h +inst_raddhn2 :: inst_raddhn2_v16b_v8h_v8h +emit_raddhn2 :: emit_raddhn2_v16b_v8h_v8h +inst_rsubhn :: inst_rsubhn_v8b_v8h_v8h +emit_rsubhn :: emit_rsubhn_v8b_v8h_v8h +inst_rsubhn2 :: inst_rsubhn2_v16b_v8h_v8h +emit_rsubhn2 :: emit_rsubhn2_v16b_v8h_v8h +inst_addhn :: inst_addhn_v8b_v8h_v8h +emit_addhn :: emit_addhn_v8b_v8h_v8h +inst_addhn2 :: inst_addhn2_v16b_v8h_v8h +emit_addhn2 :: emit_addhn2_v16b_v8h_v8h +inst_subhn :: inst_subhn_v8b_v8h_v8h +emit_subhn :: emit_subhn_v8b_v8h_v8h +inst_subhn2 :: inst_subhn2_v16b_v8h_v8h +emit_subhn2 :: emit_subhn2_v16b_v8h_v8h +inst_xtn :: inst_xtn_v8b_v8h +emit_xtn :: emit_xtn_v8b_v8h +inst_xtn2 :: inst_xtn2_v16b_v8h +emit_xtn2 :: emit_xtn2_v16b_v8h +inst_sqxtn :: inst_sqxtn_v8b_v8h +emit_sqxtn :: emit_sqxtn_v8b_v8h +inst_sqxtn2 :: inst_sqxtn2_v16b_v8h +emit_sqxtn2 :: emit_sqxtn2_v16b_v8h +inst_uqxtn :: inst_uqxtn_v8b_v8h +emit_uqxtn :: emit_uqxtn_v8b_v8h +inst_uqxtn2 :: inst_uqxtn2_v16b_v8h +emit_uqxtn2 :: emit_uqxtn2_v16b_v8h +inst_sqxtun :: inst_sqxtun_v8b_v8h +emit_sqxtun :: emit_sqxtun_v8b_v8h +inst_sqxtun2 :: inst_sqxtun2_v16b_v8h +emit_sqxtun2 :: emit_sqxtun2_v16b_v8h +inst_smull :: inst_smull_v8h_v8b_v8b +emit_smull :: emit_smull_v8h_v8b_v8b +inst_smull2 :: inst_smull2_v8h_v16b_v16b +emit_smull2 :: emit_smull2_v8h_v16b_v16b +inst_umull :: inst_umull_v8h_v8b_v8b +emit_umull :: emit_umull_v8h_v8b_v8b +inst_umull2 :: inst_umull2_v8h_v16b_v16b +emit_umull2 :: emit_umull2_v8h_v16b_v16b +inst_smlal :: inst_smlal_v8h_v8b_v8b +emit_smlal :: emit_smlal_v8h_v8b_v8b +inst_smlal2 :: inst_smlal2_v8h_v16b_v16b +emit_smlal2 :: emit_smlal2_v8h_v16b_v16b +inst_umlal :: inst_umlal_v8h_v8b_v8b +emit_umlal :: emit_umlal_v8h_v8b_v8b +inst_umlal2 :: inst_umlal2_v8h_v16b_v16b +emit_umlal2 :: emit_umlal2_v8h_v16b_v16b +inst_smlsl :: inst_smlsl_v8h_v8b_v8b +emit_smlsl :: emit_smlsl_v8h_v8b_v8b +inst_smlsl2 :: inst_smlsl2_v8h_v16b_v16b +emit_smlsl2 :: emit_smlsl2_v8h_v16b_v16b +inst_umlsl :: inst_umlsl_v8h_v8b_v8b +emit_umlsl :: emit_umlsl_v8h_v8b_v8b +inst_umlsl2 :: inst_umlsl2_v8h_v16b_v16b +emit_umlsl2 :: emit_umlsl2_v8h_v16b_v16b +inst_sqdmull :: inst_sqdmull_v4s_v4h_v4h +emit_sqdmull :: emit_sqdmull_v4s_v4h_v4h +inst_sqdmull2 :: inst_sqdmull2_v4s_v8h_v8h +emit_sqdmull2 :: emit_sqdmull2_v4s_v8h_v8h +inst_sqdmlal :: inst_sqdmlal_v4s_v4h_v4h +emit_sqdmlal :: emit_sqdmlal_v4s_v4h_v4h +inst_sqdmlal2 :: inst_sqdmlal2_v4s_v8h_v8h +emit_sqdmlal2 :: emit_sqdmlal2_v4s_v8h_v8h +inst_sqdmlsl :: inst_sqdmlsl_v4s_v4h_v4h +emit_sqdmlsl :: emit_sqdmlsl_v4s_v4h_v4h +inst_sqdmlsl2 :: inst_sqdmlsl2_v4s_v8h_v8h +emit_sqdmlsl2 :: emit_sqdmlsl2_v4s_v8h_v8h +inst_sqdmulh :: inst_sqdmulh_v4h_v4h_v4h +emit_sqdmulh :: emit_sqdmulh_v4h_v4h_v4h +inst_sqrdmulh :: inst_sqrdmulh_v4h_v4h_v4h +emit_sqrdmulh :: emit_sqrdmulh_v4h_v4h_v4h +inst_sdot :: inst_sdot_v2s_v8b_v8b +emit_sdot :: emit_sdot_v2s_v8b_v8b +inst_udot :: inst_udot_v2s_v8b_v8b +emit_udot :: emit_udot_v2s_v8b_v8b +inst_usdot :: inst_usdot_v2s_v8b_v8b +emit_usdot :: emit_usdot_v2s_v8b_v8b +inst_fmla :: proc{ inst_fmla_v4s_v4s_v4s, inst_fmla_zh_p_zh_zh, inst_fmla_zh_zh_zh_i } +emit_fmla :: proc{ emit_fmla_v4s_v4s_v4s, emit_fmla_zh_p_zh_zh, emit_fmla_zh_zh_zh_i } +inst_fmls :: proc{ inst_fmls_v4s_v4s_v4s, inst_fmls_zh_p_zh_zh, inst_fmls_zh_zh_zh_i } +emit_fmls :: proc{ emit_fmls_v4s_v4s_v4s, emit_fmls_zh_p_zh_zh, emit_fmls_zh_zh_zh_i } +inst_fmulx :: inst_fmulx_v2s_v2s_v2s +emit_fmulx :: emit_fmulx_v2s_v2s_v2s +inst_fmaxp :: inst_fmaxp_v2s_v2s_v2s +emit_fmaxp :: emit_fmaxp_v2s_v2s_v2s +inst_fminp :: inst_fminp_v2s_v2s_v2s +emit_fminp :: emit_fminp_v2s_v2s_v2s +inst_fmaxnmp :: inst_fmaxnmp_v2s_v2s_v2s +emit_fmaxnmp :: emit_fmaxnmp_v2s_v2s_v2s +inst_fminnmp :: inst_fminnmp_v2s_v2s_v2s +emit_fminnmp :: emit_fminnmp_v2s_v2s_v2s +inst_fmaxv :: inst_fmaxv_r_v4s +emit_fmaxv :: emit_fmaxv_r_v4s +inst_fminv :: inst_fminv_r_v4s +emit_fminv :: emit_fminv_r_v4s +inst_fmaxnmv :: inst_fmaxnmv_r_v4s +emit_fmaxnmv :: emit_fmaxnmv_r_v4s +inst_fminnmv :: inst_fminnmv_r_v4s +emit_fminnmv :: emit_fminnmv_r_v4s +inst_frecpe :: inst_frecpe_v2s_v2s +emit_frecpe :: emit_frecpe_v2s_v2s +inst_frsqrte :: inst_frsqrte_v2s_v2s +emit_frsqrte :: emit_frsqrte_v2s_v2s +inst_frecps :: proc{ inst_frecps_v2s_v2s_v2s, inst_frecps_zh_zh_zh } +emit_frecps :: proc{ emit_frecps_v2s_v2s_v2s, emit_frecps_zh_zh_zh } +inst_frsqrts :: proc{ inst_frsqrts_v2s_v2s_v2s, inst_frsqrts_zh_zh_zh } +emit_frsqrts :: proc{ emit_frsqrts_v2s_v2s_v2s, emit_frsqrts_zh_zh_zh } +inst_frecpx :: proc{ inst_frecpx_r_r, inst_frecpx_zh_p_zh } +emit_frecpx :: proc{ emit_frecpx_r_r, emit_frecpx_zh_p_zh } +inst_faddp :: inst_faddp_v2s_v2s_v2s +emit_faddp :: emit_faddp_v2s_v2s_v2s +inst_fcvtl :: inst_fcvtl_v4s_v4h +emit_fcvtl :: emit_fcvtl_v4s_v4h +inst_fcvtl2 :: inst_fcvtl2_v4s_v8h +emit_fcvtl2 :: emit_fcvtl2_v4s_v8h +inst_fcvtn :: inst_fcvtn_v4h_v4s +emit_fcvtn :: emit_fcvtn_v4h_v4s +inst_fcvtn2 :: inst_fcvtn2_v8h_v4s +emit_fcvtn2 :: emit_fcvtn2_v8h_v4s +inst_fcvtxn :: inst_fcvtxn_v2s_v2d +emit_fcvtxn :: emit_fcvtxn_v2s_v2d +inst_fcvtxn2 :: inst_fcvtxn2_v4s_v2d +emit_fcvtxn2 :: emit_fcvtxn2_v4s_v2d +inst_fcmeq :: proc{ inst_fcmeq_v2s_v2s_v2s, inst_fcmeq_ph_p_zh_zh } +emit_fcmeq :: proc{ emit_fcmeq_v2s_v2s_v2s, emit_fcmeq_ph_p_zh_zh } +inst_fcmge :: proc{ inst_fcmge_v2s_v2s_v2s, inst_fcmge_ph_p_zh_zh } +emit_fcmge :: proc{ emit_fcmge_v2s_v2s_v2s, emit_fcmge_ph_p_zh_zh } +inst_fcmgt :: proc{ inst_fcmgt_v2s_v2s_v2s, inst_fcmgt_ph_p_zh_zh } +emit_fcmgt :: proc{ emit_fcmgt_v2s_v2s_v2s, emit_fcmgt_ph_p_zh_zh } +inst_fcmle :: proc{ inst_fcmle_v2s_v2s, inst_fcmle_ph_p_zh } +emit_fcmle :: proc{ emit_fcmle_v2s_v2s, emit_fcmle_ph_p_zh } +inst_fcmlt :: proc{ inst_fcmlt_v2s_v2s, inst_fcmlt_ph_p_zh } +emit_fcmlt :: proc{ emit_fcmlt_v2s_v2s, emit_fcmlt_ph_p_zh } +inst_facge :: inst_facge_v2s_v2s_v2s +emit_facge :: emit_facge_v2s_v2s_v2s +inst_facgt :: inst_facgt_v2s_v2s_v2s +emit_facgt :: emit_facgt_v2s_v2s_v2s +inst_cmeq :: inst_cmeq_v16b_v16b_v16b +emit_cmeq :: emit_cmeq_v16b_v16b_v16b +inst_cmge :: inst_cmge_v8b_v8b_v8b +emit_cmge :: emit_cmge_v8b_v8b_v8b +inst_cmgt :: inst_cmgt_v16b_v16b_v16b +emit_cmgt :: emit_cmgt_v16b_v16b_v16b +inst_cmhi :: inst_cmhi_v16b_v16b_v16b +emit_cmhi :: emit_cmhi_v16b_v16b_v16b +inst_cmhs :: inst_cmhs_v8b_v8b_v8b +emit_cmhs :: emit_cmhs_v8b_v8b_v8b +inst_cmle :: inst_cmle_v8b_v8b +emit_cmle :: emit_cmle_v8b_v8b +inst_cmlt :: inst_cmlt_v8b_v8b +emit_cmlt :: emit_cmlt_v8b_v8b +inst_cmtst :: inst_cmtst_v8b_v8b_v8b +emit_cmtst :: emit_cmtst_v8b_v8b_v8b +inst_mvn :: inst_mvn_v8b_v8b +emit_mvn :: emit_mvn_v8b_v8b +inst_bit :: inst_bit_v16b_v16b_v16b +emit_bit :: emit_bit_v16b_v16b_v16b +inst_bif :: inst_bif_v16b_v16b_v16b +emit_bif :: emit_bif_v16b_v16b_v16b +inst_bsl :: proc{ inst_bsl_v16b_v16b_v16b, inst_bsl_zd_zd_zd_zd } +emit_bsl :: proc{ emit_bsl_v16b_v16b_v16b, emit_bsl_zd_zd_zd_zd } +inst_shl :: inst_shl_v8b_v8b_i +emit_shl :: emit_shl_v8b_v8b_i +inst_sqshl :: inst_sqshl_v8b_v8b_i +emit_sqshl :: emit_sqshl_v8b_v8b_i +inst_sqshlu :: inst_sqshlu_v8b_v8b_i +emit_sqshlu :: emit_sqshlu_v8b_v8b_i +inst_srshl :: inst_srshl_v8b_v8b_v8b +emit_srshl :: emit_srshl_v8b_v8b_v8b +inst_urshl :: inst_urshl_v8b_v8b_v8b +emit_urshl :: emit_urshl_v8b_v8b_v8b +inst_sshr :: inst_sshr_v8b_v8b_i +emit_sshr :: emit_sshr_v8b_v8b_i +inst_ushr :: inst_ushr_v8b_v8b_i +emit_ushr :: emit_ushr_v8b_v8b_i +inst_ssra :: inst_ssra_v8b_v8b_i +emit_ssra :: emit_ssra_v8b_v8b_i +inst_usra :: inst_usra_v8b_v8b_i +emit_usra :: emit_usra_v8b_v8b_i +inst_srshr :: inst_srshr_v8b_v8b_i +emit_srshr :: emit_srshr_v8b_v8b_i +inst_urshr :: inst_urshr_v8b_v8b_i +emit_urshr :: emit_urshr_v8b_v8b_i +inst_srsra :: inst_srsra_v8b_v8b_i +emit_srsra :: emit_srsra_v8b_v8b_i +inst_ursra :: inst_ursra_v8b_v8b_i +emit_ursra :: emit_ursra_v8b_v8b_i +inst_sshl :: inst_sshl_v8b_v8b_v8b +emit_sshl :: emit_sshl_v8b_v8b_v8b +inst_ushl :: inst_ushl_v8b_v8b_v8b +emit_ushl :: emit_ushl_v8b_v8b_v8b +inst_sli :: inst_sli_v8b_v8b_i +emit_sli :: emit_sli_v8b_v8b_i +inst_sri :: inst_sri_v8b_v8b_i +emit_sri :: emit_sri_v8b_v8b_i +inst_sshll :: inst_sshll_v8h_v8b_i +emit_sshll :: emit_sshll_v8h_v8b_i +inst_sshll2 :: inst_sshll2_v8h_v16b_i +emit_sshll2 :: emit_sshll2_v8h_v16b_i +inst_ushll :: inst_ushll_v8h_v8b_i +emit_ushll :: emit_ushll_v8h_v8b_i +inst_ushll2 :: inst_ushll2_v8h_v16b_i +emit_ushll2 :: emit_ushll2_v8h_v16b_i +inst_sxtl :: inst_sxtl_v8h_v8b +emit_sxtl :: emit_sxtl_v8h_v8b +inst_sxtl2 :: inst_sxtl2_v8h_v16b +emit_sxtl2 :: emit_sxtl2_v8h_v16b +inst_uxtl :: inst_uxtl_v8h_v8b +emit_uxtl :: emit_uxtl_v8h_v8b +inst_uxtl2 :: inst_uxtl2_v8h_v16b +emit_uxtl2 :: emit_uxtl2_v8h_v16b +inst_shrn :: inst_shrn_v8b_v8h_i +emit_shrn :: emit_shrn_v8b_v8h_i +inst_shrn2 :: inst_shrn2_v16b_v8h_i +emit_shrn2 :: emit_shrn2_v16b_v8h_i +inst_rshrn :: inst_rshrn_v8b_v8h_i +emit_rshrn :: emit_rshrn_v8b_v8h_i +inst_rshrn2 :: inst_rshrn2_v16b_v8h_i +emit_rshrn2 :: emit_rshrn2_v16b_v8h_i +inst_sqshrn :: inst_sqshrn_v8b_v8h_i +emit_sqshrn :: emit_sqshrn_v8b_v8h_i +inst_sqshrn2 :: inst_sqshrn2_v16b_v8h_i +emit_sqshrn2 :: emit_sqshrn2_v16b_v8h_i +inst_uqshrn :: inst_uqshrn_v8b_v8h_i +emit_uqshrn :: emit_uqshrn_v8b_v8h_i +inst_uqshrn2 :: inst_uqshrn2_v16b_v8h_i +emit_uqshrn2 :: emit_uqshrn2_v16b_v8h_i +inst_sqrshrn :: inst_sqrshrn_v8b_v8h_i +emit_sqrshrn :: emit_sqrshrn_v8b_v8h_i +inst_sqrshrn2 :: inst_sqrshrn2_v16b_v8h_i +emit_sqrshrn2 :: emit_sqrshrn2_v16b_v8h_i +inst_uqrshrn :: inst_uqrshrn_v8b_v8h_i +emit_uqrshrn :: emit_uqrshrn_v8b_v8h_i +inst_uqrshrn2 :: inst_uqrshrn2_v16b_v8h_i +emit_uqrshrn2 :: emit_uqrshrn2_v16b_v8h_i +inst_sqshrun :: inst_sqshrun_v8b_v8h_i +emit_sqshrun :: emit_sqshrun_v8b_v8h_i +inst_sqshrun2 :: inst_sqshrun2_v16b_v8h_i +emit_sqshrun2 :: emit_sqshrun2_v16b_v8h_i +inst_sqrshrun :: inst_sqrshrun_v8b_v8h_i +emit_sqrshrun :: emit_sqrshrun_v8b_v8h_i +inst_sqrshrun2 :: inst_sqrshrun2_v16b_v8h_i +emit_sqrshrun2 :: emit_sqrshrun2_v16b_v8h_i +inst_dup :: proc{ inst_dup_v8b_veb_i, inst_dup_v8b_r, inst_dup_zb_r } +emit_dup :: proc{ emit_dup_v8b_veb_i, emit_dup_v8b_r, emit_dup_zb_r } +inst_ins :: proc{ inst_ins_veb_i_veb_i, inst_ins_veb_i_r } +emit_ins :: proc{ emit_ins_veb_i_veb_i, emit_ins_veb_i_r } +inst_mov :: proc{ inst_mov_v8b_v8b, inst_mov_zb_p_zb, inst_mov_pb_p, inst_mov_r_i } +emit_mov :: proc{ emit_mov_v8b_v8b, emit_mov_zb_p_zb, emit_mov_pb_p, emit_mov_r_i } +inst_ext :: proc{ inst_ext_v8b_v8b_v8b_i, inst_ext_zb_zb_zb_i } +emit_ext :: proc{ emit_ext_v8b_v8b_v8b_i, emit_ext_zb_zb_zb_i } +inst_tbl :: proc{ inst_tbl_v8b_v16b_v8b, inst_tbl_zb_zl1b_zb } +emit_tbl :: proc{ emit_tbl_v8b_v16b_v8b, emit_tbl_zb_zl1b_zb } +inst_tbx :: proc{ inst_tbx_v8b_v16b_v8b, inst_tbx_zb_zb_zb } +emit_tbx :: proc{ emit_tbx_v8b_v16b_v8b, emit_tbx_zb_zb_zb } +inst_zip1 :: proc{ inst_zip1_v8b_v8b_v8b, inst_zip1_zb_zb_zb } +emit_zip1 :: proc{ emit_zip1_v8b_v8b_v8b, emit_zip1_zb_zb_zb } +inst_zip2 :: proc{ inst_zip2_v8b_v8b_v8b, inst_zip2_zb_zb_zb } +emit_zip2 :: proc{ emit_zip2_v8b_v8b_v8b, emit_zip2_zb_zb_zb } +inst_uzp1 :: proc{ inst_uzp1_v8b_v8b_v8b, inst_uzp1_zb_zb_zb } +emit_uzp1 :: proc{ emit_uzp1_v8b_v8b_v8b, emit_uzp1_zb_zb_zb } +inst_uzp2 :: proc{ inst_uzp2_v8b_v8b_v8b, inst_uzp2_zb_zb_zb } +emit_uzp2 :: proc{ emit_uzp2_v8b_v8b_v8b, emit_uzp2_zb_zb_zb } +inst_trn1 :: proc{ inst_trn1_v8b_v8b_v8b, inst_trn1_zb_zb_zb } +emit_trn1 :: proc{ emit_trn1_v8b_v8b_v8b, emit_trn1_zb_zb_zb } +inst_trn2 :: proc{ inst_trn2_v8b_v8b_v8b, inst_trn2_zb_zb_zb } +emit_trn2 :: proc{ emit_trn2_v8b_v8b_v8b, emit_trn2_zb_zb_zb } +inst_not :: proc{ inst_not_v8b_v8b, inst_not_pb_p_pb } +emit_not :: proc{ emit_not_v8b_v8b, emit_not_pb_p_pb } +inst_rev64 :: inst_rev64_v8b_v8b +emit_rev64 :: emit_rev64_v8b_v8b +inst_cnt :: proc{ inst_cnt_v8b_v8b, inst_cnt_zb_p_zb } +emit_cnt :: proc{ emit_cnt_v8b_v8b, emit_cnt_zb_p_zb } +inst_urecpe :: inst_urecpe_v2s_v2s +emit_urecpe :: emit_urecpe_v2s_v2s +inst_ursqrte :: inst_ursqrte_v2s_v2s +emit_ursqrte :: emit_ursqrte_v2s_v2s +inst_movi :: inst_movi_v8b_i +emit_movi :: emit_movi_v8b_i +inst_mvni :: inst_mvni_v4h_i +emit_mvni :: emit_mvni_v4h_i +inst_ld1 :: proc{ inst_ld1_v16b_m, inst_ld1_veb_i_m } +emit_ld1 :: proc{ emit_ld1_v16b_m, emit_ld1_veb_i_m } +inst_ld2 :: proc{ inst_ld2_v16b_m, inst_ld2_veb_i_m } +emit_ld2 :: proc{ emit_ld2_v16b_m, emit_ld2_veb_i_m } +inst_ld3 :: proc{ inst_ld3_v16b_m, inst_ld3_veb_i_m } +emit_ld3 :: proc{ emit_ld3_v16b_m, emit_ld3_veb_i_m } +inst_ld4 :: proc{ inst_ld4_v16b_m, inst_ld4_veb_i_m } +emit_ld4 :: proc{ emit_ld4_v16b_m, emit_ld4_veb_i_m } +inst_st1 :: proc{ inst_st1_v16b_m, inst_st1_veb_i_m } +emit_st1 :: proc{ emit_st1_v16b_m, emit_st1_veb_i_m } +inst_st2 :: proc{ inst_st2_v16b_m, inst_st2_veb_i_m } +emit_st2 :: proc{ emit_st2_v16b_m, emit_st2_veb_i_m } +inst_st3 :: proc{ inst_st3_v16b_m, inst_st3_veb_i_m } +emit_st3 :: proc{ emit_st3_v16b_m, emit_st3_veb_i_m } +inst_st4 :: proc{ inst_st4_v16b_m, inst_st4_veb_i_m } +emit_st4 :: proc{ emit_st4_v16b_m, emit_st4_veb_i_m } +inst_ld1r :: inst_ld1r_v16b_m +emit_ld1r :: emit_ld1r_v16b_m +inst_ld2r :: inst_ld2r_v16b_m +emit_ld2r :: emit_ld2r_v16b_m +inst_ld3r :: inst_ld3r_v16b_m +emit_ld3r :: emit_ld3r_v16b_m +inst_ld4r :: inst_ld4r_v16b_m +emit_ld4r :: emit_ld4r_v16b_m +inst_subr :: inst_subr_zb_p_zb_zb +emit_subr :: emit_subr_zb_p_zb_zb +inst_asrr :: inst_asrr_zb_p_zb_zb +emit_asrr :: emit_asrr_zb_p_zb_zb +inst_lslr :: inst_lslr_zb_p_zb_zb +emit_lslr :: emit_lslr_zb_p_zb_zb +inst_lsrr :: inst_lsrr_zb_p_zb_zb +emit_lsrr :: emit_lsrr_zb_p_zb_zb +inst_ftsmul :: inst_ftsmul_zh_zh_zh +emit_ftsmul :: emit_ftsmul_zh_zh_zh +inst_fsubr :: inst_fsubr_zh_p_zh_zh +emit_fsubr :: emit_fsubr_zh_p_zh_zh +inst_fdivr :: inst_fdivr_zh_p_zh_zh +emit_fdivr :: emit_fdivr_zh_p_zh_zh +inst_fnmla :: inst_fnmla_zh_p_zh_zh +emit_fnmla :: emit_fnmla_zh_p_zh_zh +inst_fnmls :: inst_fnmls_zh_p_zh_zh +emit_fnmls :: emit_fnmls_zh_p_zh_zh +inst_nand :: inst_nand_pb_p_pb_pb +emit_nand :: emit_nand_pb_p_pb_pb +inst_nor :: inst_nor_pb_p_pb_pb +emit_nor :: emit_nor_pb_p_pb_pb +inst_sel :: inst_sel_pb_p_pb_pb +emit_sel :: emit_sel_pb_p_pb_pb +inst_orrs :: inst_orrs_pb_p_pb_pb +emit_orrs :: emit_orrs_pb_p_pb_pb +inst_eors :: inst_eors_pb_p_pb_pb +emit_eors :: emit_eors_pb_p_pb_pb +inst_nands :: inst_nands_pb_p_pb_pb +emit_nands :: emit_nands_pb_p_pb_pb +inst_nors :: inst_nors_pb_p_pb_pb +emit_nors :: emit_nors_pb_p_pb_pb +inst_orns :: inst_orns_pb_p_pb_pb +emit_orns :: emit_orns_pb_p_pb_pb +inst_movs :: inst_movs_pb_p_p +emit_movs :: emit_movs_pb_p_p +inst_ptrue :: inst_ptrue_pb_i +emit_ptrue :: emit_ptrue_pb_i +inst_ptrues :: inst_ptrues_pb_i +emit_ptrues :: emit_ptrues_pb_i +inst_pfalse :: inst_pfalse_pb +emit_pfalse :: emit_pfalse_pb +inst_pfirst :: inst_pfirst_pb_p_pb +emit_pfirst :: emit_pfirst_pb_p_pb +inst_pnext :: inst_pnext_pb_p_pb +emit_pnext :: emit_pnext_pb_p_pb +inst_brka :: inst_brka_pb_p_pb +emit_brka :: emit_brka_pb_p_pb +inst_brkb :: inst_brkb_pb_p_pb +emit_brkb :: emit_brkb_pb_p_pb +inst_brkas :: inst_brkas_pb_p_pb +emit_brkas :: emit_brkas_pb_p_pb +inst_brkbs :: inst_brkbs_pb_p_pb +emit_brkbs :: emit_brkbs_pb_p_pb +inst_brkpa :: inst_brkpa_pb_p_pb_pb +emit_brkpa :: emit_brkpa_pb_p_pb_pb +inst_brkpb :: inst_brkpb_pb_p_pb_pb +emit_brkpb :: emit_brkpb_pb_p_pb_pb +inst_brkn :: inst_brkn_pb_p_pb_pb +emit_brkn :: emit_brkn_pb_p_pb_pb +inst_rdffr :: inst_rdffr_pb +emit_rdffr :: emit_rdffr_pb +inst_wrffr :: inst_wrffr_pb +emit_wrffr :: emit_wrffr_pb +inst_setffr :: inst_setffr_none +emit_setffr :: emit_setffr_none +inst_cmpeq :: inst_cmpeq_pb_p_zb_zb +emit_cmpeq :: emit_cmpeq_pb_p_zb_zb +inst_cmpne :: inst_cmpne_pb_p_zb_zb +emit_cmpne :: emit_cmpne_pb_p_zb_zb +inst_cmpge :: inst_cmpge_pb_p_zb_zb +emit_cmpge :: emit_cmpge_pb_p_zb_zb +inst_cmpgt :: inst_cmpgt_pb_p_zb_zb +emit_cmpgt :: emit_cmpgt_pb_p_zb_zb +inst_cmple :: inst_cmple_pb_p_zb_zb +emit_cmple :: emit_cmple_pb_p_zb_zb +inst_cmplt :: inst_cmplt_pb_p_zb_zb +emit_cmplt :: emit_cmplt_pb_p_zb_zb +inst_cmphi :: inst_cmphi_pb_p_zb_zb +emit_cmphi :: emit_cmphi_pb_p_zb_zb +inst_cmphs :: inst_cmphs_pb_p_zb_zb +emit_cmphs :: emit_cmphs_pb_p_zb_zb +inst_cmplo :: inst_cmplo_pb_p_zb_zb +emit_cmplo :: emit_cmplo_pb_p_zb_zb +inst_cmpls :: inst_cmpls_pb_p_zb_zb +emit_cmpls :: emit_cmpls_pb_p_zb_zb +inst_fcmne :: inst_fcmne_ph_p_zh_zh +emit_fcmne :: emit_fcmne_ph_p_zh_zh +inst_fcmuo :: inst_fcmuo_ph_p_zh_zh +emit_fcmuo :: emit_fcmuo_ph_p_zh_zh +inst_insr :: inst_insr_zb_r +emit_insr :: emit_insr_zb_r +inst_cpy :: inst_cpy_zb_p_r +emit_cpy :: emit_cpy_zb_p_r +inst_compact :: inst_compact_zs_p_zs +emit_compact :: emit_compact_zs_p_zs +inst_ld1b :: proc{ inst_ld1b_zb_p_m, inst_ld1b_i_p_m } +emit_ld1b :: proc{ emit_ld1b_zb_p_m, emit_ld1b_i_p_m } +inst_ld1h :: proc{ inst_ld1h_zh_p_m, inst_ld1h_i_p_m } +emit_ld1h :: proc{ emit_ld1h_zh_p_m, emit_ld1h_i_p_m } +inst_ld1w :: proc{ inst_ld1w_zs_p_m, inst_ld1w_i_p_m } +emit_ld1w :: proc{ emit_ld1w_zs_p_m, emit_ld1w_i_p_m } +inst_ld1d :: proc{ inst_ld1d_zd_p_m, inst_ld1d_i_p_m } +emit_ld1d :: proc{ emit_ld1d_zd_p_m, emit_ld1d_i_p_m } +inst_ld1sb :: inst_ld1sb_zh_p_m +emit_ld1sb :: emit_ld1sb_zh_p_m +inst_ld1sh :: inst_ld1sh_zd_p_m +emit_ld1sh :: emit_ld1sh_zd_p_m +inst_ld1sw :: inst_ld1sw_zd_p_m +emit_ld1sw :: emit_ld1sw_zd_p_m +inst_st1b :: proc{ inst_st1b_zb_p_m, inst_st1b_i_p_m } +emit_st1b :: proc{ emit_st1b_zb_p_m, emit_st1b_i_p_m } +inst_st1h :: proc{ inst_st1h_zh_p_m, inst_st1h_i_p_m } +emit_st1h :: proc{ emit_st1h_zh_p_m, emit_st1h_i_p_m } +inst_st1w :: proc{ inst_st1w_zs_p_m, inst_st1w_i_p_m } +emit_st1w :: proc{ emit_st1w_zs_p_m, emit_st1w_i_p_m } +inst_st1d :: proc{ inst_st1d_zd_p_m, inst_st1d_i_p_m } +emit_st1d :: proc{ emit_st1d_zd_p_m, emit_st1d_i_p_m } +inst_ldff1b :: inst_ldff1b_zb_p_m +emit_ldff1b :: emit_ldff1b_zb_p_m +inst_ldff1h :: inst_ldff1h_zh_p_m +emit_ldff1h :: emit_ldff1h_zh_p_m +inst_ldff1w :: inst_ldff1w_zs_p_m +emit_ldff1w :: emit_ldff1w_zs_p_m +inst_ldff1d :: inst_ldff1d_zd_p_m +emit_ldff1d :: emit_ldff1d_zd_p_m +inst_whilege :: inst_whilege_pb_r_r +emit_whilege :: emit_whilege_pb_r_r +inst_whilegt :: inst_whilegt_pb_r_r +emit_whilegt :: emit_whilegt_pb_r_r +inst_whilele :: inst_whilele_pb_r_r +emit_whilele :: emit_whilele_pb_r_r +inst_whilelt :: inst_whilelt_pb_r_r +emit_whilelt :: emit_whilelt_pb_r_r +inst_whilehi :: inst_whilehi_pb_r_r +emit_whilehi :: emit_whilehi_pb_r_r +inst_whilehs :: inst_whilehs_pb_r_r +emit_whilehs :: emit_whilehs_pb_r_r +inst_whilelo :: inst_whilelo_pb_r_r +emit_whilelo :: emit_whilelo_pb_r_r +inst_whilels :: inst_whilels_pb_r_r +emit_whilels :: emit_whilels_pb_r_r +inst_sqrdmlah :: inst_sqrdmlah_zb_zb_zb +emit_sqrdmlah :: emit_sqrdmlah_zb_zb_zb +inst_sqrdmlsh :: inst_sqrdmlsh_zb_zb_zb +emit_sqrdmlsh :: emit_sqrdmlsh_zb_zb_zb +inst_adclb :: inst_adclb_zs_zs_zs +emit_adclb :: emit_adclb_zs_zs_zs +inst_adclt :: inst_adclt_zs_zs_zs +emit_adclt :: emit_adclt_zs_zs_zs +inst_sbclb :: inst_sbclb_zs_zs_zs +emit_sbclb :: emit_sbclb_zs_zs_zs +inst_sbclt :: inst_sbclt_zs_zs_zs +emit_sbclt :: emit_sbclt_zs_zs_zs +inst_match :: inst_match_pb_p_zb_zb +emit_match :: emit_match_pb_p_zb_zb +inst_nmatch :: inst_nmatch_pb_p_zb_zb +emit_nmatch :: emit_nmatch_pb_p_zb_zb +inst_histcnt :: inst_histcnt_zs_p_zs_zs +emit_histcnt :: emit_histcnt_zs_p_zs_zs +inst_histseg :: inst_histseg_zb_zb_zb +emit_histseg :: emit_histseg_zb_zb_zb +inst_smstart :: inst_smstart_none +emit_smstart :: emit_smstart_none +inst_smstop :: inst_smstop_none +emit_smstop :: emit_smstop_none +inst_rdsvl :: inst_rdsvl_r_i +emit_rdsvl :: emit_rdsvl_r_i +inst_addha :: inst_addha_i_p_p_zs +emit_addha :: emit_addha_i_p_p_zs +inst_addva :: inst_addva_i_p_p_zs +emit_addva :: emit_addva_i_p_p_zs +inst_zero :: inst_zero_i +emit_zero :: emit_zero_i +inst_fmopa :: inst_fmopa_i_p_p_zs_zs +emit_fmopa :: emit_fmopa_i_p_p_zs_zs +inst_fmops :: inst_fmops_i_p_p_zs_zs +emit_fmops :: emit_fmops_i_p_p_zs_zs +inst_bfmopa :: inst_bfmopa_i_p_p_zh_zh +emit_bfmopa :: emit_bfmopa_i_p_p_zh_zh +inst_bfmops :: inst_bfmops_i_p_p_zh_zh +emit_bfmops :: emit_bfmops_i_p_p_zh_zh +inst_smopa :: inst_smopa_i_p_p_zb_zb +emit_smopa :: emit_smopa_i_p_p_zb_zb +inst_smops :: inst_smops_i_p_p_zb_zb +emit_smops :: emit_smops_i_p_p_zb_zb +inst_umopa :: inst_umopa_i_p_p_zb_zb +emit_umopa :: emit_umopa_i_p_p_zb_zb +inst_umops :: inst_umops_i_p_p_zb_zb +emit_umops :: emit_umops_i_p_p_zb_zb +inst_usmopa :: inst_usmopa_i_p_p_zb_zb +emit_usmopa :: emit_usmopa_i_p_p_zb_zb +inst_sumopa :: inst_sumopa_i_p_p_zb_zb +emit_sumopa :: emit_sumopa_i_p_p_zb_zb +inst_cntb :: inst_cntb_r_i_i +emit_cntb :: emit_cntb_r_i_i +inst_cnth :: inst_cnth_r_i_i +emit_cnth :: emit_cnth_r_i_i +inst_cntw :: inst_cntw_r_i_i +emit_cntw :: emit_cntw_r_i_i +inst_cntd :: inst_cntd_r_i_i +emit_cntd :: emit_cntd_r_i_i +inst_incb :: inst_incb_r_i_i +emit_incb :: emit_incb_r_i_i +inst_inch :: proc{ inst_inch_r_i_i, inst_inch_zh_i_i } +emit_inch :: proc{ emit_inch_r_i_i, emit_inch_zh_i_i } +inst_incw :: proc{ inst_incw_r_i_i, inst_incw_zs_i_i } +emit_incw :: proc{ emit_incw_r_i_i, emit_incw_zs_i_i } +inst_incd :: proc{ inst_incd_r_i_i, inst_incd_zd_i_i } +emit_incd :: proc{ emit_incd_r_i_i, emit_incd_zd_i_i } +inst_decb :: inst_decb_r_i_i +emit_decb :: emit_decb_r_i_i +inst_dech :: proc{ inst_dech_r_i_i, inst_dech_zh_i_i } +emit_dech :: proc{ emit_dech_r_i_i, emit_dech_zh_i_i } +inst_decw :: proc{ inst_decw_r_i_i, inst_decw_zs_i_i } +emit_decw :: proc{ emit_decw_r_i_i, emit_decw_zs_i_i } +inst_decd :: proc{ inst_decd_r_i_i, inst_decd_zd_i_i } +emit_decd :: proc{ emit_decd_r_i_i, emit_decd_zd_i_i } +inst_sqincb :: proc{ inst_sqincb_r_i_i, inst_sqincb_r_r_i_i } +emit_sqincb :: proc{ emit_sqincb_r_i_i, emit_sqincb_r_r_i_i } +inst_sqinch :: proc{ inst_sqinch_r_i_i, inst_sqinch_r_r_i_i, inst_sqinch_zh_i_i } +emit_sqinch :: proc{ emit_sqinch_r_i_i, emit_sqinch_r_r_i_i, emit_sqinch_zh_i_i } +inst_sqincw :: proc{ inst_sqincw_r_i_i, inst_sqincw_r_r_i_i, inst_sqincw_zs_i_i } +emit_sqincw :: proc{ emit_sqincw_r_i_i, emit_sqincw_r_r_i_i, emit_sqincw_zs_i_i } +inst_sqincd :: proc{ inst_sqincd_r_i_i, inst_sqincd_r_r_i_i, inst_sqincd_zd_i_i } +emit_sqincd :: proc{ emit_sqincd_r_i_i, emit_sqincd_r_r_i_i, emit_sqincd_zd_i_i } +inst_sqdecb :: proc{ inst_sqdecb_r_i_i, inst_sqdecb_r_r_i_i } +emit_sqdecb :: proc{ emit_sqdecb_r_i_i, emit_sqdecb_r_r_i_i } +inst_sqdech :: proc{ inst_sqdech_r_i_i, inst_sqdech_r_r_i_i, inst_sqdech_zh_i_i } +emit_sqdech :: proc{ emit_sqdech_r_i_i, emit_sqdech_r_r_i_i, emit_sqdech_zh_i_i } +inst_sqdecw :: proc{ inst_sqdecw_r_i_i, inst_sqdecw_r_r_i_i, inst_sqdecw_zs_i_i } +emit_sqdecw :: proc{ emit_sqdecw_r_i_i, emit_sqdecw_r_r_i_i, emit_sqdecw_zs_i_i } +inst_sqdecd :: proc{ inst_sqdecd_r_i_i, inst_sqdecd_r_r_i_i, inst_sqdecd_zd_i_i } +emit_sqdecd :: proc{ emit_sqdecd_r_i_i, emit_sqdecd_r_r_i_i, emit_sqdecd_zd_i_i } +inst_uqincb :: inst_uqincb_r_i_i +emit_uqincb :: emit_uqincb_r_i_i +inst_uqinch :: proc{ inst_uqinch_r_i_i, inst_uqinch_zh_i_i } +emit_uqinch :: proc{ emit_uqinch_r_i_i, emit_uqinch_zh_i_i } +inst_uqincw :: proc{ inst_uqincw_r_i_i, inst_uqincw_zs_i_i } +emit_uqincw :: proc{ emit_uqincw_r_i_i, emit_uqincw_zs_i_i } +inst_uqincd :: proc{ inst_uqincd_r_i_i, inst_uqincd_zd_i_i } +emit_uqincd :: proc{ emit_uqincd_r_i_i, emit_uqincd_zd_i_i } +inst_uqdecb :: inst_uqdecb_r_i_i +emit_uqdecb :: emit_uqdecb_r_i_i +inst_uqdech :: proc{ inst_uqdech_r_i_i, inst_uqdech_zh_i_i } +emit_uqdech :: proc{ emit_uqdech_r_i_i, emit_uqdech_zh_i_i } +inst_uqdecw :: proc{ inst_uqdecw_r_i_i, inst_uqdecw_zs_i_i } +emit_uqdecw :: proc{ emit_uqdecw_r_i_i, emit_uqdecw_zs_i_i } +inst_uqdecd :: proc{ inst_uqdecd_r_i_i, inst_uqdecd_zd_i_i } +emit_uqdecd :: proc{ emit_uqdecd_r_i_i, emit_uqdecd_zd_i_i } +inst_cntp :: inst_cntp_r_p_pb +emit_cntp :: emit_cntp_r_p_pb +inst_incp :: proc{ inst_incp_r_pb, inst_incp_zh_ph } +emit_incp :: proc{ emit_incp_r_pb, emit_incp_zh_ph } +inst_decp :: proc{ inst_decp_r_pb, inst_decp_zh_ph } +emit_decp :: proc{ emit_decp_r_pb, emit_decp_zh_ph } +inst_sqincp :: proc{ inst_sqincp_r_pb, inst_sqincp_r_pb_r, inst_sqincp_zh_ph } +emit_sqincp :: proc{ emit_sqincp_r_pb, emit_sqincp_r_pb_r, emit_sqincp_zh_ph } +inst_sqdecp :: proc{ inst_sqdecp_r_pb, inst_sqdecp_r_pb_r, inst_sqdecp_zh_ph } +emit_sqdecp :: proc{ emit_sqdecp_r_pb, emit_sqdecp_r_pb_r, emit_sqdecp_zh_ph } +inst_uqincp :: proc{ inst_uqincp_r_pb, inst_uqincp_zh_ph } +emit_uqincp :: proc{ emit_uqincp_r_pb, emit_uqincp_zh_ph } +inst_uqdecp :: proc{ inst_uqdecp_r_pb, inst_uqdecp_zh_ph } +emit_uqdecp :: proc{ emit_uqdecp_r_pb, emit_uqdecp_zh_ph } +inst_ld1q :: inst_ld1q_i_p_m +emit_ld1q :: emit_ld1q_i_p_m +inst_st1q :: inst_st1q_i_p_m +emit_st1q :: emit_st1q_i_p_m +inst_mova :: proc{ inst_mova_zb_p_i, inst_mova_i_p_zb } +emit_mova :: proc{ emit_mova_zb_p_i, emit_mova_i_p_zb } +inst_fcmla :: inst_fcmla_v4h_v4h_v4h_i +emit_fcmla :: emit_fcmla_v4h_v4h_v4h_i +inst_fcadd :: inst_fcadd_v4h_v4h_v4h_i +emit_fcadd :: emit_fcadd_v4h_v4h_v4h_i +inst_prfb :: inst_prfb_i_p_m +emit_prfb :: emit_prfb_i_p_m +inst_prfh :: inst_prfh_i_p_m +emit_prfh :: emit_prfh_i_p_m +inst_prfw :: inst_prfw_i_p_m +emit_prfw :: emit_prfw_i_p_m +inst_prfd :: inst_prfd_i_p_m +emit_prfd :: emit_prfd_i_p_m +inst_ldnt1b :: inst_ldnt1b_zb_p_m +emit_ldnt1b :: emit_ldnt1b_zb_p_m +inst_ldnt1h :: inst_ldnt1h_zh_p_m +emit_ldnt1h :: emit_ldnt1h_zh_p_m +inst_ldnt1w :: inst_ldnt1w_zs_p_m +emit_ldnt1w :: emit_ldnt1w_zs_p_m +inst_ldnt1d :: inst_ldnt1d_zd_p_m +emit_ldnt1d :: emit_ldnt1d_zd_p_m +inst_stnt1b :: inst_stnt1b_zb_p_m +emit_stnt1b :: emit_stnt1b_zb_p_m +inst_stnt1h :: inst_stnt1h_zh_p_m +emit_stnt1h :: emit_stnt1h_zh_p_m +inst_stnt1w :: inst_stnt1w_zs_p_m +emit_stnt1w :: emit_stnt1w_zs_p_m +inst_stnt1d :: inst_stnt1d_zd_p_m +emit_stnt1d :: emit_stnt1d_zd_p_m +inst_splice :: inst_splice_zb_p_zb_zb +emit_splice :: emit_splice_zb_p_zb_zb +inst_index :: proc{ inst_index_zb_i_i, inst_index_zb_i_r, inst_index_zb_r_i, inst_index_zb_r_r } +emit_index :: proc{ emit_index_zb_i_i, emit_index_zb_i_r, emit_index_zb_r_i, emit_index_zb_r_r } +inst_bsl1n :: inst_bsl1n_zd_zd_zd_zd +emit_bsl1n :: emit_bsl1n_zd_zd_zd_zd +inst_bsl2n :: inst_bsl2n_zd_zd_zd_zd +emit_bsl2n :: emit_bsl2n_zd_zd_zd_zd +inst_nbsl :: inst_nbsl_zd_zd_zd_zd +emit_nbsl :: emit_nbsl_zd_zd_zd_zd +inst_pmul :: inst_pmul_zb_zb_zb +emit_pmul :: emit_pmul_zb_zb_zb +inst_pmullb :: inst_pmullb_zd_zs_zs +emit_pmullb :: emit_pmullb_zd_zs_zs +inst_pmullt :: inst_pmullt_zd_zs_zs +emit_pmullt :: emit_pmullt_zd_zs_zs +inst_bfcvtnt :: inst_bfcvtnt_zh_p_zs +emit_bfcvtnt :: emit_bfcvtnt_zh_p_zs +inst_ldraa :: inst_ldraa_r_m +emit_ldraa :: emit_ldraa_r_m +inst_ldrab :: inst_ldrab_r_m +emit_ldrab :: emit_ldrab_r_m +inst_tstart :: inst_tstart_r +emit_tstart :: emit_tstart_r +inst_tcommit :: inst_tcommit_none +emit_tcommit :: emit_tcommit_none +inst_tcancel :: inst_tcancel_i +emit_tcancel :: emit_tcancel_i +inst_ttest :: inst_ttest_r +emit_ttest :: emit_ttest_r +inst_wfet :: inst_wfet_r +emit_wfet :: emit_wfet_r +inst_wfit :: inst_wfit_r +emit_wfit :: emit_wfit_r +inst_bc_eq :: inst_bc_eq_l +emit_bc_eq :: emit_bc_eq_l +inst_bc_ne :: inst_bc_ne_l +emit_bc_ne :: emit_bc_ne_l +inst_bc_cs :: inst_bc_cs_l +emit_bc_cs :: emit_bc_cs_l +inst_bc_cc :: inst_bc_cc_l +emit_bc_cc :: emit_bc_cc_l +inst_bc_mi :: inst_bc_mi_l +emit_bc_mi :: emit_bc_mi_l +inst_bc_pl :: inst_bc_pl_l +emit_bc_pl :: emit_bc_pl_l +inst_bc_vs :: inst_bc_vs_l +emit_bc_vs :: emit_bc_vs_l +inst_bc_vc :: inst_bc_vc_l +emit_bc_vc :: emit_bc_vc_l +inst_bc_hi :: inst_bc_hi_l +emit_bc_hi :: emit_bc_hi_l +inst_bc_ls :: inst_bc_ls_l +emit_bc_ls :: emit_bc_ls_l +inst_bc_ge :: inst_bc_ge_l +emit_bc_ge :: emit_bc_ge_l +inst_bc_lt :: inst_bc_lt_l +emit_bc_lt :: emit_bc_lt_l +inst_bc_gt :: inst_bc_gt_l +emit_bc_gt :: emit_bc_gt_l +inst_bc_le :: inst_bc_le_l +emit_bc_le :: emit_bc_le_l +inst_bc_al :: inst_bc_al_l +emit_bc_al :: emit_bc_al_l +inst_bc_nv :: inst_bc_nv_l +emit_bc_nv :: emit_bc_nv_l +inst_uxtb :: inst_uxtb_r_r +emit_uxtb :: emit_uxtb_r_r +inst_uxth :: inst_uxth_r_r +emit_uxth :: emit_uxth_r_r +inst_uxtw :: inst_uxtw_r_r +emit_uxtw :: emit_uxtw_r_r +inst_sxtb :: inst_sxtb_r_r +emit_sxtb :: emit_sxtb_r_r +inst_sxth :: inst_sxth_r_r +emit_sxth :: emit_sxth_r_r +inst_sxtw :: inst_sxtw_r_r +emit_sxtw :: emit_sxtw_r_r +inst_adc :: inst_adc_r_r_r +emit_adc :: emit_adc_r_r_r +inst_adcs :: inst_adcs_r_r_r +emit_adcs :: emit_adcs_r_r_r +inst_sbc :: inst_sbc_r_r_r +emit_sbc :: emit_sbc_r_r_r +inst_sbcs :: inst_sbcs_r_r_r +emit_sbcs :: emit_sbcs_r_r_r +inst_ngc :: inst_ngc_r_r +emit_ngc :: emit_ngc_r_r +inst_ngcs :: inst_ngcs_r_r +emit_ngcs :: emit_ngcs_r_r +inst_ldapur :: inst_ldapur_r_m +emit_ldapur :: emit_ldapur_r_m +inst_stlur :: inst_stlur_r_m +emit_stlur :: emit_stlur_r_m +inst_ldapurb :: inst_ldapurb_r_m +emit_ldapurb :: emit_ldapurb_r_m +inst_stlurb :: inst_stlurb_r_m +emit_stlurb :: emit_stlurb_r_m +inst_ldapurh :: inst_ldapurh_r_m +emit_ldapurh :: emit_ldapurh_r_m +inst_stlurh :: inst_stlurh_r_m +emit_stlurh :: emit_stlurh_r_m +inst_ldapursb :: inst_ldapursb_r_m +emit_ldapursb :: emit_ldapursb_r_m +inst_ldapursh :: inst_ldapursh_r_m +emit_ldapursh :: emit_ldapursh_r_m +inst_ldapursw :: inst_ldapursw_r_m +emit_ldapursw :: emit_ldapursw_r_m +inst_bfadd :: proc{ inst_bfadd_zh_p_zh_zh, inst_bfadd_zh_zh_zh } +emit_bfadd :: proc{ emit_bfadd_zh_p_zh_zh, emit_bfadd_zh_zh_zh } +inst_bfsub :: proc{ inst_bfsub_zh_p_zh_zh, inst_bfsub_zh_zh_zh } +emit_bfsub :: proc{ emit_bfsub_zh_p_zh_zh, emit_bfsub_zh_zh_zh } +inst_bfmul :: proc{ inst_bfmul_zh_p_zh_zh, inst_bfmul_zh_zh_zh } +emit_bfmul :: proc{ emit_bfmul_zh_p_zh_zh, emit_bfmul_zh_zh_zh } +inst_bfmla :: inst_bfmla_zh_p_zh_zh +emit_bfmla :: emit_bfmla_zh_p_zh_zh +inst_bfmls :: inst_bfmls_zh_p_zh_zh +emit_bfmls :: emit_bfmls_zh_p_zh_zh +inst_sb :: inst_sb_none +emit_sb :: emit_sb_none +inst_csdb :: inst_csdb_none +emit_csdb :: emit_csdb_none +inst_dgh :: inst_dgh_none +emit_dgh :: emit_dgh_none +inst_psb_csync :: inst_psb_csync_none +emit_psb_csync :: emit_psb_csync_none +inst_tsb_csync :: inst_tsb_csync_none +emit_tsb_csync :: emit_tsb_csync_none +inst_bti_j :: inst_bti_j_none +emit_bti_j :: emit_bti_j_none +inst_bti_c :: inst_bti_c_none +emit_bti_c :: emit_bti_c_none +inst_bti_jc :: inst_bti_jc_none +emit_bti_jc :: emit_bti_jc_none +inst_bfclamp :: inst_bfclamp_zh_zh_zh +emit_bfclamp :: emit_bfclamp_zh_zh_zh +inst_bfmaxnm :: inst_bfmaxnm_zh_p_zh_zh +emit_bfmaxnm :: emit_bfmaxnm_zh_p_zh_zh +inst_bfminnm :: inst_bfminnm_zh_p_zh_zh +emit_bfminnm :: emit_bfminnm_zh_p_zh_zh +inst_luti2 :: inst_luti2_zpb_zt_z_i +emit_luti2 :: emit_luti2_zpb_zt_z_i +inst_luti4 :: inst_luti4_zpb_zt_z_i +emit_luti4 :: emit_luti4_zpb_zt_z_i +inst_zip :: proc{ inst_zip_zpb_zb_zb, inst_zip_zqb_zqb } +emit_zip :: proc{ emit_zip_zpb_zb_zb, emit_zip_zqb_zqb } +inst_uzp :: proc{ inst_uzp_zpb_zb_zb, inst_uzp_zqb_zqb } +emit_uzp :: proc{ emit_uzp_zpb_zb_zb, emit_uzp_zqb_zqb } +inst_tlbi_rpalos :: inst_tlbi_rpalos_r +emit_tlbi_rpalos :: emit_tlbi_rpalos_r +inst_tlbi_rpaos :: inst_tlbi_rpaos_r +emit_tlbi_rpaos :: emit_tlbi_rpaos_r +inst_at_s1e1a :: inst_at_s1e1a_r +emit_at_s1e1a :: emit_at_s1e1a_r +inst_dc_cipapa :: inst_dc_cipapa_r +emit_dc_cipapa :: emit_dc_cipapa_r +inst_dc_cigdpapa :: inst_dc_cigdpapa_r +emit_dc_cigdpapa :: emit_dc_cigdpapa_r +inst_tlbi_paall :: inst_tlbi_paall_none +emit_tlbi_paall :: emit_tlbi_paall_none +inst_tlbi_paallos :: inst_tlbi_paallos_none +emit_tlbi_paallos :: emit_tlbi_paallos_none +inst_amx_ldx :: inst_amx_ldx_r +emit_amx_ldx :: emit_amx_ldx_r +inst_amx_ldy :: inst_amx_ldy_r +emit_amx_ldy :: emit_amx_ldy_r +inst_amx_stx :: inst_amx_stx_r +emit_amx_stx :: emit_amx_stx_r +inst_amx_sty :: inst_amx_sty_r +emit_amx_sty :: emit_amx_sty_r +inst_amx_ldz :: inst_amx_ldz_r +emit_amx_ldz :: emit_amx_ldz_r +inst_amx_stz :: inst_amx_stz_r +emit_amx_stz :: emit_amx_stz_r +inst_amx_ldzi :: inst_amx_ldzi_r +emit_amx_ldzi :: emit_amx_ldzi_r +inst_amx_stzi :: inst_amx_stzi_r +emit_amx_stzi :: emit_amx_stzi_r +inst_amx_extrx :: inst_amx_extrx_r +emit_amx_extrx :: emit_amx_extrx_r +inst_amx_extry :: inst_amx_extry_r +emit_amx_extry :: emit_amx_extry_r +inst_amx_fma64 :: inst_amx_fma64_r +emit_amx_fma64 :: emit_amx_fma64_r +inst_amx_fms64 :: inst_amx_fms64_r +emit_amx_fms64 :: emit_amx_fms64_r +inst_amx_fma32 :: inst_amx_fma32_r +emit_amx_fma32 :: emit_amx_fma32_r +inst_amx_fms32 :: inst_amx_fms32_r +emit_amx_fms32 :: emit_amx_fms32_r +inst_amx_mac16 :: inst_amx_mac16_r +emit_amx_mac16 :: emit_amx_mac16_r +inst_amx_fma16 :: inst_amx_fma16_r +emit_amx_fma16 :: emit_amx_fma16_r +inst_amx_fms16 :: inst_amx_fms16_r +emit_amx_fms16 :: emit_amx_fms16_r +inst_amx_set :: inst_amx_set_none +emit_amx_set :: emit_amx_set_none +inst_amx_clr :: inst_amx_clr_none +emit_amx_clr :: emit_amx_clr_none +inst_amx_vecint :: inst_amx_vecint_r +emit_amx_vecint :: emit_amx_vecint_r +inst_amx_vecfp :: inst_amx_vecfp_r +emit_amx_vecfp :: emit_amx_vecfp_r +inst_amx_matint :: inst_amx_matint_r +emit_amx_matint :: emit_amx_matint_r +inst_amx_matfp :: inst_amx_matfp_r +emit_amx_matfp :: emit_amx_matfp_r +inst_amx_genlut :: inst_amx_genlut_r +emit_amx_genlut :: emit_amx_genlut_r +inst_cpyp :: inst_cpyp_r_r_r +emit_cpyp :: emit_cpyp_r_r_r +inst_cpym :: inst_cpym_r_r_r +emit_cpym :: emit_cpym_r_r_r +inst_cpye :: inst_cpye_r_r_r +emit_cpye :: emit_cpye_r_r_r +inst_cpyfp :: inst_cpyfp_r_r_r +emit_cpyfp :: emit_cpyfp_r_r_r +inst_cpyfm :: inst_cpyfm_r_r_r +emit_cpyfm :: emit_cpyfm_r_r_r +inst_cpyfe :: inst_cpyfe_r_r_r +emit_cpyfe :: emit_cpyfe_r_r_r +inst_setp :: inst_setp_r_r_r +emit_setp :: emit_setp_r_r_r +inst_setm :: inst_setm_r_r_r +emit_setm :: emit_setm_r_r_r +inst_sete :: inst_sete_r_r_r +emit_sete :: emit_sete_r_r_r +inst_dc_ivac :: inst_dc_ivac_r +emit_dc_ivac :: emit_dc_ivac_r +inst_dc_isw :: inst_dc_isw_r +emit_dc_isw :: emit_dc_isw_r +inst_dc_csw :: inst_dc_csw_r +emit_dc_csw :: emit_dc_csw_r +inst_dc_cisw :: inst_dc_cisw_r +emit_dc_cisw :: emit_dc_cisw_r +inst_dc_zva :: inst_dc_zva_r +emit_dc_zva :: emit_dc_zva_r +inst_dc_cvac :: inst_dc_cvac_r +emit_dc_cvac :: emit_dc_cvac_r +inst_dc_cvau :: inst_dc_cvau_r +emit_dc_cvau :: emit_dc_cvau_r +inst_dc_civac :: inst_dc_civac_r +emit_dc_civac :: emit_dc_civac_r +inst_ic_ialluis :: inst_ic_ialluis_none +emit_ic_ialluis :: emit_ic_ialluis_none +inst_ic_iallu :: inst_ic_iallu_none +emit_ic_iallu :: emit_ic_iallu_none +inst_ic_ivau :: inst_ic_ivau_r +emit_ic_ivau :: emit_ic_ivau_r +inst_at_s1e1r :: inst_at_s1e1r_r +emit_at_s1e1r :: emit_at_s1e1r_r +inst_at_s1e1w :: inst_at_s1e1w_r +emit_at_s1e1w :: emit_at_s1e1w_r +inst_at_s1e0r :: inst_at_s1e0r_r +emit_at_s1e0r :: emit_at_s1e0r_r +inst_at_s1e0w :: inst_at_s1e0w_r +emit_at_s1e0w :: emit_at_s1e0w_r +inst_at_s1e2r :: inst_at_s1e2r_r +emit_at_s1e2r :: emit_at_s1e2r_r +inst_at_s1e2w :: inst_at_s1e2w_r +emit_at_s1e2w :: emit_at_s1e2w_r +inst_at_s1e3r :: inst_at_s1e3r_r +emit_at_s1e3r :: emit_at_s1e3r_r +inst_at_s1e3w :: inst_at_s1e3w_r +emit_at_s1e3w :: emit_at_s1e3w_r +inst_at_s12e1r :: inst_at_s12e1r_r +emit_at_s12e1r :: emit_at_s12e1r_r +inst_at_s12e1w :: inst_at_s12e1w_r +emit_at_s12e1w :: emit_at_s12e1w_r +inst_at_s12e0r :: inst_at_s12e0r_r +emit_at_s12e0r :: emit_at_s12e0r_r +inst_at_s12e0w :: inst_at_s12e0w_r +emit_at_s12e0w :: emit_at_s12e0w_r +inst_tlbi_vmalle1 :: inst_tlbi_vmalle1_none +emit_tlbi_vmalle1 :: emit_tlbi_vmalle1_none +inst_tlbi_vmalle1is :: inst_tlbi_vmalle1is_none +emit_tlbi_vmalle1is :: emit_tlbi_vmalle1is_none +inst_tlbi_vae1 :: inst_tlbi_vae1_r +emit_tlbi_vae1 :: emit_tlbi_vae1_r +inst_tlbi_vae1is :: inst_tlbi_vae1is_r +emit_tlbi_vae1is :: emit_tlbi_vae1is_r +inst_tlbi_aside1 :: inst_tlbi_aside1_r +emit_tlbi_aside1 :: emit_tlbi_aside1_r +inst_tlbi_aside1is :: inst_tlbi_aside1is_r +emit_tlbi_aside1is :: emit_tlbi_aside1is_r +inst_tlbi_vaae1 :: inst_tlbi_vaae1_r +emit_tlbi_vaae1 :: emit_tlbi_vaae1_r +inst_tlbi_vaae1is :: inst_tlbi_vaae1is_r +emit_tlbi_vaae1is :: emit_tlbi_vaae1is_r +inst_tlbi_vale1 :: inst_tlbi_vale1_r +emit_tlbi_vale1 :: emit_tlbi_vale1_r +inst_tlbi_vale1is :: inst_tlbi_vale1is_r +emit_tlbi_vale1is :: emit_tlbi_vale1is_r +inst_tlbi_vaale1 :: inst_tlbi_vaale1_r +emit_tlbi_vaale1 :: emit_tlbi_vaale1_r +inst_tlbi_vaale1is :: inst_tlbi_vaale1is_r +emit_tlbi_vaale1is :: emit_tlbi_vaale1is_r +inst_tlbi_alle1 :: inst_tlbi_alle1_none +emit_tlbi_alle1 :: emit_tlbi_alle1_none +inst_tlbi_alle1is :: inst_tlbi_alle1is_none +emit_tlbi_alle1is :: emit_tlbi_alle1is_none +inst_tlbi_alle2 :: inst_tlbi_alle2_none +emit_tlbi_alle2 :: emit_tlbi_alle2_none +inst_tlbi_alle2is :: inst_tlbi_alle2is_none +emit_tlbi_alle2is :: emit_tlbi_alle2is_none +inst_tlbi_alle3 :: inst_tlbi_alle3_none +emit_tlbi_alle3 :: emit_tlbi_alle3_none +inst_tlbi_alle3is :: inst_tlbi_alle3is_none +emit_tlbi_alle3is :: emit_tlbi_alle3is_none +inst_prfm :: proc{ inst_prfm_i_m, inst_prfm_i_l } +emit_prfm :: proc{ emit_prfm_i_m, emit_prfm_i_l } +inst_prfum :: inst_prfum_i_m +emit_prfum :: emit_prfum_i_m +inst_negs :: inst_negs_r_sh +emit_negs :: emit_negs_r_sh +inst_cmp :: proc{ inst_cmp_r_sh, inst_cmp_r_ex, inst_cmp_r_i } +emit_cmp :: proc{ emit_cmp_r_sh, emit_cmp_r_ex, emit_cmp_r_i } +inst_cmn :: proc{ inst_cmn_r_sh, inst_cmn_r_ex, inst_cmn_r_i } +emit_cmn :: proc{ emit_cmn_r_sh, emit_cmn_r_ex, emit_cmn_r_i } diff --git a/core/rexcode/isa/arm64/mnemonics.odin b/core/rexcode/isa/arm64/mnemonics.odin index 6eb516613..2d8b8dd46 100644 --- a/core/rexcode/isa/arm64/mnemonics.odin +++ b/core/rexcode/isa/arm64/mnemonics.odin @@ -3,18 +3,26 @@ package rexcode_arm64 // ============================================================================= -// AArch64 MNEMONICS (v1 -- base integer + FP scalar) +// AArch64 MNEMONICS // ============================================================================= // -// This is the v1 cut focused on the base integer ISA + scalar FP. Each -// extension (NEON, LSE atomics, crypto, FP16/BF16, SVE, SVE2, SME, PAC, -// BTI, MTE, ...) lands in a follow-up turn. +// One member per ASSEMBLER mnemonic -- the name an A64 assembler actually +// accepts, and nothing finer. An instruction's variants are not separate +// mnemonics: ADD covers the immediate, shifted-register, extended-register +// and NEON forms, LDR covers every addressing mode, and the encoder picks +// between them by matching the operands against that mnemonic's run of +// forms in INSTRUCTION_TABLE (see tablegen/instruction_table.odin). // -// Some "instructions" that share an opcode with another are real -// aliases at the architectural level (e.g. MOV/MVN are aliases of -// ORR/ORN, NEG of SUB, CMP of SUBS, etc.). For v1 the explicit -// non-alias mnemonic is exposed; aliases can be added later as -// printer hints + encoder builders that lower to the real form. +// Names holding an underscore are the ones an assembler writes with a +// separator: the two-token system instructions -- `dc zva`, `tlbi vae1`, +// `at s1e1r`, `bti j`, `psb csync` -- and the conditional branches, where +// the underscore is a dot: B_LE prints `b.le`, BC_NE prints `bc.ne`. The +// AMX_* pseudo-ops keep theirs literally; Apple's undocumented coprocessor +// has no assembler spelling at all. +// +// Architectural aliases that share an encoding (MOV/MVN of ORR/ORN, NEG of +// SUB, CMP of SUBS, TST of ANDS, ...) are listed as the mnemonics they are: +// each is a name assemblers accept, so each gets its own member and forms. Mnemonic :: enum u16 { INVALID = 0, @@ -23,38 +31,31 @@ Mnemonic :: enum u16 { // Data processing -- immediate // ------------------------------------------------------------------------- - ADD_IMM, ADDS_IMM, SUB_IMM, SUBS_IMM, // optional LSL #12 carried in shift field - MOVZ, MOVN, MOVK, // 16-bit imm + 2-bit hw - ADR, ADRP, // PC-relative address + ADD, ADDS, SUB, SUBS, // optional LSL #12 carried in shift field + MOVZ, MOVN, MOVK, // 16-bit imm + 2-bit hw + ADR, ADRP, // PC-relative address // ------------------------------------------------------------------------- // Data processing -- register (shifted register) // ------------------------------------------------------------------------- - ADD_SR, ADDS_SR, SUB_SR, SUBS_SR, - AND_SR, ANDS_SR, ORR_SR, EOR_SR, - BIC_SR, BICS_SR, ORN_SR, EON_SR, - - // ------------------------------------------------------------------------- - // Data processing -- register (extended register) - // ------------------------------------------------------------------------- - - ADD_ER, ADDS_ER, SUB_ER, SUBS_ER, + AND, ANDS, ORR, EOR, + BIC, BICS, ORN, EON, // ------------------------------------------------------------------------- // Data processing -- register (variable shifts / 2-source) // ------------------------------------------------------------------------- - LSLV, LSRV, ASRV, RORV, // also printed as LSL/LSR/ASR/ROR + LSL, LSR, ASR, ROR, // register and immediate forms both UDIV, SDIV, // ------------------------------------------------------------------------- // Data processing -- register (3-source) // ------------------------------------------------------------------------- - MADD, MSUB, // 64x64+64 -> 64 (or 32 variant) - SMADDL, SMSUBL, UMADDL, UMSUBL, // 32x32+64 -> 64 - SMULH, UMULH, // 64x64 -> high 64 + MADD, MSUB, // 64x64+64 -> 64 (or 32 variant) + SMADDL, SMSUBL, UMADDL, UMSUBL, // 32x32+64 -> 64 + SMULH, UMULH, // 64x64 -> high 64 // ------------------------------------------------------------------------- // Data processing -- register (1-source bit-twiddling) @@ -67,7 +68,11 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- CSEL, CSINC, CSINV, CSNEG, - CCMP_REG, CCMP_IMM, CCMN_REG, CCMN_IMM, + CCMP, CCMN, + // Aliases of the above with the condition inverted; every assembler both + // accepts and prefers these spellings. + CSET, CSETM, // CSINC/CSINV with Rn = Rm = ZR + CINC, CINV, CNEG, // CSINC/CSINV/CSNEG with Rn = Rm // ------------------------------------------------------------------------- // Extract @@ -79,18 +84,26 @@ Mnemonic :: enum u16 { // Branches // ------------------------------------------------------------------------- - B, BL, // 26-bit PC-rel - BR, BLR, RET, // register indirect - B_COND, // B.cond -- 19-bit PC-rel - CBZ, CBNZ, // 19-bit PC-rel + Rt - TBZ, TBNZ, // 14-bit PC-rel + bit position + B, BL, // 26-bit PC-rel + BR, BLR, RET, // register indirect + // One member per condition, the way an assembler spells them and the way + // x86 does its Jcc. The condition is not an operand: it is four bits of + // the opcode, and splitting it lets each entry record the flags it + // actually reads -- b.eq consults Z alone, b.le consults N, Z and V -- + // where a single B_COND had to claim all four for every condition. + B_EQ, B_NE, B_CS, B_CC, // B.cond -- 19-bit PC-rel + B_MI, B_PL, B_VS, B_VC, + B_HI, B_LS, B_GE, B_LT, + B_GT, B_LE, B_AL, B_NV, + CBZ, CBNZ, // 19-bit PC-rel + Rt + TBZ, TBNZ, // 14-bit PC-rel + bit position // ------------------------------------------------------------------------- // Loads / stores // ------------------------------------------------------------------------- // Plain (unsigned offset / signed unscaled / pre / post) - LDR, STR, // X/W variants (matched by reg width) + LDR, STR, // X/W variants (matched by reg width) LDRB, STRB, LDRSB, LDRH, STRH, LDRSH, LDRSW, @@ -99,7 +112,6 @@ Mnemonic :: enum u16 { LDP, STP, LDPSW, // PC-relative literal - LDR_LIT, // Acquire / release LDAR, STLR, @@ -114,7 +126,7 @@ Mnemonic :: enum u16 { NOP, YIELD, WFE, WFI, SEV, SEVL, HINT, - MRS, MSR_IMM, MSR_REG, + MRS, MSR, ISB, DSB, DMB, SVC, HVC, SMC, BRK, HLT, ERET, @@ -123,14 +135,14 @@ Mnemonic :: enum u16 { // FP scalar (single / double) // ------------------------------------------------------------------------- - FMOV_REG, FMOV_IMM, FMOV_GEN, // reg-reg / imm / between int/FP + FMOV, // reg-reg / imm / between int/FP FABS, FNEG, FSQRT, FADD, FSUB, FMUL, FDIV, FNMUL, FMADD, FMSUB, FNMADD, FNMSUB, FCMP, FCMPE, FCSEL, FMAX, FMIN, FMAXNM, FMINNM, - FCVT, // between single/double/half + FCVT, // between single/double/half SCVTF, UCVTF, FCVTZS, FCVTZU, FCVTAS, FCVTAU, @@ -142,20 +154,12 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- // Logical immediate (bitmask-encoded; N:imms:immr) // ------------------------------------------------------------------------- - AND_IMM, ANDS_IMM, ORR_IMM, EOR_IMM, - TST_IMM, // alias of ANDS_IMM with Rd=ZR; printed separately + TST, // ANDS with Rd=ZR // ------------------------------------------------------------------------- // Additional load/store addressing modes // ------------------------------------------------------------------------- LDUR, STUR, LDURB, STURB, LDURSB, LDURH, STURH, LDURSH, LDURSW, - LDR_PRE, STR_PRE, LDR_POST, STR_POST, - LDRB_PRE, STRB_PRE, LDRB_POST, STRB_POST, - LDRH_PRE, STRH_PRE, LDRH_POST, STRH_POST, - LDR_REG, STR_REG, LDRB_REG, STRB_REG, LDRH_REG, STRH_REG, - LDRSB_REG, LDRSH_REG, LDRSW_REG, - LDP_PRE, STP_PRE, LDP_POST, STP_POST, - LDPSW_PRE, LDPSW_POST, LDNP, STNP, // non-temporal pair LDXP, STXP, LDAXP, STLXP, // exclusive pair LDXRB, STXRB, LDAXRB, STLXRB, // exclusive byte @@ -226,19 +230,6 @@ Mnemonic :: enum u16 { SM4E, SM4EKEY, PMULL, PMULL2, - // ------------------------------------------------------------------------- - // FP scalar half-precision (FP16) - // ------------------------------------------------------------------------- - FABS_H, FNEG_H, FSQRT_H, - FADD_H, FSUB_H, FMUL_H, FDIV_H, FNMUL_H, - FMADD_H, FMSUB_H, FNMADD_H, FNMSUB_H, - FCMP_H, FCMPE_H, FCSEL_H, - FMAX_H, FMIN_H, FMAXNM_H, FMINNM_H, - FCVT_H_S, FCVT_H_D, FCVT_S_H, FCVT_D_H, // half<->single/double cross - FMOV_H, - SCVTF_H, UCVTF_H, - FCVTZS_H, FCVTZU_H, - // ------------------------------------------------------------------------- // BFloat16 (BF16; v8.6-A) // ------------------------------------------------------------------------- @@ -248,18 +239,18 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- // NEON Advanced SIMD // ------------------------------------------------------------------------- - // The mnemonics here cover vector forms. Where a name collides with a - // scalar mnemonic above (ADD/SUB/MUL/AND/ORR/EOR/MVN/...) we suffix - // with _V; the printer strips the suffix so the disassembly reads the - // canonical mnemonic (`add v0.16b, ...`). + // Vector forms. A name that also has a scalar form above (ADD/SUB/MUL/ + // AND/ORR/EOR/MVN/...) is the SAME mnemonic -- the vector forms simply + // join that mnemonic's run, selected by the V-register operand types. + // Only names with no scalar counterpart appear below. // 3-same arithmetic - ADD_V, SUB_V, MUL_V, MLA_V, MLS_V, NEG_V, ABS_V, + MUL, MLA, MLS, NEG, ABS, SHADD, UHADD, SHSUB, UHSUB, SRHADD, URHADD, SQADD, UQADD, SQSUB, UQSUB, SMAX, UMAX, SMIN, UMIN, SABD, UABD, SABA, UABA, - ADDP_V, ADDV, + ADDP, ADDV, SADDLP, UADDLP, SADALP, UADALP, SADDLV, UADDLV, SMAXV, UMAXV, SMINV, UMINV, SMAXP, UMAXP, SMINP, UMINP, @@ -274,7 +265,7 @@ Mnemonic :: enum u16 { XTN, XTN2, SQXTN, SQXTN2, UQXTN, UQXTN2, SQXTUN, SQXTUN2, // multiply long / multiply-accumulate long - SMULL_V, SMULL2_V, UMULL_V, UMULL2_V, + SMULL, SMULL2, UMULL, UMULL2, SMLAL, SMLAL2, UMLAL, UMLAL2, SMLSL, SMLSL2, UMLSL, UMLSL2, SQDMULL, SQDMULL2, SQDMLAL, SQDMLAL2, SQDMLSL, SQDMLSL2, @@ -284,18 +275,11 @@ Mnemonic :: enum u16 { SDOT, UDOT, USDOT, // FP vector - FADD_V, FSUB_V, FMUL_V, FDIV_V, FNEG_V, FABS_V, FSQRT_V, - FMLA_V, FMLS_V, FMULX, - FMAX_V, FMIN_V, FMAXNM_V, FMINNM_V, - FMAXP_V, FMINP_V, FMAXNMP, FMINNMP, - FMAXV_V, FMINV_V, FMAXNMV, FMINNMV, + FMLA, FMLS, FMULX, + FMAXP, FMINP, FMAXNMP, FMINNMP, + FMAXV, FMINV, FMAXNMV, FMINNMV, FRECPE, FRSQRTE, FRECPS, FRSQRTS, FRECPX, - FADDP_V, - FRINTA_V, FRINTI_V, FRINTM_V, FRINTN_V, FRINTP_V, FRINTX_V, FRINTZ_V, - SCVTF_V, UCVTF_V, - FCVTAS_V, FCVTAU_V, FCVTMS_V, FCVTMU_V, - FCVTNS_V, FCVTNU_V, FCVTPS_V, FCVTPU_V, - FCVTZS_V, FCVTZU_V, + FADDP, FCVTL, FCVTL2, FCVTN, FCVTN2, FCVTXN, FCVTXN2, // FP compare (vector) @@ -306,11 +290,11 @@ Mnemonic :: enum u16 { CMEQ, CMGE, CMGT, CMHI, CMHS, CMLE, CMLT, CMTST, // Logical (vector) - AND_V, ORR_V, EOR_V, BIC_V, ORN_V, MVN_V, + MVN, BIT, BIF, BSL, // Shifts - SHL_V, SQSHL_V, SQSHLU, SRSHL, URSHL, + SHL, SQSHL, SQSHLU, SRSHL, URSHL, SSHR, USHR, SSRA, USRA, SRSHR, URSHR, SRSRA, URSRA, SSHL, USHL, SLI, SRI, @@ -322,178 +306,139 @@ Mnemonic :: enum u16 { SQSHRUN, SQSHRUN2, SQRSHRUN, SQRSHRUN2, // Misc / permute / bit - DUP_V, INS, MOV_V, - EXT_V, + DUP, INS, MOV, + EXT, TBL, TBX, ZIP1, ZIP2, UZP1, UZP2, TRN1, TRN2, - NOT_V, RBIT_V, REV16_V, REV32_V, REV64, - CLS_V, CLZ_V, CNT, - URECPE_V, URSQRTE_V, + NOT, REV64, + CNT, + URECPE, URSQRTE, // Vector immediate - MOVI, MVNI, FMOV_V_IMM, + MOVI, MVNI, // NEON load/store LD1, LD2, LD3, LD4, // multiple structures ST1, ST2, ST3, ST4, LD1R, LD2R, LD3R, LD4R, // load-and-replicate to all lanes - LD1_LANE, LD2_LANE, LD3_LANE, LD4_LANE, // load single structure to lane - ST1_LANE, ST2_LANE, ST3_LANE, ST4_LANE, // FP/SIMD load/store using V/D/S/H/B/Q registers - LDR_V, STR_V, // imm/literal/pre/post/reg - LDP_V, STP_V, - LDUR_V, STUR_V, // ------------------------------------------------------------------------- // SVE / SVE2 base // ------------------------------------------------------------------------- // - // SVE mnemonics carry a Z/P-relevant suffix on conflicts with base - // integer / NEON names. `_Z` (Z-register), `_PRED` (predicated form - // where there's a separate unpredicated form), `_P` (predicate-only). + // SVE reuses the base integer / NEON mnemonics: `add z0.s, z1.s, z2.s` + // and `add z0.s, p0/m, z0.s, z1.s` are both ADD, and land in ADD's run + // as forms taking Z / predicate operands. Only SVE-only names are listed. // Integer arithmetic (vectors, unpredicated) - SVE_ADD_Z, SVE_SUB_Z, SVE_SQADD_Z, SVE_UQADD_Z, SVE_SQSUB_Z, SVE_UQSUB_Z, // Integer arithmetic (predicated, destructive merging) - SVE_ADD_PRED, SVE_SUB_PRED, SVE_SUBR_PRED, - SVE_MUL_PRED, SVE_SMULH_PRED, SVE_UMULH_PRED, - SVE_SDIV_PRED, SVE_UDIV_PRED, - SVE_SMAX_PRED, SVE_UMAX_PRED, SVE_SMIN_PRED, SVE_UMIN_PRED, - SVE_SABD_PRED, SVE_UABD_PRED, - SVE_AND_PRED, SVE_ORR_PRED, SVE_EOR_PRED, SVE_BIC_PRED, - SVE_ASR_PRED, SVE_LSL_PRED, SVE_LSR_PRED, SVE_ASRR_PRED, SVE_LSLR_PRED, SVE_LSRR_PRED, - SVE_ABS_PRED, SVE_NEG_PRED, - SVE_CLS_PRED, SVE_CLZ_PRED, SVE_CNT_PRED, - SVE_MOV_PRED, + SUBR, + ASRR, LSLR, LSRR, // FP arithmetic (unpredicated) - SVE_FADD_Z, SVE_FSUB_Z, SVE_FMUL_Z, - SVE_FRECPS, SVE_FRSQRTS, SVE_FTSMUL, + FTSMUL, // FP arithmetic (predicated, destructive merging) - SVE_FADD_PRED, SVE_FSUB_PRED, SVE_FSUBR_PRED, - SVE_FMUL_PRED, SVE_FDIV_PRED, SVE_FDIVR_PRED, - SVE_FMAX_PRED, SVE_FMIN_PRED, SVE_FMAXNM_PRED, SVE_FMINNM_PRED, - SVE_FABS_Z, SVE_FNEG_Z, SVE_FSQRT_Z, SVE_FRECPX_Z, - SVE_FRINTN, SVE_FRINTP, SVE_FRINTM, SVE_FRINTZ, SVE_FRINTA, SVE_FRINTX, SVE_FRINTI, - SVE_FMLA, SVE_FMLS, SVE_FNMLA, SVE_FNMLS, + FSUBR, + FDIVR, + FNMLA, FNMLS, // Predicate logical / move - SVE_AND_P, SVE_BIC_P, SVE_ORR_P, SVE_EOR_P, - SVE_NAND_P, SVE_NOR_P, SVE_ORN_P, SVE_SEL_P, - SVE_ANDS_P, SVE_BICS_P, SVE_ORRS_P, SVE_EORS_P, - SVE_NANDS_P, SVE_NORS_P, SVE_ORNS_P, - SVE_NOT_P, SVE_MOV_P, SVE_MOVS_P, - SVE_PTRUE, SVE_PTRUES, SVE_PFALSE, SVE_PFIRST, SVE_PNEXT, - SVE_BRKA, SVE_BRKB, SVE_BRKAS, SVE_BRKBS, - SVE_BRKPA, SVE_BRKPB, SVE_BRKN, - SVE_RDFFR, SVE_WRFFR, SVE_SETFFR, + NAND, NOR, SEL, + ORRS, EORS, + NANDS, NORS, ORNS, + MOVS, + PTRUE, PTRUES, PFALSE, PFIRST, PNEXT, + BRKA, BRKB, BRKAS, BRKBS, + BRKPA, BRKPB, BRKN, + RDFFR, WRFFR, SETFFR, // Integer compare and set predicate - SVE_CMPEQ, SVE_CMPNE, SVE_CMPGE, SVE_CMPGT, SVE_CMPLE, SVE_CMPLT, - SVE_CMPHI, SVE_CMPHS, SVE_CMPLO, SVE_CMPLS, + CMPEQ, CMPNE, CMPGE, CMPGT, CMPLE, CMPLT, + CMPHI, CMPHS, CMPLO, CMPLS, // FP compare and set predicate - SVE_FCMEQ, SVE_FCMNE, SVE_FCMGE, SVE_FCMGT, SVE_FCMLE, SVE_FCMLT, SVE_FCMUO, + FCMNE, FCMUO, // Permute / move / replicate - SVE_DUP_Z, SVE_INSR, SVE_REV_Z, SVE_REV_P, SVE_TBL, - SVE_ZIP1_Z, SVE_ZIP2_Z, SVE_UZP1_Z, SVE_UZP2_Z, SVE_TRN1_Z, SVE_TRN2_Z, - SVE_ZIP1_P, SVE_ZIP2_P, SVE_UZP1_P, SVE_UZP2_P, SVE_TRN1_P, SVE_TRN2_P, - SVE_CPY_Z, SVE_COMPACT, SVE_EXT_Z, + INSR, + CPY, COMPACT, // Loads / stores (contiguous) - SVE_LD1B, SVE_LD1H, SVE_LD1W, SVE_LD1D, - SVE_LD1SB, SVE_LD1SH, SVE_LD1SW, - SVE_ST1B, SVE_ST1H, SVE_ST1W, SVE_ST1D, - SVE_LDR_Z, SVE_STR_Z, SVE_LDR_P, SVE_STR_P, - SVE_LDFF1B, SVE_LDFF1H, SVE_LDFF1W, SVE_LDFF1D, // first-faulting + LD1B, LD1H, LD1W, LD1D, + LD1SB, LD1SH, LD1SW, + ST1B, ST1H, ST1W, ST1D, + LDFF1B, LDFF1H, LDFF1W, LDFF1D, // first-faulting // SVE2 additions - SVE_WHILEGE, SVE_WHILEGT, SVE_WHILELE, SVE_WHILELT, - SVE_WHILEHI, SVE_WHILEHS, SVE_WHILELO, SVE_WHILELS, - SVE_SQRDMLAH, SVE_SQRDMLSH, - SVE_ADCLB, SVE_ADCLT, SVE_SBCLB, SVE_SBCLT, - SVE_TBL2, SVE_TBX, - SVE_AESE, SVE_AESD, SVE_AESMC, SVE_AESIMC, // SVE2 crypto - SVE_BCAX_Z, SVE_XAR_Z, SVE_EOR3_Z, - SVE_MATCH, SVE_NMATCH, - SVE_HISTCNT, SVE_HISTSEG, + WHILEGE, WHILEGT, WHILELE, WHILELT, + WHILEHI, WHILEHS, WHILELO, WHILELS, + SQRDMLAH, SQRDMLSH, + ADCLB, ADCLT, SBCLB, SBCLT, + MATCH, NMATCH, + HISTCNT, HISTSEG, // ------------------------------------------------------------------------- // SME (Scalable Matrix Extension) // ------------------------------------------------------------------------- - SME_SMSTART, SME_SMSTOP, - SME_RDSVL, SME_ADDHA, SME_ADDVA, - SME_ZERO, - SME_FMOPA, SME_FMOPS, - SME_BFMOPA, SME_BFMOPS, - SME_SMOPA, SME_SMOPS, SME_UMOPA, SME_UMOPS, - SME_USMOPA, SME_SUMOPA, - SME_LDR_ZA, SME_STR_ZA, - - // ------------------------------------------------------------------------- - // SVE indexed FMLA / FMLS (lane-broadcast multiply-accumulate) - // ------------------------------------------------------------------------- - SVE_FMLA_IDX_H, SVE_FMLA_IDX_S, SVE_FMLA_IDX_D, - SVE_FMLS_IDX_H, SVE_FMLS_IDX_S, SVE_FMLS_IDX_D, - - // ------------------------------------------------------------------------- - // SVE gather/scatter (the practical 32-bit and 64-bit offset forms) - // ------------------------------------------------------------------------- - SVE_LD1B_GATHER_S, SVE_LD1B_GATHER_D, - SVE_LD1H_GATHER_S, SVE_LD1H_GATHER_D, - SVE_LD1W_GATHER_S, SVE_LD1W_GATHER_D, - SVE_LD1D_GATHER_D, - SVE_LD1SB_GATHER_S, SVE_LD1SB_GATHER_D, - SVE_LD1SH_GATHER_S, SVE_LD1SH_GATHER_D, - SVE_LD1SW_GATHER_D, - SVE_ST1B_SCATTER_S, SVE_ST1B_SCATTER_D, - SVE_ST1H_SCATTER_S, SVE_ST1H_SCATTER_D, - SVE_ST1W_SCATTER_S, SVE_ST1W_SCATTER_D, - SVE_ST1D_SCATTER_D, + SMSTART, SMSTOP, + RDSVL, ADDHA, ADDVA, + ZERO, + FMOPA, FMOPS, + BFMOPA, BFMOPS, + SMOPA, SMOPS, UMOPA, UMOPS, + USMOPA, SUMOPA, + CNTB, CNTH, CNTW, CNTD, + INCB, INCH, INCW, INCD, + DECB, DECH, DECW, DECD, + SQINCB, SQINCH, SQINCW, SQINCD, SQDECB, SQDECH, SQDECW, SQDECD, + UQINCB, UQINCH, UQINCW, UQINCD, UQDECB, UQDECH, UQDECW, UQDECD, + CNTP, INCP, DECP, + SQINCP, SQDECP, + UQINCP, UQDECP, // ------------------------------------------------------------------------- // SME tile slice load/store (LD1B/H/W/D/Q to ZA tile slice; ST1 reverse) // ------------------------------------------------------------------------- - SME_LD1B_TILE, SME_LD1H_TILE, SME_LD1W_TILE, SME_LD1D_TILE, SME_LD1Q_TILE, - SME_ST1B_TILE, SME_ST1H_TILE, SME_ST1W_TILE, SME_ST1D_TILE, SME_ST1Q_TILE, + LD1Q, + ST1Q, // MOVA between Z register and tile slice (both directions) - SME_MOVA_Z_FROM_TILE, SME_MOVA_TILE_FROM_Z, + MOVA, // ------------------------------------------------------------------------- // NEON complex FP multiply-add (v8.3-A FCMA extension) // ------------------------------------------------------------------------- - FCMLA_4H, FCMLA_8H, FCMLA_4S, FCMLA_2D, - FCADD_4H, FCADD_8H, FCADD_4S, FCADD_2D, + FCMLA, + FCADD, // ------------------------------------------------------------------------- // SVE prefetch, non-temporal load/store, EXT/SPLICE/INDEX // ------------------------------------------------------------------------- - SVE_PRFB, SVE_PRFH, SVE_PRFW, SVE_PRFD, - SVE_LDNT1B, SVE_LDNT1H, SVE_LDNT1W, SVE_LDNT1D, - SVE_STNT1B, SVE_STNT1H, SVE_STNT1W, SVE_STNT1D, - SVE_EXT, SVE_SPLICE, - SVE_INDEX_II, SVE_INDEX_IR, SVE_INDEX_RI, SVE_INDEX_RR, + PRFB, PRFH, PRFW, PRFD, + LDNT1B, LDNT1H, LDNT1W, LDNT1D, + STNT1B, STNT1H, STNT1W, STNT1D, + SPLICE, + INDEX, // ------------------------------------------------------------------------- // SVE2 bitwise select family + polynomial multiply // ------------------------------------------------------------------------- - SVE_BSL, SVE_BSL1N, SVE_BSL2N, SVE_NBSL, - SVE_PMUL_VEC, SVE_PMULLB, SVE_PMULLT, + BSL1N, BSL2N, NBSL, + PMUL, PMULLB, PMULLT, // ------------------------------------------------------------------------- // SVE BF16 conversions (BFCVT in SVE form) // ------------------------------------------------------------------------- - SVE_BFCVT, SVE_BFCVTNT, + BFCVTNT, // ------------------------------------------------------------------------- // PAC-authenticated loads (v8.3-A) // ------------------------------------------------------------------------- - LDRAA, LDRAB, LDRAA_PRE, LDRAB_PRE, + LDRAA, LDRAB, // ------------------------------------------------------------------------- // Transactional Memory Extension (TME, v9.0-A) @@ -508,90 +453,66 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- // Branch consistency hint (v8.8-A BC.cond) // ------------------------------------------------------------------------- - BC_COND, + // BC.cond: the consistent-branch form, same 16 conditions. + BC_EQ, BC_NE, BC_CS, BC_CC, + BC_MI, BC_PL, BC_VS, BC_VC, + BC_HI, BC_LS, BC_GE, BC_LT, + BC_GT, BC_LE, BC_AL, BC_NV, // ------------------------------------------------------------------------- // Sign/zero extend aliases (canonical names for SBFM/UBFM specific cases) // ------------------------------------------------------------------------- - UXTB, UXTH, UXTW, // unsigned extends (UBFM aliases) - SXTB, SXTH, SXTW, // signed extends (SBFM aliases) + UXTB, UXTH, UXTW, // unsigned extends (UBFM aliases) + SXTB, SXTH, SXTW, // signed extends (SBFM aliases) // ------------------------------------------------------------------------- // Carry arithmetic (add/sub with carry) // ------------------------------------------------------------------------- ADC, ADCS, SBC, SBCS, - NGC, NGCS, // NGC Rd, Rm = SBC Rd, ZR, Rm; NGCS similar + NGC, NGCS, // NGC Rd, Rm = SBC Rd, ZR, Rm; NGCS similar // ------------------------------------------------------------------------- // RCpc / LDAPUR / STLUR (v8.4-A unscaled release-consistency loads/stores) // ------------------------------------------------------------------------- - LDAPUR, STLUR, // 32/64-bit word - LDAPURB, STLURB, LDAPURH, STLURH, // byte / half - LDAPURSB, LDAPURSH, LDAPURSW, // signed extending + LDAPUR, STLUR, // 32/64-bit word + LDAPURB, STLURB, LDAPURH, STLURH, // byte / half + LDAPURSB, LDAPURSH, LDAPURSW, // signed extending // ------------------------------------------------------------------------- // SVE BF16 predicated arithmetic (3-same) // ------------------------------------------------------------------------- - SVE_BFADD, SVE_BFSUB, SVE_BFMUL, - SVE_BFMLA, SVE_BFMLS, + BFADD, BFSUB, BFMUL, + BFMLA, BFMLS, // ------------------------------------------------------------------------- // Speculation / profiling barriers + speculation hints // ------------------------------------------------------------------------- - SB, // Speculation Barrier (v8.0) - CSDB, // Consumption of Speculative Data Barrier - DGH, // Data Gathering Hint (v8.5-A) - PSB_CSYNC, // Profile Synchronization Barrier - TSB_CSYNC, // Trace Synchronization Barrier - BTI_J, BTI_C, BTI_JC,// explicit BTI variants - - // ------------------------------------------------------------------------- - // Random number access (v8.5-A) -- read RNDR / RNDRRS via MRS - // ------------------------------------------------------------------------- - // (sysreg constants are in sysregs.odin; the MRS mnemonic handles it) - - // ------------------------------------------------------------------------- - // More NEON aliases - // ------------------------------------------------------------------------- - MOV_V_ALIAS, // MOV Vd., Vn. = ORR Vd, Vn, Vn (vector copy) - NOT_V_ALIAS, // NOT Vd., Vn. = MVN with Rm=Rn - - // ------------------------------------------------------------------------- - // Shift-by-immediate aliases (UBFM/SBFM specific cases) - // ------------------------------------------------------------------------- - LSL_IMM, // LSL Rd, Rn, #imm = UBFM Rd, Rn, #(-imm % regsize), #(regsize-1-imm) - LSR_IMM, // LSR Rd, Rn, #imm = UBFM Rd, Rn, #imm, #(regsize-1) - ASR_IMM, // ASR Rd, Rn, #imm = SBFM Rd, Rn, #imm, #(regsize-1) - ROR_IMM, // ROR Rd, Rn, #imm = EXTR Rd, Rn, Rn, #imm + SB, // Speculation Barrier (v8.0) + CSDB, // Consumption of Speculative Data Barrier + DGH, // Data Gathering Hint (v8.5-A) + PSB_CSYNC, // Profile Synchronization Barrier + TSB_CSYNC, // Trace Synchronization Barrier + BTI_J, BTI_C, BTI_JC, // explicit BTI variants // ------------------------------------------------------------------------- // SVE2.1 / SME2 -- BF16 unpredicated + clamp/min/max + multi-vector // ------------------------------------------------------------------------- - SVE_BFADD_UNPRED, SVE_BFSUB_UNPRED, SVE_BFMUL_UNPRED, - SVE_BFCLAMP, // BFCLAMP Zd.H, Zn.H, Zm.H - SVE_BFMAXNM, SVE_BFMINNM, // BF16 min/max-num predicated + BFCLAMP, // BFCLAMP Zd.H, Zn.H, Zm.H + BFMAXNM, BFMINNM, // BF16 min/max-num predicated // SME2 multi-vector: contiguous LD/ST and select-table lookup - SME2_LUTI2_B, SME2_LUTI4_B, // LUTI2/4 table lookup (byte) - SME2_LD1B_X2, SME2_LD1H_X2, // 2-vector contiguous loads - SME2_LD1W_X2, SME2_LD1D_X2, - SME2_LD1B_X4, SME2_LD1H_X4, // 4-vector contiguous loads - SME2_LD1W_X4, SME2_LD1D_X4, - SME2_ST1B_X2, SME2_ST1H_X2, - SME2_ST1W_X2, SME2_ST1D_X2, - SME2_ST1B_X4, SME2_ST1H_X4, - SME2_ST1W_X4, SME2_ST1D_X4, + LUTI2, LUTI4, // LUTI2/4 table lookup (byte) // SME2 ZIP / UZP multi-way (3-vector and 4-vector forms) - SME2_ZIP_3, SME2_ZIP_4, - SME2_UZP_3, SME2_UZP_4, + ZIP, + UZP, // ------------------------------------------------------------------------- // RME (Realm Management Extension, ARMv9-A) // ------------------------------------------------------------------------- - TLBI_RPALOS, TLBI_RPAOS, // Realm physical address space - AT_S1E1A, // stage-1 translate with implicit authority - DC_CIPAPA, DC_CIGDPAPA, // physical-address cache mgmt + TLBI_RPALOS, TLBI_RPAOS, // Realm physical address space + AT_S1E1A, // stage-1 translate with implicit authority + DC_CIPAPA, DC_CIGDPAPA, // physical-address cache mgmt TLBI_PAALL, TLBI_PAALLOS, // ------------------------------------------------------------------------- @@ -677,22 +598,13 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- // Prefetch // ------------------------------------------------------------------------- - PRFM, PRFUM, PRFM_LIT, + PRFM, PRFUM, // ------------------------------------------------------------------------- // Aliases (printed canonically; encode the underlying operation with // Rd=ZR or Rn=ZR fixed). // ------------------------------------------------------------------------- - MOV_REG, // MOV Rd, Rm = ORR Rd, ZR, Rm (shifted-register form) - MOV_BITMASK, // MOV Rd, #imm = ORR Rd, ZR, #bitmask_imm - MVN, // MVN Rd, Rm = ORN Rd, ZR, Rm - NEG_SR, // NEG Rd, Rm{,shift} = SUB Rd, ZR, Rm{,shift} - NEGS, // NEGS Rd, Rm{,shift} = SUBS Rd, ZR, Rm{,shift} - CMP_SR, // CMP Rn, Rm{,shift} = SUBS ZR, Rn, Rm{,shift} - CMP_ER, // CMP Rn, Rm, ext = SUBS ZR, Rn, Rm, ext - CMP_IMM, // CMP Rn, #imm = SUBS ZR, Rn, #imm - CMN_SR, // CMN Rn, Rm{,shift} = ADDS ZR, Rn, Rm{,shift} - CMN_ER, // CMN Rn, Rm, ext = ADDS ZR, Rn, Rm, ext - CMN_IMM, // CMN Rn, #imm = ADDS ZR, Rn, #imm - TST_SR, // TST Rn, Rm{,shift} = ANDS ZR, Rn, Rm{,shift} + NEGS, // NEGS Rd, Rm{,shift} = SUBS Rd, ZR, Rm{,shift} + CMP, // CMP Rn, Rm{,shift} = SUBS ZR, Rn, Rm{,shift} + CMN, // CMN Rn, Rm{,shift} = ADDS ZR, Rn, Rm{,shift} } diff --git a/core/rexcode/isa/arm64/operands.odin b/core/rexcode/isa/arm64/operands.odin index 867da7559..084a19d47 100644 --- a/core/rexcode/isa/arm64/operands.odin +++ b/core/rexcode/isa/arm64/operands.odin @@ -28,6 +28,17 @@ Operand_Kind :: enum u8 { SHIFTED_REG, // X reg + shift type + shift amount EXTENDED_REG, // X/W reg + extend + amount COND, // 4-bit condition code (EQ/NE/.../AL/NV) + ZA_SLICE, // `za0h.b[w12, 0]` -- a row or column of an SME tile +} + +// One slice of an SME accumulator tile: which tile, taken along the rows (h) +// or the columns (v), addressed by one of W12..W15 plus a fixed offset. +ZA_Slice :: bit_field u32 { + tile: u8 | 4, + vertical: bool | 1, + ws: u8 | 2, // 0..3, meaning W12..W15 + offset: u8 | 4, + elem: u8 | 5, // the ZSHAPE_* code the tile is viewed at } Shift_Type :: enum u8 { @@ -57,51 +68,67 @@ Address_Mode :: enum u8 { LITERAL, // PC-rel target (LDR literal) } -// 16-byte memory operand: base + optional index + signed disp + addressing -// metadata. Index is `NONE` for non-register-offset modes. -Memory :: struct #packed { - base: Register, // 2 - index: Register, // 2 (NONE for OFFSET/PRE/POST/LITERAL) - disp: i32, // 4 (signed; pre/post can be -256..255 unscaled, - // OFFSET supports 0..32760 scaled via imm12*size) - extend: Extend, // 1 (for EXT_REG_OFFSET; UXTX otherwise) - shift: u8, // 1 (0..4 for register-offset / extended; or - // shift amount for shifted-register operands - // when reused there) - mode: Address_Mode, // 1 - _: u8, // 1 +// Memory operand packed into one word: base + optional index + signed disp + +// addressing metadata. Index is `NONE` for non-register-offset modes. +// +// A bit_field rather than a struct because this sits in every Operand, so its +// width is multiplied by four in every Instruction. Field syntax is unchanged +// (`m.base`, `m.disp`) and composite literals still work, so this is invisible +// to callers. +// +// Widths: registers get 16 bits. `Register` itself is a u32, but every class +// legal in an address lives entirely in its low 16 bits -- only a system +// register (class REG_SYS) carries field bits above them, and one is never a +// valid base or index -- so the truncation is lossless and the NONE sentinel +// (0xFFFF) round-trips. That leaves 23 bits for `disp` (+/-4.19M) against a +// worst case of 65,520 -- LDR Q, [Xn, #imm12*16] -- the largest displacement +// any A64 addressing mode can encode, so there is ~64x headroom. +Memory :: bit_field u64 { + base: Register | 16, + index: Register | 16, // NONE for OFFSET/PRE/POST/LITERAL + disp: i32 | 23, + extend: Extend | 3, // for EXT_REG_OFFSET; UXTX otherwise + shift: u8 | 3, // 0..4 for register-offset / extended + mode: Address_Mode | 3, + // Full: 16 + 16 + 23 + 3 + 3 + 3 = 64. } -#assert(size_of(Memory) == 12) +#assert(size_of(Memory) == 8) Shifted_Reg :: struct #packed { - reg: Register, // 2 + reg: Register, // 4 type: Shift_Type, // 1 amount: u8, // 1 (0..63 for 64-bit; 0..31 for 32-bit) } -#assert(size_of(Shifted_Reg) == 4) +#assert(size_of(Shifted_Reg) == 6) Extended_Reg :: struct #packed { - reg: Register, // 2 + reg: Register, // 4 extend: Extend, // 1 amount: u8, // 1 (0..4) } -#assert(size_of(Extended_Reg) == 4) +#assert(size_of(Extended_Reg) == 6) -// 16-byte tagged operand. The union holds whichever payload matches `kind`. +// 11-byte tagged operand. The union holds whichever payload matches `kind`. Operand :: struct #packed { using _: struct #raw_union #packed { - reg: Register, // 2 - mem: Memory, // 12 + reg: Register, // 4 + mem: Memory, // 8 immediate: i64, // 8 relative: i64, // 8 - shifted: Shifted_Reg, // 8 - extended: Extended_Reg, // 8 + shifted: Shifted_Reg, // 6 + extended: Extended_Reg, // 6 cond: u8, // 1 - }, // 12 total because of alignment + za: ZA_Slice, // 4 + }, // 8 total -- the largest member wins kind: Operand_Kind, // 1 size: u8, // 1 -- carried width info; meaning varies + // How many consecutive registers the syntax writes as a list, starting at + // `reg`: `{v0.16b, v1.16b}` is 2. Zero means the operand is a plain + // register. The count belongs to the instruction form rather than to the + // caller -- LD2 always names two -- so it comes from the encoding. + list_count: u8, // 1 } -#assert(size_of(Operand) == 14) +#assert(size_of(Operand) == 11) // ----------------------------------------------------------------------------- // Constructors -- generic @@ -144,6 +171,52 @@ op_cond :: #force_inline proc "contextless" (c: Cond) -> Operand { return Operand{cond = u8(c), kind = .COND, size = 1} } +// A vector lane index. It is a plain immediate in the encoding, but it prints +// glued to the register it indexes (`v2.s[3]`) rather than as a separate +// operand, so it is marked to tell it apart from an immediate that really is +// one -- EXT's byte index, for instance, is written `#3`. +LANE_INDEX :: u8(0xFF) + +// SVE writes its element-count pattern by name (`vl8`, `mul3`, `all`) and its +// multiplier as `mul #N`, so both need telling apart from a plain immediate. +SVE_PATTERN_IMM :: u8(0xFE) +SVE_MUL_IMM :: u8(0xFD) + +// ZERO's operand is an 8-bit mask, one bit per .d tile, written as the list of +// the largest tiles that exactly cover it: a .s tile is two .d tiles four +// apart, a .h tile is four two apart, and the single .b tile is all eight. +ZA_TILE_MASK :: u8(0xFC) + +// The 32 SVE element-count patterns; the gaps are reserved and print as a +// bare number. +@(rodata) +SVE_PATTERN_NAMES := [32]string{ + "pow2", "vl1", "vl2", "vl3", "vl4", "vl5", "vl6", "vl7", + "vl8", "vl16", "vl32", "vl64", "vl128", "vl256", "", "", + "", "", "", "", "", "", "", "", + "", "", "", "", "", "mul4", "mul3", "all", +} + +@(require_results) +op_lane_index :: #force_inline proc "contextless" (index: i64) -> Operand { + return Operand{immediate = index, kind = .IMMEDIATE, size = LANE_INDEX} +} + +// A system register operand -- op_reg with the intent in the name, kept so +// MRS/MSR call sites read as what they are. +@(require_results) +op_sysreg :: #force_inline proc "contextless" (sr: Register) -> Operand { + return op_reg(sr) +} + +@(require_results) +op_za_slice :: #force_inline proc "contextless" (tile, ws, offset, elem: u8, vertical := false) -> Operand { + return Operand{ + za = ZA_Slice{tile = tile, vertical = vertical, ws = ws, offset = offset, elem = elem}, + kind = .ZA_SLICE, size = elem, + } +} + // ----------------------------------------------------------------------------- // SVE Z-register builders -- encode the element arrangement in op.size // (B=1, H=2, S=4, D=8). Matcher uses op.size to disambiguate the right @@ -167,8 +240,96 @@ op_z_d :: #force_inline proc "contextless" (n: u8) -> Operand { return Operand{reg = Register(REG_Z | u16(n & 0x1F)), kind = .REGISTER, size = 8} } +// SVE packs an element size and a shift amount into one field, `tszh:tszl:imm3`, +// as `V = 2*esize - shift`. Because the shift is in [1, esize], V lands in +// [esize, 2*esize), so the four element sizes occupy disjoint ranges and the +// position of the highest set bit names the size: +// +// .b V in [ 8, 15] .s V in [32, 63] +// .h V in [16, 31] .d V in [64, 127] +// +// Encoder and decoder both need this, and it is written once here so the two +// cannot drift apart. + +// The element width, in bits, that a packed tsz value names. +@(require_results) +sve_tsz_esize :: #force_inline proc "contextless" (v: u32) -> u32 { + switch { + case v >= 64: return 64 + case v >= 32: return 32 + case v >= 16: return 16 + } + return 8 +} + +// The shift amount a packed tsz value names. +@(require_results) +sve_tsz_shift :: #force_inline proc "contextless" (v: u32) -> u32 { + return 2 * sve_tsz_esize(v) - v +} + +// The packed tsz value for an element width and shift. +@(require_results) +sve_tsz_pack :: #force_inline proc "contextless" (esize, shift: u32) -> u32 { + return (2 * esize - shift) & 0x7F +} + +// The SVE element-width code (the `size` an operand carries) for a width in +// bits: .b = 1, .h = 2, .s = 4, .d = 8. +@(require_results) +sve_esize_code :: #force_inline proc "contextless" (esize: u32) -> u8 { + return u8(esize / 8) +} + +// A predicate register's governing qualifier, carried in Operand.size and read +// only when the register's class is REG_P. SVE writes it as a suffix -- `p0/z` +// zeroes the inactive lanes, `p0/m` leaves them alone -- and an assembler will +// not take the instruction without it where the form calls for one. +PQUAL_ZERO :: u8(1) +PQUAL_MERGE :: u8(2) +PQUAL_NONE :: u8(4) + +// A predicate that is an instruction's DESTINATION is written with an element +// size instead -- `cmpge p0.b, p1/z, ...` -- so those codes have to live apart +// from the qualifiers above, and apart from the neutral 4 a plain op_reg gives. +PSHAPE_B :: u8(20) +PSHAPE_H :: u8(21) +PSHAPE_S :: u8(22) +PSHAPE_D :: u8(23) + +// Arrangement codes carried in Operand.size. Element views are odd and +// arrangements are multiples of 8, so the two can never be confused; 4 is the +// neutral "no vector shape" value every scalar class uses. +VSHAPE_NONE :: u8(4) +VSHAPE_8B :: u8(8) +VSHAPE_16B :: u8(16) +VSHAPE_4H :: u8(24) +VSHAPE_8H :: u8(32) +VSHAPE_2S :: u8(40) +VSHAPE_4S :: u8(48) +VSHAPE_1D :: u8(56) +VSHAPE_2D :: u8(64) +VSHAPE_1Q :: u8(72) +VSHAPE_ELEM_B :: u8(1) +VSHAPE_ELEM_H :: u8(3) +VSHAPE_ELEM_S :: u8(5) +VSHAPE_ELEM_D :: u8(7) + +// SVE element-width codes carried in Operand.size for a Z register. +ZSHAPE_B :: u8(1) +ZSHAPE_H :: u8(2) +ZSHAPE_S :: u8(4) +ZSHAPE_D :: u8(8) +ZSHAPE_Q :: u8(16) + // ----------------------------------------------------------------------------- -// NEON V-register arrangement builders -- op.size encodes lanes*elem-bytes: +// NEON V-register arrangement builders. These take the register the caller +// actually has, not its number: rebuilding one from `reg_hw` would relabel an +// X register as a V register, and the matcher -- which checks reg_class -- +// would never get to reject it. Passing a non-V register here now simply +// matches no form, and encode reports it. +// +// op.size encodes lanes*elem-bytes: // .8B = 8 .16B = 16 // .4H = 24 .8H = 32 // .2S = 40 .4S = 48 @@ -178,56 +339,73 @@ op_z_d :: #force_inline proc "contextless" (n: u8) -> Operand { // ----------------------------------------------------------------------------- @(require_results) -op_v_8b :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 8} +op_v_8b :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 8} } @(require_results) -op_v_16b :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 16} +op_v_16b :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 16} } @(require_results) -op_v_4h :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 24} +op_v_4h :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 24} } @(require_results) -op_v_8h :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 32} +op_v_8h :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 32} } @(require_results) -op_v_2s :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 40} +op_v_2s :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 40} } @(require_results) -op_v_4s :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 48} +op_v_4s :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 48} } @(require_results) -op_v_1d :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 56} +op_v_1d :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 56} } @(require_results) -op_v_2d :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 64} +op_v_2d :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 64} +} +// .1q breaks the lanes*elem-bytes rule the others follow (1*16 would collide +// with 16B), so it gets the next free multiple of 8. +@(require_results) +op_v_1q :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 72} +} +// A run of `count` consecutive registers written as a list, `{v0.16b, v1.16b}`. +// `shape` is one of the VSHAPE_* codes. +@(require_results) +op_v_list :: #force_inline proc "contextless" (first: Register, shape, count: u8) -> Operand { + return Operand{reg = first, kind = .REGISTER, size = shape, list_count = count} } // Element-indexed V views (V0.B[i]/.H[i]/.S[i]/.D[i]). The element size rides -// in op.size (1/2/4/8) so the matcher can disambiguate DUP/INS forms; the lane -// index is a separate immediate operand. +// in op.size so the matcher can disambiguate DUP/INS forms; the lane index is +// a separate immediate operand. +// +// The codes are ODD (1/3/5/7) on purpose: arrangement operands above use +// multiples of 8, so a size can never mean both. They used to be 1/2/4/8, +// which made an element-D view indistinguishable from an 8B arrangement -- +// the printer cannot tell `.d` from `.8b` if both are size 8. @(require_results) -op_v_elem_b :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 1} +op_v_elem_b :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 1} } @(require_results) -op_v_elem_h :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 2} +op_v_elem_h :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 3} } @(require_results) -op_v_elem_s :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 4} +op_v_elem_s :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 5} } @(require_results) -op_v_elem_d :: #force_inline proc "contextless" (n: u8) -> Operand { - return Operand{reg = Register(REG_V | u16(n & 0x1F)), kind = .REGISTER, size = 8} +op_v_elem_d :: #force_inline proc "contextless" (r: Register) -> Operand { + return Operand{reg = r, kind = .REGISTER, size = 7} } // ----------------------------------------------------------------------------- diff --git a/core/rexcode/isa/arm64/printer.odin b/core/rexcode/isa/arm64/printer.odin index df7975f0c..9f1353b67 100644 --- a/core/rexcode/isa/arm64/printer.odin +++ b/core/rexcode/isa/arm64/printer.odin @@ -115,21 +115,63 @@ sbprint :: proc( write_full_mnemonic(sb, inst, opts.uppercase) - // B.cond's condition is encoded into the mnemonic suffix (b.eq), - // so when printing we skip the first operand (it IS the cond). - start_slot := 0 - if inst.mnemonic == .B_COND && inst.operand_count >= 1 && inst.ops[0].kind == .COND { - start_slot = 1 + + // MOVZ/MOVN/MOVK store the shift as an hw index (0..3 = LSL #0/16/32/48), + // which assemblers write as `lsl #16` and omit entirely when it is zero. + mov_wide := inst.mnemonic == .MOVZ || inst.mnemonic == .MOVN || inst.mnemonic == .MOVK + end_slot := int(inst.operand_count) + if mov_wide && end_slot == 3 && inst.ops[2].kind == .IMMEDIATE && inst.ops[2].immediate == 0 { + end_slot = 2 } - if int(inst.operand_count) > start_slot { + if end_slot > 0 { strings.write_byte(sb, ' ') - for slot in start_slot.. start_slot { + for slot in 0.. 0 && !lane_index { strings.write_byte(sb, ',') if opts.space_after_comma { strings.write_byte(sb, ' ') } } - write_operand(sb, &inst.ops[slot], &display, opts) + // A register the syntax writes as a list keeps its braces, and + // names every register in the run. + list := op.kind == .REGISTER && op.list_count > 0 + switch { + case lane_index: + strings.write_byte(sb, '[') + write_decimal_u32(sb, u32(op.immediate)) + strings.write_byte(sb, ']') + case mov_wide && slot == 2: + strings.write_string(sb, opts.uppercase ? "LSL #" : "lsl #") + write_decimal_u32(sb, u32(op.immediate) * 16) + case list: + strings.write_byte(sb, '{') + if opts.space_after_comma { strings.write_byte(sb, ' ') } + for n in 0 ..< op.list_count { + if n > 0 { + strings.write_byte(sb, ',') + if opts.space_after_comma { strings.write_byte(sb, ' ') } + } + // The run is consecutive and wraps at v31. + member := op^ + member.reg = Register(reg_class(op.reg) | u16((reg_hw(op.reg) + n) & 0x1F)) + write_operand(sb, &member, &display, opts) + } + if opts.space_after_comma { strings.write_byte(sb, ' ') } + strings.write_byte(sb, '}') + case: + write_operand(sb, op, &display, opts) + } + } + // CMLE/CMLT/FCMLE/FCMLT only ever compare against zero, and the + // zero is part of the syntax rather than an encoded operand -- an + // assembler will not take the instruction without it. + if inst.mnemonic == .CMLE || inst.mnemonic == .CMLT { + strings.write_string(sb, opts.space_after_comma ? ", #0" : ",#0") + } else if inst.mnemonic == .FCMLE || inst.mnemonic == .FCMLT { + strings.write_string(sb, opts.space_after_comma ? ", #0.0" : ",#0.0") } } strings.write_string(sb, opts.separator) @@ -273,30 +315,11 @@ wprintln :: proc( // Internal writers // ============================================================================= -// write_full_mnemonic handles a few special cases that need transformation: -// * Suffix family mnemonics (ADD_IMM/ADD_SR/ADD_ER) collapse to `add`. -// * B_COND prints as `b.` using the first operand's cond payload. -// * Mov-wide / shifted/extended/imm variants all share the canonical -// ARM ARM mnemonic; the suffix is for our internal disambiguation. - +// Every mnemonic now prints straight from its name -- the conditional +// branches carry their condition in the name (B_LE -> `b.le`), so there is +// no operand to fold in. @(private="file") write_full_mnemonic :: proc(sb: ^strings.Builder, inst: ^Instruction, uppercase: bool) { - // B_COND -> `b.` based on the first operand. - if inst.mnemonic == .B_COND && inst.operand_count >= 1 && inst.ops[0].kind == .COND { - strings.write_string(sb, uppercase ? "B." : "b.") - c := inst.ops[0].cond & 0xF - cn := COND_NAMES[c] - if uppercase { - for i in 0..= 'a' && ch <= 'z' { strings.write_byte(sb, ch - 32) } else { strings.write_byte(sb, ch) } - } - } else { - strings.write_string(sb, cn) - } - return - } - write_mnemonic(sb, inst.mnemonic, uppercase) } @@ -305,25 +328,36 @@ write_mnemonic :: proc(sb: ^strings.Builder, m: Mnemonic, uppercase: bool) { name, ok := reflect.enum_name_from_value(m) if !ok { strings.write_string(sb, ""); return } - // Strip internal disambiguator suffixes -- the user-facing mnemonic - // is just the base name (ADD_IMM -> add, ADD_SR -> add, LDR_LIT -> ldr, - // CCMP_REG -> ccmp, MSR_REG -> msr, FMOV_GEN -> fmov, ...). - n := len(name) - suffixes := []string{ "_IMM", "_SR", "_ER", "_LIT", "_REG", "_COND", "_GEN" } - for s in suffixes { - if n > len(s) { - tail := name[n - len(s):] - if tail == s { - n -= len(s) + // Enum names are the assembler mnemonics, so this is a straight + // transliteration -- with one exception. The system instructions below + // are written by assemblers as a mnemonic plus an op-name token + // (`dc zva`, `tlbi vae1`, `bti j`), which we store as one enum member, + // so for those the first underscore prints as a space. Every other + // underscore is kept: AMX_LDX is an undocumented Apple coprocessor op + // with no assembler spelling at all, and printing it `amx ldx` would + // imply a two-token syntax that does not exist. + split, sep := -1, byte(' ') + for prefix in ([]string{"DC_", "IC_", "AT_", "TLBI_", "BTI_", "PSB_", "TSB_"}) { + if len(name) > len(prefix) && name[:len(prefix)] == prefix { + split = len(prefix) - 1 + break + } + } + // Conditional branches spell the separator as a dot: B_LE -> `b.le`. + // BC_ is checked first, since it also starts with B. + if split < 0 { + for prefix in ([]string{"BC_", "B_"}) { + if len(name) > len(prefix) && name[:len(prefix)] == prefix { + split, sep = len(prefix) - 1, '.' break } } } - for i in 0..= 'A' && c <= 'Z' { strings.write_byte(sb, c + 32) } else { @@ -332,6 +366,142 @@ write_mnemonic :: proc(sb: ^strings.Builder, m: Mnemonic, uppercase: bool) { } } +// NEON arrangement (`.4s`), element view (`.d`) or SVE element width (`.s`) +// suffix. Vector operands carry the shape in op.size using the codes +// op_v_*/op_z_* produce and the decoder restores (see operands.odin); +// arrangements are multiples of 8, element views are odd, and the neutral 4 +// that every scalar class uses prints nothing. +// +// A lane index arrives as its own immediate operand carrying the LANE_INDEX +// marker; the operand loop glues it to the register it indexes (`v0.s[2]`) +// instead of writing it as a separate `#2`. +// A system register by name (`cntvct_el0`), falling back to the raw field +// when it is not one we know. +@(private="file") +write_sysreg :: proc(sb: ^strings.Builder, sr: Register, uppercase: bool) { + name, ok := sysreg_name(sr) + if !ok { + strings.write_byte(sb, '#') + write_signed_decimal(sb, i64(sysreg_bits(sr))) + return + } + for i in 0 ..< len(name) { + c := name[i] + if uppercase && c >= 'a' && c <= 'z' { + strings.write_byte(sb, c - 'a' + 'A') + } else { + strings.write_byte(sb, c) + } + } +} + +// ZERO's tile list: the largest tiles that exactly cover the mask, biggest +// first, so a mask of every bit reads `{za}` rather than eight .d tiles. +@(private="file") +write_za_tile_mask :: proc(sb: ^strings.Builder, mask: u8, opts: ^Print_Options) { + strings.write_byte(sb, '{') + rest := mask + first := true + emit :: proc(sb: ^strings.Builder, first: ^bool, opts: ^Print_Options, n: int, suffix: string) { + if !first^ { + strings.write_byte(sb, ',') + if opts.space_after_comma { strings.write_byte(sb, ' ') } + } + first^ = false + strings.write_string(sb, opts.uppercase ? "ZA" : "za") + write_decimal_u32(sb, u32(n)) + if suffix != "" { + strings.write_byte(sb, '.') + strings.write_string(sb, suffix) + } + } + if rest == 0xFF { + strings.write_string(sb, opts.uppercase ? "ZA" : "za") + strings.write_byte(sb, '}') + return + } + for n in 0 ..< 2 { + bit := u8(0x55) << u8(n) + if rest & bit == bit { emit(sb, &first, opts, n, opts.uppercase ? "H" : "h"); rest &~= bit } + } + for n in 0 ..< 4 { + bit := u8(0x11) << u8(n) + if rest & bit == bit { emit(sb, &first, opts, n, opts.uppercase ? "S" : "s"); rest &~= bit } + } + for n in 0 ..< 8 { + bit := u8(1) << u8(n) + if rest & bit == bit { emit(sb, &first, opts, n, opts.uppercase ? "D" : "d"); rest &~= bit } + } + strings.write_byte(sb, '}') +} + +@(private="file") +write_lowercase :: proc(sb: ^strings.Builder, s: string, uppercase: bool) { + for i in 0 ..< len(s) { + c := s[i] + if uppercase && c >= 'a' && c <= 'z' { + strings.write_byte(sb, c - 'a' + 'A') + } else { + strings.write_byte(sb, c) + } + } +} + +@(private="file") +write_vector_shape :: proc(sb: ^strings.Builder, r: Register, size: u8, uppercase: bool) { + shape := "" + sep := byte('.') + switch reg_class(r) { + case REG_V: + switch size { + case 8: shape = "8b" + case 16: shape = "16b" + case 24: shape = "4h" + case 32: shape = "8h" + case 40: shape = "2s" + case 48: shape = "4s" + case 56: shape = "1d" + case 64: shape = "2d" + case 72: shape = "1q" + case 1: shape = "b" + case 3: shape = "h" + case 5: shape = "s" + case 7: shape = "d" + } + case REG_Z, REG_ZA: + switch size { + case 1: shape = "b" + case 2: shape = "h" + case 4: shape = "s" + case 8: shape = "d" + case 16: shape = "q" + } + // A predicate's suffix is its governing qualifier, and it hangs off a + // slash rather than a dot. + case REG_P, REG_PN: + switch size { + case PQUAL_ZERO: sep = '/'; shape = "z" + case PQUAL_MERGE: sep = '/'; shape = "m" + case PSHAPE_B: shape = "b" + case PSHAPE_H: shape = "h" + case PSHAPE_S: shape = "s" + case PSHAPE_D: shape = "d" + } + } + if shape == "" { + return + } + strings.write_byte(sb, sep) + for i in 0..= 'a' && c <= 'z' { + strings.write_byte(sb, c - 32) + } else { + strings.write_byte(sb, c) + } + } +} + @(private="file") write_register :: proc(sb: ^strings.Builder, r: Register, uppercase: bool) { if r == NONE { strings.write_string(sb, ""); return } @@ -384,6 +554,17 @@ write_register :: proc(sb: ^strings.Builder, r: Register, uppercase: bool) { case REG_P: strings.write_byte(sb, uppercase ? 'P' : 'p') write_decimal_u32(sb, u32(hw)) + case REG_PN: + strings.write_string(sb, uppercase ? "PN" : "pn") + write_decimal_u32(sb, u32(hw)) + case REG_ZT: + strings.write_string(sb, uppercase ? "ZT" : "zt") + write_decimal_u32(sb, u32(hw)) + case REG_ZA: + strings.write_string(sb, uppercase ? "ZA" : "za") + write_decimal_u32(sb, u32(hw)) + case REG_SYS: + write_sysreg(sb, r, uppercase) } } @@ -399,11 +580,43 @@ write_operand :: proc( case .REGISTER: write_register(sb, op.reg, opts.uppercase) + write_vector_shape(sb, op.reg, op.size, opts.uppercase) case .IMMEDIATE: + // An SVE element-count pattern has a name, and its multiplier is + // written `mul #N` rather than as a bare immediate. + if op.size == SVE_PATTERN_IMM { + name := SVE_PATTERN_NAMES[op.immediate & 0x1F] + if name != "" { + write_lowercase(sb, name, opts.uppercase) + return + } + } else if op.size == ZA_TILE_MASK { + write_za_tile_mask(sb, u8(op.immediate), opts) + return + } else if op.size == SVE_MUL_IMM { + strings.write_string(sb, opts.uppercase ? "MUL #" : "mul #") + write_signed_decimal(sb, op.immediate) + return + } strings.write_byte(sb, '#') write_signed_decimal(sb, op.immediate) + case .ZA_SLICE: + // `za0h.b[w12, 0]`, or plain `za[w12, 0]` for a whole array vector + strings.write_string(sb, opts.uppercase ? "ZA" : "za") + if op.za.elem != 0 { + write_decimal_u32(sb, u32(op.za.tile)) + strings.write_byte(sb, op.za.vertical ? (opts.uppercase ? 'V' : 'v') : (opts.uppercase ? 'H' : 'h')) + write_vector_shape(sb, Register(REG_Z), op.za.elem, opts.uppercase) + } + strings.write_byte(sb, '[') + strings.write_string(sb, opts.uppercase ? "W" : "w") + write_decimal_u32(sb, 12 + u32(op.za.ws)) + strings.write_string(sb, opts.space_after_comma ? ", " : ",") + write_decimal_u32(sb, u32(op.za.offset)) + strings.write_byte(sb, ']') + case .COND: c := op.cond & 0xF s := COND_NAMES[c] @@ -443,7 +656,7 @@ write_operand :: proc( } case .MEMORY: - write_memory(sb, op.mem, opts) + write_memory(sb, op.mem, op.size, opts) case .RELATIVE: target := u32(op.relative) @@ -456,7 +669,9 @@ write_operand :: proc( } @(private="file") -write_memory :: proc(sb: ^strings.Builder, m: Memory, opts: ^Print_Options) { +// `index_shape` names the element size of a vector index (SVE gather), which +// Memory has no room left to carry; it is 0 for every ordinary addressing mode. +write_memory :: proc(sb: ^strings.Builder, m: Memory, index_shape: u8, opts: ^Print_Options) { strings.write_byte(sb, '[') write_register(sb, m.base, opts.uppercase) @@ -488,6 +703,9 @@ write_memory :: proc(sb: ^strings.Builder, m: Memory, opts: ^Print_Options) { case .REG_OFFSET: strings.write_string(sb, ", ") write_register(sb, m.index, opts.uppercase) + if reg_class(m.index) == REG_Z { + write_vector_shape(sb, m.index, index_shape, opts.uppercase) + } if m.shift != 0 { strings.write_string(sb, ", lsl #") write_decimal_u32(sb, u32(m.shift)) @@ -497,6 +715,9 @@ write_memory :: proc(sb: ^strings.Builder, m: Memory, opts: ^Print_Options) { case .EXT_REG_OFFSET: strings.write_string(sb, ", ") write_register(sb, m.index, opts.uppercase) + if reg_class(m.index) == REG_Z { + write_vector_shape(sb, m.index, index_shape, opts.uppercase) + } strings.write_string(sb, ", ") strings.write_string(sb, EXTEND_NAMES[u8(m.extend) & 0x7]) if m.shift != 0 { diff --git a/core/rexcode/isa/arm64/registers.odin b/core/rexcode/isa/arm64/registers.odin index 857880864..7f9678d03 100644 --- a/core/rexcode/isa/arm64/registers.odin +++ b/core/rexcode/isa/arm64/registers.odin @@ -18,8 +18,16 @@ package rexcode_arm64 // The SP-vs-ZR ambiguity at hw=31 is resolved by giving SP/WSP their own // register *class*. An operand typed `XSP_REG` accepts X0..X30 OR SP; // X_REG accepts X0..X30 OR XZR. Both still encode hw=31 for SP/XZR. +// +// Layout: the hardware number in bits 0-4, the class byte in bits 8-15, +// and -- for system registers only -- the 15-bit MRS/MSR field in bits +// 16-30. Every class except REG_SYS lives entirely in the low 16 bits, +// and `Memory` relies on that: it packs base and index into 16-bit +// fields, which is lossless for every class legal in an address. A +// system register is the one class with high bits, and it is never a +// valid base or index. -Register :: distinct u16 +Register :: distinct u32 REG_NONE :: 0x0000 REG_X :: 0x0100 // X0..X30, XZR (X31 = ZR semantically) @@ -34,6 +42,10 @@ REG_D :: 0x0900 // D0..D31 (double view) REG_Q :: 0x0A00 // Q0..Q31 (quad view) REG_Z :: 0x0B00 // Z0..Z31 SVE scalable vector (low 128 aliased with V) REG_P :: 0x0C00 // P0..P15 SVE predicate +REG_PN :: 0x0D00 // PN8..PN15 SME2 predicate-as-counter +REG_ZT :: 0x0E00 // ZT0, the SME2 lookup table +REG_ZA :: 0x0F00 // ZA0..ZA15, SME's accumulator tiles +REG_SYS :: 0x1000 // system registers (MRS/MSR); the field is in bits 16-30 NONE :: Register(0xFFFF) @@ -45,6 +57,16 @@ NONE :: Register(0xFFFF) @(require_results) reg_is_xsp :: #force_inline proc "contextless" (r: Register) -> bool { return reg_class(r) == REG_XSP } @(require_results) reg_is_wsp :: #force_inline proc "contextless" (r: Register) -> bool { return reg_class(r) == REG_WSP } +// SME2 addresses its predicates as counters rather than masks, and numbers +// them from 8: the encoding holds pn - 8. +PN8 :: Register(REG_PN | 8); PN9 :: Register(REG_PN | 9) +PN10 :: Register(REG_PN | 10); PN11 :: Register(REG_PN | 11) +PN12 :: Register(REG_PN | 12); PN13 :: Register(REG_PN | 13) +PN14 :: Register(REG_PN | 14); PN15 :: Register(REG_PN | 15) + +// SME2's lookup table. There is exactly one, so it takes no bits. +ZT0 :: Register(REG_ZT | 0) + // ----------------------------------------------------------------------------- // 64-bit GPRs (X0..X30, XZR, SP) // ----------------------------------------------------------------------------- @@ -101,3 +123,660 @@ V28 :: Register(REG_V | 28); V29 :: Register(REG_V | 29); V30 :: Register(REG_V @(require_results) v_reg :: #force_inline proc "contextless" (n: u8) -> Register { return Register(REG_V | u16(n & 0x1F)) } @(require_results) x_reg :: #force_inline proc "contextless" (n: u8) -> Register { return Register(REG_X | u16(n & 0x1F)) } @(require_results) w_reg :: #force_inline proc "contextless" (n: u8) -> Register { return Register(REG_W | u16(n & 0x1F)) } + +// ============================================================================= +// AArch64 SYSTEM REGISTERS (MRS / MSR) +// ============================================================================= +// +// A system register is a `Register` of class REG_SYS. MRS / MSR name their +// target as a 15-bit field at bits 19:5 of the word, packed MSB-first as +// o0 || op1 || CRn || CRm || op2: +// +// o0 (1 bit) op0 - 2 (op0 = 2 -> 0, op0 = 3 -> 1) +// op1 (3 bits) +// CRn (4 bits) +// CRm (4 bits) +// op2 (3 bits) +// +// That field cannot fit under an 8-bit class with an 8-bit number, so it +// rides in bits 16-30 of the u32 -- the one class that uses them. Each +// constant below carries its five architectural numbers in its comment, and +// every value is verified byte-exact against llvm-mc. The constant's low 16 +// bits are the class, so `SPSR_EL1 :: Register(0x4200_1000)` names the +// register whose field is 0x4200. + +// The 15-bit field MRS/MSR carry at bits 19:5 of the instruction word. +@(require_results) +sysreg_bits :: #force_inline proc "contextless" (r: Register) -> u32 { + return (u32(r) >> 16) & 0x7FFF +} + +// The register a decoded 15-bit MRS/MSR field names. +@(require_results) +sysreg_from_bits :: #force_inline proc "contextless" (bits: u32) -> Register { + return Register((bits & 0x7FFF) << 16 | REG_SYS) +} + +// ----------------------------------------------------------------------------- +// Build a system register from the five architectural numbers, for a register +// this list does not name. op0 must be 2 or 3. +// ----------------------------------------------------------------------------- + +@(require_results) +sysreg_field :: #force_inline proc "contextless" (op0, op1, CRn, CRm, op2: u32) -> Register { + o0 := (op0 - 2) & 0x1 + return sysreg_from_bits( + (o0 << 14) | + (op1 << 11) | + (CRn << 7) | + (CRm << 3) | + op2, + ) +} + +// ----------------------------------------------------------------------------- +// Process state, exceptions and stack pointers +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +AFSR0_EL1 :: Register(0x4288_1000) // 3 0 5 1 0 +AFSR1_EL1 :: Register(0x4289_1000) // 3 0 5 1 1 +CURRENT_EL :: Register(0x4212_1000) // 3 0 4 2 2 +DAIF :: Register(0x5A11_1000) // 3 3 4 2 1 +ELR_EL1 :: Register(0x4201_1000) // 3 0 4 0 1 +ELR_EL2 :: Register(0x6201_1000) // 3 4 4 0 1 +ELR_EL3 :: Register(0x7201_1000) // 3 6 4 0 1 +ESR_EL1 :: Register(0x4290_1000) // 3 0 5 2 0 +ESR_EL2 :: Register(0x6290_1000) // 3 4 5 2 0 +FAR_EL1 :: Register(0x4300_1000) // 3 0 6 0 0 +FAR_EL2 :: Register(0x6300_1000) // 3 4 6 0 0 +ISR_EL1 :: Register(0x4608_1000) // 3 0 12 1 0 +NZCV :: Register(0x5A10_1000) // 3 3 4 2 0 +SPSR_EL1 :: Register(0x4200_1000) // 3 0 4 0 0 +SPSR_EL2 :: Register(0x6200_1000) // 3 4 4 0 0 +SPSR_EL3 :: Register(0x7200_1000) // 3 6 4 0 0 +SP_EL0 :: Register(0x4208_1000) // 3 0 4 1 0 +SP_EL1 :: Register(0x6208_1000) // 3 4 4 1 0 +VBAR_EL1 :: Register(0x4600_1000) // 3 0 12 0 0 +VBAR_EL2 :: Register(0x6600_1000) // 3 4 12 0 0 +VBAR_EL3 :: Register(0x7600_1000) // 3 6 12 0 0 + +// ----------------------------------------------------------------------------- +// Floating-point control +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +FPCR :: Register(0x5A20_1000) // 3 3 4 4 0 +FPSR :: Register(0x5A21_1000) // 3 3 4 4 1 +MVFR0_EL1 :: Register(0x4018_1000) // 3 0 0 3 0 +MVFR1_EL1 :: Register(0x4019_1000) // 3 0 0 3 1 +MVFR2_EL1 :: Register(0x401A_1000) // 3 0 0 3 2 + +// ----------------------------------------------------------------------------- +// Thread and process identity +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +CONTEXTIDR_EL1 :: Register(0x4681_1000) // 3 0 13 0 1 +TPIDR2_EL0 :: Register(0x5E85_1000) // 3 3 13 0 5 (SME thread pointer 2) +TPIDRRO_EL0 :: Register(0x5E83_1000) // 3 3 13 0 3 +TPIDR_EL0 :: Register(0x5E82_1000) // 3 3 13 0 2 +TPIDR_EL1 :: Register(0x4684_1000) // 3 0 13 0 4 +TPIDR_EL2 :: Register(0x6682_1000) // 3 4 13 0 2 +TPIDR_EL3 :: Register(0x7682_1000) // 3 6 13 0 2 + +// ----------------------------------------------------------------------------- +// Identification -- read-only feature bitmaps +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +CCSIDR_EL1 :: Register(0x4800_1000) // 3 1 0 0 0 +CLIDR_EL1 :: Register(0x4801_1000) // 3 1 0 0 1 +CSSELR_EL1 :: Register(0x5000_1000) // 3 2 0 0 0 +CTR_EL0 :: Register(0x5801_1000) // 3 3 0 0 1 +DCZID_EL0 :: Register(0x5807_1000) // 3 3 0 0 7 (used by __sve_max_vl-style probes too) +GMID_EL1 :: Register(0x4804_1000) // 3 1 0 0 4 (FEAT_MTE) +ID_AA64AFR0_EL1 :: Register(0x402C_1000) // 3 0 0 5 4 (auxiliary) +ID_AA64AFR1_EL1 :: Register(0x402D_1000) // 3 0 0 5 5 +ID_AA64DFR0_EL1 :: Register(0x4028_1000) // 3 0 0 5 0 +ID_AA64DFR1_EL1 :: Register(0x4029_1000) // 3 0 0 5 1 +ID_AA64DFR2_EL1 :: Register(0x402A_1000) // 3 0 0 5 2 +ID_AA64ISAR0_EL1 :: Register(0x4030_1000) // 3 0 0 6 0 +ID_AA64ISAR1_EL1 :: Register(0x4031_1000) // 3 0 0 6 1 +ID_AA64ISAR2_EL1 :: Register(0x4032_1000) // 3 0 0 6 2 +ID_AA64ISAR3_EL1 :: Register(0x4033_1000) // 3 0 0 6 3 +ID_AA64MMFR0_EL1 :: Register(0x4038_1000) // 3 0 0 7 0 +ID_AA64MMFR1_EL1 :: Register(0x4039_1000) // 3 0 0 7 1 +ID_AA64MMFR2_EL1 :: Register(0x403A_1000) // 3 0 0 7 2 +ID_AA64PFR0_EL1 :: Register(0x4020_1000) // 3 0 0 4 0 +ID_AA64PFR1_EL1 :: Register(0x4021_1000) // 3 0 0 4 1 +ID_AA64SMFR0_EL1 :: Register(0x4025_1000) // 3 0 0 4 5 (SME feature ID) +ID_AA64ZFR0_EL1 :: Register(0x4024_1000) // 3 0 0 4 4 (SVE feature ID) +ID_AFR0_EL1 :: Register(0x400B_1000) // 3 0 0 1 3 +ID_DFR0_EL1 :: Register(0x400A_1000) // 3 0 0 1 2 +ID_ISAR0_EL1 :: Register(0x4010_1000) // 3 0 0 2 0 +ID_ISAR1_EL1 :: Register(0x4011_1000) // 3 0 0 2 1 +ID_ISAR2_EL1 :: Register(0x4012_1000) // 3 0 0 2 2 +ID_ISAR3_EL1 :: Register(0x4013_1000) // 3 0 0 2 3 +ID_ISAR4_EL1 :: Register(0x4014_1000) // 3 0 0 2 4 +ID_ISAR5_EL1 :: Register(0x4015_1000) // 3 0 0 2 5 +ID_ISAR6_EL1 :: Register(0x4017_1000) // 3 0 0 2 7 +ID_MMFR0_EL1 :: Register(0x400C_1000) // 3 0 0 1 4 +ID_MMFR1_EL1 :: Register(0x400D_1000) // 3 0 0 1 5 +ID_MMFR2_EL1 :: Register(0x400E_1000) // 3 0 0 1 6 +ID_MMFR3_EL1 :: Register(0x400F_1000) // 3 0 0 1 7 +ID_MMFR4_EL1 :: Register(0x4016_1000) // 3 0 0 2 6 +ID_MMFR5_EL1 :: Register(0x401E_1000) // 3 0 0 3 6 +ID_PFR0_EL1 :: Register(0x4008_1000) // 3 0 0 1 0 +ID_PFR1_EL1 :: Register(0x4009_1000) // 3 0 0 1 1 +ID_PFR2_EL1 :: Register(0x401C_1000) // 3 0 0 3 4 +MIDR_EL1 :: Register(0x4000_1000) // 3 0 0 0 0 +MPIDR_EL1 :: Register(0x4005_1000) // 3 0 0 0 5 + +// ----------------------------------------------------------------------------- +// Pointer authentication keys (FEAT_PAuth) +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +APDAKEYHI_EL1 :: Register(0x4111_1000) // 3 0 2 2 1 +APDAKEYLO_EL1 :: Register(0x4110_1000) // 3 0 2 2 0 +APDBKEYHI_EL1 :: Register(0x4113_1000) // 3 0 2 2 3 +APDBKEYLO_EL1 :: Register(0x4112_1000) // 3 0 2 2 2 +APGAKEYHI_EL1 :: Register(0x4119_1000) // 3 0 2 3 1 +APGAKEYLO_EL1 :: Register(0x4118_1000) // 3 0 2 3 0 +APIAKEYHI_EL1 :: Register(0x4109_1000) // 3 0 2 1 1 +APIAKEYLO_EL1 :: Register(0x4108_1000) // 3 0 2 1 0 (FEAT_PAuth) +APIBKEYHI_EL1 :: Register(0x410B_1000) // 3 0 2 1 3 +APIBKEYLO_EL1 :: Register(0x410A_1000) // 3 0 2 1 2 + +// ----------------------------------------------------------------------------- +// Memory tagging (FEAT_MTE) +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +GCR_EL1 :: Register(0x4086_1000) // 3 0 1 0 6 (FEAT_MTE) +RGSR_EL1 :: Register(0x4085_1000) // 3 0 1 0 5 (FEAT_MTE) +TFSRE0_EL1 :: Register(0x42B1_1000) // 3 0 5 6 1 (FEAT_MTE) +TFSR_EL1 :: Register(0x42B0_1000) // 3 0 5 6 0 (FEAT_MTE) + +// ----------------------------------------------------------------------------- +// SVE and SME configuration +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +SMCR_EL1 :: Register(0x4096_1000) // 3 0 1 2 6 (FEAT_SME) +SMCR_EL2 :: Register(0x6096_1000) // 3 4 1 2 6 +SVCR :: Register(0x5A12_1000) // 3 3 4 2 2 (FEAT_SME: SM + ZA bits) +ZCR_EL1 :: Register(0x4090_1000) // 3 0 1 2 0 (FEAT_SVE) +ZCR_EL2 :: Register(0x6090_1000) // 3 4 1 2 0 +ZCR_EL3 :: Register(0x7090_1000) // 3 6 1 2 0 + +// ----------------------------------------------------------------------------- +// System control and memory management +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +ACTLR_EL1 :: Register(0x4081_1000) // 3 0 1 0 1 +AMAIR_EL1 :: Register(0x4518_1000) // 3 0 10 3 0 +CPACR_EL1 :: Register(0x4082_1000) // 3 0 1 0 2 +LORC_EL1 :: Register(0x4523_1000) // 3 0 10 4 3 +LOREA_EL1 :: Register(0x4521_1000) // 3 0 10 4 1 +LORID_EL1 :: Register(0x4527_1000) // 3 0 10 4 7 +LORN_EL1 :: Register(0x4522_1000) // 3 0 10 4 2 +LORSA_EL1 :: Register(0x4520_1000) // 3 0 10 4 0 +MAIR_EL1 :: Register(0x4510_1000) // 3 0 10 2 0 +PAR_EL1 :: Register(0x43A0_1000) // 3 0 7 4 0 +SCTLR_EL1 :: Register(0x4080_1000) // 3 0 1 0 0 +SCTLR_EL2 :: Register(0x6080_1000) // 3 4 1 0 0 +SCTLR_EL3 :: Register(0x7080_1000) // 3 6 1 0 0 +TCR_EL1 :: Register(0x4102_1000) // 3 0 2 0 2 +TTBR0_EL1 :: Register(0x4100_1000) // 3 0 2 0 0 +TTBR1_EL1 :: Register(0x4101_1000) // 3 0 2 0 1 + +// ----------------------------------------------------------------------------- +// Generic timer +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +CNTFRQ_EL0 :: Register(0x5F00_1000) // 3 3 14 0 0 +CNTHCTL_EL2 :: Register(0x6708_1000) // 3 4 14 1 0 +CNTHP_CTL_EL2 :: Register(0x6711_1000) // 3 4 14 2 1 +CNTHP_CVAL_EL2 :: Register(0x6712_1000) // 3 4 14 2 2 +CNTHP_TVAL_EL2 :: Register(0x6710_1000) // 3 4 14 2 0 +CNTHV_CTL_EL2 :: Register(0x6719_1000) // 3 4 14 3 1 +CNTHV_CVAL_EL2 :: Register(0x671A_1000) // 3 4 14 3 2 +CNTHV_TVAL_EL2 :: Register(0x6718_1000) // 3 4 14 3 0 +CNTKCTL_EL1 :: Register(0x4708_1000) // 3 0 14 1 0 +CNTPCT_EL0 :: Register(0x5F01_1000) // 3 3 14 0 1 +CNTPS_CTL_EL1 :: Register(0x7F11_1000) // 3 7 14 2 1 +CNTPS_CVAL_EL1 :: Register(0x7F12_1000) // 3 7 14 2 2 +CNTPS_TVAL_EL1 :: Register(0x7F10_1000) // 3 7 14 2 0 +CNTP_CTL_EL0 :: Register(0x5F11_1000) // 3 3 14 2 1 +CNTP_CVAL_EL0 :: Register(0x5F12_1000) // 3 3 14 2 2 +CNTP_TVAL_EL0 :: Register(0x5F10_1000) // 3 3 14 2 0 +CNTVCT_EL0 :: Register(0x5F02_1000) // 3 3 14 0 2 +CNTVOFF_EL2 :: Register(0x6703_1000) // 3 4 14 0 3 +CNTV_CTL_EL0 :: Register(0x5F19_1000) // 3 3 14 3 1 +CNTV_CVAL_EL0 :: Register(0x5F1A_1000) // 3 3 14 3 2 +CNTV_TVAL_EL0 :: Register(0x5F18_1000) // 3 3 14 3 0 + +// ----------------------------------------------------------------------------- +// Statistical profiling (FEAT_SPE) +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +PMBIDR_EL1 :: Register(0x44D7_1000) // 3 0 9 10 7 +PMBLIMITR_EL1 :: Register(0x44D0_1000) // 3 0 9 10 0 +PMBPTR_EL1 :: Register(0x44D1_1000) // 3 0 9 10 1 +PMBSR_EL1 :: Register(0x44D3_1000) // 3 0 9 10 3 +PMSCR_EL1 :: Register(0x44C8_1000) // 3 0 9 9 0 +PMSELR_EL0 :: Register(0x5CE5_1000) // 3 3 9 12 5 +PMSEVFR_EL1 :: Register(0x44CD_1000) // 3 0 9 9 5 +PMSFCR_EL1 :: Register(0x44CC_1000) // 3 0 9 9 4 +PMSICR_EL1 :: Register(0x44CA_1000) // 3 0 9 9 2 +PMSIDR_EL1 :: Register(0x44CF_1000) // 3 0 9 9 7 +PMSIRR_EL1 :: Register(0x44CB_1000) // 3 0 9 9 3 +PMSLATFR_EL1 :: Register(0x44CE_1000) // 3 0 9 9 6 +PMSWINC_EL0 :: Register(0x5CE4_1000) // 3 3 9 12 4 + +// ----------------------------------------------------------------------------- +// Performance monitors +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +PMCCFILTR_EL0 :: Register(0x5F7F_1000) // 3 3 14 15 7 +PMCCNTR_EL0 :: Register(0x5CE8_1000) // 3 3 9 13 0 +PMCEID0_EL0 :: Register(0x5CE6_1000) // 3 3 9 12 6 +PMCEID1_EL0 :: Register(0x5CE7_1000) // 3 3 9 12 7 +PMCNTENCLR_EL0 :: Register(0x5CE2_1000) // 3 3 9 12 2 +PMCNTENSET_EL0 :: Register(0x5CE1_1000) // 3 3 9 12 1 +PMCR_EL0 :: Register(0x5CE0_1000) // 3 3 9 12 0 +PMINTENCLR_EL1 :: Register(0x44F2_1000) // 3 0 9 14 2 +PMINTENSET_EL1 :: Register(0x44F1_1000) // 3 0 9 14 1 +PMOVSCLR_EL0 :: Register(0x5CE3_1000) // 3 3 9 12 3 +PMUSERENR_EL0 :: Register(0x5CF0_1000) // 3 3 9 14 0 + +// ----------------------------------------------------------------------------- +// Trace +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +TRBBASER_EL1 :: Register(0x44DA_1000) // 3 0 9 11 2 +TRBIDR_EL1 :: Register(0x44DF_1000) // 3 0 9 11 7 +TRBLIMITR_EL1 :: Register(0x44D8_1000) // 3 0 9 11 0 +TRBMAR_EL1 :: Register(0x44DC_1000) // 3 0 9 11 4 +TRBPTR_EL1 :: Register(0x44D9_1000) // 3 0 9 11 1 +TRBSR_EL1 :: Register(0x44DB_1000) // 3 0 9 11 3 +TRBTRG_EL1 :: Register(0x44DE_1000) // 3 0 9 11 6 + +// ----------------------------------------------------------------------------- +// Debug +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +DBGAUTHSTATUS_EL1 :: Register(0x03F6_1000) // 2 0 7 14 6 +DBGCLAIMCLR_EL1 :: Register(0x03CE_1000) // 2 0 7 9 6 +DBGCLAIMSET_EL1 :: Register(0x03C6_1000) // 2 0 7 8 6 +DBGDTRRX_EL0 :: Register(0x1828_1000) // 2 3 0 5 0 +DBGDTRTX_EL0 :: Register(0x1828_1000) // 2 3 0 5 0 (write view of DBGDTRRX_EL0) +DBGDTR_EL0 :: Register(0x1820_1000) // 2 3 0 4 0 +DBGPRCR_EL1 :: Register(0x00A4_1000) // 2 0 1 4 4 +DLR_EL0 :: Register(0x5A29_1000) // 3 3 4 5 1 +DSPSR_EL0 :: Register(0x5A28_1000) // 3 3 4 5 0 +MDCCINT_EL1 :: Register(0x0010_1000) // 2 0 0 2 0 +MDRAR_EL1 :: Register(0x0080_1000) // 2 0 1 0 0 +MDSCR_EL1 :: Register(0x0012_1000) // 2 0 0 2 2 +OSLAR_EL1 :: Register(0x0084_1000) // 2 0 1 0 4 (op0=2 -> o0=0) +OSLSR_EL1 :: Register(0x008C_1000) // 2 0 1 1 4 +PRSELR_EL1 :: Register(0x4311_1000) // 3 0 6 2 1 + +// ----------------------------------------------------------------------------- +// Generic interrupt controller +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +ICC_ASGI1R_EL1 :: Register(0x465E_1000) // 3 0 12 11 6 +ICC_BPR0_EL1 :: Register(0x4643_1000) // 3 0 12 8 3 +ICC_BPR1_EL1 :: Register(0x4663_1000) // 3 0 12 12 3 +ICC_CTLR_EL1 :: Register(0x4664_1000) // 3 0 12 12 4 +ICC_CTLR_EL3 :: Register(0x7664_1000) // 3 6 12 12 4 +ICC_DIR_EL1 :: Register(0x4659_1000) // 3 0 12 11 1 +ICC_EOIR0_EL1 :: Register(0x4641_1000) // 3 0 12 8 1 +ICC_EOIR1_EL1 :: Register(0x4661_1000) // 3 0 12 12 1 +ICC_HPPIR0_EL1 :: Register(0x4642_1000) // 3 0 12 8 2 +ICC_HPPIR1_EL1 :: Register(0x4662_1000) // 3 0 12 12 2 +ICC_IAR0_EL1 :: Register(0x4640_1000) // 3 0 12 8 0 +ICC_IAR1_EL1 :: Register(0x4660_1000) // 3 0 12 12 0 +ICC_IGRPEN0_EL1 :: Register(0x4666_1000) // 3 0 12 12 6 +ICC_IGRPEN1_EL1 :: Register(0x4667_1000) // 3 0 12 12 7 +ICC_IGRPEN1_EL3 :: Register(0x7667_1000) // 3 6 12 12 7 +ICC_PMR_EL1 :: Register(0x4230_1000) // 3 0 4 6 0 +ICC_RPR_EL1 :: Register(0x465B_1000) // 3 0 12 11 3 +ICC_SGI0R_EL1 :: Register(0x465F_1000) // 3 0 12 11 7 +ICC_SGI1R_EL1 :: Register(0x465D_1000) // 3 0 12 11 5 +ICC_SRE_EL1 :: Register(0x4665_1000) // 3 0 12 12 5 +ICC_SRE_EL2 :: Register(0x664D_1000) // 3 4 12 9 5 +ICC_SRE_EL3 :: Register(0x7665_1000) // 3 6 12 12 5 +ICH_EISR_EL2 :: Register(0x665B_1000) // 3 4 12 11 3 +ICH_ELRSR_EL2 :: Register(0x665D_1000) // 3 4 12 11 5 +ICH_HCR_EL2 :: Register(0x6658_1000) // 3 4 12 11 0 +ICH_MISR_EL2 :: Register(0x665A_1000) // 3 4 12 11 2 +ICH_VMCR_EL2 :: Register(0x665F_1000) // 3 4 12 11 7 +ICH_VTR_EL2 :: Register(0x6659_1000) // 3 4 12 11 1 + +// ----------------------------------------------------------------------------- +// RAS -- error record registers +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +DISR_EL1 :: Register(0x4609_1000) // 3 0 12 1 1 +ERRIDR_EL1 :: Register(0x4298_1000) // 3 0 5 3 0 +ERRSELR_EL1 :: Register(0x4299_1000) // 3 0 5 3 1 +ERXADDR_EL1 :: Register(0x42A3_1000) // 3 0 5 4 3 +ERXCTLR_EL1 :: Register(0x42A1_1000) // 3 0 5 4 1 +ERXFR_EL1 :: Register(0x42A0_1000) // 3 0 5 4 0 +ERXMISC0_EL1 :: Register(0x42A8_1000) // 3 0 5 5 0 +ERXMISC1_EL1 :: Register(0x42A9_1000) // 3 0 5 5 1 +ERXMISC2_EL1 :: Register(0x42AA_1000) // 3 0 5 5 2 +ERXMISC3_EL1 :: Register(0x42AB_1000) // 3 0 5 5 3 +ERXSTATUS_EL1 :: Register(0x42A2_1000) // 3 0 5 4 2 +VDISR_EL2 :: Register(0x6609_1000) // 3 4 12 1 1 +VSESR_EL2 :: Register(0x6293_1000) // 3 4 5 2 3 + +// ----------------------------------------------------------------------------- +// Virtualisation (EL2) and secure monitor (EL3) +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +GPCCR_EL3 :: Register(0x710E_1000) // 3 6 2 1 6 (Granule Protection Control) +GPTBR_EL3 :: Register(0x710C_1000) // 3 6 2 1 4 (Granule Protection Table Base) +HCR_EL2 :: Register(0x6088_1000) // 3 4 1 1 0 +HSTR_EL2 :: Register(0x608B_1000) // 3 4 1 1 3 +MDCR_EL2 :: Register(0x6089_1000) // 3 4 1 1 1 +MFAR_EL3 :: Register(0x7305_1000) // 3 6 6 0 5 (Multiple FAR) +VTCR_EL2 :: Register(0x610A_1000) // 3 4 2 1 2 +VTTBR_EL2 :: Register(0x6108_1000) // 3 4 2 1 0 + +// ----------------------------------------------------------------------------- +// AArch32 compatibility +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +DACR32_EL2 :: Register(0x6180_1000) // 3 4 3 0 0 +FPEXC32_EL2 :: Register(0x6298_1000) // 3 4 5 3 0 + +// ----------------------------------------------------------------------------- +// Random number (FEAT_RNG) +// ----------------------------------------------------------------------------- + +// op0 op1 CRn CRm op2 +RNDR :: Register(0x5920_1000) // 3 3 2 4 0 +RNDRRS :: Register(0x5921_1000) // 3 3 2 4 1 + +// ----------------------------------------------------------------------------- +// Value -> name, for printing +// ----------------------------------------------------------------------------- +// +// A disassembly has the packed field where an assembler wants a name. Sorted +// by value; binary search. +// +// 1 encoding carries two names: DBGDTRRX_EL0 and DBGDTRTX_EL0 are the read +// and write views of one register. The read name wins, since MRS is the +// direction that has to print. + +Sysreg_Name :: struct { + value: u16, // the bare 15-bit MRS/MSR field (what sysreg_bits returns) + name: string, +} + +@(rodata) +SYSREG_NAMES := [?]Sysreg_Name{ + {0x0010, "mdccint_el1"}, + {0x0012, "mdscr_el1"}, + {0x0080, "mdrar_el1"}, + {0x0084, "oslar_el1"}, + {0x008C, "oslsr_el1"}, + {0x00A4, "dbgprcr_el1"}, + {0x03C6, "dbgclaimset_el1"}, + {0x03CE, "dbgclaimclr_el1"}, + {0x03F6, "dbgauthstatus_el1"}, + {0x1820, "dbgdtr_el0"}, + {0x1828, "dbgdtrrx_el0"}, + {0x4000, "midr_el1"}, + {0x4005, "mpidr_el1"}, + {0x4008, "id_pfr0_el1"}, + {0x4009, "id_pfr1_el1"}, + {0x400A, "id_dfr0_el1"}, + {0x400B, "id_afr0_el1"}, + {0x400C, "id_mmfr0_el1"}, + {0x400D, "id_mmfr1_el1"}, + {0x400E, "id_mmfr2_el1"}, + {0x400F, "id_mmfr3_el1"}, + {0x4010, "id_isar0_el1"}, + {0x4011, "id_isar1_el1"}, + {0x4012, "id_isar2_el1"}, + {0x4013, "id_isar3_el1"}, + {0x4014, "id_isar4_el1"}, + {0x4015, "id_isar5_el1"}, + {0x4016, "id_mmfr4_el1"}, + {0x4017, "id_isar6_el1"}, + {0x4018, "mvfr0_el1"}, + {0x4019, "mvfr1_el1"}, + {0x401A, "mvfr2_el1"}, + {0x401C, "id_pfr2_el1"}, + {0x401E, "id_mmfr5_el1"}, + {0x4020, "id_aa64pfr0_el1"}, + {0x4021, "id_aa64pfr1_el1"}, + {0x4024, "id_aa64zfr0_el1"}, + {0x4025, "id_aa64smfr0_el1"}, + {0x4028, "id_aa64dfr0_el1"}, + {0x4029, "id_aa64dfr1_el1"}, + {0x402A, "id_aa64dfr2_el1"}, + {0x402C, "id_aa64afr0_el1"}, + {0x402D, "id_aa64afr1_el1"}, + {0x4030, "id_aa64isar0_el1"}, + {0x4031, "id_aa64isar1_el1"}, + {0x4032, "id_aa64isar2_el1"}, + {0x4033, "id_aa64isar3_el1"}, + {0x4038, "id_aa64mmfr0_el1"}, + {0x4039, "id_aa64mmfr1_el1"}, + {0x403A, "id_aa64mmfr2_el1"}, + {0x4080, "sctlr_el1"}, + {0x4081, "actlr_el1"}, + {0x4082, "cpacr_el1"}, + {0x4085, "rgsr_el1"}, + {0x4086, "gcr_el1"}, + {0x4090, "zcr_el1"}, + {0x4096, "smcr_el1"}, + {0x4100, "ttbr0_el1"}, + {0x4101, "ttbr1_el1"}, + {0x4102, "tcr_el1"}, + {0x4108, "apiakeylo_el1"}, + {0x4109, "apiakeyhi_el1"}, + {0x410A, "apibkeylo_el1"}, + {0x410B, "apibkeyhi_el1"}, + {0x4110, "apdakeylo_el1"}, + {0x4111, "apdakeyhi_el1"}, + {0x4112, "apdbkeylo_el1"}, + {0x4113, "apdbkeyhi_el1"}, + {0x4118, "apgakeylo_el1"}, + {0x4119, "apgakeyhi_el1"}, + {0x4200, "spsr_el1"}, + {0x4201, "elr_el1"}, + {0x4208, "sp_el0"}, + {0x4212, "currentel"}, + {0x4230, "icc_pmr_el1"}, + {0x4288, "afsr0_el1"}, + {0x4289, "afsr1_el1"}, + {0x4290, "esr_el1"}, + {0x4298, "erridr_el1"}, + {0x4299, "errselr_el1"}, + {0x42A0, "erxfr_el1"}, + {0x42A1, "erxctlr_el1"}, + {0x42A2, "erxstatus_el1"}, + {0x42A3, "erxaddr_el1"}, + {0x42A8, "erxmisc0_el1"}, + {0x42A9, "erxmisc1_el1"}, + {0x42AA, "erxmisc2_el1"}, + {0x42AB, "erxmisc3_el1"}, + {0x42B0, "tfsr_el1"}, + {0x42B1, "tfsre0_el1"}, + {0x4300, "far_el1"}, + {0x4311, "prselr_el1"}, + {0x43A0, "par_el1"}, + {0x44C8, "pmscr_el1"}, + {0x44CA, "pmsicr_el1"}, + {0x44CB, "pmsirr_el1"}, + {0x44CC, "pmsfcr_el1"}, + {0x44CD, "pmsevfr_el1"}, + {0x44CE, "pmslatfr_el1"}, + {0x44CF, "pmsidr_el1"}, + {0x44D0, "pmblimitr_el1"}, + {0x44D1, "pmbptr_el1"}, + {0x44D3, "pmbsr_el1"}, + {0x44D7, "pmbidr_el1"}, + {0x44D8, "trblimitr_el1"}, + {0x44D9, "trbptr_el1"}, + {0x44DA, "trbbaser_el1"}, + {0x44DB, "trbsr_el1"}, + {0x44DC, "trbmar_el1"}, + {0x44DE, "trbtrg_el1"}, + {0x44DF, "trbidr_el1"}, + {0x44F1, "pmintenset_el1"}, + {0x44F2, "pmintenclr_el1"}, + {0x4510, "mair_el1"}, + {0x4518, "amair_el1"}, + {0x4520, "lorsa_el1"}, + {0x4521, "lorea_el1"}, + {0x4522, "lorn_el1"}, + {0x4523, "lorc_el1"}, + {0x4527, "lorid_el1"}, + {0x4600, "vbar_el1"}, + {0x4608, "isr_el1"}, + {0x4609, "disr_el1"}, + {0x4640, "icc_iar0_el1"}, + {0x4641, "icc_eoir0_el1"}, + {0x4642, "icc_hppir0_el1"}, + {0x4643, "icc_bpr0_el1"}, + {0x4659, "icc_dir_el1"}, + {0x465B, "icc_rpr_el1"}, + {0x465D, "icc_sgi1r_el1"}, + {0x465E, "icc_asgi1r_el1"}, + {0x465F, "icc_sgi0r_el1"}, + {0x4660, "icc_iar1_el1"}, + {0x4661, "icc_eoir1_el1"}, + {0x4662, "icc_hppir1_el1"}, + {0x4663, "icc_bpr1_el1"}, + {0x4664, "icc_ctlr_el1"}, + {0x4665, "icc_sre_el1"}, + {0x4666, "icc_igrpen0_el1"}, + {0x4667, "icc_igrpen1_el1"}, + {0x4681, "contextidr_el1"}, + {0x4684, "tpidr_el1"}, + {0x4708, "cntkctl_el1"}, + {0x4800, "ccsidr_el1"}, + {0x4801, "clidr_el1"}, + {0x4804, "gmid_el1"}, + {0x5000, "csselr_el1"}, + {0x5801, "ctr_el0"}, + {0x5807, "dczid_el0"}, + {0x5920, "rndr"}, + {0x5921, "rndrrs"}, + {0x5A10, "nzcv"}, + {0x5A11, "daif"}, + {0x5A12, "svcr"}, + {0x5A20, "fpcr"}, + {0x5A21, "fpsr"}, + {0x5A28, "dspsr_el0"}, + {0x5A29, "dlr_el0"}, + {0x5CE0, "pmcr_el0"}, + {0x5CE1, "pmcntenset_el0"}, + {0x5CE2, "pmcntenclr_el0"}, + {0x5CE3, "pmovsclr_el0"}, + {0x5CE4, "pmswinc_el0"}, + {0x5CE5, "pmselr_el0"}, + {0x5CE6, "pmceid0_el0"}, + {0x5CE7, "pmceid1_el0"}, + {0x5CE8, "pmccntr_el0"}, + {0x5CF0, "pmuserenr_el0"}, + {0x5E82, "tpidr_el0"}, + {0x5E83, "tpidrro_el0"}, + {0x5E85, "tpidr2_el0"}, + {0x5F00, "cntfrq_el0"}, + {0x5F01, "cntpct_el0"}, + {0x5F02, "cntvct_el0"}, + {0x5F10, "cntp_tval_el0"}, + {0x5F11, "cntp_ctl_el0"}, + {0x5F12, "cntp_cval_el0"}, + {0x5F18, "cntv_tval_el0"}, + {0x5F19, "cntv_ctl_el0"}, + {0x5F1A, "cntv_cval_el0"}, + {0x5F7F, "pmccfiltr_el0"}, + {0x6080, "sctlr_el2"}, + {0x6088, "hcr_el2"}, + {0x6089, "mdcr_el2"}, + {0x608B, "hstr_el2"}, + {0x6090, "zcr_el2"}, + {0x6096, "smcr_el2"}, + {0x6108, "vttbr_el2"}, + {0x610A, "vtcr_el2"}, + {0x6180, "dacr32_el2"}, + {0x6200, "spsr_el2"}, + {0x6201, "elr_el2"}, + {0x6208, "sp_el1"}, + {0x6290, "esr_el2"}, + {0x6293, "vsesr_el2"}, + {0x6298, "fpexc32_el2"}, + {0x6300, "far_el2"}, + {0x6600, "vbar_el2"}, + {0x6609, "vdisr_el2"}, + {0x664D, "icc_sre_el2"}, + {0x6658, "ich_hcr_el2"}, + {0x6659, "ich_vtr_el2"}, + {0x665A, "ich_misr_el2"}, + {0x665B, "ich_eisr_el2"}, + {0x665D, "ich_elrsr_el2"}, + {0x665F, "ich_vmcr_el2"}, + {0x6682, "tpidr_el2"}, + {0x6703, "cntvoff_el2"}, + {0x6708, "cnthctl_el2"}, + {0x6710, "cnthp_tval_el2"}, + {0x6711, "cnthp_ctl_el2"}, + {0x6712, "cnthp_cval_el2"}, + {0x6718, "cnthv_tval_el2"}, + {0x6719, "cnthv_ctl_el2"}, + {0x671A, "cnthv_cval_el2"}, + {0x7080, "sctlr_el3"}, + {0x7090, "zcr_el3"}, + {0x710C, "gptbr_el3"}, + {0x710E, "gpccr_el3"}, + {0x7200, "spsr_el3"}, + {0x7201, "elr_el3"}, + {0x7305, "mfar_el3"}, + {0x7600, "vbar_el3"}, + {0x7664, "icc_ctlr_el3"}, + {0x7665, "icc_sre_el3"}, + {0x7667, "icc_igrpen1_el3"}, + {0x7682, "tpidr_el3"}, + {0x7F10, "cntps_tval_el1"}, + {0x7F11, "cntps_ctl_el1"}, + {0x7F12, "cntps_cval_el1"}, +} + +// Name for a system register, or ok=false when it is not one we know -- +// callers should fall back to printing the raw field. +@(require_results) +sysreg_name :: proc "contextless" (sr: Register) -> (name: string, ok: bool) { + v := u16(sysreg_bits(sr)) + lo, hi := 0, len(SYSREG_NAMES) - 1 + for lo <= hi { + mid := (lo + hi) / 2 + e := SYSREG_NAMES[mid] + switch { + case e.value == v: return e.name, true + case e.value < v: lo = mid + 1 + case: hi = mid - 1 + } + } + return "", false +} diff --git a/core/rexcode/isa/arm64/sysregs.odin b/core/rexcode/isa/arm64/sysregs.odin deleted file mode 100644 index 32522a820..000000000 --- a/core/rexcode/isa/arm64/sysregs.odin +++ /dev/null @@ -1,407 +0,0 @@ -// rexcode · Brendan Punsky (dotbmp@github), original author - -package rexcode_arm64 - -// ============================================================================= -// AArch64 SYSTEM REGISTERS (named constants for MRS / MSR) -// ============================================================================= -// -// The MRS / MSR instructions encode the target system register as a 15-bit -// field at bits 19:5 of the instruction word: -// -// o0 (1 bit) : op0 - 2 (op0 = 2 -> o0=0; op0 = 3 -> o0=1) -// op1 (3 bit) : op1 -// CRn (4 bit) : CRn -// CRm (4 bit) : CRm -// op2 (3 bit) : op2 -// -// concatenated MSB-first: o0 || op1 || CRn || CRm || op2. -// -// Users pass these as the immediate operand to `inst_*` builders or by -// hand, e.g.: -// -// MRS X0, NZCV -> op_imm(arm64.NZCV, 2) -// -// The encoder packs the field into SYS_FIELD at bits 19:5 via the standard -// `(imm & 0x7FFF) << 5` mask, so callers can pass either the raw 15-bit -// field value (preferred) or the historical 0x_DA10-style 16-bit form -// (top bit gets masked off). - -// ----------------------------------------------------------------------------- -// Helper for building sysreg field values at compile time. -// sysreg_field(op0, op1, CRn, CRm, op2) = packed 15-bit field -// op0 must be 2 or 3 (the o0 bit = op0 - 2). -// ----------------------------------------------------------------------------- - -sysreg_field :: #force_inline proc "contextless" (op0, op1, CRn, CRm, op2: u32) -> i64 { - o0 := (op0 - 2) & 0x1 - return i64( - (o0 << 14) | - (op1 << 11) | - (CRn << 7) | - (CRm << 3) | - op2, - ) -} - -// ----------------------------------------------------------------------------- -// Commonly-used named registers (the ones every disassembler knows about). -// ----------------------------------------------------------------------------- - -// op0 op1 CRn CRm op2 -NZCV :: i64(0x5A10) // 3 3 4 2 0 -DAIF :: i64(0x5A11) // 3 3 4 2 1 -FPCR :: i64(0x5A20) // 3 3 4 4 0 -FPSR :: i64(0x5A21) // 3 3 4 4 1 -CURRENT_EL :: i64(0x4212) // 3 0 4 2 2 -SP_EL0 :: i64(0x4208) // 3 0 4 1 0 -SP_EL1 :: i64(0x6208) // 3 4 4 1 0 -ELR_EL1 :: i64(0x4201) // 3 0 4 0 1 -ELR_EL2 :: i64(0x6201) // 3 4 4 0 1 -SPSR_EL1 :: i64(0x4200) // 3 0 4 0 0 -SPSR_EL2 :: i64(0x6200) // 3 4 4 0 0 -ESR_EL1 :: i64(0x5290) // 3 0 5 2 0 -ESR_EL2 :: i64(0x6290) // 3 4 5 2 0 -FAR_EL1 :: i64(0x5300) // 3 0 6 0 0 -FAR_EL2 :: i64(0x6300) // 3 4 6 0 0 -TPIDR_EL0 :: i64(0x5E82) // 3 3 13 0 2 -TPIDRRO_EL0 :: i64(0x5E83) // 3 3 13 0 3 -TPIDR_EL1 :: i64(0x4684) // 3 0 13 0 4 (corrected: 3 0 13 0 4 -> 4684 hmm let me recompute) - -// Counters / system identity -CNTFRQ_EL0 :: i64(0x5F00) // 3 3 14 0 0 -CNTPCT_EL0 :: i64(0x5F01) // 3 3 14 0 1 -CNTVCT_EL0 :: i64(0x5F02) // 3 3 14 0 2 -MIDR_EL1 :: i64(0x4000) // 3 0 0 0 0 -MPIDR_EL1 :: i64(0x4005) // 3 0 0 0 5 -DCZID_EL0 :: i64(0x5807) // 3 3 0 0 7 (used by __sve_max_vl-style probes too) -CTR_EL0 :: i64(0x5801) // 3 3 0 0 1 -TCR_EL1 :: i64(0x4282) // 3 0 2 0 2 -SCTLR_EL1 :: i64(0x4080) // 3 0 1 0 0 -VBAR_EL1 :: i64(0x4600) // 3 0 12 0 0 -HCR_EL2 :: i64(0x6088) // 3 4 1 1 0 -TTBR0_EL1 :: i64(0x4100) // 3 0 2 0 0 -TTBR1_EL1 :: i64(0x4101) // 3 0 2 0 1 - -// ----------------------------------------------------------------------------- -// Identification registers (ID_AA64*_EL1) -- read-only feature bitmaps -// ----------------------------------------------------------------------------- -ID_AA64ISAR0_EL1 :: i64(0x4030) // 3 0 0 6 0 -ID_AA64ISAR1_EL1 :: i64(0x4031) // 3 0 0 6 1 -ID_AA64ISAR2_EL1 :: i64(0x4032) // 3 0 0 6 2 -ID_AA64PFR0_EL1 :: i64(0x4020) // 3 0 0 4 0 -ID_AA64PFR1_EL1 :: i64(0x4021) // 3 0 0 4 1 -ID_AA64DFR0_EL1 :: i64(0x4028) // 3 0 0 5 0 -ID_AA64DFR1_EL1 :: i64(0x4029) // 3 0 0 5 1 -ID_AA64MMFR0_EL1 :: i64(0x4038) // 3 0 0 7 0 -ID_AA64MMFR1_EL1 :: i64(0x4039) // 3 0 0 7 1 -ID_AA64MMFR2_EL1 :: i64(0x403A) // 3 0 0 7 2 - -// ----------------------------------------------------------------------------- -// Performance Monitor Unit (PMU) -// ----------------------------------------------------------------------------- -PMCR_EL0 :: i64(0x5CE0) // 3 3 9 12 0 -PMCNTENSET_EL0 :: i64(0x5CE1) // 3 3 9 12 1 -PMCNTENCLR_EL0 :: i64(0x5CE2) // 3 3 9 12 2 -PMOVSCLR_EL0 :: i64(0x5CE3) // 3 3 9 12 3 -PMSWINC_EL0 :: i64(0x5CE4) // 3 3 9 12 4 -PMSELR_EL0 :: i64(0x5CE5) // 3 3 9 12 5 -PMCEID0_EL0 :: i64(0x5CE6) // 3 3 9 12 6 -PMCEID1_EL0 :: i64(0x5CE7) // 3 3 9 12 7 -PMCCNTR_EL0 :: i64(0x5CE8) // 3 3 9 13 0 -PMUSERENR_EL0 :: i64(0x5CF0) // 3 3 9 14 0 - -// ----------------------------------------------------------------------------- -// Memory attribute / context / control registers -// ----------------------------------------------------------------------------- -CONTEXTIDR_EL1 :: i64(0x4681) // 3 0 13 0 1 -CPACR_EL1 :: i64(0x4082) // 3 0 1 0 2 -MAIR_EL1 :: i64(0x4510) // 3 0 10 2 0 -AMAIR_EL1 :: i64(0x4518) // 3 0 10 3 0 -VTCR_EL2 :: i64(0x610A) // 3 4 2 1 2 -VTTBR_EL2 :: i64(0x6108) // 3 4 2 1 0 -ACTLR_EL1 :: i64(0x4081) // 3 0 1 0 1 -AFSR0_EL1 :: i64(0x4288) // 3 0 5 1 0 -AFSR1_EL1 :: i64(0x4289) // 3 0 5 1 1 -ISR_EL1 :: i64(0x4608) // 3 0 12 1 0 - -// ----------------------------------------------------------------------------- -// Random number registers (v8.5-A FEAT_RNG) -// ----------------------------------------------------------------------------- -RNDR :: i64(0x5920) // 3 3 2 4 0 -RNDRRS :: i64(0x5921) // 3 3 2 4 1 - -// ----------------------------------------------------------------------------- -// More ID registers -// ----------------------------------------------------------------------------- -ID_AA64ZFR0_EL1 :: i64(0x4024) // 3 0 0 4 4 (SVE feature ID) -ID_AA64SMFR0_EL1 :: i64(0x4025) // 3 0 0 4 5 (SME feature ID) -ID_AA64AFR0_EL1 :: i64(0x402C) // 3 0 0 5 4 (auxiliary) -ID_AA64AFR1_EL1 :: i64(0x402D) // 3 0 0 5 5 - -// ----------------------------------------------------------------------------- -// Cache hierarchy + selection -// ----------------------------------------------------------------------------- -CCSIDR_EL1 :: i64(0x4800) // 3 1 0 0 0 -CLIDR_EL1 :: i64(0x4801) // 3 1 0 0 1 -CSSELR_EL1 :: i64(0x5000) // 3 2 0 0 0 - -// ----------------------------------------------------------------------------- -// EL2 / EL3 control + return registers -// ----------------------------------------------------------------------------- -SCTLR_EL2 :: i64(0x6080) // 3 4 1 0 0 -SCTLR_EL3 :: i64(0x7080) // 3 6 1 0 0 -SPSR_EL3 :: i64(0x7200) // 3 6 4 0 0 -ELR_EL3 :: i64(0x7201) // 3 6 4 0 1 -TPIDR_EL2 :: i64(0x6E82) // 3 4 13 0 2 -TPIDR_EL3 :: i64(0x7682) // 3 6 13 0 2 -- err, EL3 needs op1=6 -HSTR_EL2 :: i64(0x608B) // 3 4 1 1 3 -MDCR_EL2 :: i64(0x6089) // 3 4 1 1 1 -CNTHCTL_EL2 :: i64(0x6708) // 3 4 14 1 0 -DACR32_EL2 :: i64(0x6180) // 3 4 3 0 0 -FPEXC32_EL2 :: i64(0x6298) // 3 4 5 3 0 -VBAR_EL2 :: i64(0x6600) // 3 4 12 0 0 -VBAR_EL3 :: i64(0x7600) // 3 6 12 0 0 -TPIDR2_EL0 :: i64(0x5E85) // 3 3 13 0 5 (SME thread pointer 2) - -// ----------------------------------------------------------------------------- -// Debug registers (op0 = 2) -// ----------------------------------------------------------------------------- -MDSCR_EL1 :: i64(0x0012) // 2 0 0 2 2 -DSPSR_EL0 :: i64(0x5A28) // 3 3 4 5 0 -DLR_EL0 :: i64(0x5A29) // 3 3 4 5 1 -OSLAR_EL1 :: i64(0x0084) // 2 0 1 0 4 (op0=2 -> o0=0) -OSLSR_EL1 :: i64(0x008C) // 2 0 1 1 4 - -// ----------------------------------------------------------------------------- -// Cache / Memory feature extras -// ----------------------------------------------------------------------------- -RGSR_EL1 :: i64(0x4288) // 3 0 5 1 0 (FEAT_MTE) -GCR_EL1 :: i64(0x4289) // 3 0 5 1 2 (FEAT_MTE) -TFSR_EL1 :: i64(0x4300) // 3 0 6 0 0 (FEAT_MTE) -TFSRE0_EL1 :: i64(0x4301) // 3 0 6 0 1 (FEAT_MTE) -GMID_EL1 :: i64(0x4804) // 3 1 0 0 4 (FEAT_MTE) - -// ----------------------------------------------------------------------------- -// SME / SVE configuration -// ----------------------------------------------------------------------------- -SVCR :: i64(0x5A22) // 3 3 4 2 2 (FEAT_SME: SM + ZA bits) -SMCR_EL1 :: i64(0x4296) // 3 0 1 2 6 (FEAT_SME) -SMCR_EL2 :: i64(0x6296) // 3 4 1 2 6 -ZCR_EL1 :: i64(0x4290) // 3 0 1 2 0 (FEAT_SVE) -ZCR_EL2 :: i64(0x6290) // 3 4 1 2 0 -ZCR_EL3 :: i64(0x7290) // 3 6 1 2 0 - -// ----------------------------------------------------------------------------- -// Cache / data prefetch hint controls -// ----------------------------------------------------------------------------- -PRSELR_EL1 :: i64(0x4288) // ... (collision with RGSR_EL1; keep historic) -APIAKEYLO_EL1 :: i64(0x4318) // 3 0 2 1 0 (FEAT_PAuth) -APIAKEYHI_EL1 :: i64(0x4319) // 3 0 2 1 1 -APIBKEYLO_EL1 :: i64(0x431A) // 3 0 2 1 2 -APIBKEYHI_EL1 :: i64(0x431B) // 3 0 2 1 3 -APDAKEYLO_EL1 :: i64(0x4320) // 3 0 2 2 0 -APDAKEYHI_EL1 :: i64(0x4321) // 3 0 2 2 1 -APDBKEYLO_EL1 :: i64(0x4322) // 3 0 2 2 2 -APDBKEYHI_EL1 :: i64(0x4323) // 3 0 2 2 3 -APGAKEYLO_EL1 :: i64(0x4328) // 3 0 2 3 0 -APGAKEYHI_EL1 :: i64(0x4329) // 3 0 2 3 1 - -// ============================================================================= -// Batch 5: comprehensive sysreg sweep -// ============================================================================= - -// ---- More ID registers (AArch32 + extras) ---- -ID_AA64DFR2_EL1 :: i64(0x402A) // 3 0 0 5 2 -ID_AA64ISAR3_EL1 :: i64(0x4033) // 3 0 0 6 3 -ID_PFR0_EL1 :: i64(0x4008) // 3 0 0 1 0 -ID_PFR1_EL1 :: i64(0x4009) // 3 0 0 1 1 -ID_DFR0_EL1 :: i64(0x400A) // 3 0 0 1 2 -ID_AFR0_EL1 :: i64(0x400B) // 3 0 0 1 3 -ID_MMFR0_EL1 :: i64(0x400C) // 3 0 0 1 4 -ID_MMFR1_EL1 :: i64(0x400D) // 3 0 0 1 5 -ID_MMFR2_EL1 :: i64(0x400E) // 3 0 0 1 6 -ID_MMFR3_EL1 :: i64(0x400F) // 3 0 0 1 7 -ID_MMFR4_EL1 :: i64(0x4036) // 3 0 0 6 6 -ID_MMFR5_EL1 :: i64(0x402E) // 3 0 0 5 6 -ID_ISAR0_EL1 :: i64(0x4010) // 3 0 0 2 0 -ID_ISAR1_EL1 :: i64(0x4011) // 3 0 0 2 1 -ID_ISAR2_EL1 :: i64(0x4012) // 3 0 0 2 2 -ID_ISAR3_EL1 :: i64(0x4013) // 3 0 0 2 3 -ID_ISAR4_EL1 :: i64(0x4014) // 3 0 0 2 4 -ID_ISAR5_EL1 :: i64(0x4015) // 3 0 0 2 5 -ID_ISAR6_EL1 :: i64(0x4017) // 3 0 0 2 7 -ID_PFR2_EL1 :: i64(0x402C) // (overlap historic; check if collision) -MVFR0_EL1 :: i64(0x4018) // 3 0 0 3 0 -MVFR1_EL1 :: i64(0x4019) // 3 0 0 3 1 -MVFR2_EL1 :: i64(0x401A) // 3 0 0 3 2 - -// ---- Counter / Timer (full set) ---- -CNTKCTL_EL1 :: i64(0x4708) // 3 0 14 1 0 -CNTP_TVAL_EL0 :: i64(0x5F10) // 3 3 14 2 0 -CNTP_CTL_EL0 :: i64(0x5F11) // 3 3 14 2 1 -CNTP_CVAL_EL0 :: i64(0x5F12) // 3 3 14 2 2 -CNTV_TVAL_EL0 :: i64(0x5F18) // 3 3 14 3 0 -CNTV_CTL_EL0 :: i64(0x5F19) // 3 3 14 3 1 -CNTV_CVAL_EL0 :: i64(0x5F1A) // 3 3 14 3 2 -CNTHP_TVAL_EL2 :: i64(0x6710) // 3 4 14 2 0 -CNTHP_CTL_EL2 :: i64(0x6711) // 3 4 14 2 1 -CNTHP_CVAL_EL2 :: i64(0x6712) // 3 4 14 2 2 -CNTHV_TVAL_EL2 :: i64(0x6718) // 3 4 14 3 0 -CNTHV_CTL_EL2 :: i64(0x6719) // 3 4 14 3 1 -CNTHV_CVAL_EL2 :: i64(0x671A) // 3 4 14 3 2 -CNTPS_TVAL_EL1 :: i64(0x7F10) // 3 7 14 2 0 -CNTPS_CTL_EL1 :: i64(0x7F11) // 3 7 14 2 1 -CNTPS_CVAL_EL1 :: i64(0x7F12) // 3 7 14 2 2 -CNTVOFF_EL2 :: i64(0x671B) // 3 4 14 0 3 - -// ---- Debug breakpoints (DBGB*) and watchpoints (DBGW*), numbered ---- -// -// Each register file is 16 deep: DBGBVR0..15, DBGBCR0..15, DBGWVR0..15, -// DBGWCR0..15. Use the helper: -// sysreg_debug_breakpoint_value(n) -- DBGBVRn_EL1 = (2, 0, 0, n, 4) -// sysreg_debug_breakpoint_control(n) -- DBGBCRn_EL1 = (2, 0, 0, n, 5) -// sysreg_debug_watchpoint_value(n) -- DBGWVRn_EL1 = (2, 0, 0, n, 6) -// sysreg_debug_watchpoint_control(n) -- DBGWCRn_EL1 = (2, 0, 0, n, 7) - -sysreg_debug_breakpoint_value :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(2, 0, 0, n & 0xF, 4) -} -sysreg_debug_breakpoint_control :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(2, 0, 0, n & 0xF, 5) -} -sysreg_debug_watchpoint_value :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(2, 0, 0, n & 0xF, 6) -} -sysreg_debug_watchpoint_control :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(2, 0, 0, n & 0xF, 7) -} - -// Other debug registers -DBGDTR_EL0 :: i64(0x1A20) // 2 3 0 4 0 -DBGDTRRX_EL0 :: i64(0x1A28) // 2 3 0 5 0 -DBGDTRTX_EL0 :: i64(0x1A28) -DBGPRCR_EL1 :: i64(0x0084) // (collision flag; treat as canonical from doc) -DBGCLAIMSET_EL1 :: i64(0x1BC6) // 2 0 7 8 6 -DBGCLAIMCLR_EL1 :: i64(0x1BCE) // 2 0 7 9 6 -DBGAUTHSTATUS_EL1:: i64(0x1BF6) // 2 0 7 14 6 -MDCCINT_EL1 :: i64(0x0010) // 2 0 0 2 0 -MDRAR_EL1 :: i64(0x1080) // 2 0 1 0 0 - -// PMU event counters (PMEVCNTRn_EL0 / PMEVTYPERn_EL0). Up to n=30. -// PMEVCNTRn_EL0 = sysreg(3, 3, 14, 8+(n>>3), n & 7) -// PMEVTYPERn_EL0 = sysreg(3, 3, 14, 12+(n>>3), n & 7) - -sysreg_pmu_event_counter :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(3, 3, 14, 8 + ((n >> 3) & 0x3), n & 0x7) -} -sysreg_pmu_event_typer :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(3, 3, 14, 12 + ((n >> 3) & 0x3), n & 0x7) -} - -PMINTENSET_EL1 :: i64(0x4CE1) // 3 0 9 14 1 -PMINTENCLR_EL1 :: i64(0x4CE2) // 3 0 9 14 2 - -// ---- GICv3 (ICC_*) -- CPU interface ---- -ICC_IAR0_EL1 :: i64(0x4C40) // 3 0 12 8 0 -ICC_IAR1_EL1 :: i64(0x4C60) // 3 0 12 12 0 -ICC_EOIR0_EL1 :: i64(0x4C41) // 3 0 12 8 1 -ICC_EOIR1_EL1 :: i64(0x4C61) // 3 0 12 12 1 -ICC_HPPIR0_EL1 :: i64(0x4C42) // 3 0 12 8 2 -ICC_HPPIR1_EL1 :: i64(0x4C62) // 3 0 12 12 2 -ICC_BPR0_EL1 :: i64(0x4C43) // 3 0 12 8 3 -ICC_BPR1_EL1 :: i64(0x4C63) // 3 0 12 12 3 -ICC_DIR_EL1 :: i64(0x4C59) // 3 0 12 11 1 -ICC_PMR_EL1 :: i64(0x4630) // 3 0 4 6 0 -ICC_RPR_EL1 :: i64(0x4C5B) // 3 0 12 11 3 -ICC_SGI0R_EL1 :: i64(0x5CDF) // 3 3 12 11 7 -ICC_SGI1R_EL1 :: i64(0x5CDD) // 3 3 12 11 5 -ICC_ASGI1R_EL1 :: i64(0x5CDE) // 3 3 12 11 6 -ICC_SRE_EL1 :: i64(0x4C65) // 3 0 12 12 5 -ICC_SRE_EL2 :: i64(0x6C65) // 3 4 12 9 5 -ICC_SRE_EL3 :: i64(0x7C65) // 3 6 12 12 5 -ICC_CTLR_EL1 :: i64(0x4C64) // 3 0 12 12 4 -ICC_CTLR_EL3 :: i64(0x7C64) // 3 6 12 12 4 -ICC_IGRPEN0_EL1 :: i64(0x4C66) // 3 0 12 12 6 -ICC_IGRPEN1_EL1 :: i64(0x4C67) // 3 0 12 12 7 -ICC_IGRPEN1_EL3 :: i64(0x7C67) // 3 6 12 12 7 - -// ---- GICv3 hypervisor (ICH_*) ---- -ICH_HCR_EL2 :: i64(0x6CD8) // 3 4 12 11 0 -ICH_VTR_EL2 :: i64(0x6CD9) // 3 4 12 11 1 -ICH_MISR_EL2 :: i64(0x6CDA) // 3 4 12 11 2 -ICH_EISR_EL2 :: i64(0x6CDB) // 3 4 12 11 3 -ICH_ELRSR_EL2 :: i64(0x6CDD) // 3 4 12 11 5 -ICH_VMCR_EL2 :: i64(0x6CDF) // 3 4 12 11 7 - -// ICH_LR0_EL2 .. ICH_LR15_EL2 = sysreg(3, 4, 12, 12+(n>>3), n & 7) -sysreg_ich_lr :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(3, 4, 12, 12 + ((n >> 3) & 0x1), n & 0x7) -} - -// ICH_AP0Rn_EL2 (n=0..3) and ICH_AP1Rn_EL2 (n=0..3) -sysreg_ich_ap0r :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(3, 4, 12, 8, n & 0x3) -} -sysreg_ich_ap1r :: #force_inline proc "contextless" (n: u32) -> i64 { - return sysreg_field(3, 4, 12, 9, n & 0x3) -} - -// ---- TRBE (Trace Buffer Extension, FEAT_TRBE) ---- -TRBLIMITR_EL1 :: i64(0x4B90) // 3 0 9 11 0 -TRBPTR_EL1 :: i64(0x4B91) // 3 0 9 11 1 -TRBBASER_EL1 :: i64(0x4B92) // 3 0 9 11 2 -TRBSR_EL1 :: i64(0x4B93) // 3 0 9 11 3 -TRBMAR_EL1 :: i64(0x4B94) // 3 0 9 11 4 -TRBTRG_EL1 :: i64(0x4B96) // 3 0 9 11 6 -TRBIDR_EL1 :: i64(0x4B97) // 3 0 9 11 7 - -// ---- SPE (Statistical Profiling Extension, FEAT_SPE) ---- -PMSCR_EL1 :: i64(0x4948) // 3 0 9 9 0 -PMSICR_EL1 :: i64(0x494A) // 3 0 9 9 2 -PMSIRR_EL1 :: i64(0x494B) // 3 0 9 9 3 -PMSFCR_EL1 :: i64(0x494C) // 3 0 9 9 4 -PMSEVFR_EL1 :: i64(0x494D) // 3 0 9 9 5 -PMSLATFR_EL1 :: i64(0x494E) // 3 0 9 9 6 -PMSIDR_EL1 :: i64(0x494F) // 3 0 9 9 7 -PMBLIMITR_EL1 :: i64(0x4950) // 3 0 9 10 0 -PMBPTR_EL1 :: i64(0x4951) // 3 0 9 10 1 -PMBSR_EL1 :: i64(0x4953) // 3 0 9 10 3 -PMBIDR_EL1 :: i64(0x4957) // 3 0 9 10 7 - -// ---- RAS (Reliability, Availability, Serviceability) ---- -ERRSELR_EL1 :: i64(0x4299) // 3 0 5 3 1 -ERRIDR_EL1 :: i64(0x4298) // 3 0 5 3 0 -ERXADDR_EL1 :: i64(0x42A3) // 3 0 5 4 3 -ERXCTLR_EL1 :: i64(0x42A1) // 3 0 5 4 1 -ERXFR_EL1 :: i64(0x42A0) // 3 0 5 4 0 -ERXSTATUS_EL1 :: i64(0x42A2) // 3 0 5 4 2 -ERXMISC0_EL1 :: i64(0x42A8) // 3 0 5 5 0 -ERXMISC1_EL1 :: i64(0x42A9) // 3 0 5 5 1 -ERXMISC2_EL1 :: i64(0x42AA) // 3 0 5 5 2 -ERXMISC3_EL1 :: i64(0x42AB) // 3 0 5 5 3 -DISR_EL1 :: i64(0x4609) // 3 0 12 1 1 -VDISR_EL2 :: i64(0x6609) // 3 4 12 1 1 -VSESR_EL2 :: i64(0x628B) // 3 4 5 2 3 - -// ---- LOR (Limited Ordering Region) ---- -LORC_EL1 :: i64(0x4523) // 3 0 10 4 3 -LOREA_EL1 :: i64(0x4521) // 3 0 10 4 1 -LORID_EL1 :: i64(0x4527) // 3 0 10 4 7 -LORN_EL1 :: i64(0x4522) // 3 0 10 4 2 -LORSA_EL1 :: i64(0x4520) // 3 0 10 4 0 - -// ---- Translation result (returned by AT) ---- -PAR_EL1 :: i64(0x4380) // 3 0 7 4 0 - -// ---- RME (Realm Management Extension) sysregs ---- -GPCCR_EL3 :: i64(0x70B6) // 3 6 2 1 6 (Granule Protection Control) -GPTBR_EL3 :: i64(0x70B4) // 3 6 2 1 4 (Granule Protection Table Base) -MFAR_EL3 :: i64(0x7305) // 3 6 6 0 5 (Multiple FAR) - -// ---- TPIDRRO_EL0 alias / extra thread pointers ---- -// (TPIDRRO_EL0 already added above) - -// ---- Performance Monitor extras ---- -PMCCFILTR_EL0 :: i64(0x5F7F) // 3 3 14 15 7 -PMUSERENR_EL0_REPEAT :: PMUSERENR_EL0 // re-export alias placeholder diff --git a/core/rexcode/isa/arm64/tablegen/cpp-compiler/cpp-gen.odin b/core/rexcode/isa/arm64/tablegen/cpp-compiler/cpp-gen.odin new file mode 100644 index 000000000..099e19f9e --- /dev/null +++ b/core/rexcode/isa/arm64/tablegen/cpp-compiler/cpp-gen.odin @@ -0,0 +1,1867 @@ +package cpp_gen + +import "base:intrinsics" +import "core:fmt" +import "core:os" +import "core:strings" +import "core:reflect" +import "core:rexcode/isa/arm64" + +import gen ".." + +ISA_NAME :: "arm64" + +main :: proc() { + raw_encode_runs := #load("../../tables/arm64.encode_runs.bin", []arm64.Encode_Run) + raw_encode_forms := #load("../../tables/arm64.encode_forms.bin", []u8) + raw_clobber_forms := #load("../../tables/arm64.clobber_forms.bin", []u8) + // NOTE: arm64 has no pseudo-alias table (unlike riscv). Nothing to load here. + + sb := strings.builder_make() + + strings.write_string(&sb, """ + // ============================================================================= + // GENERATED FILE - DO NOT EDIT + // ============================================================================= + // + // Produces a C++ equivalent of the encoding table from core:rexcode written in Odin + // odin run tablegen # Stage A: ENCODING_TABLE -> generated/ + this file + // odin run tablegen/generated # Stage B: typed Odin literals -> tables/*.bin + // odin run tablegen/cpp-compiler # Stage C: typed Odin literals -> C++ literals + // + \n\n + """) + + + fmt.sbprintf(&sb, "struct Asm_%s {{\n", ISA_NAME) + { + strings.write_string(&sb, "\tenum Mnemonic : u16 {\n") + defer strings.write_string(&sb, "\t};\n"); + + iota := 0 + + count := uint(0) + ROW_COUNT :: 16 + for mnemonic in gen.Mnemonic { + if count == 0 { + strings.write_string(&sb, "\t\t") + } + assert(int(mnemonic) == iota) + fmt.sbprintf(&sb, "M_%s, ", mnemonic) + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + iota += 1 + count = (count + 1) % ROW_COUNT + } + strings.write_string(&sb, "\n\n"); + strings.write_string(&sb, "\t\tMNEMONIC_COUNT\n"); + } + + strings.write_string(&sb, "\tstatic String const mnemonic_strings[MNEMONIC_COUNT];\n") + + { + // arm64 has no instruction prefixes. Keep dummy symbols so the shared + // C++ front-end still has Prefix / PrefixKind to name. + strings.write_string(&sb, "\n") + strings.write_string(&sb, """ + enum Prefix : u8 { + PREFIX_INVALID, + PREFIX_COUNT + }; + enum PrefixKind : u8 { PrefixKind_None }; + \n + """) + } + { + strings.write_string(&sb, "\n") + strings.write_string(&sb, """ + static const u16 REG_CLASS_NONE = 0x0000; + static const u16 REG_CLASS_X = 0x0100; // X0..X30, XZR + static const u16 REG_CLASS_W = 0x0200; // W0..W30, WZR + static const u16 REG_CLASS_XSP = 0x0300; // SP (opt-in, distinct from X) + static const u16 REG_CLASS_WSP = 0x0400; // WSP (opt-in, distinct from W) + static const u16 REG_CLASS_V = 0x0500; // V0..V31 (full 128-bit SIMD&FP) + static const u16 REG_CLASS_B = 0x0600; // B0..B31 (byte view) + static const u16 REG_CLASS_H = 0x0700; // H0..H31 (half view) + static const u16 REG_CLASS_S = 0x0800; // S0..S31 (single view) + static const u16 REG_CLASS_D = 0x0900; // D0..D31 (double view) + static const u16 REG_CLASS_Q = 0x0A00; // Q0..Q31 (quad view) + static const u16 REG_CLASS_Z = 0x0B00; // Z0..Z31 SVE scalable vector + static const u16 REG_CLASS_P = 0x0C00; // P0..P15 SVE predicate + static const u16 REG_CLASS_PN = 0x0D00; // PN8..PN15 SME2 predicate-as-counter + static const u16 REG_CLASS_ZT = 0x0E00; // ZT0 SME2 lookup table + static const u16 REG_CLASS_ZA = 0x0F00; // ZA0..ZA15 SME accumulator tiles + static const u16 REG_CLASS_SYS = 0x1000; // MRS/MSR system registers + \n + """) + { + count := uint(0) + ROW_COUNT :: 16 + strings.write_string(&sb, "\tenum Register : u16 {\n") + for reg in Register { + if count == 0 { + strings.write_string(&sb, "\t\t") + } + fmt.sbprintf(&sb, "REG_%s, ", reg) + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + count = (count + 1) % ROW_COUNT + } + strings.write_string(&sb, "\n") + strings.write_string(&sb, "\t\tREG_COUNT\n") + strings.write_string(&sb, "\t};\n") + } + } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum OperandType : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in type_of(gen.Encoding{}.ops[0]) { + fmt.sbprintf(&sb, "\t\tOP_%s,\n", op) + } + + } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum OperandEncoding : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in Operand_Encoding { + fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) + } + + } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum Feature : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in Feature { + fmt.sbprintf(&sb, "\t\tF_%s,\n", op) + } + + } + strings.write_string(&sb, "\n") + strings.write_string(&sb, "\ttypedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability\n") + strings.write_string(&sb, "\n") + { + defer strings.write_string(&sb, "\tGB_STATIC_ASSERT(gb_size_of(Encoding) == 22);\n") + + strings.write_string(&sb, "\t#pragma pack(push, 1)\n") + defer strings.write_string(&sb, "\t#pragma pack(pop)\n") + strings.write_string(&sb, "\tstruct Encoding {\n") + defer strings.write_string(&sb, "\t};\n") + strings.write_string(&sb, """ + Mnemonic mnemonic; + OperandType ops[5]; + OperandEncoding enc[5]; + u32 bits; + u32 mask; + Feature feature; + EncodingFlags flags; + \n + """) + Encoding_Flags :: type_of(gen.Encoding{}.flags) + + { + strings.write_string(&sb, "\t\tbool has_implicit () const { ") + strings.write_string(&sb, "return false;") + strings.write_string(&sb, " }\n") + } + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "explicit_count") + bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "explicit_count") + strings.write_string(&sb, "\t\tu8 explicit_count() const { ") + fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) + strings.write_string(&sb, " }\n") + } + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "cond_branch") + strings.write_string(&sb, "\t\tbool is_conditional() const { ") + fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + strings.write_string(&sb, " }\n") + } + { + strings.write_string(&sb, "\t\tu32 required_feature() const { return cast(u32)feature; }\n") + } + } + strings.write_string(&sb, "\n") + strings.write_string(&sb, """ + + // Condition flags (PSTATE.NZCV). Named ClobberFlags to match the shared + // C++ front-end's "flags" concept (x86 EFLAGS / riscv fcsr exceptions). + enum ClobberFlags : u8 { + ClobberFlag_N = 1<<0, // negative result + ClobberFlag_Z = 1<<1, // zero result + ClobberFlag_C = 1<<2, // carry-out / no-borrow (unsigned sense) + ClobberFlag_V = 1<<3, // signed overflow + }; + static u16 const CLOBBER_FLAGS_COND = ClobberFlag_N|ClobberFlag_Z|ClobberFlag_C|ClobberFlag_V; + + char const *clobber_flag_bit_name(u16 bit) { + switch (bit) { + case ClobberFlag_N: return \"n\"; + case ClobberFlag_Z: return \"z\"; + case ClobberFlag_C: return \"c\"; + case ClobberFlag_V: return \"v\"; + } + return \"?\"; + } + + // FPSR cumulative FP exception / saturation flags (separate register from NZCV). + enum FPSRFlags : u8 { + FPSRFlag_IOC = 1<<0, // invalid operation + FPSRFlag_DZC = 1<<1, // divide by zero + FPSRFlag_OFC = 1<<2, // overflow + FPSRFlag_UFC = 1<<3, // underflow + FPSRFlag_IXC = 1<<4, // inexact + FPSRFlag_IDC = 1<<5, // input denormal + FPSRFlag_QC = 1<<6, // cumulative saturation (Advanced SIMD) + }; + + char const *fpsr_flag_bit_name(u16 bit) { + switch (bit) { + case FPSRFlag_IOC: return \"ioc\"; + case FPSRFlag_DZC: return \"dzc\"; + case FPSRFlag_OFC: return \"ofc\"; + case FPSRFlag_UFC: return \"ufc\"; + case FPSRFlag_IXC: return \"ixc\"; + case FPSRFlag_IDC: return \"idc\"; + case FPSRFlag_QC: return \"qc\"; + } + return \"?\"; + } + + enum ClobberRegs : u8 { + ClobberReg_LR = 1<<0, // x30, implicit link written by BL/BLR, read by RET + ClobberReg_SP = 1<<1, // sp, implicit base on PACIASP/AUTIASP + stack forms + ClobberReg_X16 = 1<<2, // implicit modifier register for PAC*1716 / AUT*1716 + ClobberReg_X17 = 1<<3, // implicit pointer register for PAC*1716 / AUT*1716 + }; + + static u8 const CLOBBER_REGS_NAMED = + ClobberReg_LR|ClobberReg_SP|ClobberReg_X16|ClobberReg_X17; + + enum SideEffectFlags : u16 { + SideEffectFlag_CONTROL = 1<<0, // writes pc: B/BL/BR/BLR/RET, B.cond, CBZ/CBNZ, TBZ/TBNZ + SideEffectFlag_EXCEPTION = 1<<1, // exception-generating call: SVC / HVC / SMC + SideEffectFlag_TRAP = 1<<2, // deliberately faults: BRK, UDF + SideEffectFlag_FENCE = 1<<3, // memory-ordering barrier: DMB/DSB, acquire/release + SideEffectFlag_ISYNC = 1<<4, // instruction-stream / context sync: ISB + SideEffectFlag_ATOMIC = 1<<5, // indivisible RMW: LDXR/STXR pair, LSE + SideEffectFlag_RESERVATION = 1<<6, // sets/tests/clears the local monitor: LDXR/STXR, CLREX + SideEffectFlag_CACHE = 1<<7, // cache maintenance with coherence effects: DC, IC + SideEffectFlag_HINT = 1<<8, // architecturally-inert hint: NOP/YIELD/PRFM/SEV/ESB/CSDB + SideEffectFlag_BTI = 1<<9, // branch-target-identification landing pad (CFI) + SideEffectFlag_PAC = 1<<10, // pointer authentication: reads an implicit key, may fault + SideEffectFlag_WAIT = 1<<11, // suspends execution until event/interrupt: WFI/WFE + SideEffectFlag_PRIVILEGED = 1<<12, // reads/writes system state: MSR/MRS, ERET, TLBI, AT, DAIF + SideEffectFlag_FFR = 1<<13, // reads/writes the SVE first-fault register + SideEffectFlag_NONDETERMINISTIC = 1<<14, // RNDR/RNDRRS, counter/timer reads (CNTVCT), TSTART + }; + + enum OperandSet : u8 { + OperandSet_OP0 = 1<<0, + OperandSet_OP1 = 1<<1, + OperandSet_OP2 = 1<<2, + OperandSet_OP3 = 1<<3, + }; + + u16 clobber_bit_for_reg_name(String const &pin) { + static const struct { String name; u16 bit; } table[] = { + {str_lit(\"lr\"), ClobberReg_LR}, + {str_lit(\"x30\"), ClobberReg_LR}, + {str_lit(\"w30\"), ClobberReg_LR}, + {str_lit(\"sp\"), ClobberReg_SP}, + {str_lit(\"wsp\"), ClobberReg_SP}, + {str_lit(\"x16\"), ClobberReg_X16}, + {str_lit(\"w16\"), ClobberReg_X16}, + {str_lit(\"x17\"), ClobberReg_X17}, + {str_lit(\"w17\"), ClobberReg_X17}, + }; + for (auto const &t : table) { + if (pin == t.name) { + return t.bit; + } + } + return 0; + } + + char const *clobber_reg_bit_name(u16 bit) { + switch (bit) { + case ClobberReg_LR: return \"lr\"; + case ClobberReg_SP: return \"sp\"; + case ClobberReg_X16: return \"x16\"; + case ClobberReg_X17: return \"x17\"; + } + return \"\"; + } + + + u16 flag_from_name(String const &name) { + // NZCV condition flags. + static const struct { String name; ClobberFlags flag; } table[] = { + {str_lit(\"n\"), ClobberFlag_N}, + {str_lit(\"z\"), ClobberFlag_Z}, + {str_lit(\"c\"), ClobberFlag_C}, + {str_lit(\"v\"), ClobberFlag_V}, + }; + for (auto const &t : table) { + if (name == t.name) { + return cast(u16)t.flag; + } + } + return 0; + } + + u16 fpsr_flag_from_name(String const &name) { + static const struct { String name; FPSRFlags flag; } table[] = { + {str_lit(\"ioc\"), FPSRFlag_IOC}, // Invalid Operation + {str_lit(\"dzc\"), FPSRFlag_DZC}, // Divide by Zero + {str_lit(\"ofc\"), FPSRFlag_OFC}, // Overflow + {str_lit(\"ufc\"), FPSRFlag_UFC}, // Underflow + {str_lit(\"ixc\"), FPSRFlag_IXC}, // Inexact + {str_lit(\"idc\"), FPSRFlag_IDC}, // Input Denormal + {str_lit(\"qc\"), FPSRFlag_QC}, // Cumulative Saturation + }; + for (auto const &t : table) { + if (name == t.name) { + return cast(u16)t.flag; + } + } + return 0; + } + + + i32 flag_bit_from_name(String const &name, i32 *width_) { + // Real PSTATE.NZCV bit positions (as read/written via MRS/MSR NZCV, bits 31:28). + static const struct { String name; i32 bit; } table[] = { + {str_lit(\"v\"), 28}, // Overflow + {str_lit(\"c\"), 29}, // Carry + {str_lit(\"z\"), 30}, // Zero + {str_lit(\"n\"), 31}, // Negative + }; + for (auto const &t : table) { + if (name == t.name) { + if (width_) { + *width_ = 1; + } + return t.bit; + } + } + return -1; + } + + + struct Clobber { + OperandSet written; // operand slots whose register/SIMD reg is written + OperandSet read; // operand slots whose register / mem-base is read + ClobberRegs implicit_wr; // implicit reg writes (LR on BL/BLR) + ClobberRegs implicit_rd; // implicit reg reads (LR on RET, SP on PAC*SP) + ClobberFlags nzcv_wr; // condition flags written (ADDS/SUBS/ANDS, CMP, FCMP, CCMP...) + ClobberFlags nzcv_undef; // condition flags left UNKNOWN (rare on A64, usually empty) + ClobberFlags nzcv_rd; // condition flags read (B.cond, CSEL, ADC/SBC, CCMP...) + FPSRFlags fpsr_wr; // FP cumulative exception/saturation flags this op may raise + bool reads_fpcr; // consumes the rounding mode / FP control from FPCR + bool writes_mem; + bool reads_mem; + SideEffectFlags side_effects; + + ClobberFlags flags_rd_call() const { + return nzcv_rd; + } + ClobberFlags flags_wr_call() const { + return nzcv_wr; + } + + bool implies_clobber_flags() const { + return ((cast(u16)nzcv_wr | cast(u16)nzcv_undef) != 0) || + (cast(u16)fpsr_wr != 0); + } + bool implies_clobber_memory() const { + return writes_mem || reads_mem || + (cast(u16)side_effects & (SideEffectFlag_FENCE|SideEffectFlag_ATOMIC|SideEffectFlag_CACHE)) != 0; + } + bool implies_side_effects() const { + u16 const VOLATILE_SE = + SideEffectFlag_CONTROL | + SideEffectFlag_EXCEPTION | + SideEffectFlag_TRAP | + SideEffectFlag_FENCE | + SideEffectFlag_ISYNC | + SideEffectFlag_ATOMIC | + SideEffectFlag_RESERVATION | + SideEffectFlag_CACHE | + SideEffectFlag_BTI | + SideEffectFlag_PAC | + SideEffectFlag_WAIT | + SideEffectFlag_PRIVILEGED | + SideEffectFlag_FFR | + SideEffectFlag_NONDETERMINISTIC; + // NOTE: SideEffectFlag_HINT deliberately excluded — inert, may be DCE'd. + return (cast(u16)side_effects & VOLATILE_SE) != 0; + } + u8 is_call_or_mem() const { + return (cast(u16)side_effects & SideEffectFlag_CONTROL) != 0 || + (cast(u16)implicit_wr & (ClobberReg_LR|ClobberReg_SP)) != 0; + } + bool has_control() const { + return (cast(u16)side_effects & SideEffectFlag_CONTROL) != 0; + } + bool has_halt() const { + // WFI/WFE suspend execution (x86 HLT analog); SVC/HVC/SMC gate out. + return (cast(u16)side_effects & (SideEffectFlag_WAIT|SideEffectFlag_EXCEPTION)) != 0; + } + bool is_conditional(struct Encoding const &valid_form) const { + if (valid_form.is_conditional()) { + return true; + } + return has_control() && (cast(u16)nzcv_rd != 0); + } + bool is_nondeterministic() const { + return (cast(u16)side_effects & SideEffectFlag_NONDETERMINISTIC) != 0; + } + bool has_implicit_mem() const { + if (!writes_mem && !reads_mem) { + return false; + } + u16 implicit = cast(u16)implicit_rd | cast(u16)implicit_wr; + bool is_atomic = (cast(u16)side_effects & SideEffectFlag_ATOMIC) != 0; + return (implicit & ClobberReg_SP) != 0 || is_atomic; + } + + bool is_status_snapshot() const { + u16 flags = cast(u16)this->flags_rd_call(); + return gb_count_set_bits(flags & CLOBBER_FLAGS_COND) >= 4; + } + }; + + void clobber_implicit_regs(StringSet *clobber_registers_set, u16 implicit_regs) { + u8 regs = cast(u8)implicit_regs & CLOBBER_REGS_NAMED; + + for (u8 bit = 1; bit != 0; bit <<= 1) { + if ((regs & bit) == 0) { + continue; + } + char const *rname = clobber_reg_bit_name(bit); + string_set_update(clobber_registers_set, make_string_c(rname)); + } + } + """) + strings.write_string(&sb, "\n") + + strings.write_string(&sb, "\n") + { + // arm64 has no pseudo-alias expansion table. These are dummy definitions + // (as in the x86 generator) so the shared C++ front-end still links. + strings.write_string(&sb, """ + enum AliasSrc : u8 { + AliasSrc_NONE, // slot unused + AliasSrc_ARG0, // user's 1st operand + AliasSrc_ARG1, // user's 2nd operand + AliasSrc_ARG2, // user's 3rd operand + AliasSrc_ZERO, // hardwired zero + AliasSrc_LINK, // link register + AliasSrc_LIT, // immediate literal + }; + + // NOTE(arm64): dummy — only riscv needs pseudo aliases; arm64 has none. + struct PseudoAlias { + Mnemonic target; // real instruction emitted + AliasSrc src[4]; // how to fill target's four operand slots + i16 lit; // immediate when a src slot is AliasSrc_LIT + u16 csr; // unused on arm64 + u8 nargs; // operands the user supplies (ARG0.. contiguous run in ENCODE_FORMS.\n") + strings.write_string(&sb, "\tstruct EncodeRun {\n") + strings.write_string(&sb, "\t\tu32 start; // start index in ENCODE_FORMS\n") + strings.write_string(&sb, "\t\tu32 count; // number of forms for this mnemonic\n") + strings.write_string(&sb, "\t};\n") + } + + strings.write_string(&sb, "\n\n") + fmt.sbprintf(&sb, "\tstatic EncodeRun const raw_encode_runs [%d];\n", len(raw_encode_runs)) + fmt.sbprintf(&sb, "\tstatic u8 const raw_encode_forms [%d];\n", len(raw_encode_forms)) + fmt.sbprintf(&sb, "\tstatic u8 const raw_clobber_forms[%d];\n", len(raw_clobber_forms)) + strings.write_string(&sb, "\n") + strings.write_string(&sb, "\tStringMap mnemonic_map;\n") + strings.write_string(&sb, "\tStringMap register_map;\n") + + strings.write_string(&sb, """ + + bool init(i64 word_size) { + gb_unused(word_size); // A64 is fixed 64-bit; W views are the 32-bit half. + + string_map_init(&mnemonic_map, MNEMONIC_COUNT*2); + for (u16 m = M_INVALID+1; m < MNEMONIC_COUNT; m++) { + string_map_set(&mnemonic_map, mnemonic_strings[m], cast(Mnemonic)m); + } + + string_map_init(®ister_map, REG_COUNT*2); + for (u16 r = REG_INVALID+1; r < REG_COUNT; r++) { + string_map_set(®ister_map, register_strings[r], cast(Register)r); + } + return true; + } + + + enum MnemonicSuffix : u8 { + MnemonicSuffix_None = 0, + }; + + bool mnemonic_accepts_suffix(u16 m) const { + // A64 acquire/release/atomic variants are distinct mnemonics (LDAR, STLR, + // LDADDA...), not textual suffixes on a base mnemonic. + gb_unused(m); + return false; + } + + Mnemonic mnemonic_lookup_ordered(String const &name, u8 *suffixes_) { + gb_unused(name); + gb_unused(suffixes_); + return M_INVALID; + } + + enum PseudoMacroMnemonic : u8 { + PseudoMacroMnemonic_INVALID, + PseudoMacroMnemonic_COUNT + // NOTE: MOV-wide-immediate expansion (MOV -> MOVZ/MOVN/MOVK sequence) could + // be modelled here if the front-end wants macro lowering for arm64. + }; + + PseudoMacroMnemonic pseudo_macro_mnemonic_lookup(String const &name) { + gb_unused(name); + return PseudoMacroMnemonic_INVALID; + } + + Mnemonic mnemonic_lookup(String const &name) { + Mnemonic *found = string_map_get(&mnemonic_map, name); + return found ? *found : M_INVALID; + } + Prefix prefix_lookup(String const &name) { + gb_unused(name); + return PREFIX_INVALID; + } + static String const prefix_strings[PREFIX_COUNT]; + + Register register_lookup(String const &name) { + Register *found = string_map_get(®ister_map, name); + return found ? *found : REG_INVALID; + } + Slice encoding_forms(/*Mnemonic*/ u16 m) const { + EncodeRun r = raw_encode_runs[m]; + Encoding *ENCODE_FORMS = cast(Encoding *)raw_encode_forms; + return Slice{ENCODE_FORMS+r.start, r.count}; + } + Slice clobber_forms(/*Mnemonic*/ u16 m) const { + EncodeRun r = raw_encode_runs[m]; + Clobber *CLOBBER_FORMS = cast(Clobber *)raw_clobber_forms; + return Slice{CLOBBER_FORMS+r.start, r.count}; + } + u16 reg_class(u32 r) const { + return 0xFF00 & r; + } + // size in bits for register + u16 reg_size(Register r) const { + switch (reg_class(register_codes[r])) { + case REG_CLASS_X: return 64; + case REG_CLASS_W: return 32; + case REG_CLASS_XSP: return 64; + case REG_CLASS_WSP: return 32; + case REG_CLASS_V: return 128; + case REG_CLASS_B: return 8; + case REG_CLASS_H: return 16; + case REG_CLASS_S: return 32; + case REG_CLASS_D: return 64; + case REG_CLASS_Q: return 128; + case REG_CLASS_Z: return 0; // SVE scalable (VL, implementation-defined) + case REG_CLASS_P: return 0; // SVE predicate (scalable) + case REG_CLASS_PN: return 0; // SME2 predicate-as-counter (scalable) + case REG_CLASS_ZT: return 512; // ZT0 is a fixed 512-bit table + case REG_CLASS_ZA: return 0; // SME ZA tile (scalable) + case REG_CLASS_SYS: return 64; // 'word size' + } + return 0; + } + + bool reg_is_segment(u32 r) { + gb_unused(r); + return false; // arm64 has no segment registers + } + + bool integer_reg_width_is_exact() const { + return true; // X = 64, W = 32 always + } + bool float_reg_width_is_exact() const { + return true; // B/H/S/D/Q scalar views are exact widths + } + bool supports_memory_index_not_just_disp() const { + return true; // base + (optionally extended/shifted) index register + } + """) + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + AsmOperandKind kind_from_operand_type(OperandType type) const { + switch (type) { + case OP_NONE: + return AsmOperand_Invalid; + + // ---- Registers ---- + // Integer GPR / GPR-or-SP, including shifted- and extended-register forms. + case OP_W_REG: case OP_X_REG: + case OP_WSP_REG: case OP_XSP_REG: + case OP_W_SHIFTED: case OP_X_SHIFTED: + case OP_W_EXTENDED: case OP_X_EXTENDED: + // SIMD&FP scalar views. + case OP_B_REG: case OP_H_REG: case OP_S_REG: case OP_D_REG: case OP_Q_REG: + // NEON vector: plain, arrangement, FP16, element-indexed. + case OP_V_REG: + case OP_V_8B: case OP_V_16B: case OP_V_4H: case OP_V_8H: + case OP_V_2S: case OP_V_4S: case OP_V_1D: case OP_V_2D: + case OP_V_4H_FP16: case OP_V_8H_FP16: + // SVE vector + predicate registers. + case OP_Z_REG_B: case OP_Z_REG_H: case OP_Z_REG_S: case OP_Z_REG_D: + case OP_P_REG: case OP_P_REG_MERGE: case OP_P_REG_ZERO: case OP_P_REG_GOV: + // SME ZA tiles (ZA0.B .. ZAn.Q) — register-like tile operands. + case OP_ZA_TILE_B: case OP_ZA_TILE_H: case OP_ZA_TILE_S: + case OP_ZA_TILE_D: case OP_ZA_TILE_Q: + case OP_SYS_REG: // MRS/MSR system-register name -> 16-bit field (cf. riscv CSR) + return AsmOperand_Register; + + // ---- Immediates (numeric literals and immediate-encoded selectors) ---- + case OP_IMM_2: case OP_IMM_3: case OP_IMM_4: case OP_IMM_5: + case OP_IMM_6: case OP_IMM_8: case OP_IMM_12: case OP_IMM_16: + case OP_NZCV_IMM: + case OP_HW_SHIFT: + case OP_BITMASK_IMM: + case OP_LSE_SIZE: + case OP_LSL_SHIFT_W: case OP_LSL_SHIFT_X: case OP_ROR_SHIFT: + case OP_FCMLA_ROT: case OP_FCADD_ROT: + case OP_SVE_PRFOP: + case OP_VEC_SHIFT: case OP_VEC_INDEX: + // Enum-like tokens that encode into an immediate field: + case OP_COND: // condition code (EQ/NE/...) -> 4-bit field + case OP_COND_NOT_AL: // same, minus AL/NV (cset/cinc/cinv/cneg/csetm) + case OP_SME_PATTERN: case OP_SVE_PATTERN: // pattern / tile-list selectors + // JUDGMENT CALL: the following are register/tile-slice constructs + // syntactically, but this table models each as a single packed immediate + // descriptor (see Operand_Type comments). If the front-end parses their + // bracketed tile-slice / [Xn,#imm] syntax, reclassify as Register/Memory. + case OP_SME_SLICE_B: case OP_SME_SLICE_H: case OP_SME_SLICE_W: + case OP_SME_SLICE_D: case OP_SME_SLICE_Q: + case OP_LDRAA_IMM10: // signed imm10 displacement of the PAC-load address form + return AsmOperand_Immediate; + + // ---- Branch / PC-relative targets (written as labels) ---- + case OP_REL_26: case OP_REL_19: case OP_REL_14: case OP_REL_PG21: + return AsmOperand_Label; + + // ---- Memory addressing modes ---- + case OP_MEM_OFFSET: case OP_MEM_PRE: case OP_MEM_POST: + case OP_MEM_REG: case OP_MEM_EXT: + case OP_MEM_SVE_SS: case OP_MEM_SVE_SI: + case OP_MEM_SVE_VEC: case OP_MEM_SVE_VB: + return AsmOperand_Memory; + + case OP_V_ELEM_B: case OP_V_ELEM_H: case OP_V_ELEM_S: case OP_V_ELEM_D: + return AsmOperand_Lane; + } + return AsmOperand_Invalid; + } + """) + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + AsmRegClass reg_class_from_operand_type(OperandType type) const { + switch (type) { + // Integer GPRs (incl. GPR-or-SP and shifted/extended register forms). + case OP_W_REG: case OP_X_REG: + case OP_WSP_REG: case OP_XSP_REG: + case OP_W_SHIFTED: case OP_X_SHIFTED: + case OP_W_EXTENDED: case OP_X_EXTENDED: + return AsmRegClass_Integer; + + // SIMD&FP scalar views share the V register file; treated as the float class. + case OP_B_REG: case OP_H_REG: case OP_S_REG: case OP_D_REG: case OP_Q_REG: + return AsmRegClass_Float; + + // NEON vectors (plain / arrangement / FP16 / element-indexed), SVE Z + // vectors, and SME2 Z register-lists — all the vector register file. + case OP_V_REG: + case OP_V_8B: case OP_V_16B: case OP_V_4H: case OP_V_8H: + case OP_V_2S: case OP_V_4S: case OP_V_1D: case OP_V_2D: + case OP_V_4H_FP16: case OP_V_8H_FP16: + case OP_V_ELEM_B: case OP_V_ELEM_H: case OP_V_ELEM_S: case OP_V_ELEM_D: + case OP_Z_REG_B: case OP_Z_REG_H: case OP_Z_REG_S: case OP_Z_REG_D: + return AsmRegClass_Vector; + + // SVE predicate registers. + case OP_P_REG: case OP_P_REG_MERGE: case OP_P_REG_ZERO: case OP_P_REG_GOV: + return AsmRegClass_Mask; + + // Everything else has no GPR/vector/mask class: + // - immediates, selectors, memory, labels, cond, sysreg, patterns. + // - ZA_TILE_* are SME ZA-tile registers, but AsmRegClass has no + // matrix/tile class, so they fall through to Unknown here (still + // Register-kind, the same shape as x86 SREG/CR/DR). + default: + return AsmRegClass_Unknown; + } + } + """) + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + bool operand_type_is_implicit(OperandType t) const { + // A64 operands are written explicitly; fixed regs (LR on RET, SP/X16/X17 + // on PAC*) are tracked via the Clobber implicit_rd/implicit_wr sets, not + // as implicit operand-type slots. + gb_unused(t); + return false; + } + + bool operand_type_is_cond_code(OperandType t) const { + switch (t){ + case OP_COND: + case OP_COND_NOT_AL: + return true; + } + return false; + } + + // Does this slot's register spell as `vN.` (an arrangement) rather than a + // scalar view (bN/hN/sN/dN/qN), a lane (vN.[i]), or a bare vN? Drives the + // arrangement-suffix emission in the AArch64 backend. Element-indexed and + // scalar-view slots are deliberately excluded: those carry their width via the + // register-name modifier (${N:s|d|q}) or the explicit lane syntax instead. + bool operand_type_wants_arrangement(OperandType t) const { + switch (t) { + case OP_V_8B: case OP_V_16B: + case OP_V_4H: case OP_V_8H: + case OP_V_2S: case OP_V_4S: + case OP_V_1D: case OP_V_2D: + case OP_V_4H_FP16: case OP_V_8H_FP16: + return true; + } + return false; + } + """) + + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + AsmRegClass operand_type_reg_class(OperandType t) const { + // Same mapping as reg_class_from_operand_type. + return reg_class_from_operand_type(t); + } + """) + + + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + // A64 has no operand slot that only one named hardware register can fill + // (SP-taking slots accept any Xn or SP via the *_SP classes). + u16 operand_type_named_reg_class(OperandType t) const { + if (t == OP_SYS_REG) { + return REG_CLASS_SYS; + } + return REG_CLASS_NONE; + } + + String named_reg_class_string(u16 reg_class) const { + if (reg_class == REG_CLASS_SYS) { + return str_lit("system"); + } + return str_lit("hardware"); + } + """) + + + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + u16 operand_type_bit_width(OperandType t) const { + switch (t) { + case OP_NONE: + return 0; + + // ---- Integer registers (incl. shifted/extended forms) -> data width ---- + case OP_W_REG: case OP_WSP_REG: case OP_W_SHIFTED: case OP_W_EXTENDED: + return 32; + case OP_X_REG: case OP_XSP_REG: case OP_X_SHIFTED: case OP_X_EXTENDED: + return 64; + + // ---- SIMD&FP scalar views ---- + case OP_B_REG: return 8; + case OP_H_REG: return 16; + case OP_S_REG: return 32; + case OP_D_REG: return 64; + case OP_Q_REG: return 128; + + // ---- NEON vectors: total register width of the arrangement ---- + case OP_V_REG: + return 128; // full V (Q view) + case OP_V_8B: case OP_V_4H: case OP_V_2S: case OP_V_1D: + case OP_V_4H_FP16: + return 64; // 64-bit (D-register) arrangements + case OP_V_16B: case OP_V_8H: case OP_V_4S: case OP_V_2D: + case OP_V_8H_FP16: + return 128; // 128-bit (Q-register) arrangements + + // ---- Element-indexed vector: width of the indexed element ---- + case OP_V_ELEM_B: return 8; + case OP_V_ELEM_H: return 16; + case OP_V_ELEM_S: return 32; + case OP_V_ELEM_D: return 64; + + // ---- Immediates -> value / encoded-field width ---- + case OP_IMM_2: return 2; + case OP_IMM_3: return 3; + case OP_IMM_4: return 4; + case OP_IMM_5: return 5; + case OP_IMM_6: return 6; + case OP_IMM_8: return 8; + case OP_IMM_12: return 12; + case OP_IMM_16: return 16; + case OP_NZCV_IMM: return 4; + case OP_HW_SHIFT: return 2; // 2-bit LSL hw (0/16/32/48) + case OP_LSE_SIZE: return 2; + case OP_SYS_REG: return 15; // op0:op1:CRn:CRm:op2 packed + case OP_LSL_SHIFT_W: return 5; // 0..31 + case OP_LSL_SHIFT_X: return 6; // 0..63 + case OP_ROR_SHIFT: return 6; // imms field + case OP_FCMLA_ROT: return 2; + case OP_FCADD_ROT: return 1; + case OP_SVE_PRFOP: return 4; + case OP_LDRAA_IMM10: return 10; + case OP_COND: return 4; + case OP_COND_NOT_AL: return 4; + case OP_SVE_PATTERN: return 5; // 5-bit pattern field (PTRUE) + + // ---- PC-relative displacement value widths ---- + case OP_REL_26: return 26; + case OP_REL_19: return 19; + case OP_REL_14: return 14; + case OP_REL_PG21: return 21; // ADR/ADRP imm21 (ADRP scaled << 12) + + // ---- Width is scalable, data-dependent, or set elsewhere -> 0 ---- + case OP_Z_REG_B: case OP_Z_REG_H: case OP_Z_REG_S: case OP_Z_REG_D: // SVE VL-scaled + case OP_P_REG: case OP_P_REG_MERGE: case OP_P_REG_ZERO: case OP_P_REG_GOV: // predicate (VL/8) + case OP_ZA_TILE_B: case OP_ZA_TILE_H: case OP_ZA_TILE_S: + case OP_ZA_TILE_D: case OP_ZA_TILE_Q: // SME tiles (scalable) + case OP_SME_PATTERN: // selector, no data width + case OP_SME_SLICE_B: case OP_SME_SLICE_H: case OP_SME_SLICE_W: + case OP_SME_SLICE_D: case OP_SME_SLICE_Q: // packed slice descriptor + case OP_BITMASK_IMM: // value width = operand width (32/64) + case OP_VEC_SHIFT: // element-size dependent + case OP_VEC_INDEX: // element-size dependent + case OP_MEM_OFFSET: case OP_MEM_PRE: case OP_MEM_POST: + case OP_MEM_REG: case OP_MEM_EXT: + case OP_MEM_SVE_SS: case OP_MEM_SVE_SI: + case OP_MEM_SVE_VEC: case OP_MEM_SVE_VB: // access size from opcode + return 0; + } + return 0; + } + + + bool target_has_feature(u64 enabled_features, u32 f) const { + if (f == F_BASE) { + return true; + } + return (enabled_features & (cast(u64)1 << cast(u64)f)) != 0; + } + + char const *feature_name(Feature f) const { + switch (f) { + case F_BASE: return ""; + case F_FP: return "fp-armv8"; + case F_NEON: return "neon"; + case F_CRYPTO: return "crypto"; + case F_CRC32: return "crc"; + case F_LSE: return "lse"; + case F_LSE2: return "lse2"; + case F_FP16: return "fullfp16"; + case F_BF16: return "bf16"; + case F_DOT: return "dotprod"; + case F_PAC: return "pauth"; + case F_BTI: return "bti"; + case F_MTE: return "mte"; + case F_SVE: return "sve"; + case F_SVE2: return "sve2"; + case F_SME: return "sme"; + case F_AMX: return ""; // Apple AMX: no LLVM feature flag + } + return ""; + } + u16 operand_type_transfer_bytes(OperandType t) const { + gb_unused(t); + return 0; // arm64 fills this from the *form*, not the slot; see below + } + bool operand_type_is_lane(OperandType t) const { + switch (t) { + case OP_V_ELEM_B: + case OP_V_ELEM_H: + case OP_V_ELEM_S: + case OP_V_ELEM_D: + return true; + } + return false; + } + + String feature_name_from_form(Encoding const &form) const { + char const *str = feature_name(form.feature); + return make_string_c(str); + } + """) + + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + int form_explicit_slot(Encoding const &form, int explicit_index) const { + int seen = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) { + break; + } + if (operand_type_is_implicit(t)) { + continue; + } + if (seen == explicit_index) { + return j; + } + seen += 1; + } + return -1; + } + + // Transfer size (bytes) a memory form's scaled index must match: + // shift == log2(bytes). Derived from the widest register operand in the form + // (the data being loaded/stored). 0 => no such constraint. Generic across ISAs. + u16 form_transfer_bytes(Encoding const &form) const { + // Mnemonic-pinned access sizes (byte/halfword variants). + switch (form.mnemonic) { + case M_LDRB: case M_LDRSB: case M_STRB: + case M_LDARB: case M_STLRB: + case M_LDXRB: case M_STXRB: case M_LDAXRB: case M_STLXRB: + return 1; + case M_LDRH: case M_LDRSH: case M_STRH: + case M_LDARH: case M_STLRH: + case M_LDXRH: case M_STXRH: case M_LDAXRH: case M_STLXRH: + return 2; + case M_LDRSW: + return 4; + } + + // Otherwise the access equals the widest register operand (plain + // ldr/str x/w/q, ldp/stp, etc.). + u16 widest = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) break; + AsmOperandKind k = kind_from_operand_type(t); + if (k == AsmOperand_Register) { + u16 w = operand_type_bit_width(t); + if (w > widest) widest = w; + } + } + return cast(u16)(widest / 8); + } + + """) + + strings.write_string(&sb, "\n\n") + + strings.write_string(&sb, """ + bool prefix_kind_okay(u8 prefix, Encoding const &form, bool *requires_memory_dest_) const { + // arm64 does not have instruction prefixes. + gb_unused(prefix); + gb_unused(form); + gb_unused(requires_memory_dest_); + return false; + } + """) + + strings.write_string(&sb, "\n") + + strings.write_string(&sb, """ + AsmOperandConstraint operand_value_constraint(u16 m, int op) const { + switch (m) { + case M_LSL: case M_LSR: case M_ASR: case M_ROR: + if (op == 2) return {AsmOperandConstraint_ShiftCount, /*reg width*/-1}; + break; + // NOTE: A64 SDIV/UDIV by zero returns 0 (no fault), so no + // NonZeroDivisor constraint is emitted for division. + } + return {AsmOperandConstraint_None, -1}; + } + """) + + strings.write_string(&sb, """ + bool is_self_zeroing_idiom(u16 m) const { + switch (m) { + case M_EOR: // x ^ x == 0 + case M_SUB: // x - x == 0 + case M_BIC: // x & ~x == 0 + return true; + } + return false; + } + """) + + strings.write_string(&sb, "\n};\n") + + strings.write_string(&sb, "\n\n\n") + + fmt.sbprintf(&sb, "gb_global Asm_{0:s} g_asm_{0:s};\n", ISA_NAME) + + strings.write_string(&sb, "\n\n\n") + + fmt.sbprintf(&sb, "String const Asm_{0:s}::prefix_strings[Asm_{0:s}::PREFIX_COUNT]{{}};\n", ISA_NAME) + + { + fmt.sbprintf(&sb, "String const Asm_{0:s}::mnemonic_strings[Asm_{0:s}::MNEMONIC_COUNT] {{\n", ISA_NAME) + defer strings.write_string(&sb, "};\n"); + + count := uint(0) + ROW_COUNT :: 16 + for mnemonic in gen.Mnemonic { + if count == 0 { + strings.write_string(&sb, "\t") + } + + #partial switch mnemonic { + case .INVALID: + strings.write_string(&sb, "str_lit(\"\"), ") + case: + str := strings.to_lower(reflect.enum_string(mnemonic)) + fmt.sbprintf(&sb, "str_lit(%q), ", str) + delete(str) + } + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + count = (count + 1) % ROW_COUNT + } + strings.write_string(&sb, "\n") + } + + { + fmt.sbprintf(&sb, "u32 const Asm_{0:s}::register_codes[Asm_{0:s}::REG_COUNT] {{\n", ISA_NAME) + defer strings.write_string(&sb, "};\n"); + + count := uint(0) + ROW_COUNT :: 16 + for reg in Register { + if count == 0 { + strings.write_string(&sb, "\t") + } + + fmt.sbprintf(&sb, "%d, ", REG_CODES[reg]) + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + count = (count + 1) % ROW_COUNT + } + strings.write_string(&sb, "\n") + } + + { + fmt.sbprintf(&sb, "String const Asm_{0:s}::register_strings[Asm_{0:s}::REG_COUNT] {{\n", ISA_NAME) + defer strings.write_string(&sb, "};\n"); + + count := uint(0) + ROW_COUNT :: 16 + for reg in Register { + if count == 0 { + strings.write_string(&sb, "\t") + } + + if reg == .INVALID { + strings.write_string(&sb, "str_lit(\"\"), ") + } else { + str := strings.to_lower(reflect.enum_string(reg)) + fmt.sbprintf(&sb, "str_lit(%q), ", str) + delete(str) + } + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + count = (count + 1) % ROW_COUNT + } + strings.write_string(&sb, "\n") + } + + // arm64 has no pseudo mnemonics. + fmt.sbprintf(&sb, "String const Asm_{0:s}::pseudo_mnemonic_strings[Asm_{0:s}::PSEUDO_MNEMONIC_COUNT] {{}};\n", ISA_NAME) + + { + fmt.sbprintf(&sb, "Asm_{0:s}::EncodeRun const Asm_{0:s}::raw_encode_runs[{1:d}] = {{\n", ISA_NAME, len(raw_encode_runs)) + defer strings.write_string(&sb, "};\n"); + + ROW_COUNT :: 16 + count := 0 + for run in raw_encode_runs { + if count == 0 { + strings.write_string(&sb, "\t") + } + fmt.sbprintf(&sb, "{{% 4d, % 2d}}, ", run.start, run.count) + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + count = (count + 1) % ROW_COUNT + } + defer strings.write_string(&sb, "\n") + } + { + fmt.sbprintf(&sb, "u8 const Asm_{0:s}::raw_encode_forms[%d] = {{\n", ISA_NAME, len(raw_encode_forms)) + defer strings.write_string(&sb, "};\n"); + ROW_COUNT :: 64 + count := 0 + for the_byte in raw_encode_forms { + if count == 0 { + strings.write_string(&sb, "\t") + } + fmt.sbprintf(&sb, "%#02x, ", the_byte) + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + count = (count + 1) % ROW_COUNT + } + defer strings.write_string(&sb, "\n") + } + { + fmt.sbprintf(&sb, "u8 const Asm_{0:s}::raw_clobber_forms[%d] = {{\n", ISA_NAME, len(raw_clobber_forms)) + defer strings.write_string(&sb, "};\n"); + ROW_COUNT :: 64 + count := 0 + for the_byte in raw_clobber_forms { + if count == 0 { + strings.write_string(&sb, "\t") + } + fmt.sbprintf(&sb, "%#02x, ", the_byte) + + if count == ROW_COUNT-1 { + strings.write_string(&sb, "\n") + } + + count = (count + 1) % ROW_COUNT + } + defer strings.write_string(&sb, "\n") + } + + + + path := fmt.tprintf("%s/src/asm_tables_%s.cpp", ODIN_ROOT, ISA_NAME) + + if err := os.write_entire_file(path, strings.to_string(sb)); err != nil { + fmt.eprintfln("rexcode tablegen: failed to write %s: %v", path, err) + os.exit(1) + } +} + +Operand_Encoding :: type_of(gen.Encoding{}.enc[0]) +Feature :: type_of(gen.Encoding{}.feature) + + + +Register :: enum u16 { + INVALID, + X0, + X1, + X2, + X3, + X4, + X5, + X6, + X7, + X8, + X9, + X10, + X11, + X12, + X13, + X14, + X15, + X16, + X17, + X18, + X19, + X20, + X21, + X22, + X23, + X24, + X25, + X26, + X27, + X28, + X29, + X30, + XZR, + SP, + W0, + W1, + W2, + W3, + W4, + W5, + W6, + W7, + W8, + W9, + W10, + W11, + W12, + W13, + W14, + W15, + W16, + W17, + W18, + W19, + W20, + W21, + W22, + W23, + W24, + W25, + W26, + W27, + W28, + W29, + W30, + WZR, + WSP, + V0, + V1, + V2, + V3, + V4, + V5, + V6, + V7, + V8, + V9, + V10, + V11, + V12, + V13, + V14, + V15, + V16, + V17, + V18, + V19, + V20, + V21, + V22, + V23, + V24, + V25, + V26, + V27, + V28, + V29, + V30, + V31, + + PN8, + PN9, + PN10, + PN11, + PN12, + PN13, + PN14, + PN15, + + ZT0, + + // System Registers + AFSR0_EL1, + AFSR1_EL1, + CURRENT_EL, + DAIF, + ELR_EL1, + ELR_EL2, + ELR_EL3, + ESR_EL1, + ESR_EL2, + FAR_EL1, + FAR_EL2, + ISR_EL1, + NZCV, + SPSR_EL1, + SPSR_EL2, + SPSR_EL3, + SP_EL0, + SP_EL1, + VBAR_EL1, + VBAR_EL2, + VBAR_EL3, + FPCR, + FPSR, + MVFR0_EL1, + MVFR1_EL1, + MVFR2_EL1, + CONTEXTIDR_EL1, + TPIDR2_EL0, + TPIDRRO_EL0, + TPIDR_EL0, + TPIDR_EL1, + TPIDR_EL2, + TPIDR_EL3, + CCSIDR_EL1, + CLIDR_EL1, + CSSELR_EL1, + CTR_EL0, + DCZID_EL0, + GMID_EL1, + ID_AA64AFR0_EL1, + ID_AA64AFR1_EL1, + ID_AA64DFR0_EL1, + ID_AA64DFR1_EL1, + ID_AA64DFR2_EL1, + ID_AA64ISAR0_EL1, + ID_AA64ISAR1_EL1, + ID_AA64ISAR2_EL1, + ID_AA64ISAR3_EL1, + ID_AA64MMFR0_EL1, + ID_AA64MMFR1_EL1, + ID_AA64MMFR2_EL1, + ID_AA64PFR0_EL1, + ID_AA64PFR1_EL1, + ID_AA64SMFR0_EL1, + ID_AA64ZFR0_EL1, + ID_AFR0_EL1, + ID_DFR0_EL1, + ID_ISAR0_EL1, + ID_ISAR1_EL1, + ID_ISAR2_EL1, + ID_ISAR3_EL1, + ID_ISAR4_EL1, + ID_ISAR5_EL1, + ID_ISAR6_EL1, + ID_MMFR0_EL1, + ID_MMFR1_EL1, + ID_MMFR2_EL1, + ID_MMFR3_EL1, + ID_MMFR4_EL1, + ID_MMFR5_EL1, + ID_PFR0_EL1, + ID_PFR1_EL1, + ID_PFR2_EL1, + MIDR_EL1, + MPIDR_EL1, + APDAKEYHI_EL1, + APDAKEYLO_EL1, + APDBKEYHI_EL1, + APDBKEYLO_EL1, + APGAKEYHI_EL1, + APGAKEYLO_EL1, + APIAKEYHI_EL1, + APIAKEYLO_EL1, + APIBKEYHI_EL1, + APIBKEYLO_EL1, + GCR_EL1, + RGSR_EL1, + TFSRE0_EL1, + TFSR_EL1, + SMCR_EL1, + SMCR_EL2, + SVCR, + ZCR_EL1, + ZCR_EL2, + ZCR_EL3, + ACTLR_EL1, + AMAIR_EL1, + CPACR_EL1, + LORC_EL1, + LOREA_EL1, + LORID_EL1, + LORN_EL1, + LORSA_EL1, + MAIR_EL1, + PAR_EL1, + SCTLR_EL1, + SCTLR_EL2, + SCTLR_EL3, + TCR_EL1, + TTBR0_EL1, + TTBR1_EL1, + CNTFRQ_EL0, + CNTHCTL_EL2, + CNTHP_CTL_EL2, + CNTHP_CVAL_EL2, + CNTHP_TVAL_EL2, + CNTHV_CTL_EL2, + CNTHV_CVAL_EL2, + CNTHV_TVAL_EL2, + CNTKCTL_EL1, + CNTPCT_EL0, + CNTPS_CTL_EL1, + CNTPS_CVAL_EL1, + CNTPS_TVAL_EL1, + CNTP_CTL_EL0, + CNTP_CVAL_EL0, + CNTP_TVAL_EL0, + CNTVCT_EL0, + CNTVOFF_EL2, + CNTV_CTL_EL0, + CNTV_CVAL_EL0, + CNTV_TVAL_EL0, + PMBIDR_EL1, + PMBLIMITR_EL1, + PMBPTR_EL1, + PMBSR_EL1, + PMSCR_EL1, + PMSELR_EL0, + PMSEVFR_EL1, + PMSFCR_EL1, + PMSICR_EL1, + PMSIDR_EL1, + PMSIRR_EL1, + PMSLATFR_EL1, + PMSWINC_EL0, + PMCCFILTR_EL0, + PMCCNTR_EL0, + PMCEID0_EL0, + PMCEID1_EL0, + PMCNTENCLR_EL0, + PMCNTENSET_EL0, + PMCR_EL0, + PMINTENCLR_EL1, + PMINTENSET_EL1, + PMOVSCLR_EL0, + PMUSERENR_EL0, + TRBBASER_EL1, + TRBIDR_EL1, + TRBLIMITR_EL1, + TRBMAR_EL1, + TRBPTR_EL1, + TRBSR_EL1, + TRBTRG_EL1, + DBGAUTHSTATUS_EL1, + DBGCLAIMCLR_EL1, + DBGCLAIMSET_EL1, + DBGDTRRX_EL0, + DBGDTRTX_EL0, + DBGDTR_EL0, + DBGPRCR_EL1, + DLR_EL0, + DSPSR_EL0, + MDCCINT_EL1, + MDRAR_EL1, + MDSCR_EL1, + OSLAR_EL1, + OSLSR_EL1, + PRSELR_EL1, + ICC_ASGI1R_EL1, + ICC_BPR0_EL1, + ICC_BPR1_EL1, + ICC_CTLR_EL1, + ICC_CTLR_EL3, + ICC_DIR_EL1, + ICC_EOIR0_EL1, + ICC_EOIR1_EL1, + ICC_HPPIR0_EL1, + ICC_HPPIR1_EL1, + ICC_IAR0_EL1, + ICC_IAR1_EL1, + ICC_IGRPEN0_EL1, + ICC_IGRPEN1_EL1, + ICC_IGRPEN1_EL3, + ICC_PMR_EL1, + ICC_RPR_EL1, + ICC_SGI0R_EL1, + ICC_SGI1R_EL1, + ICC_SRE_EL1, + ICC_SRE_EL2, + ICC_SRE_EL3, + ICH_EISR_EL2, + ICH_ELRSR_EL2, + ICH_HCR_EL2, + ICH_MISR_EL2, + ICH_VMCR_EL2, + ICH_VTR_EL2, + DISR_EL1, + ERRIDR_EL1, + ERRSELR_EL1, + ERXADDR_EL1, + ERXCTLR_EL1, + ERXFR_EL1, + ERXMISC0_EL1, + ERXMISC1_EL1, + ERXMISC2_EL1, + ERXMISC3_EL1, + ERXSTATUS_EL1, + VDISR_EL2, + VSESR_EL2, + GPCCR_EL3, + GPTBR_EL3, + HCR_EL2, + HSTR_EL2, + MDCR_EL2, + MFAR_EL3, + VTCR_EL2, + VTTBR_EL2, + DACR32_EL2, + FPEXC32_EL2, + RNDR, + RNDRRS, +} + +REG_NONE :: 0x0000 +REG_X :: 0x0100 // X0..X30, XZR (X31 = ZR semantically) +REG_W :: 0x0200 // W0..W30, WZR +REG_XSP :: 0x0300 // SP (only -- distinct class from X to opt-in) +REG_WSP :: 0x0400 // WSP +REG_V :: 0x0500 // V0..V31 (full 128-bit; used in NEON vector form) +REG_B :: 0x0600 // B0..B31 (byte view) +REG_H :: 0x0700 // H0..H31 (half view) +REG_S :: 0x0800 // S0..S31 (single view) +REG_D :: 0x0900 // D0..D31 (double view) +REG_Q :: 0x0A00 // Q0..Q31 (quad view) +REG_Z :: 0x0B00 // Z0..Z31 SVE scalable vector (low 128 aliased with V) +REG_P :: 0x0C00 // P0..P15 SVE predicate +REG_PN :: 0x0D00 // PN8..PN15 SME2 predicate-as-counter +REG_ZT :: 0x0E00 // ZT0, the SME2 lookup table +REG_ZA :: 0x0F00 // ZA0..ZA15, SME's accumulator tiles +REG_SYS :: 0x1000 // system registers (MRS/MSR); the field is in bits 16-30 + + +@(rodata) +REG_CODES := [Register]arm64.Register{ + .INVALID = 0, + + .X0 = arm64.Register(REG_X | 0), .X1 = arm64.Register(REG_X | 1), .X2 = arm64.Register(REG_X | 2), .X3 = arm64.Register(REG_X | 3), + .X4 = arm64.Register(REG_X | 4), .X5 = arm64.Register(REG_X | 5), .X6 = arm64.Register(REG_X | 6), .X7 = arm64.Register(REG_X | 7), + .X8 = arm64.Register(REG_X | 8), .X9 = arm64.Register(REG_X | 9), .X10 = arm64.Register(REG_X | 10), .X11 = arm64.Register(REG_X | 11), + .X12 = arm64.Register(REG_X | 12), .X13 = arm64.Register(REG_X | 13), .X14 = arm64.Register(REG_X | 14), .X15 = arm64.Register(REG_X | 15), + .X16 = arm64.Register(REG_X | 16), .X17 = arm64.Register(REG_X | 17), .X18 = arm64.Register(REG_X | 18), .X19 = arm64.Register(REG_X | 19), + .X20 = arm64.Register(REG_X | 20), .X21 = arm64.Register(REG_X | 21), .X22 = arm64.Register(REG_X | 22), .X23 = arm64.Register(REG_X | 23), + .X24 = arm64.Register(REG_X | 24), .X25 = arm64.Register(REG_X | 25), .X26 = arm64.Register(REG_X | 26), .X27 = arm64.Register(REG_X | 27), + .X28 = arm64.Register(REG_X | 28), .X29 = arm64.Register(REG_X | 29), .X30 = arm64.Register(REG_X | 30), + .XZR = arm64.Register(REG_X | 31), + + .SP = arm64.Register(REG_XSP | 31), + + // ----------------------------------------------------------------------------- + // 32-bit GPRs (W0..W30, WZR, WSP) + // ----------------------------------------------------------------------------- + + .W0 = arm64.Register(REG_W | 0), .W1 = arm64.Register(REG_W | 1), .W2 = arm64.Register(REG_W | 2), .W3 = arm64.Register(REG_W | 3), + .W4 = arm64.Register(REG_W | 4), .W5 = arm64.Register(REG_W | 5), .W6 = arm64.Register(REG_W | 6), .W7 = arm64.Register(REG_W | 7), + .W8 = arm64.Register(REG_W | 8), .W9 = arm64.Register(REG_W | 9), .W10 = arm64.Register(REG_W | 10), .W11 = arm64.Register(REG_W | 11), + .W12 = arm64.Register(REG_W | 12), .W13 = arm64.Register(REG_W | 13), .W14 = arm64.Register(REG_W | 14), .W15 = arm64.Register(REG_W | 15), + .W16 = arm64.Register(REG_W | 16), .W17 = arm64.Register(REG_W | 17), .W18 = arm64.Register(REG_W | 18), .W19 = arm64.Register(REG_W | 19), + .W20 = arm64.Register(REG_W | 20), .W21 = arm64.Register(REG_W | 21), .W22 = arm64.Register(REG_W | 22), .W23 = arm64.Register(REG_W | 23), + .W24 = arm64.Register(REG_W | 24), .W25 = arm64.Register(REG_W | 25), .W26 = arm64.Register(REG_W | 26), .W27 = arm64.Register(REG_W | 27), + .W28 = arm64.Register(REG_W | 28), .W29 = arm64.Register(REG_W | 29), .W30 = arm64.Register(REG_W | 30), + .WZR = arm64.Register(REG_W | 31), + .WSP = arm64.Register(REG_WSP | 31), + + // ----------------------------------------------------------------------------- + // SIMD/FP register views (full Vn; scalar Bn/Hn/Sn/Dn/Qn are operand-type views) + // ----------------------------------------------------------------------------- + + .V0 = arm64.Register(REG_V | 0), .V1 = arm64.Register(REG_V | 1), .V2 = arm64.Register(REG_V | 2), .V3 = arm64.Register(REG_V | 3), + .V4 = arm64.Register(REG_V | 4), .V5 = arm64.Register(REG_V | 5), .V6 = arm64.Register(REG_V | 6), .V7 = arm64.Register(REG_V | 7), + .V8 = arm64.Register(REG_V | 8), .V9 = arm64.Register(REG_V | 9), .V10 = arm64.Register(REG_V | 10), .V11 = arm64.Register(REG_V | 11), + .V12 = arm64.Register(REG_V | 12), .V13 = arm64.Register(REG_V | 13), .V14 = arm64.Register(REG_V | 14), .V15 = arm64.Register(REG_V | 15), + .V16 = arm64.Register(REG_V | 16), .V17 = arm64.Register(REG_V | 17), .V18 = arm64.Register(REG_V | 18), .V19 = arm64.Register(REG_V | 19), + .V20 = arm64.Register(REG_V | 20), .V21 = arm64.Register(REG_V | 21), .V22 = arm64.Register(REG_V | 22), .V23 = arm64.Register(REG_V | 23), + .V24 = arm64.Register(REG_V | 24), .V25 = arm64.Register(REG_V | 25), .V26 = arm64.Register(REG_V | 26), .V27 = arm64.Register(REG_V | 27), + .V28 = arm64.Register(REG_V | 28), .V29 = arm64.Register(REG_V | 29), .V30 = arm64.Register(REG_V | 30), .V31 = arm64.Register(REG_V | 31), + + // ----------------------------------------------------------------------------- + // SME2 predicate-as-counter (PN8..PN15) and the ZT0 lookup table + // ----------------------------------------------------------------------------- + + .PN8 = arm64.Register(REG_PN | 8), .PN9 = arm64.Register(REG_PN | 9), .PN10 = arm64.Register(REG_PN | 10), .PN11 = arm64.Register(REG_PN | 11), + .PN12 = arm64.Register(REG_PN | 12), .PN13 = arm64.Register(REG_PN | 13), .PN14 = arm64.Register(REG_PN | 14), .PN15 = arm64.Register(REG_PN | 15), + + .ZT0 = arm64.Register(REG_ZT | 0), + + + // ----------------------------------------------------------------------------- + // System Registers + // ----------------------------------------------------------------------------- + + .AFSR0_EL1 = arm64.Register(REG_SYS | 0x4288_0000), + .AFSR1_EL1 = arm64.Register(REG_SYS | 0x4289_0000), + .CURRENT_EL = arm64.Register(REG_SYS | 0x4212_0000), + .DAIF = arm64.Register(REG_SYS | 0x5A11_0000), + .ELR_EL1 = arm64.Register(REG_SYS | 0x4201_0000), + .ELR_EL2 = arm64.Register(REG_SYS | 0x6201_0000), + .ELR_EL3 = arm64.Register(REG_SYS | 0x7201_0000), + .ESR_EL1 = arm64.Register(REG_SYS | 0x4290_0000), + .ESR_EL2 = arm64.Register(REG_SYS | 0x6290_0000), + .FAR_EL1 = arm64.Register(REG_SYS | 0x4300_0000), + .FAR_EL2 = arm64.Register(REG_SYS | 0x6300_0000), + .ISR_EL1 = arm64.Register(REG_SYS | 0x4608_0000), + .NZCV = arm64.Register(REG_SYS | 0x5A10_0000), + .SPSR_EL1 = arm64.Register(REG_SYS | 0x4200_0000), + .SPSR_EL2 = arm64.Register(REG_SYS | 0x6200_0000), + .SPSR_EL3 = arm64.Register(REG_SYS | 0x7200_0000), + .SP_EL0 = arm64.Register(REG_SYS | 0x4208_0000), + .SP_EL1 = arm64.Register(REG_SYS | 0x6208_0000), + .VBAR_EL1 = arm64.Register(REG_SYS | 0x4600_0000), + .VBAR_EL2 = arm64.Register(REG_SYS | 0x6600_0000), + .VBAR_EL3 = arm64.Register(REG_SYS | 0x7600_0000), + .FPCR = arm64.Register(REG_SYS | 0x5A20_0000), + .FPSR = arm64.Register(REG_SYS | 0x5A21_0000), + .MVFR0_EL1 = arm64.Register(REG_SYS | 0x4018_0000), + .MVFR1_EL1 = arm64.Register(REG_SYS | 0x4019_0000), + .MVFR2_EL1 = arm64.Register(REG_SYS | 0x401A_0000), + .CONTEXTIDR_EL1 = arm64.Register(REG_SYS | 0x4681_0000), + .TPIDR2_EL0 = arm64.Register(REG_SYS | 0x5E85_0000), + .TPIDRRO_EL0 = arm64.Register(REG_SYS | 0x5E83_0000), + .TPIDR_EL0 = arm64.Register(REG_SYS | 0x5E82_0000), + .TPIDR_EL1 = arm64.Register(REG_SYS | 0x4684_0000), + .TPIDR_EL2 = arm64.Register(REG_SYS | 0x6682_0000), + .TPIDR_EL3 = arm64.Register(REG_SYS | 0x7682_0000), + .CCSIDR_EL1 = arm64.Register(REG_SYS | 0x4800_0000), + .CLIDR_EL1 = arm64.Register(REG_SYS | 0x4801_0000), + .CSSELR_EL1 = arm64.Register(REG_SYS | 0x5000_0000), + .CTR_EL0 = arm64.Register(REG_SYS | 0x5801_0000), + .DCZID_EL0 = arm64.Register(REG_SYS | 0x5807_0000), + .GMID_EL1 = arm64.Register(REG_SYS | 0x4804_0000), + .ID_AA64AFR0_EL1 = arm64.Register(REG_SYS | 0x402C_0000), + .ID_AA64AFR1_EL1 = arm64.Register(REG_SYS | 0x402D_0000), + .ID_AA64DFR0_EL1 = arm64.Register(REG_SYS | 0x4028_0000), + .ID_AA64DFR1_EL1 = arm64.Register(REG_SYS | 0x4029_0000), + .ID_AA64DFR2_EL1 = arm64.Register(REG_SYS | 0x402A_0000), + .ID_AA64ISAR0_EL1 = arm64.Register(REG_SYS | 0x4030_0000), + .ID_AA64ISAR1_EL1 = arm64.Register(REG_SYS | 0x4031_0000), + .ID_AA64ISAR2_EL1 = arm64.Register(REG_SYS | 0x4032_0000), + .ID_AA64ISAR3_EL1 = arm64.Register(REG_SYS | 0x4033_0000), + .ID_AA64MMFR0_EL1 = arm64.Register(REG_SYS | 0x4038_0000), + .ID_AA64MMFR1_EL1 = arm64.Register(REG_SYS | 0x4039_0000), + .ID_AA64MMFR2_EL1 = arm64.Register(REG_SYS | 0x403A_0000), + .ID_AA64PFR0_EL1 = arm64.Register(REG_SYS | 0x4020_0000), + .ID_AA64PFR1_EL1 = arm64.Register(REG_SYS | 0x4021_0000), + .ID_AA64SMFR0_EL1 = arm64.Register(REG_SYS | 0x4025_0000), + .ID_AA64ZFR0_EL1 = arm64.Register(REG_SYS | 0x4024_0000), + .ID_AFR0_EL1 = arm64.Register(REG_SYS | 0x400B_0000), + .ID_DFR0_EL1 = arm64.Register(REG_SYS | 0x400A_0000), + .ID_ISAR0_EL1 = arm64.Register(REG_SYS | 0x4010_0000), + .ID_ISAR1_EL1 = arm64.Register(REG_SYS | 0x4011_0000), + .ID_ISAR2_EL1 = arm64.Register(REG_SYS | 0x4012_0000), + .ID_ISAR3_EL1 = arm64.Register(REG_SYS | 0x4013_0000), + .ID_ISAR4_EL1 = arm64.Register(REG_SYS | 0x4014_0000), + .ID_ISAR5_EL1 = arm64.Register(REG_SYS | 0x4015_0000), + .ID_ISAR6_EL1 = arm64.Register(REG_SYS | 0x4017_0000), + .ID_MMFR0_EL1 = arm64.Register(REG_SYS | 0x400C_0000), + .ID_MMFR1_EL1 = arm64.Register(REG_SYS | 0x400D_0000), + .ID_MMFR2_EL1 = arm64.Register(REG_SYS | 0x400E_0000), + .ID_MMFR3_EL1 = arm64.Register(REG_SYS | 0x400F_0000), + .ID_MMFR4_EL1 = arm64.Register(REG_SYS | 0x4016_0000), + .ID_MMFR5_EL1 = arm64.Register(REG_SYS | 0x401E_0000), + .ID_PFR0_EL1 = arm64.Register(REG_SYS | 0x4008_0000), + .ID_PFR1_EL1 = arm64.Register(REG_SYS | 0x4009_0000), + .ID_PFR2_EL1 = arm64.Register(REG_SYS | 0x401C_0000), + .MIDR_EL1 = arm64.Register(REG_SYS | 0x4000_0000), + .MPIDR_EL1 = arm64.Register(REG_SYS | 0x4005_0000), + .APDAKEYHI_EL1 = arm64.Register(REG_SYS | 0x4111_0000), + .APDAKEYLO_EL1 = arm64.Register(REG_SYS | 0x4110_0000), + .APDBKEYHI_EL1 = arm64.Register(REG_SYS | 0x4113_0000), + .APDBKEYLO_EL1 = arm64.Register(REG_SYS | 0x4112_0000), + .APGAKEYHI_EL1 = arm64.Register(REG_SYS | 0x4119_0000), + .APGAKEYLO_EL1 = arm64.Register(REG_SYS | 0x4118_0000), + .APIAKEYHI_EL1 = arm64.Register(REG_SYS | 0x4109_0000), + .APIAKEYLO_EL1 = arm64.Register(REG_SYS | 0x4108_0000), + .APIBKEYHI_EL1 = arm64.Register(REG_SYS | 0x410B_0000), + .APIBKEYLO_EL1 = arm64.Register(REG_SYS | 0x410A_0000), + .GCR_EL1 = arm64.Register(REG_SYS | 0x4086_0000), + .RGSR_EL1 = arm64.Register(REG_SYS | 0x4085_0000), + .TFSRE0_EL1 = arm64.Register(REG_SYS | 0x42B1_0000), + .TFSR_EL1 = arm64.Register(REG_SYS | 0x42B0_0000), + .SMCR_EL1 = arm64.Register(REG_SYS | 0x4096_0000), + .SMCR_EL2 = arm64.Register(REG_SYS | 0x6096_0000), + .SVCR = arm64.Register(REG_SYS | 0x5A12_0000), + .ZCR_EL1 = arm64.Register(REG_SYS | 0x4090_0000), + .ZCR_EL2 = arm64.Register(REG_SYS | 0x6090_0000), + .ZCR_EL3 = arm64.Register(REG_SYS | 0x7090_0000), + .ACTLR_EL1 = arm64.Register(REG_SYS | 0x4081_0000), + .AMAIR_EL1 = arm64.Register(REG_SYS | 0x4518_0000), + .CPACR_EL1 = arm64.Register(REG_SYS | 0x4082_0000), + .LORC_EL1 = arm64.Register(REG_SYS | 0x4523_0000), + .LOREA_EL1 = arm64.Register(REG_SYS | 0x4521_0000), + .LORID_EL1 = arm64.Register(REG_SYS | 0x4527_0000), + .LORN_EL1 = arm64.Register(REG_SYS | 0x4522_0000), + .LORSA_EL1 = arm64.Register(REG_SYS | 0x4520_0000), + .MAIR_EL1 = arm64.Register(REG_SYS | 0x4510_0000), + .PAR_EL1 = arm64.Register(REG_SYS | 0x43A0_0000), + .SCTLR_EL1 = arm64.Register(REG_SYS | 0x4080_0000), + .SCTLR_EL2 = arm64.Register(REG_SYS | 0x6080_0000), + .SCTLR_EL3 = arm64.Register(REG_SYS | 0x7080_0000), + .TCR_EL1 = arm64.Register(REG_SYS | 0x4102_0000), + .TTBR0_EL1 = arm64.Register(REG_SYS | 0x4100_0000), + .TTBR1_EL1 = arm64.Register(REG_SYS | 0x4101_0000), + .CNTFRQ_EL0 = arm64.Register(REG_SYS | 0x5F00_0000), + .CNTHCTL_EL2 = arm64.Register(REG_SYS | 0x6708_0000), + .CNTHP_CTL_EL2 = arm64.Register(REG_SYS | 0x6711_0000), + .CNTHP_CVAL_EL2 = arm64.Register(REG_SYS | 0x6712_0000), + .CNTHP_TVAL_EL2 = arm64.Register(REG_SYS | 0x6710_0000), + .CNTHV_CTL_EL2 = arm64.Register(REG_SYS | 0x6719_0000), + .CNTHV_CVAL_EL2 = arm64.Register(REG_SYS | 0x671A_0000), + .CNTHV_TVAL_EL2 = arm64.Register(REG_SYS | 0x6718_0000), + .CNTKCTL_EL1 = arm64.Register(REG_SYS | 0x4708_0000), + .CNTPCT_EL0 = arm64.Register(REG_SYS | 0x5F01_0000), + .CNTPS_CTL_EL1 = arm64.Register(REG_SYS | 0x7F11_0000), + .CNTPS_CVAL_EL1 = arm64.Register(REG_SYS | 0x7F12_0000), + .CNTPS_TVAL_EL1 = arm64.Register(REG_SYS | 0x7F10_0000), + .CNTP_CTL_EL0 = arm64.Register(REG_SYS | 0x5F11_0000), + .CNTP_CVAL_EL0 = arm64.Register(REG_SYS | 0x5F12_0000), + .CNTP_TVAL_EL0 = arm64.Register(REG_SYS | 0x5F10_0000), + .CNTVCT_EL0 = arm64.Register(REG_SYS | 0x5F02_0000), + .CNTVOFF_EL2 = arm64.Register(REG_SYS | 0x6703_0000), + .CNTV_CTL_EL0 = arm64.Register(REG_SYS | 0x5F19_0000), + .CNTV_CVAL_EL0 = arm64.Register(REG_SYS | 0x5F1A_0000), + .CNTV_TVAL_EL0 = arm64.Register(REG_SYS | 0x5F18_0000), + .PMBIDR_EL1 = arm64.Register(REG_SYS | 0x44D7_0000), + .PMBLIMITR_EL1 = arm64.Register(REG_SYS | 0x44D0_0000), + .PMBPTR_EL1 = arm64.Register(REG_SYS | 0x44D1_0000), + .PMBSR_EL1 = arm64.Register(REG_SYS | 0x44D3_0000), + .PMSCR_EL1 = arm64.Register(REG_SYS | 0x44C8_0000), + .PMSELR_EL0 = arm64.Register(REG_SYS | 0x5CE5_0000), + .PMSEVFR_EL1 = arm64.Register(REG_SYS | 0x44CD_0000), + .PMSFCR_EL1 = arm64.Register(REG_SYS | 0x44CC_0000), + .PMSICR_EL1 = arm64.Register(REG_SYS | 0x44CA_0000), + .PMSIDR_EL1 = arm64.Register(REG_SYS | 0x44CF_0000), + .PMSIRR_EL1 = arm64.Register(REG_SYS | 0x44CB_0000), + .PMSLATFR_EL1 = arm64.Register(REG_SYS | 0x44CE_0000), + .PMSWINC_EL0 = arm64.Register(REG_SYS | 0x5CE4_0000), + .PMCCFILTR_EL0 = arm64.Register(REG_SYS | 0x5F7F_0000), + .PMCCNTR_EL0 = arm64.Register(REG_SYS | 0x5CE8_0000), + .PMCEID0_EL0 = arm64.Register(REG_SYS | 0x5CE6_0000), + .PMCEID1_EL0 = arm64.Register(REG_SYS | 0x5CE7_0000), + .PMCNTENCLR_EL0 = arm64.Register(REG_SYS | 0x5CE2_0000), + .PMCNTENSET_EL0 = arm64.Register(REG_SYS | 0x5CE1_0000), + .PMCR_EL0 = arm64.Register(REG_SYS | 0x5CE0_0000), + .PMINTENCLR_EL1 = arm64.Register(REG_SYS | 0x44F2_0000), + .PMINTENSET_EL1 = arm64.Register(REG_SYS | 0x44F1_0000), + .PMOVSCLR_EL0 = arm64.Register(REG_SYS | 0x5CE3_0000), + .PMUSERENR_EL0 = arm64.Register(REG_SYS | 0x5CF0_0000), + .TRBBASER_EL1 = arm64.Register(REG_SYS | 0x44DA_0000), + .TRBIDR_EL1 = arm64.Register(REG_SYS | 0x44DF_0000), + .TRBLIMITR_EL1 = arm64.Register(REG_SYS | 0x44D8_0000), + .TRBMAR_EL1 = arm64.Register(REG_SYS | 0x44DC_0000), + .TRBPTR_EL1 = arm64.Register(REG_SYS | 0x44D9_0000), + .TRBSR_EL1 = arm64.Register(REG_SYS | 0x44DB_0000), + .TRBTRG_EL1 = arm64.Register(REG_SYS | 0x44DE_0000), + .DBGAUTHSTATUS_EL1 = arm64.Register(REG_SYS | 0x03F6_0000), + .DBGCLAIMCLR_EL1 = arm64.Register(REG_SYS | 0x03CE_0000), + .DBGCLAIMSET_EL1 = arm64.Register(REG_SYS | 0x03C6_0000), + .DBGDTRRX_EL0 = arm64.Register(REG_SYS | 0x1828_0000), + .DBGDTRTX_EL0 = arm64.Register(REG_SYS | 0x1828_0000), + .DBGDTR_EL0 = arm64.Register(REG_SYS | 0x1820_0000), + .DBGPRCR_EL1 = arm64.Register(REG_SYS | 0x00A4_0000), + .DLR_EL0 = arm64.Register(REG_SYS | 0x5A29_0000), + .DSPSR_EL0 = arm64.Register(REG_SYS | 0x5A28_0000), + .MDCCINT_EL1 = arm64.Register(REG_SYS | 0x0010_0000), + .MDRAR_EL1 = arm64.Register(REG_SYS | 0x0080_0000), + .MDSCR_EL1 = arm64.Register(REG_SYS | 0x0012_0000), + .OSLAR_EL1 = arm64.Register(REG_SYS | 0x0084_0000), + .OSLSR_EL1 = arm64.Register(REG_SYS | 0x008C_0000), + .PRSELR_EL1 = arm64.Register(REG_SYS | 0x4311_0000), + .ICC_ASGI1R_EL1 = arm64.Register(REG_SYS | 0x465E_0000), + .ICC_BPR0_EL1 = arm64.Register(REG_SYS | 0x4643_0000), + .ICC_BPR1_EL1 = arm64.Register(REG_SYS | 0x4663_0000), + .ICC_CTLR_EL1 = arm64.Register(REG_SYS | 0x4664_0000), + .ICC_CTLR_EL3 = arm64.Register(REG_SYS | 0x7664_0000), + .ICC_DIR_EL1 = arm64.Register(REG_SYS | 0x4659_0000), + .ICC_EOIR0_EL1 = arm64.Register(REG_SYS | 0x4641_0000), + .ICC_EOIR1_EL1 = arm64.Register(REG_SYS | 0x4661_0000), + .ICC_HPPIR0_EL1 = arm64.Register(REG_SYS | 0x4642_0000), + .ICC_HPPIR1_EL1 = arm64.Register(REG_SYS | 0x4662_0000), + .ICC_IAR0_EL1 = arm64.Register(REG_SYS | 0x4640_0000), + .ICC_IAR1_EL1 = arm64.Register(REG_SYS | 0x4660_0000), + .ICC_IGRPEN0_EL1 = arm64.Register(REG_SYS | 0x4666_0000), + .ICC_IGRPEN1_EL1 = arm64.Register(REG_SYS | 0x4667_0000), + .ICC_IGRPEN1_EL3 = arm64.Register(REG_SYS | 0x7667_0000), + .ICC_PMR_EL1 = arm64.Register(REG_SYS | 0x4230_0000), + .ICC_RPR_EL1 = arm64.Register(REG_SYS | 0x465B_0000), + .ICC_SGI0R_EL1 = arm64.Register(REG_SYS | 0x465F_0000), + .ICC_SGI1R_EL1 = arm64.Register(REG_SYS | 0x465D_0000), + .ICC_SRE_EL1 = arm64.Register(REG_SYS | 0x4665_0000), + .ICC_SRE_EL2 = arm64.Register(REG_SYS | 0x664D_0000), + .ICC_SRE_EL3 = arm64.Register(REG_SYS | 0x7665_0000), + .ICH_EISR_EL2 = arm64.Register(REG_SYS | 0x665B_0000), + .ICH_ELRSR_EL2 = arm64.Register(REG_SYS | 0x665D_0000), + .ICH_HCR_EL2 = arm64.Register(REG_SYS | 0x6658_0000), + .ICH_MISR_EL2 = arm64.Register(REG_SYS | 0x665A_0000), + .ICH_VMCR_EL2 = arm64.Register(REG_SYS | 0x665F_0000), + .ICH_VTR_EL2 = arm64.Register(REG_SYS | 0x6659_0000), + .DISR_EL1 = arm64.Register(REG_SYS | 0x4609_0000), + .ERRIDR_EL1 = arm64.Register(REG_SYS | 0x4298_0000), + .ERRSELR_EL1 = arm64.Register(REG_SYS | 0x4299_0000), + .ERXADDR_EL1 = arm64.Register(REG_SYS | 0x42A3_0000), + .ERXCTLR_EL1 = arm64.Register(REG_SYS | 0x42A1_0000), + .ERXFR_EL1 = arm64.Register(REG_SYS | 0x42A0_0000), + .ERXMISC0_EL1 = arm64.Register(REG_SYS | 0x42A8_0000), + .ERXMISC1_EL1 = arm64.Register(REG_SYS | 0x42A9_0000), + .ERXMISC2_EL1 = arm64.Register(REG_SYS | 0x42AA_0000), + .ERXMISC3_EL1 = arm64.Register(REG_SYS | 0x42AB_0000), + .ERXSTATUS_EL1 = arm64.Register(REG_SYS | 0x42A2_0000), + .VDISR_EL2 = arm64.Register(REG_SYS | 0x6609_0000), + .VSESR_EL2 = arm64.Register(REG_SYS | 0x6293_0000), + .GPCCR_EL3 = arm64.Register(REG_SYS | 0x710E_0000), + .GPTBR_EL3 = arm64.Register(REG_SYS | 0x710C_0000), + .HCR_EL2 = arm64.Register(REG_SYS | 0x6088_0000), + .HSTR_EL2 = arm64.Register(REG_SYS | 0x608B_0000), + .MDCR_EL2 = arm64.Register(REG_SYS | 0x6089_0000), + .MFAR_EL3 = arm64.Register(REG_SYS | 0x7305_0000), + .VTCR_EL2 = arm64.Register(REG_SYS | 0x610A_0000), + .VTTBR_EL2 = arm64.Register(REG_SYS | 0x6108_0000), + .DACR32_EL2 = arm64.Register(REG_SYS | 0x6180_0000), + .FPEXC32_EL2 = arm64.Register(REG_SYS | 0x6298_0000), + .RNDR = arm64.Register(REG_SYS | 0x5920_0000), + .RNDRRS = arm64.Register(REG_SYS | 0x5921_0000), +} diff --git a/core/rexcode/isa/arm64/tablegen/encoding_table.odin b/core/rexcode/isa/arm64/tablegen/encoding_table.odin deleted file mode 100644 index 164c02365..000000000 --- a/core/rexcode/isa/arm64/tablegen/encoding_table.odin +++ /dev/null @@ -1,4887 +0,0 @@ -// rexcode · Brendan Punsky (dotbmp@github), original author - -package rexcode_arm64_tablegen - -// ============================================================================= -// AArch64 ENCODING_TABLE (v1: base integer + FP scalar) -// ============================================================================= -// -// (bits, mask) model -- same shape as MIPS/RISC-V. `bits` carries the -// static opcode pattern; `mask` covers exactly the bits that are fixed -// by the form. Operand-driven fields (Rd/Rn/Rm/imm*/sh/cond/...) land in -// zero positions of `bits` and are ORed in by the encoder. -// -// Sections (each follows the ARM ARM "C4.1.x Data-processing /" division): -// §1 Data-processing -- immediate (Add/Sub imm, Mov-wide, PC-rel) -// §2 Data-processing -- shifted reg (Add/Sub/AND/ORR/EOR/BIC/ORN/EON) -// §3 Data-processing -- extended reg (Add/Sub extended) -// §4 Data-processing -- 2-source (LSLV/LSRV/ASRV/RORV, UDIV/SDIV) -// §5 Data-processing -- 3-source (MADD/MSUB/SMADDL/.../UMULH) -// §6 Data-processing -- 1-source (CLZ/CLS/RBIT/REV/REV16/REV32) -// §7 Conditional (CSEL/CSINC/CSINV/CSNEG) -// §8 Branches (B/BL/BR/BLR/RET, B.cond, CBZ, TBZ) -// §9 Loads / stores (LDR/STR families, LDP/STP, LDUR) -// §10 System (NOP/HINT/ISB/MSR/MRS/SVC/...) -// §11 FP scalar (FMOV/FADD/FCVT/FCMP/FCSEL/...) -// -// Logical-immediate forms (AND/ORR/EOR/ANDS imm) use the bitmask- -// immediate encoding (N:imms:immr); they're deferred to a follow-up -// turn that adds the bitmask encoder helper. -@(rodata) -ENCODING_TABLE := #partial [Mnemonic][]Encoding{ - .INVALID = {}, - - // ========================================================================= - // §1 Data-processing -- immediate - // ========================================================================= - // - // ADD/SUB imm12 -- sf:op:S 10001 0 sh imm12 Rn Rd - // sh (bit 22) is operand-driven (LSL #0 or LSL #12); v1 callers - // typically pass sh=0 by passing imm <= 4095. Mask covers bits[31:23] - // (sf, op, S, "10001 0" fixed); sh, imm12, Rn, Rd are operand-driven. - - .ADD_IMM = { - {.ADD_IMM, {.WSP_REG, .WSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x11000000, 0xFF800000, .BASE, {}}, - {.ADD_IMM, {.XSP_REG, .XSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true}}, - }, - .ADDS_IMM = { - {.ADDS_IMM, {.W_REG, .WSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x31000000, 0xFF800000, .BASE, {sets_flags=true}}, - {.ADDS_IMM, {.X_REG, .XSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0xB1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true}}, - }, - .SUB_IMM = { - {.SUB_IMM, {.WSP_REG, .WSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x51000000, 0xFF800000, .BASE, {}}, - {.SUB_IMM, {.XSP_REG, .XSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0xD1000000, 0xFF800000, .BASE, {is_64=true}}, - }, - .SUBS_IMM = { - {.SUBS_IMM, {.W_REG, .WSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x71000000, 0xFF800000, .BASE, {sets_flags=true}}, - {.SUBS_IMM, {.X_REG, .XSP_REG, .IMM_12, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0xF1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true}}, - }, - - // Move wide -- sf:opc:100101 hw imm16 Rd - // opc: 00=MOVN, 10=MOVZ, 11=MOVK - // hw (bits 22:21): 0/16/32/48 shift (only 0/16 valid in 32-bit mode) - // Mask covers bits[31:23] (sf + opc + fixed "100101") - .MOVN = { - {.MOVN, {.W_REG, .IMM_16, .HW_SHIFT, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE}, 0x12800000, 0xFF800000, .BASE, {}}, - {.MOVN, {.X_REG, .IMM_16, .HW_SHIFT, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE}, 0x92800000, 0xFF800000, .BASE, {is_64=true}}, - }, - .MOVZ = { - {.MOVZ, {.W_REG, .IMM_16, .HW_SHIFT, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE}, 0x52800000, 0xFF800000, .BASE, {}}, - {.MOVZ, {.X_REG, .IMM_16, .HW_SHIFT, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE}, 0xD2800000, 0xFF800000, .BASE, {is_64=true}}, - }, - .MOVK = { - {.MOVK, {.W_REG, .IMM_16, .HW_SHIFT, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE}, 0x72800000, 0xFF800000, .BASE, {}}, - {.MOVK, {.X_REG, .IMM_16, .HW_SHIFT, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE}, 0xF2800000, 0xFF800000, .BASE, {is_64=true}}, - }, - - // PC-relative addressing -- op immlo 10000 immhi Rd - // ADR (op=0): byte target, ±1MB signed - // ADRP (op=1): 4KB-page target, ±4GB signed - .ADR = { {.ADR, {.X_REG, .REL_PG21, .NONE, .NONE}, {.RD, .BRANCH_PG21, .NONE, .NONE}, 0x10000000, 0x9F000000, .BASE, {}} }, - .ADRP = { {.ADRP, {.X_REG, .REL_PG21, .NONE, .NONE}, {.RD, .BRANCH_PG21, .NONE, .NONE}, 0x90000000, 0x9F000000, .BASE, {}} }, - - // ========================================================================= - // §2 Data-processing -- shifted register - // ========================================================================= - // - // ADD/SUB shifted -- sf:op:S 01011 shift 0 Rm imm6 Rn Rd - // shift type at bits 23:22 (LSL/LSR/ASR/ROR), N=0 fixed at bit 21 - // Mask covers bits[31:29] + [28:24]=01011 + bit[21]=0 = 0xFF200000 - - .ADD_SR = { - {.ADD_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x0B000000, 0xFF200000, .BASE, {}}, - {.ADD_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x8B000000, 0xFF200000, .BASE, {is_64=true}}, - }, - .ADDS_SR = { - {.ADDS_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x2B000000, 0xFF200000, .BASE, {sets_flags=true}}, - {.ADDS_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xAB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, - }, - .SUB_SR = { - {.SUB_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x4B000000, 0xFF200000, .BASE, {}}, - {.SUB_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xCB000000, 0xFF200000, .BASE, {is_64=true}}, - }, - .SUBS_SR = { - {.SUBS_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x6B000000, 0xFF200000, .BASE, {sets_flags=true}}, - {.SUBS_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xEB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, - }, - - // Logical shifted register -- sf:opc 01010 shift N Rm imm6 Rn Rd - // opc/N pair selects: AND/BIC/ORR/ORN/EOR/EON/ANDS/BICS - .AND_SR = { - {.AND_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x0A000000, 0xFF200000, .BASE, {}}, - {.AND_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x8A000000, 0xFF200000, .BASE, {is_64=true}}, - }, - .BIC_SR = { - {.BIC_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x0A200000, 0xFF200000, .BASE, {}}, - {.BIC_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x8A200000, 0xFF200000, .BASE, {is_64=true}}, - }, - .ORR_SR = { - {.ORR_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x2A000000, 0xFF200000, .BASE, {}}, - {.ORR_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xAA000000, 0xFF200000, .BASE, {is_64=true}}, - }, - .ORN_SR = { - {.ORN_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x2A200000, 0xFF200000, .BASE, {}}, - {.ORN_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xAA200000, 0xFF200000, .BASE, {is_64=true}}, - }, - .EOR_SR = { - {.EOR_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x4A000000, 0xFF200000, .BASE, {}}, - {.EOR_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xCA000000, 0xFF200000, .BASE, {is_64=true}}, - }, - .EON_SR = { - {.EON_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x4A200000, 0xFF200000, .BASE, {}}, - {.EON_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xCA200000, 0xFF200000, .BASE, {is_64=true}}, - }, - .ANDS_SR = { - {.ANDS_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x6A000000, 0xFF200000, .BASE, {sets_flags=true}}, - {.ANDS_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xEA000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, - }, - .BICS_SR = { - {.BICS_SR, {.W_REG, .W_REG, .W_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x6A200000, 0xFF200000, .BASE, {sets_flags=true}}, - {.BICS_SR, {.X_REG, .X_REG, .X_SHIFTED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xEA200000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, - }, - - // ========================================================================= - // §3 Data-processing -- extended register - // ========================================================================= - // - // ADD/SUB extended -- sf:op:S 01011 001 Rm option imm3 Rn Rd - // bits[28:21] = 01011001 fixed; option at 15:13, imm3 at 12:10 - // Mask = bits[31:29] + bits[28:21] = 0xFFE00000 - - .ADD_ER = { - {.ADD_ER, {.WSP_REG, .WSP_REG, .W_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x0B200000, 0xFFE00000, .BASE, {}}, - {.ADD_ER, {.XSP_REG, .XSP_REG, .X_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true}}, - }, - .ADDS_ER = { - {.ADDS_ER, {.W_REG, .WSP_REG, .W_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true}}, - {.ADDS_ER, {.X_REG, .XSP_REG, .X_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xAB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true}}, - }, - .SUB_ER = { - {.SUB_ER, {.WSP_REG, .WSP_REG, .W_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x4B200000, 0xFFE00000, .BASE, {}}, - {.SUB_ER, {.XSP_REG, .XSP_REG, .X_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xCB200000, 0xFFE00000, .BASE, {is_64=true}}, - }, - .SUBS_ER = { - {.SUBS_ER, {.W_REG, .WSP_REG, .W_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0x6B200000, 0xFFE00000, .BASE, {sets_flags=true}}, - {.SUBS_ER, {.X_REG, .XSP_REG, .X_EXTENDED, .NONE}, {.RD, .RN, .RM, .NONE}, 0xEB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true}}, - }, - - // ========================================================================= - // §4 Data-processing -- 2-source (variable shift + division) - // ========================================================================= - // - // sf 0 S 11010110 Rm op2 Rn Rd - // Mask covers bits[31:21] + bits[15:10] = 0xFFE0FC00 - - .UDIV = { - {.UDIV, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC00800, 0xFFE0FC00, .BASE, {}}, - {.UDIV, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC00800, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .SDIV = { - {.SDIV, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC00C00, 0xFFE0FC00, .BASE, {}}, - {.SDIV, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC00C00, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .LSLV = { - {.LSLV, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {}}, - {.LSLV, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .LSRV = { - {.LSRV, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC02400, 0xFFE0FC00, .BASE, {}}, - {.LSRV, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .ASRV = { - {.ASRV, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC02800, 0xFFE0FC00, .BASE, {}}, - {.ASRV, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC02800, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .RORV = { - {.RORV, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC02C00, 0xFFE0FC00, .BASE, {}}, - {.RORV, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC02C00, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - - // ========================================================================= - // §5 Data-processing -- 3-source (multiply-accumulate) - // ========================================================================= - // - // sf op54 11011 op31 Rm o0 Ra Rn Rd - // Mask = bits[31:21] + bit[15] = 0xFFE08000 - - .MADD = { - {.MADD, {.W_REG, .W_REG, .W_REG, .W_REG}, {.RD, .RN, .RM, .RA}, 0x1B000000, 0xFFE08000, .BASE, {}}, - {.MADD, {.X_REG, .X_REG, .X_REG, .X_REG}, {.RD, .RN, .RM, .RA}, 0x9B000000, 0xFFE08000, .BASE, {is_64=true}}, - }, - .MSUB = { - {.MSUB, {.W_REG, .W_REG, .W_REG, .W_REG}, {.RD, .RN, .RM, .RA}, 0x1B008000, 0xFFE08000, .BASE, {}}, - {.MSUB, {.X_REG, .X_REG, .X_REG, .X_REG}, {.RD, .RN, .RM, .RA}, 0x9B008000, 0xFFE08000, .BASE, {is_64=true}}, - }, - .SMADDL = { {.SMADDL, {.X_REG, .W_REG, .W_REG, .X_REG}, {.RD, .RN, .RM, .RA}, 0x9B200000, 0xFFE08000, .BASE, {is_64=true}} }, - .SMSUBL = { {.SMSUBL, {.X_REG, .W_REG, .W_REG, .X_REG}, {.RD, .RN, .RM, .RA}, 0x9B208000, 0xFFE08000, .BASE, {is_64=true}} }, - .UMADDL = { {.UMADDL, {.X_REG, .W_REG, .W_REG, .X_REG}, {.RD, .RN, .RM, .RA}, 0x9BA00000, 0xFFE08000, .BASE, {is_64=true}} }, - .UMSUBL = { {.UMSUBL, {.X_REG, .W_REG, .W_REG, .X_REG}, {.RD, .RN, .RM, .RA}, 0x9BA08000, 0xFFE08000, .BASE, {is_64=true}} }, - // SMULH/UMULH have Ra=XZR (=11111) fixed; include in mask. - .SMULH = { {.SMULH, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9B407C00, 0xFFE0FC00, .BASE, {is_64=true}} }, - .UMULH = { {.UMULH, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9BC07C00, 0xFFE0FC00, .BASE, {is_64=true}} }, - - // ========================================================================= - // §6 Data-processing -- 1-source (bit twiddling) - // ========================================================================= - // - // sf 1 S 11010110 op2 op Rn Rd - // Mask covers bits[31:10] = 0xFFFFFC00 - - .RBIT = { - {.RBIT, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5AC00000, 0xFFFFFC00, .BASE, {}}, - {.RBIT, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC00000, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - .REV16 = { - {.REV16, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5AC00400, 0xFFFFFC00, .BASE, {}}, - {.REV16, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC00400, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - .REV = { - // 32-bit REV (== REV32 conceptually on 32-bit registers) - {.REV, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5AC00800, 0xFFFFFC00, .BASE, {}}, - // 64-bit REV (= REV64): op=000011 - {.REV, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC00C00, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - .REV32 = { {.REV32, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC00800, 0xFFFFFC00, .BASE, {is_64=true}} }, - .CLZ = { - {.CLZ, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5AC01000, 0xFFFFFC00, .BASE, {}}, - {.CLZ, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC01000, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - .CLS = { - {.CLS, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5AC01400, 0xFFFFFC00, .BASE, {}}, - {.CLS, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC01400, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - - // EXTR (immediate-rotate; used by ROR alias) - // sf:0:0 10011 1:N 0 Rm imms Rn Rd (N=sf) - .EXTR = { - {.EXTR, {.W_REG, .W_REG, .W_REG, .IMM_6}, {.RD, .RN, .RM, .IMM6}, 0x13800000, 0xFFE08000, .BASE, {}}, - {.EXTR, {.X_REG, .X_REG, .X_REG, .IMM_6}, {.RD, .RN, .RM, .IMM6}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true}}, - }, - - // ========================================================================= - // §7 Conditional select - // ========================================================================= - // - // sf op S 11010100 Rm cond op2 Rn Rd - // Mask = bits[31:21] + bits[11:10] = 0xFFE00C00 - - .CSEL = { - {.CSEL, {.W_REG, .W_REG, .W_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x1A800000, 0xFFE00C00, .BASE, {}}, - {.CSEL, {.X_REG, .X_REG, .X_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x9A800000, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .CSINC = { - {.CSINC, {.W_REG, .W_REG, .W_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x1A800400, 0xFFE00C00, .BASE, {}}, - {.CSINC, {.X_REG, .X_REG, .X_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x9A800400, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .CSINV = { - {.CSINV, {.W_REG, .W_REG, .W_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x5A800000, 0xFFE00C00, .BASE, {}}, - {.CSINV, {.X_REG, .X_REG, .X_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0xDA800000, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .CSNEG = { - {.CSNEG, {.W_REG, .W_REG, .W_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x5A800400, 0xFFE00C00, .BASE, {}}, - {.CSNEG, {.X_REG, .X_REG, .X_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0xDA800400, 0xFFE00C00, .BASE, {is_64=true}}, - }, - - // ========================================================================= - // §7b Conditional compare (register form) - // ========================================================================= - // - // sf op S 11010010 Rm cond 0 o2 Rn o3 nzcv (o2 = bit11 = 0 for register) - // Mask = bits[31:21] + bits[11:10] + bit[4] = 0xFFE00C10 - // CCMP op=1 (0x7A/0xFA), CCMN op=0 (0x3A/0xBA); nzcv@3:0, cond@15:12. - // (imm5 forms, which place the immediate at bits 20:16, need a new - // Operand_Encoding and are added separately.) - - .CCMP_REG = { - {.CCMP_REG, {.W_REG, .W_REG, .NZCV_IMM, .COND}, {.RN, .RM, .NZCV_FIELD, .COND_HI}, 0x7A400000, 0xFFE00C10, .BASE, {sets_flags=true}}, - {.CCMP_REG, {.X_REG, .X_REG, .NZCV_IMM, .COND}, {.RN, .RM, .NZCV_FIELD, .COND_HI}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, - }, - .CCMN_REG = { - {.CCMN_REG, {.W_REG, .W_REG, .NZCV_IMM, .COND}, {.RN, .RM, .NZCV_FIELD, .COND_HI}, 0x3A400000, 0xFFE00C10, .BASE, {sets_flags=true}}, - {.CCMN_REG, {.X_REG, .X_REG, .NZCV_IMM, .COND}, {.RN, .RM, .NZCV_FIELD, .COND_HI}, 0xBA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, - }, - // Conditional compare (immediate): imm5 at 20:16 replaces Rm; bit 11 = 1. - .CCMP_IMM = { - {.CCMP_IMM, {.W_REG, .IMM_5, .NZCV_IMM, .COND}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI}, 0x7A400800, 0xFFE00C10, .BASE, {sets_flags=true}}, - {.CCMP_IMM, {.X_REG, .IMM_5, .NZCV_IMM, .COND}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI}, 0xFA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, - }, - .CCMN_IMM = { - {.CCMN_IMM, {.W_REG, .IMM_5, .NZCV_IMM, .COND}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI}, 0x3A400800, 0xFFE00C10, .BASE, {sets_flags=true}}, - {.CCMN_IMM, {.X_REG, .IMM_5, .NZCV_IMM, .COND}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI}, 0xBA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, - }, - // HINT #imm7 (imm at 11:5); NOP/YIELD/etc. are specific values of this. - .HINT = { {.HINT, {.IMM_8, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE}, 0xD503201F, 0xFFFFF01F, .BASE, {}} }, - // MSR , #imm: op1:op2 selector (combined) + CRm immediate. - .MSR_IMM = { {.MSR_IMM, {.SYS_REG, .IMM_4, .NONE, .NONE}, {.MSR_PSTATE, .BARRIER_FIELD, .NONE, .NONE}, 0xD500401F, 0xFFF8F01F, .BASE, {}} }, - // USDOT (unsigned-by-signed dot product, I8MM): Vd.<2S|4S>, Vn.<8B|16B>, Vm.<8B|16B>. - .USDOT = { - {.USDOT, {.V_2S, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E809C00, 0xFFE0FC00, .DOT, {}}, - {.USDOT, {.V_4S, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E809C00, 0xFFE0FC00, .DOT, {}}, - }, - // FMOV (immediate): scalar Hd/Sd/Dd, #imm (8-bit float at 20:13). - .FMOV_IMM = { - {.FMOV_IMM, {.S_REG, .IMM_8, .NONE, .NONE}, {.RD, .FMOV_SCALAR_IMM, .NONE, .NONE}, 0x1E201000, 0xFFE01FE0, .FP, {}}, - {.FMOV_IMM, {.D_REG, .IMM_8, .NONE, .NONE}, {.RD, .FMOV_SCALAR_IMM, .NONE, .NONE}, 0x1E601000, 0xFFE01FE0, .FP, {}}, - {.FMOV_IMM, {.H_REG, .IMM_8, .NONE, .NONE}, {.RD, .FMOV_SCALAR_IMM, .NONE, .NONE}, 0x1EE01000, 0xFFE01FE0, .FP16, {}}, - }, - // FMOV (vector, immediate): Vd., #imm (8-bit float in abc:defgh, cmode=1111). - .FMOV_V_IMM = { - {.FMOV_V_IMM, {.V_2S, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {}}, - {.FMOV_V_IMM, {.V_4S, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {}}, - {.FMOV_V_IMM, {.V_2D, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {}}, - {.FMOV_V_IMM, {.V_4H_FP16, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {}}, - {.FMOV_V_IMM, {.V_8H_FP16, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {}}, - }, - - // ========================================================================= - // Byte / half / signed scalar loads & stores (pre / post / register offset) - // and vector LDP/STP/LDUR/STUR -- reusing the standard addressing encodings. - // ========================================================================= - .LDRB_POST = { {.LDRB_POST, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0x38400400, 0xFFE00C00, .BASE, {}} }, - .LDRB_PRE = { {.LDRB_PRE, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0x38400C00, 0xFFE00C00, .BASE, {}} }, - .LDRB_REG = { {.LDRB_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x38600800, 0xFFE00C00, .BASE, {}} }, - .LDRH_POST = { {.LDRH_POST, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0x78400400, 0xFFE00C00, .BASE, {}} }, - .LDRH_PRE = { {.LDRH_PRE, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0x78400C00, 0xFFE00C00, .BASE, {}} }, - .LDRH_REG = { {.LDRH_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x78600800, 0xFFE00C00, .BASE, {}} }, - .STRB_POST = { {.STRB_POST, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0x38000400, 0xFFE00C00, .BASE, {}} }, - .STRB_PRE = { {.STRB_PRE, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0x38000C00, 0xFFE00C00, .BASE, {}} }, - .STRB_REG = { {.STRB_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x38200800, 0xFFE00C00, .BASE, {}} }, - .STRH_POST = { {.STRH_POST, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0x78000400, 0xFFE00C00, .BASE, {}} }, - .STRH_PRE = { {.STRH_PRE, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0x78000C00, 0xFFE00C00, .BASE, {}} }, - .STRH_REG = { {.STRH_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x78200800, 0xFFE00C00, .BASE, {}} }, - // Signed register-offset loads (sign-extend to W or X). - .LDRSB_REG = { - {.LDRSB_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x38E00800, 0xFFE00C00, .BASE, {}}, - {.LDRSB_REG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x38A00800, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .LDRSH_REG = { - {.LDRSH_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x78E00800, 0xFFE00C00, .BASE, {}}, - {.LDRSH_REG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0x78A00800, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .LDRSW_REG = { {.LDRSW_REG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0xB8A00800, 0xFFE00C00, .BASE, {is_64=true}} }, - // Vector load/store pair (S/D/Q) and unscaled (LDUR/STUR). - .LDP_V = { - {.LDP_V, {.S_REG, .S_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x2D400000, 0xFFC00000, .NEON, {}}, - {.LDP_V, {.D_REG, .D_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x6D400000, 0xFFC00000, .NEON, {}}, - {.LDP_V, {.Q_REG, .Q_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0xAD400000, 0xFFC00000, .NEON, {}}, - }, - .STP_V = { - {.STP_V, {.S_REG, .S_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x2D000000, 0xFFC00000, .NEON, {}}, - {.STP_V, {.D_REG, .D_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x6D000000, 0xFFC00000, .NEON, {}}, - {.STP_V, {.Q_REG, .Q_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0xAD000000, 0xFFC00000, .NEON, {}}, - }, - .LDUR_V = { - {.LDUR_V, {.S_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xBC400000, 0xFFE00C00, .NEON, {}}, - {.LDUR_V, {.D_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xFC400000, 0xFFE00C00, .NEON, {}}, - {.LDUR_V, {.Q_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {}}, - }, - .STUR_V = { - {.STUR_V, {.S_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xBC000000, 0xFFE00C00, .NEON, {}}, - {.STUR_V, {.D_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xFC000000, 0xFFE00C00, .NEON, {}}, - {.STUR_V, {.Q_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x3C800000, 0xFFE00C00, .NEON, {}}, - }, - - // ========================================================================= - // §8 Branches - // ========================================================================= - - // Unconditional immediate -- op 00101 imm26 - .B = { {.B, {.REL_26, .NONE, .NONE, .NONE}, {.BRANCH_26, .NONE, .NONE, .NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true}} }, - .BL = { {.BL, {.REL_26, .NONE, .NONE, .NONE}, {.BRANCH_26, .NONE, .NONE, .NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true}} }, - - // Conditional branch -- 01010100 imm19 0 cond - // Mask covers bits 31:24 + bit 4 (the lone static "0" between imm19 and - // cond). Bits 23:5 (imm19) and bits 3:0 (cond) are both operand-driven. - .B_COND = { {.B_COND, {.COND, .REL_19, .NONE, .NONE}, {.COND_LO, .BRANCH_19, .NONE, .NONE}, - 0x54000000, 0xFF000010, .BASE, {cond_branch=true}} }, - - // Compare-and-branch -- sf:011010:op:imm19:Rt - .CBZ = { - {.CBZ, {.W_REG, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0x34000000, 0xFF000000, .BASE, {cond_branch=true}}, - {.CBZ, {.X_REG, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0xB4000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true}}, - }, - .CBNZ = { - {.CBNZ, {.W_REG, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0x35000000, 0xFF000000, .BASE, {cond_branch=true}}, - {.CBNZ, {.X_REG, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0xB5000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true}}, - }, - - // Test-bit-and-branch -- b5:011011:op:b40:imm14:Rt - .TBZ = { - {.TBZ, {.X_REG, .IMM_5, .REL_14, .NONE}, {.RT, .TBZ_BIT, .BRANCH_14, .NONE}, 0x36000000, 0x7F000000, .BASE, {cond_branch=true}}, - }, - .TBNZ = { - {.TBNZ, {.X_REG, .IMM_5, .REL_14, .NONE}, {.RT, .TBZ_BIT, .BRANCH_14, .NONE}, 0x37000000, 0x7F000000, .BASE, {cond_branch=true}}, - }, - - // Register indirect -- 11010110 opc 11111 000000 Rn 00000 - // opc: 0000=BR, 0001=BLR, 0010=RET (with Rn=X30 default if absent) - .BR = { {.BR, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD61F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true}} }, - .BLR = { {.BLR, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD63F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true}} }, - .RET = { - {.RET, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD65F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true}}, - {.RET, {.NONE, .NONE, .NONE, .NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F03C0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true}}, - }, - - // ========================================================================= - // §9 Loads / stores (subset: unsigned-offset, unscaled, pre/post, pair, literal) - // ========================================================================= - - // Unsigned-offset (LDR/STR imm12 scaled) -- size 111 001 opc imm12 Rn Rt - // Mask = bits[31:22] = 0xFFC00000 - - .LDR = { - // Plain LDR - {.LDR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xB9400000, 0xFFC00000, .BASE, {}}, - {.LDR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xF9400000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .STR = { - {.STR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xB9000000, 0xFFC00000, .BASE, {}}, - {.STR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xF9000000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .LDRB = { {.LDRB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x39400000, 0xFFC00000, .BASE, {}} }, - .STRB = { {.STRB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x39000000, 0xFFC00000, .BASE, {}} }, - .LDRSB = { - // LDRSB Xt: opc=10 - {.LDRSB, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x39800000, 0xFFC00000, .BASE, {is_64=true}}, - // LDRSB Wt: opc=11 - {.LDRSB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x39C00000, 0xFFC00000, .BASE, {}}, - }, - .LDRH = { {.LDRH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x79400000, 0xFFC00000, .BASE, {}} }, - .STRH = { {.STRH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x79000000, 0xFFC00000, .BASE, {}} }, - .LDRSH = { - {.LDRSH, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x79800000, 0xFFC00000, .BASE, {is_64=true}}, - {.LDRSH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x79C00000, 0xFFC00000, .BASE, {}}, - }, - .LDRSW = { {.LDRSW, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xB9800000, 0xFFC00000, .BASE, {is_64=true}} }, - - // LDR literal (PC-rel 19-bit signed scaled by 4) -- opc 011 V 00 imm19 Rt - .LDR_LIT = { - {.LDR_LIT, {.W_REG, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0x18000000, 0xFF000000, .BASE, {}}, - {.LDR_LIT, {.X_REG, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0x58000000, 0xFF000000, .BASE, {is_64=true}}, - }, - - // Load/store pair -- opc 101 V 010 L imm7 Rt2 Rn Rt - // Mask covers bits[31:22] for the offset form - .LDP = { - {.LDP, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x29400000, 0xFFC00000, .BASE, {}}, - {.LDP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0xA9400000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .STP = { - {.STP, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x29000000, 0xFFC00000, .BASE, {}}, - {.STP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0xA9000000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .LDPSW = { {.LDPSW, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x69400000, 0xFFC00000, .BASE, {is_64=true}} }, - - // ========================================================================= - // §10 System - // ========================================================================= - // - // HINT space (NOP/YIELD/WFI/WFE/SEV/SEVL): 11010101 00000011 0010 CRm op2 11111 - - .NOP = { {.NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFFFFF, .BASE, {}} }, - .YIELD = { {.YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503203F, 0xFFFFFFFF, .BASE, {}} }, - .WFE = { {.WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503205F, 0xFFFFFFFF, .BASE, {}} }, - .WFI = { {.WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503207F, 0xFFFFFFFF, .BASE, {}} }, - .SEV = { {.SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503209F, 0xFFFFFFFF, .BASE, {}} }, - .SEVL = { {.SEVL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320BF, 0xFFFFFFFF, .BASE, {}} }, - - // Barriers -- 11010101 00000011 0011 CRm opc 11111 - .ISB = { {.ISB, {.IMM_4, .NONE, .NONE, .NONE}, {.BARRIER_FIELD, .NONE, .NONE, .NONE}, 0xD50330DF, 0xFFFFF0FF, .BASE, {}} }, - .DSB = { {.DSB, {.IMM_4, .NONE, .NONE, .NONE}, {.BARRIER_FIELD, .NONE, .NONE, .NONE}, 0xD503309F, 0xFFFFF0FF, .BASE, {}} }, - .DMB = { {.DMB, {.IMM_4, .NONE, .NONE, .NONE}, {.BARRIER_FIELD, .NONE, .NONE, .NONE}, 0xD50330BF, 0xFFFFF0FF, .BASE, {}} }, - - // Exception generation -- 11010100 opc imm16 op2 LL - // SVC = opc=000, LL=01 -> 0xD4000001 - // HVC = opc=000, LL=10 -> 0xD4000002 - // SMC = opc=000, LL=11 -> 0xD4000003 - // BRK = opc=001, LL=00 -> 0xD4200000 - // HLT = opc=010, LL=00 -> 0xD4400000 - .SVC = { {.SVC, {.IMM_16, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE}, 0xD4000001, 0xFFE0001F, .BASE, {branch=true}} }, - .HVC = { {.HVC, {.IMM_16, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE}, 0xD4000002, 0xFFE0001F, .BASE, {branch=true}} }, - .SMC = { {.SMC, {.IMM_16, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE}, 0xD4000003, 0xFFE0001F, .BASE, {branch=true}} }, - .BRK = { {.BRK, {.IMM_16, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE}, 0xD4200000, 0xFFE0001F, .BASE, {branch=true}} }, - .HLT = { {.HLT, {.IMM_16, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE}, 0xD4400000, 0xFFE0001F, .BASE, {branch=true}} }, - - // ERET -- 11010110 1001111 1 0000 00 11111 00000 - .ERET = { {.ERET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F03E0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true}} }, - - // System register access -- MRS Xt, sysreg = 1101010100 1 1 op0 op1 CRn CRm op2 Rt - // MSR sysreg, Xt = 1101010100 0 1 op0 op1 CRn CRm op2 Rt - // Mask covers bits[31:20] static (1101010100 1 1 for MRS) + the 5 LSBs left for Rt - .MRS = { {.MRS, {.X_REG, .SYS_REG, .NONE, .NONE}, {.RT, .SYS_FIELD, .NONE, .NONE}, 0xD5300000, 0xFFF00000, .BASE, {}} }, - .MSR_REG = { {.MSR_REG, {.SYS_REG, .X_REG, .NONE, .NONE}, {.SYS_FIELD, .RT, .NONE, .NONE}, 0xD5100000, 0xFFF00000, .BASE, {}} }, - - // ========================================================================= - // §11 FP scalar (single + double; half-precision deferred to FP16 turn) - // ========================================================================= - // - // OP-FP data-proc 1-source -- 0 0 0 11110 ftype 1 opcode 10000 Rn Rd - // ftype: 00=S, 01=D, 11=H (FP16, deferred) - - .FABS = { - {.FABS, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E20C000, 0xFFFFFC00, .FP, {}}, - {.FABS, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E60C000, 0xFFFFFC00, .FP, {}}, - }, - .FNEG = { - {.FNEG, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E214000, 0xFFFFFC00, .FP, {}}, - {.FNEG, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E614000, 0xFFFFFC00, .FP, {}}, - }, - .FSQRT = { - {.FSQRT, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E21C000, 0xFFFFFC00, .FP, {}}, - {.FSQRT, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E61C000, 0xFFFFFC00, .FP, {}}, - }, - - // OP-FP 2-source -- 0 0 0 11110 ftype 1 Rm opcode 10 Rn Rd - .FADD = { - {.FADD, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E202800, 0xFFE0FC00, .FP, {}}, - {.FADD, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E602800, 0xFFE0FC00, .FP, {}}, - }, - .FSUB = { - {.FSUB, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E203800, 0xFFE0FC00, .FP, {}}, - {.FSUB, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E603800, 0xFFE0FC00, .FP, {}}, - }, - .FMUL = { - {.FMUL, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E200800, 0xFFE0FC00, .FP, {}}, - {.FMUL, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E600800, 0xFFE0FC00, .FP, {}}, - }, - .FDIV = { - {.FDIV, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E201800, 0xFFE0FC00, .FP, {}}, - {.FDIV, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E601800, 0xFFE0FC00, .FP, {}}, - }, - .FNMUL = { - {.FNMUL, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E208800, 0xFFE0FC00, .FP, {}}, - {.FNMUL, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E608800, 0xFFE0FC00, .FP, {}}, - }, - .FMAX = { - {.FMAX, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E204800, 0xFFE0FC00, .FP, {}}, - {.FMAX, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E604800, 0xFFE0FC00, .FP, {}}, - }, - .FMIN = { - {.FMIN, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E205800, 0xFFE0FC00, .FP, {}}, - {.FMIN, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E605800, 0xFFE0FC00, .FP, {}}, - }, - .FMAXNM = { - {.FMAXNM, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E206800, 0xFFE0FC00, .FP, {}}, - {.FMAXNM, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E606800, 0xFFE0FC00, .FP, {}}, - }, - .FMINNM = { - {.FMINNM, {.S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E207800, 0xFFE0FC00, .FP, {}}, - {.FMINNM, {.D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1E607800, 0xFFE0FC00, .FP, {}}, - }, - - // OP-FP 3-source (FMADD/FMSUB/FNMADD/FNMSUB) -- 0 0 0 11111 ftype o1 Rm o0 Ra Rn Rd - .FMADD = { - {.FMADD, {.S_REG, .S_REG, .S_REG, .S_REG}, {.RD, .RN, .RM, .RA}, 0x1F000000, 0xFFE08000, .FP, {}}, - {.FMADD, {.D_REG, .D_REG, .D_REG, .D_REG}, {.RD, .RN, .RM, .RA}, 0x1F400000, 0xFFE08000, .FP, {}}, - }, - .FMSUB = { - {.FMSUB, {.S_REG, .S_REG, .S_REG, .S_REG}, {.RD, .RN, .RM, .RA}, 0x1F008000, 0xFFE08000, .FP, {}}, - {.FMSUB, {.D_REG, .D_REG, .D_REG, .D_REG}, {.RD, .RN, .RM, .RA}, 0x1F408000, 0xFFE08000, .FP, {}}, - }, - .FNMADD = { - {.FNMADD, {.S_REG, .S_REG, .S_REG, .S_REG}, {.RD, .RN, .RM, .RA}, 0x1F200000, 0xFFE08000, .FP, {}}, - {.FNMADD, {.D_REG, .D_REG, .D_REG, .D_REG}, {.RD, .RN, .RM, .RA}, 0x1F600000, 0xFFE08000, .FP, {}}, - }, - .FNMSUB = { - {.FNMSUB, {.S_REG, .S_REG, .S_REG, .S_REG}, {.RD, .RN, .RM, .RA}, 0x1F208000, 0xFFE08000, .FP, {}}, - {.FNMSUB, {.D_REG, .D_REG, .D_REG, .D_REG}, {.RD, .RN, .RM, .RA}, 0x1F608000, 0xFFE08000, .FP, {}}, - }, - - // FP compare -- 0 0 0 11110 ftype 1 Rm 0 0 1000 Rn opc opc opc 0 0 0 - .FCMP = { - {.FCMP, {.S_REG, .S_REG, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x1E202000, 0xFFE0FC1F, .FP, {sets_flags=true}}, - {.FCMP, {.D_REG, .D_REG, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x1E602000, 0xFFE0FC1F, .FP, {sets_flags=true}}, - }, - .FCMPE = { - {.FCMPE, {.S_REG, .S_REG, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x1E202010, 0xFFE0FC1F, .FP, {sets_flags=true}}, - {.FCMPE, {.D_REG, .D_REG, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x1E602010, 0xFFE0FC1F, .FP, {sets_flags=true}}, - }, - - // FCSEL -- 0 0 0 11110 ftype 1 Rm cond 1 1 Rn Rd - .FCSEL = { - {.FCSEL, {.S_REG, .S_REG, .S_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x1E200C00, 0xFFE00C00, .FP, {}}, - {.FCSEL, {.D_REG, .D_REG, .D_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x1E600C00, 0xFFE00C00, .FP, {}}, - }, - - // FP -> FP conversion -- 0 0 0 11110 ftype 1 0001 opc 10000 Rn Rd - // opc selects target type. We expose three common variants: - // FCVT D <- S : 0x1E22C000 (ftype=00 src=S, opc=01 dst=D) - // FCVT S <- D : 0x1E624000 (ftype=01 src=D, opc=00 dst=S) - .FCVT = { - {.FCVT, {.D_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E22C000, 0xFFFFFC00, .FP, {}}, - {.FCVT, {.S_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E624000, 0xFFFFFC00, .FP, {}}, - }, - - // Int<->FP conversions -- sf 0 0 11110 ftype 1 rmode opc 000000 Rn Rd - // SCVTF/UCVTF: int -> FP. rmode=00, opc=010(SCVTF)/011(UCVTF) - // FCVTZS/FCVTZU: FP -> int (round toward zero). rmode=11, opc=000/001 - .SCVTF = { - {.SCVTF, {.S_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E220000, 0xFFFFFC00, .FP, {}}, - {.SCVTF, {.D_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E620000, 0xFFFFFC00, .FP, {}}, - {.SCVTF, {.S_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E220000, 0xFFFFFC00, .FP, {is_64=true}}, - {.SCVTF, {.D_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E620000, 0xFFFFFC00, .FP, {is_64=true}}, - }, - .UCVTF = { - {.UCVTF, {.S_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E230000, 0xFFFFFC00, .FP, {}}, - {.UCVTF, {.D_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E630000, 0xFFFFFC00, .FP, {}}, - {.UCVTF, {.S_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E230000, 0xFFFFFC00, .FP, {is_64=true}}, - {.UCVTF, {.D_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E630000, 0xFFFFFC00, .FP, {is_64=true}}, - }, - .FCVTZS = { - {.FCVTZS, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E380000, 0xFFFFFC00, .FP, {}}, - {.FCVTZS, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E780000, 0xFFFFFC00, .FP, {}}, - {.FCVTZS, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E380000, 0xFFFFFC00, .FP, {is_64=true}}, - {.FCVTZS, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E780000, 0xFFFFFC00, .FP, {is_64=true}}, - }, - .FCVTZU = { - {.FCVTZU, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E390000, 0xFFFFFC00, .FP, {}}, - {.FCVTZU, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E790000, 0xFFFFFC00, .FP, {}}, - {.FCVTZU, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E390000, 0xFFFFFC00, .FP, {is_64=true}}, - {.FCVTZU, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E790000, 0xFFFFFC00, .FP, {is_64=true}}, - }, - - // FMOV -- three flavours: reg<->reg same type, GPR<->FP, immediate - // v1 covers reg-reg + GPR<->FP (the most common). FP-immediate - // uses an 8-bit encoded constant and is deferred. - .FMOV_REG = { - {.FMOV_REG, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E204000, 0xFFFFFC00, .FP, {}}, - {.FMOV_REG, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E604000, 0xFFFFFC00, .FP, {}}, - }, - .FMOV_GEN = { - // W<->S, X<->D in both directions. - // FMOV Wd, Sn: sf=0 ftype=00 rmode=00 opc=110 -> 0x1E260000 - // FMOV Sd, Wn: sf=0 ftype=00 rmode=00 opc=111 -> 0x1E270000 - // FMOV Xd, Dn: sf=1 ftype=01 rmode=00 opc=110 -> 0x9E660000 - // FMOV Dd, Xn: sf=1 ftype=01 rmode=00 opc=111 -> 0x9E670000 - {.FMOV_GEN, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E260000, 0xFFFFFC00, .FP, {}}, - {.FMOV_GEN, {.S_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E270000, 0xFFFFFC00, .FP, {}}, - {.FMOV_GEN, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E660000, 0xFFFFFC00, .FP, {is_64=true}}, - {.FMOV_GEN, {.D_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true}}, - }, - - // ========================================================================= - // §12 Logical immediate (bitmask-encoded N:imms:immr) - // ========================================================================= - // sf:opc 100100 N immr imms Rn Rd - // opc: 00=AND, 01=ORR, 10=EOR, 11=ANDS - // The user passes a pre-encoded 13-bit value (N<<12 | immr<<6 | imms) - // in the IMMEDIATE; bitmask_encode() in bitmask.odin computes it - // from a raw 32/64-bit immediate. - // Mask covers sf + opc + 100100 + (for 32-bit) N=0 = 0xFF800000 / 0x7F800000. - - .AND_IMM = { - {.AND_IMM, {.WSP_REG, .W_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0x12000000, 0xFFC00000, .BASE, {}}, - {.AND_IMM, {.XSP_REG, .X_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0x92000000, 0xFF800000, .BASE, {is_64=true}}, - }, - .ORR_IMM = { - {.ORR_IMM, {.WSP_REG, .W_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0x32000000, 0xFFC00000, .BASE, {}}, - {.ORR_IMM, {.XSP_REG, .X_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0xB2000000, 0xFF800000, .BASE, {is_64=true}}, - }, - .EOR_IMM = { - {.EOR_IMM, {.WSP_REG, .W_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0x52000000, 0xFFC00000, .BASE, {}}, - {.EOR_IMM, {.XSP_REG, .X_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0xD2000000, 0xFF800000, .BASE, {is_64=true}}, - }, - .ANDS_IMM = { - {.ANDS_IMM, {.W_REG, .W_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true}}, - {.ANDS_IMM, {.X_REG, .X_REG, .BITMASK_IMM, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE}, 0xF2000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true}}, - }, - // TST is the ANDS_IMM alias with Rd=ZR; we emit explicit bits with Rd=31. - .TST_IMM = { - {.TST_IMM, {.W_REG, .BITMASK_IMM, .NONE, .NONE}, {.RN, .BITMASK_FIELD, .NONE, .NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true}}, - {.TST_IMM, {.X_REG, .BITMASK_IMM, .NONE, .NONE}, {.RN, .BITMASK_FIELD, .NONE, .NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true}}, - }, - - // ========================================================================= - // §13 Additional load/store addressing modes - // ========================================================================= - // - // Unscaled signed-9 (LDUR/STUR) -- size:111 000 opc:0 imm9:9 00 Rn Rt - // Mask covers bits[31:21] + bits[11:10] = 0xFFE00C00 - - .LDUR = { - {.LDUR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xB8400000, 0xFFE00C00, .BASE, {}}, - {.LDUR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xF8400000, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .STUR = { - {.STUR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xB8000000, 0xFFE00C00, .BASE, {}}, - {.STUR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xF8000000, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .LDURB = { {.LDURB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x38400000, 0xFFE00C00, .BASE, {}} }, - .STURB = { {.STURB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x38000000, 0xFFE00C00, .BASE, {}} }, - .LDURH = { {.LDURH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x78400000, 0xFFE00C00, .BASE, {}} }, - .STURH = { {.STURH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x78000000, 0xFFE00C00, .BASE, {}} }, - .LDURSB = { - {.LDURSB, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x38800000, 0xFFE00C00, .BASE, {is_64=true}}, - {.LDURSB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x38C00000, 0xFFE00C00, .BASE, {}}, - }, - .LDURSH = { - {.LDURSH, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x78800000, 0xFFE00C00, .BASE, {is_64=true}}, - {.LDURSH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x78C00000, 0xFFE00C00, .BASE, {}}, - }, - .LDURSW = { {.LDURSW, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xB8800000, 0xFFE00C00, .BASE, {is_64=true}} }, - - // Pre-index (mode bits[11:10] = 11) - .LDR_PRE = { - {.LDR_PRE, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0xB8400C00, 0xFFE00C00, .BASE, {}}, - {.LDR_PRE, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0xF8400C00, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .STR_PRE = { - {.STR_PRE, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0xB8000C00, 0xFFE00C00, .BASE, {}}, - {.STR_PRE, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0xF8000C00, 0xFFE00C00, .BASE, {is_64=true}}, - }, - // Post-index (mode bits[11:10] = 01) - .LDR_POST = { - {.LDR_POST, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0xB8400400, 0xFFE00C00, .BASE, {}}, - {.LDR_POST, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0xF8400400, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .STR_POST = { - {.STR_POST, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0xB8000400, 0xFFE00C00, .BASE, {}}, - {.STR_POST, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE}, 0xF8000400, 0xFFE00C00, .BASE, {is_64=true}}, - }, - - // Register-offset load/store -- size:111 000 opc:1 Rm option S:1 10 Rn Rt - // Mask covers bits[31:21] + bits[15:10] -- option/S/index are operand - .LDR_REG = { - {.LDR_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0xB8600800, 0xFFE00C00, .BASE, {}}, - {.LDR_REG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0xF8600800, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .STR_REG = { - {.STR_REG, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0xB8200800, 0xFFE00C00, .BASE, {}}, - {.STR_REG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE}, 0xF8200800, 0xFFE00C00, .BASE, {is_64=true}}, - }, - - // LDP/STP pre/post-index (variants of the offset form with bits[24:23] = 11/01) - .LDP_PRE = { - {.LDP_PRE, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_PRE, .NONE}, 0x29C00000, 0xFFC00000, .BASE, {}}, - {.LDP_PRE, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_PRE, .NONE}, 0xA9C00000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .STP_PRE = { - {.STP_PRE, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_PRE, .NONE}, 0x29800000, 0xFFC00000, .BASE, {}}, - {.STP_PRE, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_PRE, .NONE}, 0xA9800000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .LDP_POST = { - {.LDP_POST, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_POST, .NONE}, 0x28C00000, 0xFFC00000, .BASE, {}}, - {.LDP_POST, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_POST, .NONE}, 0xA8C00000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .STP_POST = { - {.STP_POST, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_POST, .NONE}, 0x28800000, 0xFFC00000, .BASE, {}}, - {.STP_POST, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_POST, .NONE}, 0xA8800000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .LDPSW_PRE = { {.LDPSW_PRE, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_PRE, .NONE}, 0x69C00000, 0xFFC00000, .BASE, {is_64=true}} }, - .LDPSW_POST = { {.LDPSW_POST, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_POST, .NONE}, 0x68C00000, 0xFFC00000, .BASE, {is_64=true}} }, - .LDNP = { - {.LDNP, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x28400000, 0xFFC00000, .BASE, {}}, - {.LDNP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0xA8400000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .STNP = { - {.STNP, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x28000000, 0xFFC00000, .BASE, {}}, - {.STNP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0xA8000000, 0xFFC00000, .BASE, {is_64=true}}, - }, - - // Exclusive (LDXR/STXR) -- size:001000 010 0 11111 0 11111 Rn Rt - .LDXR = { - {.LDXR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x885F7C00, 0xFFE0FC00, .BASE, {}}, - {.LDXR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xC85F7C00, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .STXR = { - {.STXR, {.W_REG, .W_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0x88007C00, 0xFFE0FC00, .BASE, {}}, - {.STXR, {.W_REG, .X_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0xC8007C00, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .LDAXR = { - {.LDAXR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x885FFC00, 0xFFE0FC00, .BASE, {}}, - {.LDAXR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xC85FFC00, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .STLXR = { - {.STLXR, {.W_REG, .W_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0x8800FC00, 0xFFE0FC00, .BASE, {}}, - {.STLXR, {.W_REG, .X_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0xC800FC00, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .LDXRB = { {.LDXRB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x085F7C00, 0xFFE0FC00, .BASE, {}} }, - .STXRB = { {.STXRB, {.W_REG, .W_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0x08007C00, 0xFFE0FC00, .BASE, {}} }, - .LDAXRB = { {.LDAXRB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x085FFC00, 0xFFE0FC00, .BASE, {}} }, - .STLXRB = { {.STLXRB, {.W_REG, .W_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0x0800FC00, 0xFFE0FC00, .BASE, {}} }, - .LDXRH = { {.LDXRH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x485F7C00, 0xFFE0FC00, .BASE, {}} }, - .STXRH = { {.STXRH, {.W_REG, .W_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0x48007C00, 0xFFE0FC00, .BASE, {}} }, - .LDAXRH = { {.LDAXRH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x485FFC00, 0xFFE0FC00, .BASE, {}} }, - .STLXRH = { {.STLXRH, {.W_REG, .W_REG, .MEM, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE}, 0x4800FC00, 0xFFE0FC00, .BASE, {}} }, - - // Exclusive pair (LDXP/STXP) -- two registers - .LDXP = { - {.LDXP, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE}, 0x887F0000, 0xFFFF8000, .BASE, {}}, - {.LDXP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE}, 0xC87F0000, 0xFFFF8000, .BASE, {is_64=true}}, - }, - .STXP = { - {.STXP, {.W_REG, .W_REG, .W_REG, .MEM}, {.RD, .RT, .RT2, .OFFSET_BASE_A}, 0x88200000, 0xFFE08000, .BASE, {}}, - {.STXP, {.W_REG, .X_REG, .X_REG, .MEM}, {.RD, .RT, .RT2, .OFFSET_BASE_A}, 0xC8200000, 0xFFE08000, .BASE, {is_64=true}}, - }, - .LDAXP = { - {.LDAXP, {.W_REG, .W_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE}, 0x887F8000, 0xFFFF8000, .BASE, {}}, - {.LDAXP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE}, 0xC87F8000, 0xFFFF8000, .BASE, {is_64=true}}, - }, - .STLXP = { - {.STLXP, {.W_REG, .W_REG, .W_REG, .MEM}, {.RD, .RT, .RT2, .OFFSET_BASE_A}, 0x88208000, 0xFFE08000, .BASE, {}}, - {.STLXP, {.W_REG, .X_REG, .X_REG, .MEM}, {.RD, .RT, .RT2, .OFFSET_BASE_A}, 0xC8208000, 0xFFE08000, .BASE, {is_64=true}}, - }, - - // Acquire/Release (single register) - .LDAR = { - {.LDAR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x88DFFC00, 0xFFFFFC00, .BASE, {}}, - {.LDAR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xC8DFFC00, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - .STLR = { - {.STLR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x889FFC00, 0xFFFFFC00, .BASE, {}}, - {.STLR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xC89FFC00, 0xFFFFFC00, .BASE, {is_64=true}}, - }, - .LDARB = { {.LDARB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x08DFFC00, 0xFFFFFC00, .BASE, {}} }, - .STLRB = { {.STLRB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x089FFC00, 0xFFFFFC00, .BASE, {}} }, - .LDARH = { {.LDARH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x48DFFC00, 0xFFFFFC00, .BASE, {}} }, - .STLRH = { {.STLRH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x489FFC00, 0xFFFFFC00, .BASE, {}} }, - - // LDAPR (load-acquire RCpc, v8.3-A) - .LDAPR = { - {.LDAPR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xB8BFC000, 0xFFFFFC00, .LSE2, {}}, - {.LDAPR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xF8BFC000, 0xFFFFFC00, .LSE2, {is_64=true}}, - }, - .LDAPRB = { {.LDAPRB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x38BFC000, 0xFFFFFC00, .LSE2, {}} }, - .LDAPRH = { {.LDAPRH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x78BFC000, 0xFFFFFC00, .LSE2, {}} }, - - // ========================================================================= - // §14 LSE atomics (v8.1-A) - // ========================================================================= - // - // Format: size:111000 A:R 1 Rs:5 o3:opc:3 00 Rn:5 Rt:5 - // size (bits 31:30): 10=W, 11=X - // A (bit 23): acquire semantics - // R (bit 22): release semantics - // opc (bits 14:12): 000=ADD, 001=CLR, 010=EOR, 011=SET, - // 100=SMAX, 101=SMIN, 110=UMAX, 111=UMIN - // o3 (bit 15): 0 for LDADD/LDCLR/LDEOR/LDSET/LD{S,U}{MAX,MIN} - // Mask covers size + 11100 + A + R + 1 + Rs(operand) + o3 + opc + 00 - // Operand-driven: A/R via flag in mask, Rs/Rn/Rt - // - // Per the ARM ARM these are encoded with bit 23 = A, bit 22 = R. - // We emit one entry per (mnemonic, width) pair; A/L embedded in bits. - - // Macro-style: each LDxxx has 4 variants (none/A/L/AL) x 2 widths (W/X) - .LDADD = { - {.LDADD, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8200000, 0xFFE0FC00, .LSE, {}}, - {.LDADD, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8200000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDADDA = { - {.LDADDA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A00000, 0xFFE0FC00, .LSE, {}}, - {.LDADDA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A00000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDADDL = { - {.LDADDL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8600000, 0xFFE0FC00, .LSE, {}}, - {.LDADDL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8600000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDADDAL = { - {.LDADDAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E00000, 0xFFE0FC00, .LSE, {}}, - {.LDADDAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E00000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDCLR = { - {.LDCLR, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8201000, 0xFFE0FC00, .LSE, {}}, - {.LDCLR, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8201000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDCLRA = { - {.LDCLRA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A01000, 0xFFE0FC00, .LSE, {}}, - {.LDCLRA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A01000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDCLRL = { - {.LDCLRL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8601000, 0xFFE0FC00, .LSE, {}}, - {.LDCLRL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8601000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDCLRAL = { - {.LDCLRAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E01000, 0xFFE0FC00, .LSE, {}}, - {.LDCLRAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E01000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDEOR = { - {.LDEOR, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8202000, 0xFFE0FC00, .LSE, {}}, - {.LDEOR, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8202000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDEORA = { - {.LDEORA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A02000, 0xFFE0FC00, .LSE, {}}, - {.LDEORA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A02000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDEORL = { - {.LDEORL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8602000, 0xFFE0FC00, .LSE, {}}, - {.LDEORL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8602000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDEORAL = { - {.LDEORAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E02000, 0xFFE0FC00, .LSE, {}}, - {.LDEORAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E02000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSET = { - {.LDSET, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8203000, 0xFFE0FC00, .LSE, {}}, - {.LDSET, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8203000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSETA = { - {.LDSETA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A03000, 0xFFE0FC00, .LSE, {}}, - {.LDSETA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A03000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSETL = { - {.LDSETL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8603000, 0xFFE0FC00, .LSE, {}}, - {.LDSETL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8603000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSETAL = { - {.LDSETAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E03000, 0xFFE0FC00, .LSE, {}}, - {.LDSETAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E03000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMAX = { - {.LDSMAX, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8204000, 0xFFE0FC00, .LSE, {}}, - {.LDSMAX, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8204000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMAXA = { - {.LDSMAXA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A04000, 0xFFE0FC00, .LSE, {}}, - {.LDSMAXA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A04000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMAXL = { - {.LDSMAXL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8604000, 0xFFE0FC00, .LSE, {}}, - {.LDSMAXL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8604000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMAXAL = { - {.LDSMAXAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E04000, 0xFFE0FC00, .LSE, {}}, - {.LDSMAXAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E04000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMIN = { - {.LDSMIN, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8205000, 0xFFE0FC00, .LSE, {}}, - {.LDSMIN, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8205000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMINA = { - {.LDSMINA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A05000, 0xFFE0FC00, .LSE, {}}, - {.LDSMINA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A05000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMINL = { - {.LDSMINL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8605000, 0xFFE0FC00, .LSE, {}}, - {.LDSMINL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8605000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDSMINAL = { - {.LDSMINAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E05000, 0xFFE0FC00, .LSE, {}}, - {.LDSMINAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E05000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMAX = { - {.LDUMAX, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8206000, 0xFFE0FC00, .LSE, {}}, - {.LDUMAX, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8206000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMAXA = { - {.LDUMAXA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A06000, 0xFFE0FC00, .LSE, {}}, - {.LDUMAXA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A06000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMAXL = { - {.LDUMAXL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8606000, 0xFFE0FC00, .LSE, {}}, - {.LDUMAXL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8606000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMAXAL = { - {.LDUMAXAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E06000, 0xFFE0FC00, .LSE, {}}, - {.LDUMAXAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E06000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMIN = { - {.LDUMIN, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8207000, 0xFFE0FC00, .LSE, {}}, - {.LDUMIN, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8207000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMINA = { - {.LDUMINA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A07000, 0xFFE0FC00, .LSE, {}}, - {.LDUMINA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A07000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMINL = { - {.LDUMINL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8607000, 0xFFE0FC00, .LSE, {}}, - {.LDUMINL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8607000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .LDUMINAL = { - {.LDUMINAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E07000, 0xFFE0FC00, .LSE, {}}, - {.LDUMINAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E07000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - - // SWP (swap) -- opc=1000 - .SWP = { - {.SWP, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8208000, 0xFFE0FC00, .LSE, {}}, - {.SWP, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8208000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .SWPA = { - {.SWPA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8A08000, 0xFFE0FC00, .LSE, {}}, - {.SWPA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8A08000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .SWPL = { - {.SWPL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8608000, 0xFFE0FC00, .LSE, {}}, - {.SWPL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8608000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .SWPAL = { - {.SWPAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xB8E08000, 0xFFE0FC00, .LSE, {}}, - {.SWPAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xF8E08000, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - - // CAS (compare-and-swap) -- size:1000100 A:1 1 Rs:5 R 11111 Rn Rt - .CAS = { - {.CAS, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x88A07C00, 0xFFE0FC00, .LSE, {}}, - {.CAS, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xC8A07C00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASA = { - {.CASA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x88E07C00, 0xFFE0FC00, .LSE, {}}, - {.CASA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xC8E07C00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASL = { - {.CASL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x88A0FC00, 0xFFE0FC00, .LSE, {}}, - {.CASL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xC8A0FC00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASAL = { - {.CASAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x88E0FC00, 0xFFE0FC00, .LSE, {}}, - {.CASAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0xC8E0FC00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASB = { {.CASB, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x08A07C00, 0xFFE0FC00, .LSE, {}} }, - .CASAB = { {.CASAB, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x08E07C00, 0xFFE0FC00, .LSE, {}} }, - .CASLB = { {.CASLB, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x08A0FC00, 0xFFE0FC00, .LSE, {}} }, - .CASALB = { {.CASALB, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x08E0FC00, 0xFFE0FC00, .LSE, {}} }, - .CASH = { {.CASH, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x48A07C00, 0xFFE0FC00, .LSE, {}} }, - .CASAH = { {.CASAH, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x48E07C00, 0xFFE0FC00, .LSE, {}} }, - .CASLH = { {.CASLH, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x48A0FC00, 0xFFE0FC00, .LSE, {}} }, - .CASALH = { {.CASALH, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x48E0FC00, 0xFFE0FC00, .LSE, {}} }, - - // CASP (compare-and-swap pair) -- Rs, Rs+1 with Rt, Rt+1 - .CASP = { - {.CASP, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x08207C00, 0xFFE0FC00, .LSE, {}}, - {.CASP, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x48207C00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASPA = { - {.CASPA, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x08607C00, 0xFFE0FC00, .LSE, {}}, - {.CASPA, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x48607C00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASPL = { - {.CASPL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x0820FC00, 0xFFE0FC00, .LSE, {}}, - {.CASPL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x4820FC00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - .CASPAL = { - {.CASPAL, {.W_REG, .W_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x0860FC00, 0xFFE0FC00, .LSE, {}}, - {.CASPAL, {.X_REG, .X_REG, .MEM, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE}, 0x4860FC00, 0xFFE0FC00, .LSE, {is_64=true}}, - }, - - // ========================================================================= - // §15 CRC32 (v8.0-A optional, mandatory v8.1+) - // ========================================================================= - // sf 0 0 11010110 Rm 0100 sz Rn Rd (CRC32; sz=00 byte / 01 half / 10 word / 11 dword) - // CRC32C: bit 12 = 1 - // Mask = bits[31:21] + bits[15:10] = 0xFFE0FC00 - - .CRC32B = { {.CRC32B, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC04000, 0xFFE0FC00, .CRC32, {}} }, - .CRC32H = { {.CRC32H, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC04400, 0xFFE0FC00, .CRC32, {}} }, - .CRC32W = { {.CRC32W, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC04800, 0xFFE0FC00, .CRC32, {}} }, - .CRC32X = { {.CRC32X, {.W_REG, .W_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC04C00, 0xFFE0FC00, .CRC32, {is_64=true}} }, - .CRC32CB = { {.CRC32CB, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC05000, 0xFFE0FC00, .CRC32, {}} }, - .CRC32CH = { {.CRC32CH, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC05400, 0xFFE0FC00, .CRC32, {}} }, - .CRC32CW = { {.CRC32CW, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1AC05800, 0xFFE0FC00, .CRC32, {}} }, - .CRC32CX = { {.CRC32CX, {.W_REG, .W_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC05C00, 0xFFE0FC00, .CRC32, {is_64=true}} }, - - // ========================================================================= - // §16 Crypto (AES / SHA1 / SHA256 / SHA512 / SHA3 / SM3 / SM4 / PMULL) - // ========================================================================= - // - // AES: 0 1 0 01110 0 0 10100 op 10 Vn Vd (V regs treated as 16B) - .AESE = { {.AESE, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {}} }, - .AESD = { {.AESD, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E285800, 0xFFFFFC00, .CRYPTO, {}} }, - .AESMC = { {.AESMC, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E286800, 0xFFFFFC00, .CRYPTO, {}} }, - .AESIMC = { {.AESIMC, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E287800, 0xFFFFFC00, .CRYPTO, {}} }, - - // SHA1: 0 1 0 11110 0 0 10100 ... 10 Vn Vd - .SHA1H = { {.SHA1H, {.S_REG, .S_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x5E280800, 0xFFFFFC00, .CRYPTO, {}} }, - .SHA1SU1 = { {.SHA1SU1, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x5E281800, 0xFFFFFC00, .CRYPTO, {}} }, - .SHA1C = { {.SHA1C, {.Q_REG, .S_REG, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E000000, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA1P = { {.SHA1P, {.Q_REG, .S_REG, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E001000, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA1M = { {.SHA1M, {.Q_REG, .S_REG, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E002000, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA1SU0 = { {.SHA1SU0, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E003000, 0xFFE0FC00, .CRYPTO, {}} }, - - // SHA256 - .SHA256H = { {.SHA256H, {.Q_REG, .Q_REG, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E004000, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA256H2 = { {.SHA256H2, {.Q_REG, .Q_REG, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E005000, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA256SU0 = { {.SHA256SU0, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x5E282800, 0xFFFFFC00, .CRYPTO, {}} }, - .SHA256SU1 = { {.SHA256SU1, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x5E006000, 0xFFE0FC00, .CRYPTO, {}} }, - - // SHA512 (v8.2-A) - .SHA512H = { {.SHA512H, {.Q_REG, .Q_REG, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA512H2 = { {.SHA512H2, {.Q_REG, .Q_REG, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {}} }, - .SHA512SU0 = { {.SHA512SU0, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0xCEC08000, 0xFFFFFC00, .CRYPTO, {}} }, - .SHA512SU1 = { {.SHA512SU1, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {}} }, - - // SHA3 (v8.2-A) - .EOR3 = { {.EOR3, {.V_16B, .V_16B, .V_16B, .V_16B}, {.VD, .VN, .VM, .VA}, 0xCE000000, 0xFFE08000, .CRYPTO, {}} }, - .BCAX = { {.BCAX, {.V_16B, .V_16B, .V_16B, .V_16B}, {.VD, .VN, .VM, .VA}, 0xCE200000, 0xFFE08000, .CRYPTO, {}} }, - .RAX1 = { {.RAX1, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE608C00, 0xFFE0FC00, .CRYPTO, {}} }, - .XAR = { {.XAR, {.V_2D, .V_2D, .V_2D, .IMM_6}, {.VD, .VN, .VM, .IMM6}, 0xCE800000, 0xFFE00000, .CRYPTO, {}} }, - - // SM3 / SM4 - .SM3PARTW1 = { {.SM3PARTW1, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE60C000, 0xFFE0FC00, .CRYPTO, {}} }, - .SM3PARTW2 = { {.SM3PARTW2, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE60C400, 0xFFE0FC00, .CRYPTO, {}} }, - .SM3SS1 = { {.SM3SS1, {.V_4S, .V_4S, .V_4S, .V_4S}, {.VD, .VN, .VM, .VA}, 0xCE400000, 0xFFE08000, .CRYPTO, {}} }, - .SM3TT1A = { {.SM3TT1A, {.V_4S, .V_4S, .V_ELEM_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {}} }, - .SM3TT1B = { {.SM3TT1B, {.V_4S, .V_4S, .V_ELEM_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {}} }, - .SM3TT2A = { {.SM3TT2A, {.V_4S, .V_4S, .V_ELEM_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {}} }, - .SM3TT2B = { {.SM3TT2B, {.V_4S, .V_4S, .V_ELEM_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE408C00, 0xFFE0CC00, .CRYPTO, {}} }, - .SM4E = { {.SM4E, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {}} }, - .SM4EKEY = { {.SM4EKEY, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0xCE60C800, 0xFFE0FC00, .CRYPTO, {}} }, - - // PMULL / PMULL2 (polynomial multiply long; AES/GHASH) - .PMULL = { - {.PMULL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20E000, 0xFFE0FC00, .CRYPTO, {}}, - {.PMULL, {.V_2D, .V_1D, .V_1D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EE0E000, 0xFFE0FC00, .CRYPTO, {}}, - }, - .PMULL2 = { - {.PMULL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20E000, 0xFFE0FC00, .CRYPTO, {}}, - {.PMULL2, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0E000, 0xFFE0FC00, .CRYPTO, {}}, - }, - - // ========================================================================= - // §17 Pointer Authentication (PAC v8.3-A) - // ========================================================================= - // PAC* / AUT* / XPAC* live in data-processing 1-source (op0=x110). - // The "Z" forms use Rn=XZR (encoded as register 31). - - .PACIA = { {.PACIA, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC10000, 0xFFFFFC00, .PAC, {is_64=true}} }, - .PACIB = { {.PACIB, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC10400, 0xFFFFFC00, .PAC, {is_64=true}} }, - .PACDA = { {.PACDA, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC10800, 0xFFFFFC00, .PAC, {is_64=true}} }, - .PACDB = { {.PACDB, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC10C00, 0xFFFFFC00, .PAC, {is_64=true}} }, - .AUTIA = { {.AUTIA, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC11000, 0xFFFFFC00, .PAC, {is_64=true}} }, - .AUTIB = { {.AUTIB, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true}} }, - .AUTDA = { {.AUTDA, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true}} }, - .AUTDB = { {.AUTDB, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true}} }, - - .PACIZA = { {.PACIZA, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC123E0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .PACIZB = { {.PACIZB, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC127E0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .PACDZA = { {.PACDZA, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC12BE0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .PACDZB = { {.PACDZB, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC12FE0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .AUTIZA = { {.AUTIZA, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC133E0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .AUTIZB = { {.AUTIZB, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC137E0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .AUTDZA = { {.AUTDZA, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC13BE0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .AUTDZB = { {.AUTDZB, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC13FE0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - - .XPACI = { {.XPACI, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC143E0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .XPACD = { {.XPACD, {.X_REG, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE}, 0xDAC147E0, 0xFFFFFFE0, .PAC, {is_64=true}} }, - .XPACLRI = { {.XPACLRI, {.NONE, .NONE, .NONE, .NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320FF, 0xFFFFFFFF, .PAC, {}} }, - - // PAC SP-variant hints - .PACIASP = { {.PACIASP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503233F, 0xFFFFFFFF, .PAC, {}} }, - .PACIBSP = { {.PACIBSP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503237F, 0xFFFFFFFF, .PAC, {}} }, - .AUTIASP = { {.AUTIASP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50323BF, 0xFFFFFFFF, .PAC, {}} }, - .AUTIBSP = { {.AUTIBSP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50323FF, 0xFFFFFFFF, .PAC, {}} }, - - // PAC* / AUT* / RET* with key A or B and X16/X17 - .PACIA1716 = { {.PACIA1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503211F, 0xFFFFFFFF, .PAC, {}} }, - .PACIB1716 = { {.PACIB1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503215F, 0xFFFFFFFF, .PAC, {}} }, - .AUTIA1716 = { {.AUTIA1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503219F, 0xFFFFFFFF, .PAC, {}} }, - .AUTIB1716 = { {.AUTIB1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50321DF, 0xFFFFFFFF, .PAC, {}} }, - - .PACGA = { {.PACGA, {.X_REG, .X_REG, .XSP_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC03000, 0xFFE0FC00, .PAC, {is_64=true}} }, - - .RETAA = { {.RETAA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}} }, - .RETAB = { {.RETAB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}} }, - - .BRAA = { {.BRAA, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE}, 0xD71F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}} }, - .BRAB = { {.BRAB, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE}, 0xD71F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}} }, - .BLRAA = { {.BLRAA, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE}, 0xD73F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}} }, - .BLRAB = { {.BLRAB, {.X_REG, .XSP_REG, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE}, 0xD73F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}} }, - .BRAAZ = { {.BRAAZ, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD61F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}} }, - .BRABZ = { {.BRABZ, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD61F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}} }, - .BLRAAZ = { {.BLRAAZ, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD63F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}} }, - .BLRABZ = { {.BLRABZ, {.X_REG, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE}, 0xD63F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}} }, - .ERETAA = { {.ERETAA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}} }, - .ERETAB = { {.ERETAB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}} }, - - // ========================================================================= - // §18 Branch Target Identification (BTI v8.5-A) - // ========================================================================= - // HINT space; opc selects {nop|c|j|jc} via CRm:op2 = 0100:000/010/100/110 - .BTI = { {.BTI, {.IMM_2, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE}, 0xD503241F, 0xFFFFF8FF, .BTI, {}} }, - - // ========================================================================= - // §19 Memory Tagging Extension (MTE v8.5-A) - // ========================================================================= - // - // ADDG/SUBG: sf=1 op:1 0 100011 0 uimm6 op3:2 uimm4 Rn Rd - .ADDG = { {.ADDG, {.XSP_REG, .XSP_REG, .IMM_6, .IMM_4}, {.RD, .RN, .IMM6, .IMM_HW}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true}} }, - .SUBG = { {.SUBG, {.XSP_REG, .XSP_REG, .IMM_6, .IMM_4}, {.RD, .RN, .IMM6, .IMM_HW}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true}} }, - - // IRG: 10011010110 Rm 000100 Rn Rd - .IRG = { {.IRG, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC01000, 0xFFE0FC00, .MTE, {is_64=true}} }, - .GMI = { {.GMI, {.X_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC01400, 0xFFE0FC00, .MTE, {is_64=true}} }, - .SUBP = { {.SUBP, {.X_REG, .XSP_REG, .XSP_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9AC00000, 0xFFE0FC00, .MTE, {is_64=true}} }, - .SUBPS = { {.SUBPS, {.X_REG, .XSP_REG, .XSP_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0xBAC00000, 0xFFE0FC00, .MTE, {sets_flags=true, is_64=true}} }, - - // Tagged load/store (encoded in the load-store offset/pre/post space) - // STG Xt, [Xn|SP], #imm -- 1101100100 ... opc=10 ... bits[31:24] = 11011001 etc. - .STG = { {.STG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9200800, 0xFFE00C00, .MTE, {is_64=true}} }, - .STZG = { {.STZG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9600800, 0xFFE00C00, .MTE, {is_64=true}} }, - .ST2G = { {.ST2G, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9A00800, 0xFFE00C00, .MTE, {is_64=true}} }, - .STZ2G = { {.STZ2G, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9E00800, 0xFFE00C00, .MTE, {is_64=true}} }, - .LDG = { {.LDG, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9600000, 0xFFE00C00, .MTE, {is_64=true}} }, - .STGM = { {.STGM, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true}} }, - .LDGM = { {.LDGM, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true}} }, - .STZGM = { {.STZGM, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true}} }, - .STGP = { {.STGP, {.X_REG, .X_REG, .MEM, .NONE}, {.RT, .RT2, .OFFSET_BASE_S9, .NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true}} }, - - // ========================================================================= - // §20 FP scalar half-precision (FP16, v8.2-A) - // ========================================================================= - // Mirror of FP single/double but with ftype=11 (bits[23:22]=11). - .FABS_H = { {.FABS_H, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE0C000, 0xFFFFFC00, .FP16, {}} }, - .FNEG_H = { {.FNEG_H, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE14000, 0xFFFFFC00, .FP16, {}} }, - .FSQRT_H = { {.FSQRT_H, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE1C000, 0xFFFFFC00, .FP16, {}} }, - .FADD_H = { {.FADD_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE02800, 0xFFE0FC00, .FP16, {}} }, - .FSUB_H = { {.FSUB_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE03800, 0xFFE0FC00, .FP16, {}} }, - .FMUL_H = { {.FMUL_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE00800, 0xFFE0FC00, .FP16, {}} }, - .FDIV_H = { {.FDIV_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE01800, 0xFFE0FC00, .FP16, {}} }, - .FNMUL_H = { {.FNMUL_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE08800, 0xFFE0FC00, .FP16, {}} }, - .FMAX_H = { {.FMAX_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE04800, 0xFFE0FC00, .FP16, {}} }, - .FMIN_H = { {.FMIN_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE05800, 0xFFE0FC00, .FP16, {}} }, - .FMAXNM_H = { {.FMAXNM_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE06800, 0xFFE0FC00, .FP16, {}} }, - .FMINNM_H = { {.FMINNM_H, {.H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1EE07800, 0xFFE0FC00, .FP16, {}} }, - .FCMP_H = { {.FCMP_H, {.H_REG, .H_REG, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x1EE02000, 0xFFE0FC1F, .FP16, {sets_flags=true}} }, - .FCMPE_H = { {.FCMPE_H, {.H_REG, .H_REG, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x1EE02010, 0xFFE0FC1F, .FP16, {sets_flags=true}} }, - .FCSEL_H = { {.FCSEL_H, {.H_REG, .H_REG, .H_REG, .COND}, {.RD, .RN, .RM, .COND_HI}, 0x1EE00C00, 0xFFE00C00, .FP16, {}} }, - .FMADD_H = { {.FMADD_H, {.H_REG, .H_REG, .H_REG, .H_REG}, {.RD, .RN, .RM, .RA}, 0x1FC00000, 0xFFE08000, .FP16, {}} }, - .FMSUB_H = { {.FMSUB_H, {.H_REG, .H_REG, .H_REG, .H_REG}, {.RD, .RN, .RM, .RA}, 0x1FC08000, 0xFFE08000, .FP16, {}} }, - .FNMADD_H = { {.FNMADD_H, {.H_REG, .H_REG, .H_REG, .H_REG}, {.RD, .RN, .RM, .RA}, 0x1FE00000, 0xFFE08000, .FP16, {}} }, - .FNMSUB_H = { {.FNMSUB_H, {.H_REG, .H_REG, .H_REG, .H_REG}, {.RD, .RN, .RM, .RA}, 0x1FE08000, 0xFFE08000, .FP16, {}} }, - .FCVT_H_S = { {.FCVT_H_S, {.H_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E23C000, 0xFFFFFC00, .FP16, {}} }, - .FCVT_H_D = { {.FCVT_H_D, {.H_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E63C000, 0xFFFFFC00, .FP16, {}} }, - .FCVT_S_H = { {.FCVT_S_H, {.S_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE24000, 0xFFFFFC00, .FP16, {}} }, - .FCVT_D_H = { {.FCVT_D_H, {.D_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE2C000, 0xFFFFFC00, .FP16, {}} }, - .SCVTF_H = { {.SCVTF_H, {.H_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE20000, 0xFFFFFC00, .FP16, {}} }, - .UCVTF_H = { {.UCVTF_H, {.H_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE30000, 0xFFFFFC00, .FP16, {}} }, - .FCVTZS_H = { {.FCVTZS_H, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EF80000, 0xFFFFFC00, .FP16, {}} }, - .FCVTZU_H = { {.FCVTZU_H, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EF90000, 0xFFFFFC00, .FP16, {}} }, - .FMOV_H = { {.FMOV_H, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE04000, 0xFFFFFC00, .FP16, {}} }, - - // ========================================================================= - // §21 BFloat16 (BF16, v8.6-A) - // ========================================================================= - .BFCVT = { {.BFCVT, {.H_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E634000, 0xFFFFFC00, .BF16, {}} }, - .BFCVTN = { {.BFCVTN, {.V_8H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {}} }, - .BFCVTN2 = { {.BFCVTN2, {.V_8H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {}} }, - .BFDOT = { {.BFDOT, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E40FC00, 0xFFE0FC00, .BF16, {}} }, - .BFMMLA = { {.BFMMLA, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E40EC00, 0xFFE0FC00, .BF16, {}} }, - .BFMLALB = { {.BFMLALB, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EC0FC00, 0xFFE0FC00, .BF16, {}} }, - .BFMLALT = { {.BFMLALT, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EC0FC00, 0xFFE0FC00, .BF16, {}} }, - - // ========================================================================= - // §22 NEON Advanced SIMD (3-same arithmetic + compare + logical + shift) - // ========================================================================= - // - // Format: 0Q U 01110 size:2 1 Rm opcode:5 1 Rn Rd - // Q (bit 30): 0=64-bit / 1=128-bit vector - // U (bit 29): selects signed/unsigned or alternate op - // size (bits 23:22): element-size 00=B 01=H 10=S 11=D - // bits[28:24] = 01110, bit 21 = 1, bit 10 = 1 - // opcode at bits 15:11 - // - // Per-arrangement entries: each vector mnemonic has up to 7 forms - // (8B/16B/4H/8H/2S/4S/2D; 1D is reserved for most). For brevity we - // list the densely-used arrangements (16B/8H/4S/2D) on the 128-bit - // path and 8B/4H/2S on the 64-bit path. Some ops (like FADD) only - // accept FP arrangements (4S/2S/2D + 8H if FP16). - - .ADD_V = { - {.ADD_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E208400, 0xFFE0FC00, .NEON, {}}, - {.ADD_V, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E608400, 0xFFE0FC00, .NEON, {}}, - {.ADD_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA08400, 0xFFE0FC00, .NEON, {}}, - {.ADD_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE08400, 0xFFE0FC00, .NEON, {}}, - {.ADD_V, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E208400, 0xFFE0FC00, .NEON, {}}, - {.ADD_V, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E608400, 0xFFE0FC00, .NEON, {}}, - {.ADD_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA08400, 0xFFE0FC00, .NEON, {}}, - }, - .SUB_V = { - {.SUB_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E208400, 0xFFE0FC00, .NEON, {}}, - {.SUB_V, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E608400, 0xFFE0FC00, .NEON, {}}, - {.SUB_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA08400, 0xFFE0FC00, .NEON, {}}, - {.SUB_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE08400, 0xFFE0FC00, .NEON, {}}, - }, - .MUL_V = { - // opcode = 10011 -> 0x4E209C00 for 16B - {.MUL_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E209C00, 0xFFE0FC00, .NEON, {}}, - {.MUL_V, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E609C00, 0xFFE0FC00, .NEON, {}}, - {.MUL_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA09C00, 0xFFE0FC00, .NEON, {}}, - }, - - // Vector compares - .CMEQ = { - {.CMEQ, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {}}, - {.CMEQ, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {}}, - {.CMEQ, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {}}, - {.CMEQ, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {}}, - }, - .CMGT = { - {.CMGT, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {}}, - {.CMGT, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {}}, - }, - .CMHI = { - {.CMHI, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {}}, - {.CMHI, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {}}, - }, - - // Logical (vector) - .AND_V = { {.AND_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {}} }, - .ORR_V = { {.ORR_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {}} }, - .EOR_V = { {.EOR_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {}} }, - .BIC_V = { {.BIC_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E601C00, 0xFFE0FC00, .NEON, {}} }, - .ORN_V = { {.ORN_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE01C00, 0xFFE0FC00, .NEON, {}} }, - - // Bit insert/select (BIT/BIF/BSL): U=1 - .BIT = { {.BIT, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {}} }, - .BIF = { {.BIF, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {}} }, - .BSL = { {.BSL, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {}} }, - - // FP vector arithmetic (3-same FP encoding) - .FADD_V = { - {.FADD_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {}}, - {.FADD_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {}}, - {.FADD_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {}}, - }, - .FSUB_V = { - {.FSUB_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {}}, - {.FSUB_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {}}, - {.FSUB_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {}}, - }, - .FMUL_V = { - {.FMUL_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {}}, - {.FMUL_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {}}, - {.FMUL_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {}}, - }, - .FDIV_V = { - {.FDIV_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {}}, - {.FDIV_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {}}, - {.FDIV_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {}}, - }, - .FMLA_V = { - {.FMLA_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {}}, - {.FMLA_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {}}, - }, - .FMLS_V = { - {.FMLS_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {}}, - {.FMLS_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {}}, - }, - - // Dot product (SDOT/UDOT - v8.2-A optional, mandatory v8.4) - .SDOT = { - {.SDOT, {.V_2S, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {}}, - {.SDOT, {.V_4S, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {}}, - }, - .UDOT = { - {.UDOT, {.V_2S, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {}}, - {.UDOT, {.V_4S, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {}}, - }, - - // NEON load/store: LD1/ST1 multiple structures (the simplest form) - // Single register, 1 vector: 0Q 001100 010 00000 0111 size Rn Rt - // Layout details vary by # registers and replicate vs. lane vs. multiple. - // v1 covers the common LD1/ST1 to one vector (1 reg, contiguous). - .LD1 = { - {.LD1, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C407000, 0xFFFFF000, .NEON, {}}, - {.LD1, {.V_8H, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C407400, 0xFFFFF400, .NEON, {}}, - {.LD1, {.V_4S, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C407800, 0xFFFFF800, .NEON, {}}, - {.LD1, {.V_2D, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C407C00, 0xFFFFFC00, .NEON, {}}, - }, - .ST1 = { - {.ST1, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C007000, 0xFFFFF000, .NEON, {}}, - {.ST1, {.V_8H, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C007400, 0xFFFFF400, .NEON, {}}, - {.ST1, {.V_4S, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C007800, 0xFFFFF800, .NEON, {}}, - {.ST1, {.V_2D, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {}}, - }, - - // Table lookup (TBL/TBX): the table operand is a register list whose first - // register is encoded at Vn; the list length (here 1) is fixed in the bits. - .TBL = { - {.TBL, {.V_8B, .V_16B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E000000, 0xFFE0FC00, .NEON, {}}, - {.TBL, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E000000, 0xFFE0FC00, .NEON, {}}, - }, - .TBX = { - {.TBX, {.V_8B, .V_16B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E001000, 0xFFE0FC00, .NEON, {}}, - {.TBX, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E001000, 0xFFE0FC00, .NEON, {}}, - }, - // Structured load/store of 2/3/4 registers, and load-and-replicate (LD#R). - // The register list is encoded by its first register (Vd); the count and - // arrangement (here .16b) are fixed in the bits (mirrors the LD1/ST1 forms). - .LD2 = { {.LD2, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C408000, 0xFFFFFC00, .NEON, {}} }, - .LD3 = { {.LD3, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C404000, 0xFFFFFC00, .NEON, {}} }, - .LD4 = { {.LD4, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C400000, 0xFFFFFC00, .NEON, {}} }, - .ST2 = { {.ST2, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C008000, 0xFFFFFC00, .NEON, {}} }, - .ST3 = { {.ST3, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C004000, 0xFFFFFC00, .NEON, {}} }, - .ST4 = { {.ST4, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4C000000, 0xFFFFFC00, .NEON, {}} }, - .LD1R = { {.LD1R, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4D40C000, 0xFFFFFC00, .NEON, {}} }, - .LD2R = { {.LD2R, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {}} }, - .LD3R = { {.LD3R, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {}} }, - .LD4R = { {.LD4R, {.V_16B, .MEM, .NONE, .NONE}, {.VD, .OFFSET_BASE_A, .NONE, .NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {}} }, - - // Single-structure (one lane) load/store: LD#_LANE / ST#_LANE. The lane - // index is split across Q (30), S (12) and size (11:10) per element size; - // the list length + load/store bit are fixed in the bits. - .LD1_LANE = { - {.LD1_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D400000, 0xBFFFE000, .NEON, {}}, - {.LD1_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D404000, 0xBFFFE400, .NEON, {}}, - {.LD1_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {}}, - {.LD1_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {}}, - }, - .LD2_LANE = { - {.LD2_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D600000, 0xBFFFE000, .NEON, {}}, - {.LD2_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D604000, 0xBFFFE400, .NEON, {}}, - {.LD2_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {}}, - {.LD2_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {}}, - }, - .LD3_LANE = { - {.LD3_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D402000, 0xBFFFE000, .NEON, {}}, - {.LD3_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D406000, 0xBFFFE400, .NEON, {}}, - {.LD3_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {}}, - {.LD3_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {}}, - }, - .LD4_LANE = { - {.LD4_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D602000, 0xBFFFE000, .NEON, {}}, - {.LD4_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D606000, 0xBFFFE400, .NEON, {}}, - {.LD4_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {}}, - {.LD4_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {}}, - }, - .ST1_LANE = { - {.ST1_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D000000, 0xBFFFE000, .NEON, {}}, - {.ST1_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D004000, 0xBFFFE400, .NEON, {}}, - {.ST1_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {}}, - {.ST1_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {}}, - }, - .ST2_LANE = { - {.ST2_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D200000, 0xBFFFE000, .NEON, {}}, - {.ST2_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D204000, 0xBFFFE400, .NEON, {}}, - {.ST2_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {}}, - {.ST2_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {}}, - }, - .ST3_LANE = { - {.ST3_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D002000, 0xBFFFE000, .NEON, {}}, - {.ST3_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D006000, 0xBFFFE400, .NEON, {}}, - {.ST3_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {}}, - {.ST3_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {}}, - }, - .ST4_LANE = { - {.ST4_LANE, {.V_ELEM_B, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_B, .OFFSET_BASE_A, .NONE}, 0x0D202000, 0xBFFFE000, .NEON, {}}, - {.ST4_LANE, {.V_ELEM_H, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_H, .OFFSET_BASE_A, .NONE}, 0x0D206000, 0xBFFFE400, .NEON, {}}, - {.ST4_LANE, {.V_ELEM_S, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_S, .OFFSET_BASE_A, .NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {}}, - {.ST4_LANE, {.V_ELEM_D, .VEC_INDEX, .MEM, .NONE}, {.VD, .NEON_LANE_D, .OFFSET_BASE_A, .NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {}}, - }, - - // FP/SIMD scalar load/store via V regs (offset-form) - .LDR_V = { - {.LDR_V, {.B_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x3D400000, 0xFFC00000, .FP, {}}, - {.LDR_V, {.H_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x7D400000, 0xFFC00000, .FP, {}}, - {.LDR_V, {.S_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xBD400000, 0xFFC00000, .FP, {}}, - {.LDR_V, {.D_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xFD400000, 0xFFC00000, .FP, {}}, - {.LDR_V, {.Q_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x3DC00000, 0xFFC00000, .FP, {}}, - }, - .STR_V = { - {.STR_V, {.B_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x3D000000, 0xFFC00000, .FP, {}}, - {.STR_V, {.H_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x7D000000, 0xFFC00000, .FP, {}}, - {.STR_V, {.S_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xBD000000, 0xFFC00000, .FP, {}}, - {.STR_V, {.D_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xFD000000, 0xFFC00000, .FP, {}}, - {.STR_V, {.Q_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0x3D800000, 0xFFC00000, .FP, {}}, - }, - - // ========================================================================= - // §23 SVE / SVE2 (real coverage) - // ========================================================================= - // - // All SVE instructions live in op0 bucket 0b0010 (bits[28:25]) -- they - // start with byte 0x04 / 0x05 / 0x24 / 0x25 / 0x44 / 0x45 / 0x64 / 0x65 - // (and the load/store family at 0x84 / 0x85 / 0xA4 / 0xA5 / 0xC4 / 0xC5 - // / 0xE4 / 0xE5). All are 4 bytes. - // - // Element size: when an instruction has 4 forms (B/H/S/D), the size - // bits[23:22] differ -- 00/01/10/11. - // - // ------------------------------------------------------------------------- - // §23.1 Integer arithmetic, vectors unpredicated - // ------------------------------------------------------------------------- - // ADD/SUB/SQADD/UQADD/SQSUB/UQSUB Zd.T, Zn.T, Zm.T - // 00000100 SS 1 Zm 0000 oo Zn Zd (oo selects op) - - .SVE_ADD_Z = { - {.SVE_ADD_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04200000, 0xFFE0FC00, .SVE, {}}, - {.SVE_ADD_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04600000, 0xFFE0FC00, .SVE, {}}, - {.SVE_ADD_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {}}, - {.SVE_ADD_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_SUB_Z = { - {.SVE_SUB_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04200400, 0xFFE0FC00, .SVE, {}}, - {.SVE_SUB_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04600400, 0xFFE0FC00, .SVE, {}}, - {.SVE_SUB_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {}}, - {.SVE_SUB_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_SQADD_Z = { - {.SVE_SQADD_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04201000, 0xFFE0FC00, .SVE, {}}, - {.SVE_SQADD_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04601000, 0xFFE0FC00, .SVE, {}}, - {.SVE_SQADD_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {}}, - {.SVE_SQADD_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_UQADD_Z = { - {.SVE_UQADD_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04201400, 0xFFE0FC00, .SVE, {}}, - {.SVE_UQADD_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04601400, 0xFFE0FC00, .SVE, {}}, - {.SVE_UQADD_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {}}, - {.SVE_UQADD_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_SQSUB_Z = { - {.SVE_SQSUB_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04201800, 0xFFE0FC00, .SVE, {}}, - {.SVE_SQSUB_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04601800, 0xFFE0FC00, .SVE, {}}, - {.SVE_SQSUB_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {}}, - {.SVE_SQSUB_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_UQSUB_Z = { - {.SVE_UQSUB_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_UQSUB_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_UQSUB_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_UQSUB_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.2 Integer arithmetic, predicated (destructive merging) - // ------------------------------------------------------------------------- - // ADD Zdn.T, Pg/M, Zdn.T, Zm.T - // 00000100 SS 000 opc 001 Pg Zm Zdn (opc selects op) - // Operand 1 (Pg) is governing predicate at bits 12:10 (P0..P7). - - .SVE_ADD_PRED = { - {.SVE_ADD_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04000000, 0xFFE0E000, .SVE, {}}, - {.SVE_ADD_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04400000, 0xFFE0E000, .SVE, {}}, - {.SVE_ADD_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04800000, 0xFFE0E000, .SVE, {}}, - {.SVE_ADD_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04C00000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SUB_PRED = { - {.SVE_SUB_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04010000, 0xFFE0E000, .SVE, {}}, - {.SVE_SUB_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04410000, 0xFFE0E000, .SVE, {}}, - {.SVE_SUB_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04810000, 0xFFE0E000, .SVE, {}}, - {.SVE_SUB_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04C10000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SUBR_PRED = { - {.SVE_SUBR_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04030000, 0xFFE0E000, .SVE, {}}, - {.SVE_SUBR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04430000, 0xFFE0E000, .SVE, {}}, - {.SVE_SUBR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04830000, 0xFFE0E000, .SVE, {}}, - {.SVE_SUBR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04C30000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_MUL_PRED = { - {.SVE_MUL_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04100000, 0xFFE0E000, .SVE, {}}, - {.SVE_MUL_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04500000, 0xFFE0E000, .SVE, {}}, - {.SVE_MUL_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04900000, 0xFFE0E000, .SVE, {}}, - {.SVE_MUL_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D00000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SMULH_PRED = { - {.SVE_SMULH_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04120000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMULH_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04520000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMULH_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04920000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMULH_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D20000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_UMULH_PRED = { - {.SVE_UMULH_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04130000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMULH_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04530000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMULH_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04930000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMULH_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D30000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SDIV_PRED = { - {.SVE_SDIV_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04940000, 0xFFE0E000, .SVE, {}}, - {.SVE_SDIV_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D40000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_UDIV_PRED = { - {.SVE_UDIV_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04950000, 0xFFE0E000, .SVE, {}}, - {.SVE_UDIV_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D50000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SMAX_PRED = { - {.SVE_SMAX_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04080000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMAX_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04480000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMAX_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04880000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMAX_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04C80000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_UMAX_PRED = { - {.SVE_UMAX_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04090000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMAX_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04490000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMAX_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04890000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMAX_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04C90000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SMIN_PRED = { - {.SVE_SMIN_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x040A0000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMIN_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x044A0000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMIN_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x048A0000, 0xFFE0E000, .SVE, {}}, - {.SVE_SMIN_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04CA0000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_UMIN_PRED = { - {.SVE_UMIN_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x040B0000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMIN_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x044B0000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMIN_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x048B0000, 0xFFE0E000, .SVE, {}}, - {.SVE_UMIN_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04CB0000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_SABD_PRED = { - {.SVE_SABD_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x040C0000, 0xFFE0E000, .SVE, {}}, - {.SVE_SABD_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x044C0000, 0xFFE0E000, .SVE, {}}, - {.SVE_SABD_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x048C0000, 0xFFE0E000, .SVE, {}}, - {.SVE_SABD_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04CC0000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_UABD_PRED = { - {.SVE_UABD_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x040D0000, 0xFFE0E000, .SVE, {}}, - {.SVE_UABD_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x044D0000, 0xFFE0E000, .SVE, {}}, - {.SVE_UABD_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x048D0000, 0xFFE0E000, .SVE, {}}, - {.SVE_UABD_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04CD0000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.3 Bitwise predicated (AND/ORR/EOR/BIC Zdn.D, Pg/M, Zdn.D, Zm.D) - // 00000100 011 opc 001 Pg Zm Zdn (size always 11 = D for the - // element-agnostic logical forms) - // ------------------------------------------------------------------------- - .SVE_AND_PRED = { {.SVE_AND_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x041A0000, 0xFFFFE000, .SVE, {is_64=true}} }, - .SVE_ORR_PRED = { {.SVE_ORR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04180000, 0xFFFFE000, .SVE, {is_64=true}} }, - .SVE_EOR_PRED = { {.SVE_EOR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04190000, 0xFFFFE000, .SVE, {is_64=true}} }, - .SVE_BIC_PRED = { {.SVE_BIC_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x041B0000, 0xFFFFE000, .SVE, {is_64=true}} }, - - // ------------------------------------------------------------------------- - // §23.4 Shifts predicated (ASR/LSR/LSL Zdn, Pg/M, Zdn, Zm) - // 00000100 SS 010 opc 100 Pg Zm Zdn - // ------------------------------------------------------------------------- - .SVE_ASR_PRED = { - {.SVE_ASR_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04108000, 0xFFE0E000, .SVE, {}}, - {.SVE_ASR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04508000, 0xFFE0E000, .SVE, {}}, - {.SVE_ASR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04908000, 0xFFE0E000, .SVE, {}}, - {.SVE_ASR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D08000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_LSR_PRED = { - {.SVE_LSR_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04118000, 0xFFE0E000, .SVE, {}}, - {.SVE_LSR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04518000, 0xFFE0E000, .SVE, {}}, - {.SVE_LSR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04918000, 0xFFE0E000, .SVE, {}}, - {.SVE_LSR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D18000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_LSL_PRED = { - {.SVE_LSL_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VM}, 0x04138000, 0xFFE0E000, .SVE, {}}, - {.SVE_LSL_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x04538000, 0xFFE0E000, .SVE, {}}, - {.SVE_LSL_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x04938000, 0xFFE0E000, .SVE, {}}, - {.SVE_LSL_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x04D38000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.5 Unary integer predicated - // ABS / NEG / CLS / CLZ / CNT / NOT Zd.T, Pg/M, Zn.T - // 00000100 SS 010 opc 101 Pg Zn Zd - // ------------------------------------------------------------------------- - .SVE_ABS_PRED = { - {.SVE_ABS_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0416A000, 0xFFE0E000, .SVE, {}}, - {.SVE_ABS_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0456A000, 0xFFE0E000, .SVE, {}}, - {.SVE_ABS_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0496A000, 0xFFE0E000, .SVE, {}}, - {.SVE_ABS_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04D6A000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_NEG_PRED = { - {.SVE_NEG_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0417A000, 0xFFE0E000, .SVE, {}}, - {.SVE_NEG_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0457A000, 0xFFE0E000, .SVE, {}}, - {.SVE_NEG_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0497A000, 0xFFE0E000, .SVE, {}}, - {.SVE_NEG_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04D7A000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_CLS_PRED = { - {.SVE_CLS_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0418A000, 0xFFE0E000, .SVE, {}}, - {.SVE_CLS_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0458A000, 0xFFE0E000, .SVE, {}}, - {.SVE_CLS_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0498A000, 0xFFE0E000, .SVE, {}}, - {.SVE_CLS_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04D8A000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_CLZ_PRED = { - {.SVE_CLZ_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0419A000, 0xFFE0E000, .SVE, {}}, - {.SVE_CLZ_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0459A000, 0xFFE0E000, .SVE, {}}, - {.SVE_CLZ_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0499A000, 0xFFE0E000, .SVE, {}}, - {.SVE_CLZ_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04D9A000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_CNT_PRED = { - {.SVE_CNT_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.VD, .PG, .VN, .NONE}, 0x041AA000, 0xFFE0E000, .SVE, {}}, - {.SVE_CNT_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x045AA000, 0xFFE0E000, .SVE, {}}, - {.SVE_CNT_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x049AA000, 0xFFE0E000, .SVE, {}}, - {.SVE_CNT_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04DAA000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.6 FP arithmetic vectors unpredicated (FADD/FSUB/FMUL Zd, Zn, Zm) - // 01100101 SS 0 Zm 000 opc Zn Zd - // ------------------------------------------------------------------------- - .SVE_FADD_Z = { - {.SVE_FADD_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65400000, 0xFFE0FC00, .SVE, {}}, - {.SVE_FADD_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65800000, 0xFFE0FC00, .SVE, {}}, - {.SVE_FADD_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_FSUB_Z = { - {.SVE_FSUB_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65400400, 0xFFE0FC00, .SVE, {}}, - {.SVE_FSUB_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65800400, 0xFFE0FC00, .SVE, {}}, - {.SVE_FSUB_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_FMUL_Z = { - {.SVE_FMUL_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65400800, 0xFFE0FC00, .SVE, {}}, - {.SVE_FMUL_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65800800, 0xFFE0FC00, .SVE, {}}, - {.SVE_FMUL_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_FRECPS = { - {.SVE_FRECPS, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65401800, 0xFFE0FC00, .SVE, {}}, - {.SVE_FRECPS, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65801800, 0xFFE0FC00, .SVE, {}}, - {.SVE_FRECPS, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_FRSQRTS = { - {.SVE_FRSQRTS, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_FRSQRTS, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_FRSQRTS, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_FTSMUL = { - {.SVE_FTSMUL, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_FTSMUL, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_FTSMUL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.7 FP arithmetic predicated (FADD/FSUB/FMUL Zdn, Pg/M, Zdn, Zm) - // 01100101 SS 0 opc 100 Pg Zm Zdn - // ------------------------------------------------------------------------- - .SVE_FADD_PRED = { - {.SVE_FADD_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65408000, 0xFFE0E000, .SVE, {}}, - {.SVE_FADD_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65808000, 0xFFE0E000, .SVE, {}}, - {.SVE_FADD_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C08000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FSUB_PRED = { - {.SVE_FSUB_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65418000, 0xFFE0E000, .SVE, {}}, - {.SVE_FSUB_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65818000, 0xFFE0E000, .SVE, {}}, - {.SVE_FSUB_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C18000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FMUL_PRED = { - {.SVE_FMUL_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65428000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMUL_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65828000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMUL_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C28000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FDIV_PRED = { - {.SVE_FDIV_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x654D8000, 0xFFE0E000, .SVE, {}}, - {.SVE_FDIV_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x658D8000, 0xFFE0E000, .SVE, {}}, - {.SVE_FDIV_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65CD8000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FMAX_PRED = { - {.SVE_FMAX_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65468000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMAX_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65868000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMAX_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C68000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FMIN_PRED = { - {.SVE_FMIN_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65478000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMIN_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65878000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMIN_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C78000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FMAXNM_PRED = { - {.SVE_FMAXNM_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65448000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMAXNM_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65848000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMAXNM_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C48000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FMINNM_PRED = { - {.SVE_FMINNM_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65458000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMINNM_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VM}, 0x65858000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMINNM_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VM}, 0x65C58000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // FP unary predicated (FABS/FNEG/FSQRT Zd, Pg/M, Zn) - .SVE_FABS_Z = { - {.SVE_FABS_Z, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x045CA000, 0xFFE0E000, .SVE, {}}, - {.SVE_FABS_Z, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x049CA000, 0xFFE0E000, .SVE, {}}, - {.SVE_FABS_Z, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04DCA000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FNEG_Z = { - {.SVE_FNEG_Z, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x045DA000, 0xFFE0E000, .SVE, {}}, - {.SVE_FNEG_Z, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x049DA000, 0xFFE0E000, .SVE, {}}, - {.SVE_FNEG_Z, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x04DDA000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FSQRT_Z = { - {.SVE_FSQRT_Z, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x654DA000, 0xFFE0E000, .SVE, {}}, - {.SVE_FSQRT_Z, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x658DA000, 0xFFE0E000, .SVE, {}}, - {.SVE_FSQRT_Z, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65CDA000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.8 FP fused multiply-accumulate (predicated) - // FMLA Zda, Pg/M, Zn, Zm - // 01100101 SS 1 Zm 000 Pg Zn Zda (FMLA) - // 01100101 SS 1 Zm 001 Pg Zn Zda (FMLS) - // 01100101 SS 1 Zm 010 Pg Zn Zda (FNMLA) - // 01100101 SS 1 Zm 011 Pg Zn Zda (FNMLS) - // ------------------------------------------------------------------------- - .SVE_FMLA = { - {.SVE_FMLA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VN, .VM}, 0x65600000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMLA, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VN, .VM}, 0x65A00000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMLA, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VN, .VM}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FMLS = { - {.SVE_FMLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VN, .VM}, 0x65602000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMLS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VN, .VM}, 0x65A02000, 0xFFE0E000, .SVE, {}}, - {.SVE_FMLS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VN, .VM}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FNMLA = { - {.SVE_FNMLA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VN, .VM}, 0x65604000, 0xFFE0E000, .SVE, {}}, - {.SVE_FNMLA, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VN, .VM}, 0x65A04000, 0xFFE0E000, .SVE, {}}, - {.SVE_FNMLA, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VN, .VM}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_FNMLS = { - {.SVE_FNMLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VN, .VM}, 0x65606000, 0xFFE0E000, .SVE, {}}, - {.SVE_FNMLS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VN, .VM}, 0x65A06000, 0xFFE0E000, .SVE, {}}, - {.SVE_FNMLS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VN, .VM}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.9 Predicate logical operations (Pd.B, Pg/Z, Pn.B, Pm.B) - // 00100101 SS 0 Pm o1 Pg o2 Pn O Pd (SS=00 typically; opc differentiates) - // AND/BIC/ORR/EOR + NAND/NOR/ORN/SEL, with optional S setting flags - // ------------------------------------------------------------------------- - .SVE_AND_P = { {.SVE_AND_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25004000, 0xFFE0C210, .SVE, {}} }, - .SVE_BIC_P = { {.SVE_BIC_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25004010, 0xFFE0C210, .SVE, {}} }, - .SVE_ORR_P = { {.SVE_ORR_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25804000, 0xFFE0C210, .SVE, {}} }, - .SVE_ORN_P = { {.SVE_ORN_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25804010, 0xFFE0C210, .SVE, {}} }, - .SVE_EOR_P = { {.SVE_EOR_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25004200, 0xFFE0C210, .SVE, {}} }, - .SVE_NAND_P = { {.SVE_NAND_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25804210, 0xFFE0C210, .SVE, {}} }, - .SVE_NOR_P = { {.SVE_NOR_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25804200, 0xFFE0C210, .SVE, {}} }, - .SVE_SEL_P = { {.SVE_SEL_P, {.P_REG, .P_REG, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25004210, 0xFFE0C210, .SVE, {}} }, - - // Flag-setting variants - .SVE_ANDS_P = { {.SVE_ANDS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true}} }, - .SVE_BICS_P = { {.SVE_BICS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25404010, 0xFFE0C210, .SVE, {sets_flags=true}} }, - .SVE_ORRS_P = { {.SVE_ORRS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25C04000, 0xFFE0C210, .SVE, {sets_flags=true}} }, - .SVE_EORS_P = { {.SVE_EORS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true}} }, - - // ------------------------------------------------------------------------- - // §23.10 PTRUE/PFALSE/PFIRST/PNEXT - // ------------------------------------------------------------------------- - // PTRUE Pd.T, pattern = 00100101 SS 011000 1110 0 pattern 0 Pd - // PFALSE Pd.B = 00100101 0001 1000 1110 0100 0000 Pd - // PFIRST Pdn.B, Pg, Pdn.B = 00100101 0101 1000 1100 000 Pg Pdn - // PNEXT Pdn.T, Pg, Pdn.T = 00100101 SS 011001 1100 010 Pg 0000 Pdn - .SVE_PTRUE = { - {.SVE_PTRUE, {.P_REG, .SVE_PATTERN, .NONE, .NONE}, {.PD, .SVE_PATTERN, .NONE, .NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {}}, - }, - .SVE_PTRUES = { - {.SVE_PTRUES, {.P_REG, .SVE_PATTERN, .NONE, .NONE}, {.PD, .SVE_PATTERN, .NONE, .NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true}}, - }, - .SVE_PFALSE = { - {.SVE_PFALSE, {.P_REG, .NONE, .NONE, .NONE}, {.PD, .NONE, .NONE, .NONE}, 0x2518E400, 0xFFFFFFF0, .SVE, {}}, - }, - .SVE_PFIRST = { - {.SVE_PFIRST, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PD, .NONE}, 0x2558C000, 0xFFFFFE10, .SVE, {}}, - }, - .SVE_PNEXT = { - {.SVE_PNEXT, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PD, .NONE}, 0x2519C400, 0xFFFFFE10, .SVE, {}}, - }, - - // ------------------------------------------------------------------------- - // SVE alias / copy / permute stragglers (duplicated-field encodings). - // ------------------------------------------------------------------------- - // CPY (predicated, from general register): Zd.T, Pg/m, Wn/Xn. - .SVE_CPY_Z = { - {.SVE_CPY_Z, {.Z_REG_B, .P_REG_MERGE, .W_REG, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0528A000, 0xFFFFE000, .SVE, {}}, - {.SVE_CPY_Z, {.Z_REG_H, .P_REG_MERGE, .W_REG, .NONE}, {.VD, .PG, .VN, .NONE}, 0x0568A000, 0xFFFFE000, .SVE, {}}, - {.SVE_CPY_Z, {.Z_REG_S, .P_REG_MERGE, .W_REG, .NONE}, {.VD, .PG, .VN, .NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {}}, - {.SVE_CPY_Z, {.Z_REG_D, .P_REG_MERGE, .X_REG, .NONE}, {.VD, .PG, .VN, .NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - // EXT (destructive vector extract): Zdn.B, Zdn.B, Zm.B, #imm (imm8 split). - .SVE_EXT_Z = { {.SVE_EXT_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .VEC_SHIFT}, {.VD, .VD, .VN, .SVE_EXT_IMM}, 0x05200000, 0xFFE0E000, .SVE, {}} }, - // MOV (predicated, = SEL Zd, Pg, Zn, Zd): Zd.T, Pg/m, Zn.T. - .SVE_MOV_PRED = { - {.SVE_MOV_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE}, 0x0520C000, 0xFFE0E000, .SVE, {}}, - {.SVE_MOV_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE}, 0x0560C000, 0xFFE0E000, .SVE, {}}, - {.SVE_MOV_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {}}, - {.SVE_MOV_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - // Predicate aliases (EOR/ORR/AND with a duplicated predicate field). - .SVE_NOT_P = { {.SVE_NOT_P, {.P_REG, .P_REG_ZERO, .P_REG, .NONE}, {.PD, .PG4_PM_DUP, .PN, .NONE}, 0x25004200, 0xFFE0C210, .SVE, {}} }, - .SVE_MOVS_P = { {.SVE_MOVS_P, {.P_REG, .P_REG_ZERO, .P_REG, .NONE}, {.PD, .PG4, .PN_PM_DUP, .NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true}} }, - .SVE_MOV_P = { - {.SVE_MOV_P, {.P_REG, .P_REG_ZERO, .P_REG, .NONE}, {.PD, .PG4, .PN_PM_DUP, .NONE}, 0x25004000, 0xFFE0C210, .SVE, {}}, - {.SVE_MOV_P, {.P_REG, .P_REG, .NONE, .NONE}, {.PD, .PN_PG_PM_DUP, .NONE, .NONE}, 0x25804000, 0xFFE0C210, .SVE, {}}, - }, - // SVE2 XAR (destructive): Zdn.T, Zdn.T, Zm.T, #rotate. The rotate amount is - // V = 2*esize - amount, split tszh:tszl:imm3; esize selected by the Z type. - .SVE_XAR_Z = { - {.SVE_XAR_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .VEC_SHIFT}, {.VD, .VD, .VN, .SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {}}, - {.SVE_XAR_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .VEC_SHIFT}, {.VD, .VD, .VN, .SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {}}, - {.SVE_XAR_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .VEC_SHIFT}, {.VD, .VD, .VN, .SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {}}, - {.SVE_XAR_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .VEC_SHIFT}, {.VD, .VD, .VN, .SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.11 Integer compare (Zn vs Zm) -> Pd.T - // CMPEQ Pd.T, Pg/Z, Zn.T, Zm.T = 00100100 SS 1 Zm 101 Pg Zn O Pd - // opc bits at 15:13 distinguish HI/HS/EQ/NE/GE/GT/LE/LT - // ------------------------------------------------------------------------- - .SVE_CMPEQ = { - {.SVE_CMPEQ, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true}}, - {.SVE_CMPEQ, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true}}, - {.SVE_CMPEQ, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true}}, - {.SVE_CMPEQ, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPNE = { - {.SVE_CMPNE, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPNE, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPNE, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPNE, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPGE = { - {.SVE_CMPGE, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPGE, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPGE, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPGE, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPGT = { - {.SVE_CMPGT, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPGT, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPGT, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPGT, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPHI = { - {.SVE_CMPHI, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPHI, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPHI, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPHI, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPHS = { - {.SVE_CMPHS, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPHS, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPHS, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPHS, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.12 SVE DUP / INSR / REV / TBL - // ------------------------------------------------------------------------- - // DUP Zd.T, Zn.T[imm] = 00000101 SS 1 imm 001000 Zn Zd (broadcast lane) - // INSR Zd.T, Rn = 00000101 SS 1 00100 001110 Rn Zd - // REV Pd.T, Pn.T = 00000101 SS 11 0100 010 0000 Pn Pd - // REV Zd.T, Zn.T = 00000101 SS 11 1000 001110 Zn Zd - .SVE_DUP_Z = { - // Broadcast a GPR (DUP Zd.B, Wn): 00000101 SS 1 00 000 001110 Rn Zd - {.SVE_DUP_Z, {.Z_REG_B, .W_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05203800, 0xFFFFFC00, .SVE, {}}, - {.SVE_DUP_Z, {.Z_REG_H, .W_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05603800, 0xFFFFFC00, .SVE, {}}, - {.SVE_DUP_Z, {.Z_REG_S, .W_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {}}, - {.SVE_DUP_Z, {.Z_REG_D, .X_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true}}, - }, - .SVE_REV_Z = { - {.SVE_REV_Z, {.Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05383800, 0xFFFFFC00, .SVE, {}}, - {.SVE_REV_Z, {.Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05783800, 0xFFFFFC00, .SVE, {}}, - {.SVE_REV_Z, {.Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {}}, - {.SVE_REV_Z, {.Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true}}, - }, - .SVE_REV_P = { - {.SVE_REV_P, {.P_REG, .P_REG, .NONE, .NONE}, {.PD, .PN, .NONE, .NONE}, 0x05344000, 0xFFFFFE10, .SVE, {}}, - }, - .SVE_TBL = { - {.SVE_TBL, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05203000, 0xFFE0FC00, .SVE, {}}, - {.SVE_TBL, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05603000, 0xFFE0FC00, .SVE, {}}, - {.SVE_TBL, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {}}, - {.SVE_TBL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.13 Permute (ZIP1/2, UZP1/2, TRN1/2) for Z and P registers - // 00000101 SS 1 Zm 011 oo o Zn Zd (Z variants; oo=00 ZIP1, 01 ZIP2, etc.) - // 00000101 SS 1 0 Pm 010 oo o Pn 0 Pd (P variants) - // ------------------------------------------------------------------------- - .SVE_ZIP1_Z = { - {.SVE_ZIP1_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05206000, 0xFFE0FC00, .SVE, {}}, - {.SVE_ZIP1_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05606000, 0xFFE0FC00, .SVE, {}}, - {.SVE_ZIP1_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {}}, - {.SVE_ZIP1_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_ZIP2_Z = { - {.SVE_ZIP2_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05206400, 0xFFE0FC00, .SVE, {}}, - {.SVE_ZIP2_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05606400, 0xFFE0FC00, .SVE, {}}, - {.SVE_ZIP2_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {}}, - {.SVE_ZIP2_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_UZP1_Z = { - {.SVE_UZP1_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05206800, 0xFFE0FC00, .SVE, {}}, - {.SVE_UZP1_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05606800, 0xFFE0FC00, .SVE, {}}, - {.SVE_UZP1_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {}}, - {.SVE_UZP1_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_UZP2_Z = { - {.SVE_UZP2_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_UZP2_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_UZP2_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {}}, - {.SVE_UZP2_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_TRN1_Z = { - {.SVE_TRN1_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05207000, 0xFFE0FC00, .SVE, {}}, - {.SVE_TRN1_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05607000, 0xFFE0FC00, .SVE, {}}, - {.SVE_TRN1_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {}}, - {.SVE_TRN1_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_TRN2_Z = { - {.SVE_TRN2_Z, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05207400, 0xFFE0FC00, .SVE, {}}, - {.SVE_TRN2_Z, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05607400, 0xFFE0FC00, .SVE, {}}, - {.SVE_TRN2_Z, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {}}, - {.SVE_TRN2_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - - // P-register permutes - .SVE_ZIP1_P = { {.SVE_ZIP1_P, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PM, .NONE}, 0x05204000, 0xFFE0FE10, .SVE, {}} }, - .SVE_ZIP2_P = { {.SVE_ZIP2_P, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PM, .NONE}, 0x05204400, 0xFFE0FE10, .SVE, {}} }, - .SVE_UZP1_P = { {.SVE_UZP1_P, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PM, .NONE}, 0x05204800, 0xFFE0FE10, .SVE, {}} }, - .SVE_UZP2_P = { {.SVE_UZP2_P, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PM, .NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {}} }, - .SVE_TRN1_P = { {.SVE_TRN1_P, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PM, .NONE}, 0x05205000, 0xFFE0FE10, .SVE, {}} }, - .SVE_TRN2_P = { {.SVE_TRN2_P, {.P_REG, .P_REG, .P_REG, .NONE}, {.PD, .PN, .PM, .NONE}, 0x05205400, 0xFFE0FE10, .SVE, {}} }, - - // ------------------------------------------------------------------------- - // §23.14 Contiguous load/store (scalar+scalar) - // LD1B { Zt.T }, Pg/Z, [Xn, Xm] - // 1010010 0 SS 0 Xm 010 Pg Xn Zt (size: B=00, H=01, W=10, D=11) - // ST1B { Zt.T }, Pg, [Xn, Xm] - // 1110010 0 SS 0 Xm 010 Pg Xn Zt - // ------------------------------------------------------------------------- - .SVE_LD1B = { - {.SVE_LD1B, {.Z_REG_B, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA4004000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LD1H = { - {.SVE_LD1H, {.Z_REG_H, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LD1W = { - {.SVE_LD1W, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA5404000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LD1D = { - {.SVE_LD1D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA5E04000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_LD1SB = { - {.SVE_LD1SB, {.Z_REG_H, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA5C04000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LD1SH = { - {.SVE_LD1SH, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA5004000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LD1SW = { - {.SVE_LD1SW, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA4804000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - .SVE_ST1B = { - {.SVE_ST1B, {.Z_REG_B, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE4004000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_ST1H = { - {.SVE_ST1H, {.Z_REG_H, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE4A04000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_ST1W = { - {.SVE_ST1W, {.Z_REG_S, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE5404000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_ST1D = { - {.SVE_ST1D, {.Z_REG_D, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE5C04000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // First-faulting (LDFF1*) variants -- same family, bit 23/22 chooses non-fault. - // Spec uses bits[14:13] = 11 instead of 10 to mark FF; we encode them - // explicitly so the mnemonic distinguishes the faulting behavior. - .SVE_LDFF1B = { - {.SVE_LDFF1B, {.Z_REG_B, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA4006000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LDFF1H = { - {.SVE_LDFF1H, {.Z_REG_H, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA4A06000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LDFF1W = { - {.SVE_LDFF1W, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA5406000, 0xFFE0E000, .SVE, {}}, - }, - .SVE_LDFF1D = { - {.SVE_LDFF1D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA5E06000, 0xFFE0E000, .SVE, {is_64=true}}, - }, - - // Unpredicated LDR/STR of full Z/P registers (scalar+imm with MUL VL). - // LDR Zt, [Xn{, #imm, MUL VL}] = 10000101 10 imm9 010 Xn Zt - // STR Zt, [Xn{, #imm, MUL VL}] = 11100101 10 imm9 010 Xn Zt - // LDR Pt, [Xn{, #imm, MUL VL}] = 10000101 10 imm9 000 Xn 0 Pt - .SVE_LDR_Z = { {.SVE_LDR_Z, {.Z_REG_B, .MEM, .NONE, .NONE}, {.VD, .SVE_OFFSET_BASE_SI, .NONE, .NONE}, 0x85804000, 0xFFE0E000, .SVE, {}} }, - .SVE_STR_Z = { {.SVE_STR_Z, {.Z_REG_B, .MEM, .NONE, .NONE}, {.VD, .SVE_OFFSET_BASE_SI, .NONE, .NONE}, 0xE5804000, 0xFFE0E000, .SVE, {}} }, - .SVE_LDR_P = { {.SVE_LDR_P, {.P_REG, .MEM, .NONE, .NONE}, {.PD, .SVE_OFFSET_BASE_SI, .NONE, .NONE}, 0x85800000, 0xFFE0E010, .SVE, {}} }, - .SVE_STR_P = { {.SVE_STR_P, {.P_REG, .MEM, .NONE, .NONE}, {.PD, .SVE_OFFSET_BASE_SI, .NONE, .NONE}, 0xE5800000, 0xFFE0E010, .SVE, {}} }, - - // ------------------------------------------------------------------------- - // §23.15 SVE2 -- WHILE family (Pd, Xn, Xm) - // WHILELT Pd.T, Wn, Wm = 00100101 SS 1 Rm 0 0 0 1 0 0 Rn 0 0000 Pd - // We encode the X variant (sf=1, bit 12 in original spec) for 64-bit. - // ------------------------------------------------------------------------- - .SVE_WHILELT = { - {.SVE_WHILELT, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201400, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILELE = { - {.SVE_WHILELE, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201410, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILELO = { - {.SVE_WHILELO, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201C00, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILELS = { - {.SVE_WHILELS, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201C10, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILEGE = { - {.SVE_WHILEGE, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201000, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILEGT = { - {.SVE_WHILEGT, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201010, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILEHI = { - {.SVE_WHILEHI, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201810, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - .SVE_WHILEHS = { - {.SVE_WHILEHS, {.P_REG, .X_REG, .X_REG, .NONE}, {.PD, .RN, .RM, .NONE}, 0x25201800, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true}}, - }, - - // ------------------------------------------------------------------------- - // §23.16 SVE2 saturating rounding multiply-accumulate - // SQRDMLAH Zda.T, Zn.T, Zm.T = 01000100 SS 0 Zm 0111 00 Zn Zda - // SQRDMLSH Zda.T, Zn.T, Zm.T = 01000100 SS 0 Zm 0111 01 Zn Zda - // ------------------------------------------------------------------------- - .SVE_SQRDMLAH = { - {.SVE_SQRDMLAH, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SQRDMLAH, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SQRDMLAH, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SQRDMLAH, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true}}, - }, - .SVE_SQRDMLSH = { - {.SVE_SQRDMLSH, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SQRDMLSH, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SQRDMLSH, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SQRDMLSH, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true}}, - }, - - // SVE2 Add/sub with carry (long), AESE/AESD/AESMC/AESIMC SVE2 forms - .SVE_ADCLB = { - {.SVE_ADCLB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {}}, - {.SVE_ADCLB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true}}, - }, - .SVE_ADCLT = { - {.SVE_ADCLT, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {}}, - {.SVE_ADCLT, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true}}, - }, - .SVE_SBCLB = { - {.SVE_SBCLB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SBCLB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true}}, - }, - .SVE_SBCLT = { - {.SVE_SBCLT, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {}}, - {.SVE_SBCLT, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true}}, - }, - - .SVE_MATCH = { - {.SVE_MATCH, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true}}, - {.SVE_MATCH, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true}}, - }, - .SVE_NMATCH = { - {.SVE_NMATCH, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VN, .VM}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true}}, - {.SVE_NMATCH, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true}}, - }, - - .SVE_TBL2 = { - {.SVE_TBL2, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {}}, - }, - .SVE_TBX = { - {.SVE_TBX, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x05202C00, 0xFFE0FC00, .SVE2, {}}, - }, - - // SVE2 AES/SM4 (Z-form encryption) - .SVE_AESE = { {.SVE_AESE, {.Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {}} }, - .SVE_AESD = { {.SVE_AESD, {.Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {}} }, - .SVE_AESMC = { {.SVE_AESMC, {.Z_REG_B, .NONE, .NONE, .NONE}, {.VD, .NONE, .NONE, .NONE}, 0x4520E000, 0xFFFFFFE0, .SVE2, {}} }, - .SVE_AESIMC = { {.SVE_AESIMC,{.Z_REG_B, .NONE, .NONE, .NONE}, {.VD, .NONE, .NONE, .NONE}, 0x4520E400, 0xFFFFFFE0, .SVE2, {}} }, - - .SVE_HISTCNT = { - {.SVE_HISTCNT, {.Z_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VN, .VM}, 0x45A0C000, 0xFFE0E000, .SVE2, {}}, - {.SVE_HISTCNT, {.Z_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VN, .VM}, 0x45E0C000, 0xFFE0E000, .SVE2, {is_64=true}}, - }, - .SVE_HISTSEG = { - {.SVE_HISTSEG, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4520A000, 0xFFE0FC00, .SVE2, {}}, - }, - - // ------------------------------------------------------------------------- - // §24 SME (Scalable Matrix Extension) - // ------------------------------------------------------------------------- - // SMSTART / SMSTOP control PSTATE.SM and PSTATE.ZA. - // SMSTART = D503447F (default = both SM + ZA on) - // SMSTOP = D503467F - // - // These are hint-encoded as MSR (immediate) writes to SVCR. - - .SME_SMSTART = { {.SME_SMSTART, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xD503477F, 0xFFFFFFFF, .SME, {}} }, - .SME_SMSTOP = { {.SME_SMSTOP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0xD503467F, 0xFFFFFFFF, .SME, {}} }, - - // RDSVL Xd, #imm6 -- read streaming-mode vector length (in bytes) * imm6. - // 00000100 10111111 010101 imm6 Xd - .SME_RDSVL = { - {.SME_RDSVL, {.X_REG, .IMM_6, .NONE, .NONE}, {.RD, .IMM6, .NONE, .NONE}, 0x04BF5800, 0xFFFFFC00, .SME, {is_64=true}}, - }, - - // ZERO {} -- zero a list of ZA tiles using the 8-bit list as 4-bit field. - // 11000000 00000011 00 0 imm4 11 0000 00000 - .SME_ZERO = { - {.SME_ZERO, {.SME_PATTERN, .NONE, .NONE, .NONE}, {.SME_PATTERN_FIELD, .NONE, .NONE, .NONE}, 0xC0080000, 0xFFFFFF00, .SME, {}}, - }, - - // FMOPA ZAd.S, Pn/M, Pm/M, Zn.S, Zm.S (outer-product accumulate) - // 10000000 10 0 Zm 0 Pm 0 Pn Zn 0 0000 ZAd - .SME_FMOPA = { - {.SME_FMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0x80800000, 0xFFE08010, .SME, {}}, - }, - .SME_FMOPS = { - {.SME_FMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0x80800010, 0xFFE08010, .SME, {}}, - }, - .SME_BFMOPA = { - {.SME_BFMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0x81800000, 0xFFE08010, .SME, {}}, - }, - .SME_BFMOPS = { - {.SME_BFMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0x81800010, 0xFFE08010, .SME, {}}, - }, - .SME_SMOPA = { - {.SME_SMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0xA0800000, 0xFFE08010, .SME, {}}, - {.SME_SMOPA, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true}}, - }, - .SME_SMOPS = { - {.SME_SMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0xA0800010, 0xFFE08010, .SME, {}}, - {.SME_SMOPS, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true}}, - }, - .SME_UMOPA = { - {.SME_UMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0xA1A00000, 0xFFE08010, .SME, {}}, - {.SME_UMOPA, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true}}, - }, - .SME_UMOPS = { - {.SME_UMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0xA1A00010, 0xFFE08010, .SME, {}}, - {.SME_UMOPS, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true}}, - }, - .SME_USMOPA = { - {.SME_USMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0xA1800000, 0xFFE08010, .SME, {}}, - }, - .SME_SUMOPA = { - {.SME_SUMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN}, 0xA0A00000, 0xFFE08010, .SME, {}}, - }, - - // SME LDR/STR ZA -- transfer single ZA slice from/to memory by tile-vector ref. - // 11100001 00 0 Wv 000 Xn 00 ZAt (encoded scaffolding; user supplies - // immediate tile selector as IMM_5 and vector base register as - // SVE_OFFSET_BASE_SI for the memory address) - .SME_LDR_ZA = { - {.SME_LDR_ZA, {.IMM_5, .MEM, .NONE, .NONE}, {.SVE_IMM5, .SVE_OFFSET_BASE_SI, .NONE, .NONE}, 0xE1000000, 0xFFE08000, .SME, {}}, - }, - .SME_STR_ZA = { - {.SME_STR_ZA, {.IMM_5, .MEM, .NONE, .NONE}, {.SVE_IMM5, .SVE_OFFSET_BASE_SI, .NONE, .NONE}, 0xE1200000, 0xFFE08000, .SME, {}}, - }, - - // ========================================================================= - // §25 Apple AMX (undocumented coprocessor; A13+, M1+) - // ========================================================================= - // - // Encoding: 0x00201000 | (op << 5) | operand - // bits[31:25] = 0000000 (op0 = 0b0000 -- "reserved" in standard ARM) - // bit [24] = 0 - // bit [23] = 0 - // bit [22] = 0 - // bit [21] = 1 - // bits[20:13] = 00000000 - // bit [12] = 1 - // bits[11:10] = 00 - // bits[9:5] = op (5-bit AMX opcode 0..23) - // bits[4:0] = operand (5-bit; usually GPR holding pointer + control) - // - // The static bits including the op field give mask 0xFFFFFFE0, leaving - // bits[4:0] for the operand. SET/CLR have no operand and use mask - // 0xFFFFFFFF (the operand field is fixed at 0). - - .AMX_LDX = { {.AMX_LDX, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_LDY = { {.AMX_LDY, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201020, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_STX = { {.AMX_STX, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201040, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_STY = { {.AMX_STY, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201060, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_LDZ = { {.AMX_LDZ, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201080, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_STZ = { {.AMX_STZ, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002010A0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_LDZI = { {.AMX_LDZI, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002010C0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_STZI = { {.AMX_STZI, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002010E0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_EXTRX = { {.AMX_EXTRX, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201100, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_EXTRY = { {.AMX_EXTRY, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201120, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_FMA64 = { {.AMX_FMA64, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201140, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_FMS64 = { {.AMX_FMS64, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201160, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_FMA32 = { {.AMX_FMA32, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201180, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_FMS32 = { {.AMX_FMS32, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002011A0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_MAC16 = { {.AMX_MAC16, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002011C0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_FMA16 = { {.AMX_FMA16, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002011E0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_FMS16 = { {.AMX_FMS16, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201200, 0xFFFFFFE0, .AMX, {is_64=true}} }, - - // SET / CLR: no operand. Operand field is forced to 0; mask covers it. - .AMX_SET = { {.AMX_SET, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {}} }, - .AMX_CLR = { {.AMX_CLR, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {}} }, - - .AMX_VECINT = { {.AMX_VECINT, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201260, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_VECFP = { {.AMX_VECFP, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x00201280, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_MATINT = { {.AMX_MATINT, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002012A0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_MATFP = { {.AMX_MATFP, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002012C0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - .AMX_GENLUT = { {.AMX_GENLUT, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0x002012E0, 0xFFFFFFE0, .AMX, {is_64=true}} }, - - // ========================================================================= - // §26 MOPS (v8.8-A memory operations) - // ========================================================================= - // - // Layout (general copy / set): - // bits 31:24 = 0x19 (CPY / SET), 0x1D (CPYF forward-only) - // bits 23:22 = stage (00=P, 01=M, 10=E) - // bits 20:16 = Rn (size register; updated on completion) - // bits 15:14 = options (00 = default) - // bits 13:12 = 01 - // bits 11:10 = 00 - // bits 9:5 = Rs (source / set value) - // bits 4:0 = Rd (destination address; updated) - // - // Mask covers bits 31:21 + 13:10 = 0xFFE03C00. All three GPRs are - // updated on completion; user passes the initial addresses / size. - - .CPYP = { {.CPYP, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true}} }, - .CPYM = { {.CPYM, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true}} }, - .CPYE = { {.CPYE, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true}} }, - .CPYFP = { {.CPYFP, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x19000400, 0xFFE03C00, .BASE, {is_64=true}} }, - .CPYFM = { {.CPYFM, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x19400400, 0xFFE03C00, .BASE, {is_64=true}} }, - .CPYFE = { {.CPYFE, {.XSP_REG, .XSP_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x19800400, 0xFFE03C00, .BASE, {is_64=true}} }, - // SET* shares the layout but uses bits 23:22 = 11 to mark memset. - .SETP = { {.SETP, {.XSP_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x19C00400, 0xFFE03C00, .BASE, {is_64=true}} }, - .SETM = { {.SETM, {.XSP_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x19C04400, 0xFFE03C00, .BASE, {is_64=true}} }, - .SETE = { {.SETE, {.XSP_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x19C08400, 0xFFE03C00, .BASE, {is_64=true}} }, - - // ========================================================================= - // §27 Cache management (SYS-encoded) - // ========================================================================= - // - // SYS instruction layout: - // bits 31:22 = 1101_0101_00 (0xD500) - // bit 21 = L (0 = SYS, 1 = SYSL) - // bit 20 = 1 (system instruction marker) - // bits 18:16 = op1 - // bits 15:12 = CRn - // bits 11:8 = CRm - // bits 7:5 = op2 - // bits 4:0 = Rt (operand register, or 0x1F for register-less variants) - // - // We encode each DC/IC/AT/TLBI variant as its own mnemonic so the - // disassembly reads canonically. Entries with mask 0xFFFFFFE0 leave only - // bits 4:0 (Rt) operand-driven; "no-Rt" variants use mask 0xFFFFFFFF - // (Rt forced to ZR = 0x1F in the bits field). - - // ---- DC (Data Cache) ---------------------------------------------------- - // DC IVAC Xt SYS #0 C7 C6 #1, Xt - // DC ISW Xt SYS #0 C7 C6 #2, Xt - // DC CSW Xt SYS #0 C7 C10 #2, Xt - // DC CISW Xt SYS #0 C7 C14 #2, Xt - // DC ZVA Xt SYS #3 C7 C4 #1, Xt - // DC CVAC Xt SYS #3 C7 C10 #1, Xt - // DC CVAU Xt SYS #3 C7 C11 #1, Xt - // DC CIVAC Xt SYS #3 C7 C14 #1, Xt - .DC_IVAC = { {.DC_IVAC, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087620, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_ISW = { {.DC_ISW, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087640, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CSW = { {.DC_CSW, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087A40, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CISW = { {.DC_CISW, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087E40, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_ZVA = { {.DC_ZVA, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50B7420, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CVAC = { {.DC_CVAC, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50B7A20, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CVAU = { {.DC_CVAU, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50B7B20, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CIVAC = { {.DC_CIVAC, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50B7E20, 0xFFFFFFE0, .BASE, {is_64=true}} }, - - // ---- IC (Instruction Cache) -------------------------------------------- - // IC IALLUIS SYS #0 C7 C1 #0 - // IC IALLU SYS #0 C7 C5 #0 - // IC IVAU Xt SYS #3 C7 C5 #1, Xt - .IC_IALLUIS = { {.IC_IALLUIS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508711F, 0xFFFFFFFF, .BASE, {}} }, - .IC_IALLU = { {.IC_IALLU, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508751F, 0xFFFFFFFF, .BASE, {}} }, - .IC_IVAU = { {.IC_IVAU, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50B7520, 0xFFFFFFE0, .BASE, {is_64=true}} }, - - // ---- AT (Address Translate, PE current EL) ------------------------------ - // AT S1E1R Xt SYS #0 C7 C8 #0, Xt - // AT S1E1W Xt SYS #0 C7 C8 #1, Xt - // AT S1E0R Xt SYS #0 C7 C8 #2, Xt - // AT S1E0W Xt SYS #0 C7 C8 #3, Xt - // AT S1E2R Xt SYS #4 C7 C8 #0, Xt - // AT S1E2W Xt SYS #4 C7 C8 #1, Xt - // AT S1E3R Xt SYS #6 C7 C8 #0, Xt - // AT S1E3W Xt SYS #6 C7 C8 #1, Xt - // AT S12E1R Xt SYS #4 C7 C8 #4, Xt - // AT S12E1W Xt SYS #4 C7 C8 #5, Xt - // AT S12E0R Xt SYS #4 C7 C8 #6, Xt - // AT S12E0W Xt SYS #4 C7 C8 #7, Xt - .AT_S1E1R = { {.AT_S1E1R, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087800, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E1W = { {.AT_S1E1W, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087820, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E0R = { {.AT_S1E0R, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087840, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E0W = { {.AT_S1E0W, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5087860, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E2R = { {.AT_S1E2R, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50C7800, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E2W = { {.AT_S1E2W, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50C7820, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E3R = { {.AT_S1E3R, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50E7800, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S1E3W = { {.AT_S1E3W, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50E7820, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S12E1R = { {.AT_S12E1R, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50C7880, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S12E1W = { {.AT_S12E1W, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50C78A0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S12E0R = { {.AT_S12E0R, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50C78C0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .AT_S12E0W = { {.AT_S12E0W, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50C78E0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - - // ---- TLBI (TLB Invalidate, EL1 + EL2/3 broadcasts) ---------------------- - // TLBI VMALLE1IS SYS #0 C8 C3 #0 -- broadcast inner-shareable - // TLBI VAE1IS Xt SYS #0 C8 C3 #1, Xt - // TLBI ASIDE1IS Xt SYS #0 C8 C3 #2, Xt - // TLBI VAAE1IS Xt SYS #0 C8 C3 #3, Xt - // TLBI VALE1IS Xt SYS #0 C8 C3 #5, Xt - // TLBI VAALE1IS Xt SYS #0 C8 C3 #7, Xt - // TLBI VMALLE1 SYS #0 C8 C7 #0 - // TLBI VAE1 Xt SYS #0 C8 C7 #1, Xt - // TLBI ASIDE1 Xt SYS #0 C8 C7 #2, Xt - // TLBI VAAE1 Xt SYS #0 C8 C7 #3, Xt - // TLBI VALE1 Xt SYS #0 C8 C7 #5, Xt - // TLBI VAALE1 Xt SYS #0 C8 C7 #7, Xt - .TLBI_VMALLE1IS = { {.TLBI_VMALLE1IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_VAE1IS = { {.TLBI_VAE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088320, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_ASIDE1IS = { {.TLBI_ASIDE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088340, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VAAE1IS = { {.TLBI_VAAE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088360, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VALE1IS = { {.TLBI_VALE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50883A0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VAALE1IS = { {.TLBI_VAALE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50883E0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VMALLE1 = { {.TLBI_VMALLE1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_VAE1 = { {.TLBI_VAE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088720, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_ASIDE1 = { {.TLBI_ASIDE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088740, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VAAE1 = { {.TLBI_VAAE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088760, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VALE1 = { {.TLBI_VALE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50887A0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_VAALE1 = { {.TLBI_VAALE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50887E0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - // EL2/EL3 "ALL" variants (no Rt) - .TLBI_ALLE1 = { {.TLBI_ALLE1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_ALLE1IS = { {.TLBI_ALLE1IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_ALLE2 = { {.TLBI_ALLE2, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50C871F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_ALLE2IS = { {.TLBI_ALLE2IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50C831F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_ALLE3 = { {.TLBI_ALLE3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50E871F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_ALLE3IS = { {.TLBI_ALLE3IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50E831F, 0xFFFFFFFF, .BASE, {}} }, - - // ========================================================================= - // §28 PRFM (Prefetch Memory) - // ========================================================================= - // - // PRFM , [Xn, #imm] unsigned-offset form (imm scaled by 8) - // bits 31:22 = 1111_1000_10 (0x3E2 << 22) - // -> base 0xF9800000 - // bits 21:10 = imm12 (operand) - // bits 9:5 = Rn (base) - // bits 4:0 = prfop (5-bit prefetch operation selector) - // PRFUM (unscaled): bits 31:21 = 1111_1000_100, base 0xF8800000 - // PRFM (literal): bits 31:24 = 1101_1000, base 0xD8000000 - - .PRFM = { {.PRFM, {.IMM_5, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xF9800000, 0xFFC00000, .BASE, {is_64=true}} }, - .PRFUM = { {.PRFUM, {.IMM_5, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true}} }, - .PRFM_LIT = { {.PRFM_LIT, {.IMM_5, .REL_19, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE}, 0xD8000000, 0xFF000000, .BASE, {is_64=true}} }, - - // ========================================================================= - // §29 Aliases (printed canonically; encode with Rd=ZR or Rn=ZR) - // ========================================================================= - // - // MOV Rd, Rm = ORR Rd, ZR, Rm (sf=1 0101010 shift=00 Rm imm6=0 Rn=31 Rd) - // MOV Rd, #imm = ORR Rd, ZR, #bitmask (sf=1 01100100 N immr imms Rn=31 Rd) - // MVN Rd, Rm = ORN Rd, ZR, Rm (sf=1 0101010 shift=00 1 Rm imm6=0 Rn=31 Rd) - // NEG Rd, Rm{,shift} = SUB Rd, ZR, Rm{,shift} (sf=1 1001011 shift Rm imm6 Rn=31 Rd) - // NEGS Rd, Rm{,shift} = SUBS Rd, ZR, Rm{,shift} - // CMP Rn, Rm{,shift} = SUBS ZR, Rn, Rm{,shift} - // CMP Rn, Rm, ext = SUBS ZR, Rn, Rm, ext - // CMP Rn, #imm = SUBS ZR, Rn, #imm - // CMN Rn, Rm{,shift} = ADDS ZR, Rn, Rm{,shift} - // CMN Rn, Rm, ext = ADDS ZR, Rn, Rm, ext - // CMN Rn, #imm = ADDS ZR, Rn, #imm - // TST Rn, Rm{,shift} = ANDS ZR, Rn, Rm{,shift} - - .MOV_REG = { - // 32-bit: ORR Wd, WZR, Wm -- base 0x2A0003E0 = ORR Wd, W31, Wm (shift=LSL, imm6=0, Rn=31) - {.MOV_REG, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {}}, - {.MOV_REG, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true}}, - }, - .MOV_BITMASK = { - {.MOV_BITMASK, {.W_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .BITMASK_FIELD, .NONE, .NONE}, 0x320003E0, 0xFFC003E0, .BASE, {}}, - {.MOV_BITMASK, {.X_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .BITMASK_FIELD, .NONE, .NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true}}, - }, - .MVN = { - // ORN Wd, WZR, Wm -- base 0x2A2003E0 - {.MVN, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {}}, - {.MVN, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true}}, - }, - .NEG_SR = { - // SUB Wd, WZR, Wm{, shift #imm6} -- base 0x4B0003E0 - {.NEG_SR, {.W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {}}, - {.NEG_SR, {.X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true}}, - }, - .NEGS = { - // SUBS Wd, WZR, Wm{, shift #imm6} -- base 0x6B0003E0 - {.NEGS, {.W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true}}, - {.NEGS, {.X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true}}, - }, - .CMP_SR = { - // SUBS WZR, Wn, Wm{, shift} -- base 0x6B00001F - {.CMP_SR, {.W_REG, .W_SHIFTED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true}}, - {.CMP_SR, {.X_REG, .X_SHIFTED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true}}, - }, - .CMP_ER = { - // SUBS WZR, Wn, Wm, ext -- base 0x6B20001F - {.CMP_ER, {.WSP_REG, .W_EXTENDED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true}}, - {.CMP_ER, {.XSP_REG, .X_EXTENDED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true}}, - }, - .CMP_IMM = { - // SUBS WZR, Wn, #imm12{, LSL #12} -- base 0x7100001F - {.CMP_IMM, {.WSP_REG, .IMM_12, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true}}, - {.CMP_IMM, {.XSP_REG, .IMM_12, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true}}, - }, - .CMN_SR = { - // ADDS WZR, Wn, Wm{, shift} -- base 0x2B00001F - {.CMN_SR, {.W_REG, .W_SHIFTED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true}}, - {.CMN_SR, {.X_REG, .X_SHIFTED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true}}, - }, - .CMN_ER = { - // ADDS WZR, Wn, Wm, ext -- base 0x2B20001F - {.CMN_ER, {.WSP_REG, .W_EXTENDED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true}}, - {.CMN_ER, {.XSP_REG, .X_EXTENDED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true}}, - }, - .CMN_IMM = { - // ADDS WZR, Wn, #imm12 -- base 0x3100001F - {.CMN_IMM, {.WSP_REG, .IMM_12, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true}}, - {.CMN_IMM, {.XSP_REG, .IMM_12, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true}}, - }, - .TST_SR = { - // ANDS WZR, Wn, Wm{, shift} -- base 0x6A00001F - {.TST_SR, {.W_REG, .W_SHIFTED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true}}, - {.TST_SR, {.X_REG, .X_SHIFTED, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true}}, - }, - - // ========================================================================= - // §30 SVE indexed FMLA / FMLS (lane-broadcast multiply-accumulate) - // ========================================================================= - // - // Layout (.D, 1-bit lane): - // bits 31:22 = 01100100 11 - // bit 21 = 1 - // bit 20 = i1 (lane[0]) - // bits 19:16 = Zm (4-bit, Z0-Z15) - // bits 15:13 = 000 - // bit 12 = 0 (FMLA) / 1 (FMLS) - // bits 11:10 = 00 - // bits 9:5 = Zn - // bits 4:0 = Zda - // - // .S form: lane is 2-bit at bits 20:19, Zm is 3-bit at 18:16 (Z0-Z7) - // .H form: lane is 3-bit (bit 22, bits 20:19), Zm is 3-bit at 18:16 - - .SVE_FMLA_IDX_H = { - {.SVE_FMLA_IDX_H, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .IMM_3}, {.VD, .VN, .VM, .SVE_FMLA_IDX_H}, 0x64200000, 0xFFA0FC00, .SVE, {}}, - }, - .SVE_FMLA_IDX_S = { - {.SVE_FMLA_IDX_S, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .IMM_2}, {.VD, .VN, .VM, .SVE_FMLA_IDX_S}, 0x64A00000, 0xFFE0FC00, .SVE, {}}, - }, - .SVE_FMLA_IDX_D = { - {.SVE_FMLA_IDX_D, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .IMM_2}, {.VD, .VN, .VM, .SVE_FMLA_IDX_D}, 0x64E00000, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_FMLS_IDX_H = { - {.SVE_FMLS_IDX_H, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .IMM_3}, {.VD, .VN, .VM, .SVE_FMLA_IDX_H}, 0x64200400, 0xFFA0FC00, .SVE, {}}, - }, - .SVE_FMLS_IDX_S = { - {.SVE_FMLS_IDX_S, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .IMM_2}, {.VD, .VN, .VM, .SVE_FMLA_IDX_S}, 0x64A00400, 0xFFE0FC00, .SVE, {}}, - }, - .SVE_FMLS_IDX_D = { - {.SVE_FMLS_IDX_D, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .IMM_2}, {.VD, .VN, .VM, .SVE_FMLA_IDX_D}, 0x64E00400, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - - // ========================================================================= - // §31 SVE gather loads / scatter stores - // ========================================================================= - // - // Layout (scalar+vector form): - // bits 31:25 = 1000010 (gather) / 1110010 (scatter) - // bits 24:23 = size (00=B, 01=H, 10=W, 11=D) - // bits 22:21 = signed/unsigned + offsets-32/64 marker - // bits 20:16 = Zm (vector index register) - // bits 15:13 = options (extend type encoded here for 32-bit offsets) - // bits 12:10 = Pg (governing predicate, P0-P7) - // bits 9:5 = Xn (base register) - // bits 4:0 = Zt (destination) - // - // We commit to the most common variants: unscaled-byte and naturally- - // scaled half/word/double gather/scatter with 32-bit or 64-bit vector - // offsets. - - // Gather LD1B { Zt.S }, Pg/Z, [Xn, Zm.S, UXTW] - .SVE_LD1B_GATHER_S = { - {.SVE_LD1B_GATHER_S, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0x84004000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_LD1B_GATHER_D = { - {.SVE_LD1B_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC4004000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_LD1H_GATHER_S = { - {.SVE_LD1H_GATHER_S, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0x84804000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_LD1H_GATHER_D = { - {.SVE_LD1H_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC4804000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_LD1W_GATHER_S = { - {.SVE_LD1W_GATHER_S, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0x85004000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_LD1W_GATHER_D = { - {.SVE_LD1W_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC5004000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_LD1D_GATHER_D = { - {.SVE_LD1D_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC5804000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - - // Signed-extending gather loads (LD1SB / LD1SH / LD1SW) - .SVE_LD1SB_GATHER_S = { - {.SVE_LD1SB_GATHER_S, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0x84000000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_LD1SB_GATHER_D = { - {.SVE_LD1SB_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC4000000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_LD1SH_GATHER_S = { - {.SVE_LD1SH_GATHER_S, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0x84800000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_LD1SH_GATHER_D = { - {.SVE_LD1SH_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC4800000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_LD1SW_GATHER_D = { - {.SVE_LD1SW_GATHER_D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xC5000000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - - // Scatter stores - .SVE_ST1B_SCATTER_S = { - {.SVE_ST1B_SCATTER_S, {.Z_REG_S, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE4008000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_ST1B_SCATTER_D = { - {.SVE_ST1B_SCATTER_D, {.Z_REG_D, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE4008000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_ST1H_SCATTER_S = { - {.SVE_ST1H_SCATTER_S, {.Z_REG_S, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE4808000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_ST1H_SCATTER_D = { - {.SVE_ST1H_SCATTER_D, {.Z_REG_D, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE4808000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_ST1W_SCATTER_S = { - {.SVE_ST1W_SCATTER_S, {.Z_REG_S, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE5008000, 0xFFA0E000, .SVE, {}}, - }, - .SVE_ST1W_SCATTER_D = { - {.SVE_ST1W_SCATTER_D, {.Z_REG_D, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE5008000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - .SVE_ST1D_SCATTER_D = { - {.SVE_ST1D_SCATTER_D, {.Z_REG_D, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_VEC, .NONE}, 0xE5808000, 0xFFA0E000, .SVE, {is_64=true}}, - }, - - // ========================================================================= - // §32 SME tile slice load/store - // ========================================================================= - // - // Layout for LD1B { ZAt.B[Ws, #imm] }, Pg/Z, [Xn, Xm]: - // bits 31:22 = 1110000000 (0xE00) - // bit 21 = 0 - // bits 20:16 = Xm - // bit 15 = V flag (0=H, 1=V) - // bit 14 = 0 - // bits 13:10 = ws[1:0] || pg[2:0] (the slice descriptor packer - // splits the 4 bits as Ws<<13 + imm<<0 + Pg via the - // separate PG operand encoding; for v1 we treat the - // whole 4-bit field as Pg+Ws packed) - // bits 9:5 = Xn - // bit 4 = 0 - // bits 3:0 = packed imm + sub-tile bits per element size - // - // Mask covers bits 31:22 + bit 21 + bit 14 + bit 4 (the always-fixed - // ones) = 0xFFE00010. The H/V flag (bit 15), tile number (bits 22 or - // 23:22 etc.), and operand fields stay operand-driven. - - // - // Verified against LLVM's MC tests for AArch64 SME: - // ld1b {za0h.b[w12,0]}, p0/z, [x0, x0] = 0xE0000000 - // ld1h {za0h.h[w12,0]}, p0/z, [x0, x0] = 0xE0400000 - // ld1w {za0h.s[w12,0]}, p0/z, [x0] = 0xE0800000 - // ld1d {za0h.d[w12,0]}, p0/z, [x0, x0] = 0xE0C00000 - // ld1q {za0h.q[w12,0]}, p0/z, [x0, x0] = 0xE0E00000 (note: same as - // ST1D bit pattern in the bits[31:22] field, but the tile/imm slot - // at bits 3:0 differs; the user-side slice descriptor encodes the - // element-size sub-format) - // - // The static prefix at bits 31:21 (0xE0 in byte 3, 0xE0 in byte 2's - // top 3 bits) identifies the SME LD1 family. bits 23:22 select the - // element size {00=B, 01=H, 10=W, 11=D}; bit 21 selects LD1Q (when set - // alongside bits 23:22 = 11). Tile number and imm offset are *packed* - // into bits 3:0 of the instruction (per element size): - // .B : imm[3:0] (single tile, ZA0.B implicit) - // .H : tile[0]<<3 | imm[2:0] (2 tiles, 8 slices each) - // .W : tile[1:0]<<2 | imm[1:0] (4 tiles, 4 slices each) - // .D : tile[2:0]<<1 | imm[0] (8 tiles, 2 slices each) - // .Q : tile[3:0] (16 tiles, 1 slice each) - - .SME_LD1B_TILE = { - {.SME_LD1B_TILE, {.SME_SLICE_B, .P_REG_ZERO, .MEM, .NONE}, {.SME_SLICE_B, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0000000, 0xFFE00010, .SME, {}}, - }, - .SME_LD1H_TILE = { - {.SME_LD1H_TILE, {.SME_SLICE_H, .P_REG_ZERO, .MEM, .NONE}, {.SME_SLICE_H, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0400000, 0xFFE00010, .SME, {}}, - }, - .SME_LD1W_TILE = { - {.SME_LD1W_TILE, {.SME_SLICE_W, .P_REG_ZERO, .MEM, .NONE}, {.SME_SLICE_W, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0800000, 0xFFE00010, .SME, {}}, - }, - .SME_LD1D_TILE = { - {.SME_LD1D_TILE, {.SME_SLICE_D, .P_REG_ZERO, .MEM, .NONE}, {.SME_SLICE_D, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0C00000, 0xFFE00010, .SME, {is_64=true}}, - }, - .SME_LD1Q_TILE = { - {.SME_LD1Q_TILE, {.SME_SLICE_Q, .P_REG_ZERO, .MEM, .NONE}, {.SME_SLICE_Q, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE1C00000, 0xFFE00010, .SME, {}}, - }, - - // Store family: same prefix but bit 21 set (LD vs ST distinguisher). - .SME_ST1B_TILE = { - {.SME_ST1B_TILE, {.SME_SLICE_B, .P_REG, .MEM, .NONE}, {.SME_SLICE_B, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0200000, 0xFFE00010, .SME, {}}, - }, - .SME_ST1H_TILE = { - {.SME_ST1H_TILE, {.SME_SLICE_H, .P_REG, .MEM, .NONE}, {.SME_SLICE_H, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0600000, 0xFFE00010, .SME, {}}, - }, - .SME_ST1W_TILE = { - {.SME_ST1W_TILE, {.SME_SLICE_W, .P_REG, .MEM, .NONE}, {.SME_SLICE_W, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0A00000, 0xFFE00010, .SME, {}}, - }, - .SME_ST1D_TILE = { - {.SME_ST1D_TILE, {.SME_SLICE_D, .P_REG, .MEM, .NONE}, {.SME_SLICE_D, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE0E00000, 0xFFE00010, .SME, {is_64=true}}, - }, - .SME_ST1Q_TILE = { - {.SME_ST1Q_TILE, {.SME_SLICE_Q, .P_REG, .MEM, .NONE}, {.SME_SLICE_Q, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE1E00000, 0xFFE00010, .SME, {}}, - }, - - // ========================================================================= - // §33 SME MOVA (transfer between Z register and ZA tile slice) - // ========================================================================= - // - // MOVA Zt.T, Pg/M, ZAt.T[Ws, #imm] -- tile slice -> Z reg - // MOVA ZAt.T[Ws, #imm], Pg/M, Zn.T -- Z reg -> tile slice - - .SME_MOVA_Z_FROM_TILE = { - {.SME_MOVA_Z_FROM_TILE, {.Z_REG_B, .P_REG_MERGE, .SME_SLICE_B, .NONE}, {.VD, .PG, .SME_SLICE_B, .NONE}, 0xC0020000, 0xFFE08010, .SME, {}}, - }, - .SME_MOVA_TILE_FROM_Z = { - {.SME_MOVA_TILE_FROM_Z, {.SME_SLICE_B, .P_REG_MERGE, .Z_REG_B, .NONE}, {.SME_SLICE_B, .PG, .VN, .NONE}, 0xC0000000, 0xFFE08010, .SME, {}}, - }, - - // SME ZA outer-sum accumulate: ADDHA/ADDVA ZAda.S, Pn/m, Pm/m, Zn.S. - // ZAda tile at bits 2:0, Pn (Pg) at 12:10, Pm at 15:13, Zn at 9:5. - .SME_ADDHA = { {.SME_ADDHA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S}, {.ZA_TILE_LOW, .PG, .PM3, .VN}, 0xC0900000, 0xFFFF001C, .SME, {}} }, - .SME_ADDVA = { {.SME_ADDVA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S}, {.ZA_TILE_LOW, .PG, .PM3, .VN}, 0xC0910000, 0xFFFF001C, .SME, {}} }, - - // ========================================================================= - // §34 NEON complex FP multiply-add (v8.3-A FCMA extension) - // ========================================================================= - // - // Verified against LLVM MC golden tests (test/MC/AArch64/armv8.3a-complex.s): - // fcmla v0.4h, v1.4h, v2.4h, #0 = 0x2E42C420 - // fcmla v0.8h, v1.8h, v2.8h, #0 = 0x6E42C420 - // fcmla v0.4s, v1.4s, v2.4s, #0 = 0x6E82C420 - // fcmla v0.2d, v1.2d, v2.2d, #0 = 0x6EC2C420 - // fcadd v0.4s, v1.4s, v2.4s, #90 = 0x6E82E420 - // - // FCMLA layout: bit 30 = Q, bit 29 = U=1, bits 28:24 = 01110, bits 23:22 - // = size (01=H, 10=S, 11=D), bit 21 = 0, bits 20:16 = Rm, bits 15:14 = 11, - // bits 13:12 = rot (4 rotations), bits 11:10 = 01, Rn at 9:5, Rd at 4:0. - // - // FCADD layout: same except bit 13 = 1 (static), bit 12 = rot (0=90°, 1=270°). - - .FCMLA_4H = { {.FCMLA_4H, {.V_4H, .V_4H, .V_4H, .IMM_2}, {.VD, .VN, .VM, .ENC_FCMLA_ROT}, 0x2E40C400, 0xFFA0CC00, .NEON, {}} }, - .FCMLA_8H = { {.FCMLA_8H, {.V_8H, .V_8H, .V_8H, .IMM_2}, {.VD, .VN, .VM, .ENC_FCMLA_ROT}, 0x6E40C400, 0xFFA0CC00, .NEON, {}} }, - .FCMLA_4S = { {.FCMLA_4S, {.V_4S, .V_4S, .V_4S, .IMM_2}, {.VD, .VN, .VM, .ENC_FCMLA_ROT}, 0x6E80C400, 0xFFA0CC00, .NEON, {}} }, - .FCMLA_2D = { {.FCMLA_2D, {.V_2D, .V_2D, .V_2D, .IMM_2}, {.VD, .VN, .VM, .ENC_FCMLA_ROT}, 0x6EC0C400, 0xFFA0CC00, .NEON, {}} }, - - .FCADD_4H = { {.FCADD_4H, {.V_4H, .V_4H, .V_4H, .IMM_2}, {.VD, .VN, .VM, .ENC_FCADD_ROT}, 0x2E40E400, 0xFFA0EC00, .NEON, {}} }, - .FCADD_8H = { {.FCADD_8H, {.V_8H, .V_8H, .V_8H, .IMM_2}, {.VD, .VN, .VM, .ENC_FCADD_ROT}, 0x6E40E400, 0xFFA0EC00, .NEON, {}} }, - .FCADD_4S = { {.FCADD_4S, {.V_4S, .V_4S, .V_4S, .IMM_2}, {.VD, .VN, .VM, .ENC_FCADD_ROT}, 0x6E80E400, 0xFFA0EC00, .NEON, {}} }, - .FCADD_2D = { {.FCADD_2D, {.V_2D, .V_2D, .V_2D, .IMM_2}, {.VD, .VN, .VM, .ENC_FCADD_ROT}, 0x6EC0E400, 0xFFA0EC00, .NEON, {}} }, - - // ========================================================================= - // §35 SVE prefetch - // ========================================================================= - .SVE_PRFB = { {.SVE_PRFB, {.IMM_4, .P_REG_GOV, .MEM, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0x8400C000, 0xFFE0E000, .SVE, {}} }, - .SVE_PRFH = { {.SVE_PRFH, {.IMM_4, .P_REG_GOV, .MEM, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0x8480C000, 0xFFE0E000, .SVE, {}} }, - .SVE_PRFW = { {.SVE_PRFW, {.IMM_4, .P_REG_GOV, .MEM, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0x8500C000, 0xFFE0E000, .SVE, {}} }, - .SVE_PRFD = { {.SVE_PRFD, {.IMM_4, .P_REG_GOV, .MEM, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0x8580C000, 0xFFE0E000, .SVE, {}} }, - - // ========================================================================= - // §36 SVE non-temporal load/store - // ========================================================================= - .SVE_LDNT1B = { {.SVE_LDNT1B, {.Z_REG_B, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA400C000, 0xFFE0E000, .SVE, {}} }, - .SVE_LDNT1H = { {.SVE_LDNT1H, {.Z_REG_H, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA480C000, 0xFFE0E000, .SVE, {}} }, - .SVE_LDNT1W = { {.SVE_LDNT1W, {.Z_REG_S, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA500C000, 0xFFE0E000, .SVE, {}} }, - .SVE_LDNT1D = { {.SVE_LDNT1D, {.Z_REG_D, .P_REG_ZERO, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA580C000, 0xFFE0E000, .SVE, {is_64=true}} }, - .SVE_STNT1B = { {.SVE_STNT1B, {.Z_REG_B, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE4006000, 0xFFE0E000, .SVE, {}} }, - .SVE_STNT1H = { {.SVE_STNT1H, {.Z_REG_H, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE4806000, 0xFFE0E000, .SVE, {}} }, - .SVE_STNT1W = { {.SVE_STNT1W, {.Z_REG_S, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE5006000, 0xFFE0E000, .SVE, {}} }, - .SVE_STNT1D = { {.SVE_STNT1D, {.Z_REG_D, .P_REG, .MEM, .NONE}, {.VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xE5806000, 0xFFE0E000, .SVE, {is_64=true}} }, - - // ========================================================================= - // §37 SVE permute / init: EXT, SPLICE, INDEX (II / IR / RI / RR) - // ========================================================================= - .SVE_EXT = { {.SVE_EXT, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .IMM_8}, {.VD, .VD, .VM, .NONE}, 0x05200000, 0xFFE0E000, .SVE, {}} }, - .SVE_SPLICE = { {.SVE_SPLICE, {.Z_REG_B, .P_REG_GOV, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VN}, 0x052C8000, 0xFFFFE000, .SVE, {}} }, - .SVE_INDEX_II = { {.SVE_INDEX_II, {.Z_REG_B, .IMM_5, .IMM_5, .NONE}, {.VD, .SVE_IMM5, .NONE, .NONE}, 0x04204000, 0xFFE0FC00, .SVE, {}} }, - .SVE_INDEX_IR = { {.SVE_INDEX_IR, {.Z_REG_B, .IMM_5, .X_REG, .NONE}, {.VD, .SVE_IMM5, .RN, .NONE}, 0x04204800, 0xFFE0FC00, .SVE, {}} }, - .SVE_INDEX_RI = { {.SVE_INDEX_RI, {.Z_REG_B, .X_REG, .IMM_5, .NONE}, {.VD, .RN, .SVE_IMM5, .NONE}, 0x04204400, 0xFFE0FC00, .SVE, {}} }, - .SVE_INDEX_RR = { {.SVE_INDEX_RR, {.Z_REG_B, .X_REG, .X_REG, .NONE}, {.VD, .RN, .RM, .NONE}, 0x04204C00, 0xFFE0FC00, .SVE, {}} }, - - // ========================================================================= - // §38 SVE2 bit-select family - // ========================================================================= - // Verified vs LLVM golden (test/MC/AArch64/SVE2/bsl.s): - // bsl z0.d, z0.d, z1.d, z2.d = 0x04213C40 - // Decompose: Zdn=0 at bits 4:0, Zm=1 at bits 20:16, Zk=2 at bits 9:5 - // Base (operands zero) = 0x04203C00. - // The other three variants (BSL1N/BSL2N/NBSL) differ at bit 22/23 in - // most family-encoding traditions; values below are best-memory. - .SVE_BSL = { {.SVE_BSL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D}, {.VD, .VD, .VM, .VN}, 0x04203C00, 0xFFE0FC00, .SVE2, {is_64=true}} }, - .SVE_BSL1N = { {.SVE_BSL1N, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D}, {.VD, .VD, .VM, .VN}, 0x04603C00, 0xFFE0FC00, .SVE2, {is_64=true}} }, - .SVE_BSL2N = { {.SVE_BSL2N, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D}, {.VD, .VD, .VM, .VN}, 0x04A03C00, 0xFFE0FC00, .SVE2, {is_64=true}} }, - .SVE_NBSL = { {.SVE_NBSL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D}, {.VD, .VD, .VM, .VN}, 0x04E03C00, 0xFFE0FC00, .SVE2, {is_64=true}} }, - - // ========================================================================= - // §39 SVE2 polynomial multiply - // ========================================================================= - .SVE_PMUL_VEC = { {.SVE_PMUL_VEC, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x04206400, 0xFFE0FC00, .SVE2, {}} }, - .SVE_PMULLB = { {.SVE_PMULLB, {.Z_REG_D, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x45006800, 0xFFE0FC00, .SVE2, {is_64=true}} }, - .SVE_PMULLT = { {.SVE_PMULLT, {.Z_REG_D, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x45006C00, 0xFFE0FC00, .SVE2, {is_64=true}} }, - - // ========================================================================= - // §40 SVE BF16 conversions - // ========================================================================= - .SVE_BFCVT = { {.SVE_BFCVT, {.Z_REG_H, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x658AA000, 0xFFFFE000, .SVE, {}} }, - .SVE_BFCVTNT = { {.SVE_BFCVTNT, {.Z_REG_H, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x648AA000, 0xFFFFE000, .SVE, {}} }, - - // ========================================================================= - // §41 PAC-authenticated loads (v8.3-A) - // ========================================================================= - // - // LDRAA Xt, [Xn{, #imm}] -- key A, offset form - // LDRAB Xt, [Xn{, #imm}] -- key B, offset form - // LDRAA Xt, [Xn{, #imm}]! -- pre-index variant - // LDRAB Xt, [Xn{, #imm}]! - // - // bits 31:24 = 11111000, bit 23 = M (key), bits 22:12 = imm10 (scaled by 8), - // bits 11:10 = 01 (offset) or 11 (pre-index), bits 9:5 = Rn, bits 4:0 = Rt. - - .LDRAA = { {.LDRAA, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true}} }, - .LDRAB = { {.LDRAB, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE}, 0xF8A00400, 0xFFA00C00, .PAC, {is_64=true}} }, - .LDRAA_PRE = { {.LDRAA_PRE, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0xF8200C00, 0xFFA00C00, .PAC, {is_64=true}} }, - .LDRAB_PRE = { {.LDRAB_PRE, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE}, 0xF8A00C00, 0xFFA00C00, .PAC, {is_64=true}} }, - - // ========================================================================= - // §42 TME (Transactional Memory Extension, v9.0-A) - // ========================================================================= - .TSTART = { {.TSTART, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5233060, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TCOMMIT = { {.TCOMMIT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503307F, 0xFFFFFFFF, .BASE, {}} }, - .TCANCEL = { {.TCANCEL, {.IMM_16, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE}, 0xD4600000, 0xFFE0001F, .BASE, {}} }, - .TTEST = { {.TTEST, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5233160, 0xFFFFFFE0, .BASE, {is_64=true}} }, - - // ========================================================================= - // §43 WFIT / WFET (v8.7-A wait with timeout) - // ========================================================================= - .WFET = { {.WFET, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5031000, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .WFIT = { {.WFIT, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5031020, 0xFFFFFFE0, .BASE, {is_64=true}} }, - - // ========================================================================= - // §44 BC.cond (v8.8-A branch consistency) - // ========================================================================= - // - // Identical to B.cond layout except bit 4 = 1 (the "consistency" hint). - // The condition code at bits 3:0 is still operand-driven. - - .BC_COND = { {.BC_COND, {.COND, .REL_19, .NONE, .NONE}, {.COND_LO, .BRANCH_19, .NONE, .NONE}, - 0x54000010, 0xFF000010, .BASE, {cond_branch=true}} }, - - // ========================================================================= - // §45 Sign/zero-extend aliases (UBFM/SBFM specific cases) - // ========================================================================= - // - // UXTB Wd, Wn = UBFM Wd, Wn, #0, #7 - // UXTH Wd, Wn = UBFM Wd, Wn, #0, #15 - // UXTW Xd, Wn = UBFM Xd, Xn, #0, #31 (N=1 for 64-bit form) - // SXTB Wd, Wn = SBFM Wd, Wn, #0, #7 - // SXTH Wd, Wn = SBFM Wd, Wn, #0, #15 - // SXTW Xd, Wn = SBFM Xd, Wn, #0, #31 - - .UXTB = { {.UXTB, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x53001C00, 0xFFFFFC00, .BASE, {}} }, - .UXTH = { {.UXTH, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x53003C00, 0xFFFFFC00, .BASE, {}} }, - .UXTW = { {.UXTW, {.X_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0xD3407C00, 0xFFFFFC00, .BASE, {is_64=true}} }, - .SXTB = { {.SXTB, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {}} }, - .SXTH = { {.SXTH, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {}} }, - .SXTW = { {.SXTW, {.X_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true}} }, - - // ========================================================================= - // §46 Carry arithmetic (ADC / ADCS / SBC / SBCS / NGC / NGCS) - // ========================================================================= - // - // ADC Rd, Rn, Rm Rd = Rn + Rm + C - // ADCS Rd, Rn, Rm flags-setting variant - // SBC Rd, Rn, Rm Rd = Rn - Rm - !C - // SBCS Rd, Rn, Rm flags-setting - // NGC Rd, Rm alias of SBC Rd, ZR, Rm - // NGCS Rd, Rm alias of SBCS Rd, ZR, Rm - // - // Layout: sf | op | S | 11010000 | Rm | 000000 | Rn | Rd. Mask covers - // the static funct field at bits 30:21 + bits 15:10 = 0xFFE0FC00. - - .ADC = { - {.ADC, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {}}, - {.ADC, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .ADCS = { - {.ADCS, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true}}, - {.ADCS, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true}}, - }, - .SBC = { - {.SBC, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {}}, - {.SBC, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true}}, - }, - .SBCS = { - {.SBCS, {.W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true}}, - {.SBCS, {.X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true}}, - }, - // NGC/NGCS: Rn = ZR (= 31). Static Rn=31 at bits 9:5 = 0x3E0. - .NGC = { - {.NGC, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {}}, - {.NGC, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true}}, - }, - .NGCS = { - {.NGCS, {.W_REG, .W_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true}}, - {.NGCS, {.X_REG, .X_REG, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true}}, - }, - - // ========================================================================= - // §47 RCpc-unscaled load/store (LDAPUR / STLUR family, v8.4-A) - // ========================================================================= - // - // LDAPUR Rt, [Xn{, #imm9}] -- load-acquire RCpc, unscaled signed-9 - // STLUR Rt, [Xn{, #imm9}] -- store-release RCpc, unscaled signed-9 - // LDAPURB Wt, ... / STLURB Wt -- byte - // LDAPURH Wt, ... / STLURH Wt -- halfword - // LDAPURSB Wt/Xt -- signed-extend byte - // LDAPURSH Wt/Xt -- signed-extend half - // LDAPURSW Xt -- signed-extend word (64-bit dest) - // - // Layout: size:111001 0 0 imm9 00 Rn Rt. opc field selects load/store - // (00=STLUR, 01=LDAPUR, 10=LDAPURS-64, 11=LDAPURS-32). Mask covers - // bits 31:21 + bits 11:10 = 0xFFE00C00. - - .LDAPUR = { - {.LDAPUR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x99400000, 0xFFE00C00, .BASE, {}}, - {.LDAPUR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .STLUR = { - {.STLUR, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x99000000, 0xFFE00C00, .BASE, {}}, - {.STLUR, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true}}, - }, - .LDAPURB = { {.LDAPURB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x19400000, 0xFFE00C00, .BASE, {}} }, - .STLURB = { {.STLURB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x19000000, 0xFFE00C00, .BASE, {}} }, - .LDAPURH = { {.LDAPURH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x59400000, 0xFFE00C00, .BASE, {}} }, - .STLURH = { {.STLURH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x59000000, 0xFFE00C00, .BASE, {}} }, - .LDAPURSB = { - {.LDAPURSB, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true}}, - {.LDAPURSB, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x19C00000, 0xFFE00C00, .BASE, {}}, - }, - .LDAPURSH = { - {.LDAPURSH, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true}}, - {.LDAPURSH, {.W_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x59C00000, 0xFFE00C00, .BASE, {}}, - }, - .LDAPURSW = { {.LDAPURSW, {.X_REG, .MEM, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true}} }, - - // ========================================================================= - // §48 SVE BF16 predicated arithmetic (3-same) - // ========================================================================= - // - // BFADD Zd.H, Pg/M, Zd.H, Zm.H Zd = Zd + Zm - // BFSUB Zd.H, Pg/M, Zd.H, Zm.H Zd = Zd - Zm - // BFMUL Zd.H, Pg/M, Zd.H, Zm.H Zd = Zd * Zm - // BFMLA Zda.H, Pg/M, Zn.H, Zm.H Zda += Zn * Zm - // BFMLS Zda.H, Pg/M, Zn.H, Zm.H Zda -= Zn * Zm - // - // All use the standard SVE predicated 3-same layout (same shape as - // FADD_PRED etc.) but with BF16-specific opcode bits. - - .SVE_BFADD = { {.SVE_BFADD, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65008000, 0xFFE0E000, .SVE, {}} }, - .SVE_BFSUB = { {.SVE_BFSUB, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65018000, 0xFFE0E000, .SVE, {}} }, - .SVE_BFMUL = { {.SVE_BFMUL, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65028000, 0xFFE0E000, .SVE, {}} }, - .SVE_BFMLA = { {.SVE_BFMLA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VN, .VM}, 0x65200000, 0xFFE0E000, .SVE, {}} }, - .SVE_BFMLS = { {.SVE_BFMLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VN, .VM}, 0x65202000, 0xFFE0E000, .SVE, {}} }, - - // ========================================================================= - // §49 Speculation / profiling barriers + speculation hints - // ========================================================================= - // - // SB = 0xD50330FF (Speculation Barrier, v8.0) - // CSDB = 0xD503229F (Consumption of Speculative Data Barrier) - // DGH = 0xD50320DF (Data Gathering Hint, v8.5-A) - // PSB CSYNC = 0xD503223F (Profile Sync Barrier) - // TSB CSYNC = 0xD503225F (Trace Sync Barrier, v8.4-A SPE) - // BTI j = 0xD503245F (Branch Target Identification: j) - // BTI c = 0xD503249F (BTI: c) - // BTI jc = 0xD50324DF (BTI: jc) - - .SB = { {.SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50330FF, 0xFFFFFFFF, .BASE, {}} }, - .CSDB = { {.CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503229F, 0xFFFFFFFF, .BASE, {}} }, - .DGH = { {.DGH, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320DF, 0xFFFFFFFF, .BASE, {}} }, - .PSB_CSYNC = { {.PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503223F, 0xFFFFFFFF, .BASE, {}} }, - .TSB_CSYNC = { {.TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503225F, 0xFFFFFFFF, .BASE, {}} }, - .BTI_J = { {.BTI_J, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503245F, 0xFFFFFFFF, .BTI, {}} }, - .BTI_C = { {.BTI_C, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503249F, 0xFFFFFFFF, .BTI, {}} }, - .BTI_JC = { {.BTI_JC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50324DF, 0xFFFFFFFF, .BTI, {}} }, - - // ========================================================================= - // §50 NEON aliases (printed canonically; encode as the underlying op) - // ========================================================================= - // - // MOV Vd., Vn. = ORR Vd., Vn., Vn. (Rm = Rn) - // NOT Vd., Vn. = MVN with Rm = Rn (NEON vector form) - // - // For both we use Rn at both bit positions; the user passes Vd, Vn and - // the encoder duplicates Vn into the Rm slot via two RM-style packs. - - .MOV_V_ALIAS = { - // 8B form: 0x0EA01C00 base; Rm=Rn duplicated - {.MOV_V_ALIAS, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {}}, - // 16B: 0x4EA01C00 - {.MOV_V_ALIAS, {.V_16B,.V_16B,.NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {}}, - }, - .NOT_V_ALIAS = { - // NOT.8B Vd, Vn = 0x2E205800 (Q=0) - {.NOT_V_ALIAS, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {}}, - // NOT.16B Vd, Vn = 0x6E205800 (Q=1) - {.NOT_V_ALIAS, {.V_16B,.V_16B,.NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {}}, - }, - - // ========================================================================= - // §51 Shift-by-immediate aliases (LSR / ASR with shift in IMM_5 / IMM_6) - // ========================================================================= - // - // LSR Wd, Wn, #imm = UBFM Wd, Wn, #imm, #31 base 0x53007C00 - // LSR Xd, Xn, #imm = UBFM Xd, Xn, #imm, #63 base 0xD340FC00 - // ASR Wd, Wn, #imm = SBFM Wd, Wn, #imm, #31 base 0x13007C00 - // ASR Xd, Xn, #imm = SBFM Xd, Xn, #imm, #63 base 0x9340FC00 - // - // The shift amount (user-passed immediate) goes into the immr field at - // bits 21:16. The imms field is fully static (31 or 63 baked in). - // - // LSL Wd/Xd is more complex (immr = -imm mod regsize, imms = regsize-1-imm) - // and is intentionally omitted -- users construct via UBFM directly with - // pre-computed fields. - - .LSR_IMM = { - {.LSR_IMM, {.W_REG, .W_REG, .IMM_5, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {}}, - {.LSR_IMM, {.X_REG, .X_REG, .IMM_6, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true}}, - }, - .ASR_IMM = { - {.ASR_IMM, {.W_REG, .W_REG, .IMM_5, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {}}, - {.ASR_IMM, {.X_REG, .X_REG, .IMM_6, .NONE}, {.RD, .RN, .IMM12, .NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true}}, - }, - - // Note: IMM12 encoding places the operand into bits 21:10 (12 bits). - // For LSR/ASR we want immr at bits 21:16 (5 bits) but use IMM12 since - // bits 15:10 are static (imms field = 31/63 baked in). The packer's - // 12-bit shift puts the user value at bits 21:10, and the static imms - // bits OR over the low 6 to fix imms = 31 (for W) or 63 (for X). - // Mask 0xFFC0FC00 leaves bits 21:16 + 15:10 free for operand + verifies imms. - // (Operand encoding done in encoder.odin packer; mask above ensures - // imms is verified static at 31 for W and 63 for X via the bits field.) - // Actually 0x53007C00 has bits 15:10 = 011111 = 31 ✓ and mask - // 0xFFC0FC00 covers bits 15:10 too (mask byte 1 = 0xFC) so imms is - // matched static. Good. - - // ========================================================================= - // §52 LSL_IMM / ROR_IMM composite-packed aliases - // ========================================================================= - // - // LSL Rd, Rn, #imm = UBFM Rd, Rn, #(-imm % regsize), #(regsize-1-imm) - // ROR Rd, Rn, #imm = EXTR Rd, Rn, Rn, #imm (Rm = Rn) - // - // LSL: the user's single shift amount drives BOTH immr (bits 21:16) - // and imms (bits 15:10). The ENC_LSL_IMM_W/X packer computes both - // fields from one operand. - // - // ROR: the source register is packed at BOTH the Rn (9:5) and Rm - // (20:16) slots via ENC_DUAL_RN_RM; shift goes to imms (15:10). - - .LSL_IMM = { - {.LSL_IMM, {.W_REG, .W_REG, .IMM_5, .NONE}, {.RD, .RN, .ENC_LSL_IMM_W, .NONE}, 0x53000000, 0xFFC00000, .BASE, {}}, - {.LSL_IMM, {.X_REG, .X_REG, .IMM_6, .NONE}, {.RD, .RN, .ENC_LSL_IMM_X, .NONE}, 0xD3400000, 0xFFC00000, .BASE, {is_64=true}}, - }, - .ROR_IMM = { - // EXTR Rd, Rn, Rn, #lsb: bits = 0x13800000 (32-bit) / 0x93C00000 (64-bit, N=1) - {.ROR_IMM, {.W_REG, .W_REG, .IMM_5, .NONE}, {.RD, .ENC_DUAL_RN_RM, .ENC_ROR_SHIFT, .NONE}, 0x13800000, 0xFFE00000, .BASE, {}}, - {.ROR_IMM, {.X_REG, .X_REG, .IMM_6, .NONE}, {.RD, .ENC_DUAL_RN_RM, .ENC_ROR_SHIFT, .NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true}}, - }, - - // ========================================================================= - // §53 SVE2.1 / SME2 BF16 unpredicated + min/max + clamp - // ========================================================================= - // - // BFADD Zd.H, Zn.H, Zm.H (unpredicated, SVE2.1) - // BFSUB Zd.H, Zn.H, Zm.H - // BFMUL Zd.H, Zn.H, Zm.H - // BFCLAMP Zd.H, Zn.H, Zm.H -- Zd = clamp(Zd, Zn, Zm) (min then max) - // BFMAXNM, BFMINNM -- predicated max/min-num for BF16 - - .SVE_BFADD_UNPRED = { {.SVE_BFADD_UNPRED, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65000000, 0xFFE0FC00, .SVE2, {}} }, - .SVE_BFSUB_UNPRED = { {.SVE_BFSUB_UNPRED, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65000400, 0xFFE0FC00, .SVE2, {}} }, - .SVE_BFMUL_UNPRED = { {.SVE_BFMUL_UNPRED, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x65000800, 0xFFE0FC00, .SVE2, {}} }, - .SVE_BFCLAMP = { {.SVE_BFCLAMP, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x64202400, 0xFFE0FC00, .SVE2, {}} }, - .SVE_BFMAXNM = { {.SVE_BFMAXNM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65048000, 0xFFE0E000, .SVE2, {}} }, - .SVE_BFMINNM = { {.SVE_BFMINNM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VM}, 0x65058000, 0xFFE0E000, .SVE2, {}} }, - - // ========================================================================= - // §54 SME2 multi-vector: LUTI2/LUTI4 + contiguous list LD1/ST1 - // ========================================================================= - // - // SME2 introduces multi-vector instructions taking a 2-vector list - // {Zt-Zt+1} or 4-vector list {Zt-Zt+3} as the operand. The starting - // Z register's number is constrained to be even (pair) or a multiple - // of 4 (quad), validated by the matcher (Z_PAIR / Z_QUAD types). - // - // The encodings here are representative starting bases; the exact - // sub-opcode bits within each family are best-memory and will need - // verification against the SME2 spec when actually exercised. - - .SME2_LUTI2_B = { {.SME2_LUTI2_B, {.Z_PAIR, .Z_PAIR, .Z_REG_B, .IMM_3}, {.ENC_Z_PAIR_VD, .ENC_Z_PAIR_VN, .VM, .IMM12}, 0xC08C4000, 0xFFE0F000, .SME, {}} }, - .SME2_LUTI4_B = { {.SME2_LUTI4_B, {.Z_PAIR, .Z_PAIR, .Z_REG_B, .IMM_2}, {.ENC_Z_PAIR_VD, .ENC_Z_PAIR_VN, .VM, .IMM12}, 0xC08A4000, 0xFFE0F000, .SME, {}} }, - - // SME2 multi-vector contiguous loads / stores. Form: - // LD1B { Zt0.B, Zt1.B }, Pg/Z, [Xn, Xm] (2-vector) - // LD1B { Zt0.B - Zt3.B }, Pg/Z, [Xn, Xm] (4-vector) - // ST1B { Zt0.B, Zt1.B }, Pg, [Xn, Xm] - // ST1B { Zt0.B - Zt3.B }, Pg, [Xn, Xm] - // - // Bases differ by the {x2}/{x4} marker in the sub-opcode bits. - - .SME2_LD1B_X2 = { {.SME2_LD1B_X2, {.Z_PAIR, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0000000, 0xFFE0E000, .SME, {}} }, - .SME2_LD1H_X2 = { {.SME2_LD1H_X2, {.Z_PAIR, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0002000, 0xFFE0E000, .SME, {}} }, - .SME2_LD1W_X2 = { {.SME2_LD1W_X2, {.Z_PAIR, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0004000, 0xFFE0E000, .SME, {}} }, - .SME2_LD1D_X2 = { {.SME2_LD1D_X2, {.Z_PAIR, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0006000, 0xFFE0E000, .SME, {is_64=true}} }, - - .SME2_LD1B_X4 = { {.SME2_LD1B_X4, {.Z_QUAD, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0008000, 0xFFE0E000, .SME, {}} }, - .SME2_LD1H_X4 = { {.SME2_LD1H_X4, {.Z_QUAD, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA000A000, 0xFFE0E000, .SME, {}} }, - .SME2_LD1W_X4 = { {.SME2_LD1W_X4, {.Z_QUAD, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA000C000, 0xFFE0E000, .SME, {}} }, - .SME2_LD1D_X4 = { {.SME2_LD1D_X4, {.Z_QUAD, .P_REG_ZERO, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA000E000, 0xFFE0E000, .SME, {is_64=true}} }, - - .SME2_ST1B_X2 = { {.SME2_ST1B_X2, {.Z_PAIR, .P_REG, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0200000, 0xFFE0E000, .SME, {}} }, - .SME2_ST1H_X2 = { {.SME2_ST1H_X2, {.Z_PAIR, .P_REG, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0202000, 0xFFE0E000, .SME, {}} }, - .SME2_ST1W_X2 = { {.SME2_ST1W_X2, {.Z_PAIR, .P_REG, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0204000, 0xFFE0E000, .SME, {}} }, - .SME2_ST1D_X2 = { {.SME2_ST1D_X2, {.Z_PAIR, .P_REG, .MEM, .NONE}, {.ENC_Z_PAIR_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0206000, 0xFFE0E000, .SME, {is_64=true}} }, - - .SME2_ST1B_X4 = { {.SME2_ST1B_X4, {.Z_QUAD, .P_REG, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA0208000, 0xFFE0E000, .SME, {}} }, - .SME2_ST1H_X4 = { {.SME2_ST1H_X4, {.Z_QUAD, .P_REG, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA020A000, 0xFFE0E000, .SME, {}} }, - .SME2_ST1W_X4 = { {.SME2_ST1W_X4, {.Z_QUAD, .P_REG, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA020C000, 0xFFE0E000, .SME, {}} }, - .SME2_ST1D_X4 = { {.SME2_ST1D_X4, {.Z_QUAD, .P_REG, .MEM, .NONE}, {.ENC_Z_QUAD_VD, .PG, .SVE_OFFSET_BASE_SS, .NONE}, 0xA020E000, 0xFFE0E000, .SME, {is_64=true}} }, - - // SME2 ZIP/UZP 3-way and 4-way multi-vector permutations (subset). - // ZIP_3/UZP_3: pair result from two single sources (3-operand) - // ZIP_4/UZP_4: quad list result from quad list source (2-operand, 4-vec) - .SME2_ZIP_3 = { {.SME2_ZIP_3, {.Z_PAIR, .Z_REG_B, .Z_REG_B, .NONE}, {.ENC_Z_PAIR_VD, .VN, .VM, .NONE}, 0xC120D000, 0xFFE0FC00, .SME, {}} }, - .SME2_ZIP_4 = { {.SME2_ZIP_4, {.Z_QUAD, .Z_QUAD, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .ENC_Z_QUAD_VN, .NONE, .NONE}, 0xC136E000, 0xFFFFFC00, .SME, {}} }, - .SME2_UZP_3 = { {.SME2_UZP_3, {.Z_PAIR, .Z_REG_B, .Z_REG_B, .NONE}, {.ENC_Z_PAIR_VD, .VN, .VM, .NONE}, 0xC120D001, 0xFFE0FC00, .SME, {}} }, - .SME2_UZP_4 = { {.SME2_UZP_4, {.Z_QUAD, .Z_QUAD, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .ENC_Z_QUAD_VN, .NONE, .NONE}, 0xC136E002, 0xFFFFFC00, .SME, {}} }, - - // ========================================================================= - // §55 RME (Realm Management Extension, ARMv9-A) - // ========================================================================= - // - // TLBI RPALOS Xt -- invalidate by physical addr (last level) - // TLBI RPAOS Xt -- invalidate by physical addr (all levels) - // TLBI PAALL -- invalidate all entries in physical AS - // TLBI PAALLOS -- same, outer shareable - // AT S1E1A Xt -- stage-1 translate with implicit authority - // DC CIPAPA Xt -- cache mgmt by physical addr, clean+invalidate - // DC CIGDPAPA Xt -- same, including tags - - .TLBI_RPALOS = { {.TLBI_RPALOS, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5084EE0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_RPAOS = { {.TLBI_RPAOS, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5084EA0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .TLBI_PAALL = { {.TLBI_PAALL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508E89F, 0xFFFFFFFF, .BASE, {}} }, - .TLBI_PAALLOS = { {.TLBI_PAALLOS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508E81F, 0xFFFFFFFF, .BASE, {}} }, - .AT_S1E1A = { {.AT_S1E1A, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD5079140, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CIPAPA = { {.DC_CIPAPA, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50E7CE0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - .DC_CIGDPAPA = { {.DC_CIGDPAPA, {.X_REG, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE}, 0xD50E7DE0, 0xFFFFFFE0, .BASE, {is_64=true}} }, - - // ========================================================================= - // SPECGEN — auto-generated, llvm-mc-verified encode forms (NEON/SVE/SME/...). - // Regenerate via: luajit tablegen/specgen.lua · do NOT hand-edit this region. - // ========================================================================= - // SPECGEN:BEGIN - // Advanced SIMD three-same (integer). - .SHADD = { - {.SHADD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {}}, - {.SHADD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {}}, - {.SHADD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {}}, - {.SHADD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {}}, - {.SHADD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {}}, - {.SHADD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {}}, - }, - .UHADD = { - {.UHADD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {}}, - {.UHADD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {}}, - {.UHADD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {}}, - {.UHADD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {}}, - {.UHADD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {}}, - {.UHADD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {}}, - }, - .SHSUB = { - {.SHSUB, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {}}, - {.SHSUB, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {}}, - {.SHSUB, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {}}, - {.SHSUB, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {}}, - {.SHSUB, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {}}, - {.SHSUB, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {}}, - }, - .UHSUB = { - {.UHSUB, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {}}, - {.UHSUB, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {}}, - {.UHSUB, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {}}, - {.UHSUB, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {}}, - {.UHSUB, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {}}, - {.UHSUB, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {}}, - }, - .SRHADD = { - {.SRHADD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {}}, - {.SRHADD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {}}, - {.SRHADD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {}}, - {.SRHADD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {}}, - {.SRHADD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {}}, - {.SRHADD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {}}, - }, - .URHADD = { - {.URHADD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {}}, - {.URHADD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {}}, - {.URHADD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {}}, - {.URHADD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {}}, - {.URHADD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {}}, - {.URHADD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {}}, - }, - .SQADD = { - {.SQADD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {}}, - {.SQADD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {}}, - {.SQADD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {}}, - {.SQADD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {}}, - {.SQADD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {}}, - {.SQADD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {}}, - {.SQADD, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {}}, - }, - .UQADD = { - {.UQADD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {}}, - {.UQADD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {}}, - {.UQADD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {}}, - {.UQADD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {}}, - {.UQADD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {}}, - {.UQADD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {}}, - {.UQADD, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {}}, - }, - .SQSUB = { - {.SQSUB, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {}}, - {.SQSUB, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {}}, - {.SQSUB, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {}}, - {.SQSUB, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {}}, - {.SQSUB, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {}}, - {.SQSUB, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {}}, - {.SQSUB, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {}}, - }, - .UQSUB = { - {.UQSUB, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {}}, - {.UQSUB, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {}}, - {.UQSUB, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {}}, - {.UQSUB, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {}}, - {.UQSUB, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {}}, - {.UQSUB, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {}}, - {.UQSUB, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {}}, - }, - .SMAX = { - {.SMAX, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {}}, - {.SMAX, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {}}, - {.SMAX, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {}}, - {.SMAX, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {}}, - {.SMAX, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {}}, - {.SMAX, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {}}, - }, - .UMAX = { - {.UMAX, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {}}, - {.UMAX, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {}}, - {.UMAX, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {}}, - {.UMAX, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {}}, - {.UMAX, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {}}, - {.UMAX, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {}}, - }, - .SMIN = { - {.SMIN, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {}}, - {.SMIN, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {}}, - {.SMIN, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {}}, - {.SMIN, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {}}, - {.SMIN, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {}}, - {.SMIN, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {}}, - }, - .UMIN = { - {.UMIN, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {}}, - {.UMIN, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {}}, - {.UMIN, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {}}, - {.UMIN, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {}}, - {.UMIN, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {}}, - {.UMIN, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {}}, - }, - .SABD = { - {.SABD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {}}, - {.SABD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {}}, - {.SABD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {}}, - {.SABD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {}}, - {.SABD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {}}, - {.SABD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {}}, - }, - .UABD = { - {.UABD, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {}}, - {.UABD, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {}}, - {.UABD, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {}}, - {.UABD, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {}}, - {.UABD, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {}}, - {.UABD, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {}}, - }, - .SABA = { - {.SABA, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {}}, - {.SABA, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {}}, - {.SABA, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {}}, - {.SABA, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {}}, - {.SABA, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {}}, - {.SABA, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {}}, - }, - .UABA = { - {.UABA, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {}}, - {.UABA, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {}}, - {.UABA, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {}}, - {.UABA, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {}}, - {.UABA, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {}}, - {.UABA, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {}}, - }, - .MLA_V = { - {.MLA_V, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E209400, 0xFFE0FC00, .NEON, {}}, - {.MLA_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E209400, 0xFFE0FC00, .NEON, {}}, - {.MLA_V, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E609400, 0xFFE0FC00, .NEON, {}}, - {.MLA_V, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E609400, 0xFFE0FC00, .NEON, {}}, - {.MLA_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA09400, 0xFFE0FC00, .NEON, {}}, - {.MLA_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA09400, 0xFFE0FC00, .NEON, {}}, - }, - .MLS_V = { - {.MLS_V, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {}}, - {.MLS_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {}}, - {.MLS_V, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {}}, - {.MLS_V, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {}}, - {.MLS_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {}}, - {.MLS_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {}}, - }, - .CMGE = { - {.CMGE, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {}}, - {.CMGE, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {}}, - {.CMGE, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {}}, - {.CMGE, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {}}, - {.CMGE, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {}}, - {.CMGE, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {}}, - {.CMGE, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {}}, - }, - .CMHS = { - {.CMHS, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {}}, - {.CMHS, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {}}, - {.CMHS, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {}}, - {.CMHS, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {}}, - {.CMHS, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {}}, - {.CMHS, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {}}, - {.CMHS, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {}}, - }, - .CMTST = { - {.CMTST, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {}}, - {.CMTST, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {}}, - {.CMTST, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {}}, - {.CMTST, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {}}, - {.CMTST, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {}}, - {.CMTST, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {}}, - {.CMTST, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMULH = { - {.SQDMULH, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {}}, - {.SQDMULH, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {}}, - {.SQDMULH, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {}}, - {.SQDMULH, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {}}, - }, - .SQRDMULH = { - {.SQRDMULH, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {}}, - {.SQRDMULH, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {}}, - {.SQRDMULH, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {}}, - {.SQRDMULH, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {}}, - }, - .ADDP_V = { - {.ADDP_V, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {}}, - {.ADDP_V, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {}}, - {.ADDP_V, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {}}, - {.ADDP_V, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {}}, - {.ADDP_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {}}, - {.ADDP_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {}}, - {.ADDP_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {}}, - }, - .SMAXP = { - {.SMAXP, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {}}, - {.SMAXP, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {}}, - {.SMAXP, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {}}, - {.SMAXP, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {}}, - {.SMAXP, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {}}, - {.SMAXP, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {}}, - }, - .SMINP = { - {.SMINP, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {}}, - {.SMINP, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {}}, - {.SMINP, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {}}, - {.SMINP, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {}}, - {.SMINP, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {}}, - {.SMINP, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {}}, - }, - .UMAXP = { - {.UMAXP, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {}}, - {.UMAXP, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {}}, - {.UMAXP, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {}}, - {.UMAXP, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {}}, - {.UMAXP, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {}}, - {.UMAXP, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {}}, - }, - .UMINP = { - {.UMINP, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {}}, - {.UMINP, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {}}, - {.UMINP, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {}}, - {.UMINP, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {}}, - {.UMINP, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {}}, - {.UMINP, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {}}, - }, - .SSHL = { - {.SSHL, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {}}, - {.SSHL, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {}}, - {.SSHL, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {}}, - {.SSHL, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {}}, - {.SSHL, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {}}, - {.SSHL, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {}}, - {.SSHL, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {}}, - }, - .USHL = { - {.USHL, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {}}, - {.USHL, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {}}, - {.USHL, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {}}, - {.USHL, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {}}, - {.USHL, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {}}, - {.USHL, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {}}, - {.USHL, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {}}, - }, - .SRSHL = { - {.SRSHL, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {}}, - {.SRSHL, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {}}, - {.SRSHL, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {}}, - {.SRSHL, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {}}, - {.SRSHL, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {}}, - {.SRSHL, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {}}, - {.SRSHL, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {}}, - }, - .URSHL = { - {.URSHL, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {}}, - {.URSHL, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {}}, - {.URSHL, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {}}, - {.URSHL, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {}}, - {.URSHL, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {}}, - {.URSHL, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {}}, - {.URSHL, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {}}, - }, - - // Advanced SIMD permute (ZIP/UZP/TRN). - .ZIP1 = { - {.ZIP1, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E003800, 0xFFE0FC00, .NEON, {}}, - {.ZIP1, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E003800, 0xFFE0FC00, .NEON, {}}, - {.ZIP1, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E403800, 0xFFE0FC00, .NEON, {}}, - {.ZIP1, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E403800, 0xFFE0FC00, .NEON, {}}, - {.ZIP1, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E803800, 0xFFE0FC00, .NEON, {}}, - {.ZIP1, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E803800, 0xFFE0FC00, .NEON, {}}, - {.ZIP1, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC03800, 0xFFE0FC00, .NEON, {}}, - }, - .ZIP2 = { - {.ZIP2, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E007800, 0xFFE0FC00, .NEON, {}}, - {.ZIP2, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E007800, 0xFFE0FC00, .NEON, {}}, - {.ZIP2, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E407800, 0xFFE0FC00, .NEON, {}}, - {.ZIP2, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E407800, 0xFFE0FC00, .NEON, {}}, - {.ZIP2, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E807800, 0xFFE0FC00, .NEON, {}}, - {.ZIP2, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E807800, 0xFFE0FC00, .NEON, {}}, - {.ZIP2, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC07800, 0xFFE0FC00, .NEON, {}}, - }, - .UZP1 = { - {.UZP1, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E001800, 0xFFE0FC00, .NEON, {}}, - {.UZP1, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E001800, 0xFFE0FC00, .NEON, {}}, - {.UZP1, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E401800, 0xFFE0FC00, .NEON, {}}, - {.UZP1, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E401800, 0xFFE0FC00, .NEON, {}}, - {.UZP1, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E801800, 0xFFE0FC00, .NEON, {}}, - {.UZP1, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E801800, 0xFFE0FC00, .NEON, {}}, - {.UZP1, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC01800, 0xFFE0FC00, .NEON, {}}, - }, - .UZP2 = { - {.UZP2, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E005800, 0xFFE0FC00, .NEON, {}}, - {.UZP2, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E005800, 0xFFE0FC00, .NEON, {}}, - {.UZP2, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E405800, 0xFFE0FC00, .NEON, {}}, - {.UZP2, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E405800, 0xFFE0FC00, .NEON, {}}, - {.UZP2, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E805800, 0xFFE0FC00, .NEON, {}}, - {.UZP2, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E805800, 0xFFE0FC00, .NEON, {}}, - {.UZP2, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC05800, 0xFFE0FC00, .NEON, {}}, - }, - .TRN1 = { - {.TRN1, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E002800, 0xFFE0FC00, .NEON, {}}, - {.TRN1, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E002800, 0xFFE0FC00, .NEON, {}}, - {.TRN1, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E402800, 0xFFE0FC00, .NEON, {}}, - {.TRN1, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E402800, 0xFFE0FC00, .NEON, {}}, - {.TRN1, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E802800, 0xFFE0FC00, .NEON, {}}, - {.TRN1, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E802800, 0xFFE0FC00, .NEON, {}}, - {.TRN1, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC02800, 0xFFE0FC00, .NEON, {}}, - }, - .TRN2 = { - {.TRN2, {.V_8B, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E006800, 0xFFE0FC00, .NEON, {}}, - {.TRN2, {.V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E006800, 0xFFE0FC00, .NEON, {}}, - {.TRN2, {.V_4H, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E406800, 0xFFE0FC00, .NEON, {}}, - {.TRN2, {.V_8H, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E406800, 0xFFE0FC00, .NEON, {}}, - {.TRN2, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E806800, 0xFFE0FC00, .NEON, {}}, - {.TRN2, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E806800, 0xFFE0FC00, .NEON, {}}, - {.TRN2, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC06800, 0xFFE0FC00, .NEON, {}}, - }, - - // Advanced SIMD two-register misc. - .ABS_V = { - {.ABS_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {}}, - {.ABS_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {}}, - {.ABS_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {}}, - {.ABS_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {}}, - {.ABS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {}}, - {.ABS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {}}, - {.ABS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {}}, - }, - .NEG_V = { - {.NEG_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {}}, - {.NEG_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {}}, - {.NEG_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {}}, - {.NEG_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {}}, - {.NEG_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {}}, - {.NEG_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {}}, - {.NEG_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {}}, - }, - .NOT_V = { - {.NOT_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {}}, - {.NOT_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {}}, - }, - .RBIT_V = { - {.RBIT_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {}}, - {.RBIT_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {}}, - }, - .REV16_V = { - {.REV16_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {}}, - {.REV16_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {}}, - }, - .REV32_V = { - {.REV32_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {}}, - {.REV32_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {}}, - {.REV32_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {}}, - {.REV32_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {}}, - }, - .REV64 = { - {.REV64, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {}}, - {.REV64, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {}}, - {.REV64, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {}}, - {.REV64, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {}}, - {.REV64, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {}}, - {.REV64, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {}}, - }, - .CLS_V = { - {.CLS_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {}}, - {.CLS_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {}}, - {.CLS_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {}}, - {.CLS_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {}}, - {.CLS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {}}, - {.CLS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {}}, - }, - .CLZ_V = { - {.CLZ_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {}}, - {.CLZ_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {}}, - {.CLZ_V, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {}}, - {.CLZ_V, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {}}, - {.CLZ_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {}}, - {.CLZ_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {}}, - }, - .CNT = { - {.CNT, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {}}, - {.CNT, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {}}, - }, - .URECPE_V = { - {.URECPE_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {}}, - {.URECPE_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {}}, - }, - .URSQRTE_V = { - {.URSQRTE_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {}}, - {.URSQRTE_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {}}, - }, - - // Advanced SIMD floating-point three-same. - .FMAX_V = { - {.FMAX_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {}}, - {.FMAX_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {}}, - {.FMAX_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {}}, - {.FMAX_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {}}, - {.FMAX_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {}}, - }, - .FMIN_V = { - {.FMIN_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {}}, - {.FMIN_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {}}, - {.FMIN_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {}}, - {.FMIN_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {}}, - {.FMIN_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {}}, - }, - .FMAXNM_V = { - {.FMAXNM_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {}}, - {.FMAXNM_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {}}, - {.FMAXNM_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {}}, - {.FMAXNM_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {}}, - {.FMAXNM_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {}}, - }, - .FMINNM_V = { - {.FMINNM_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {}}, - {.FMINNM_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {}}, - {.FMINNM_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {}}, - {.FMINNM_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {}}, - {.FMINNM_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {}}, - }, - .FMULX = { - {.FMULX, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {}}, - {.FMULX, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {}}, - {.FMULX, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {}}, - {.FMULX, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {}}, - {.FMULX, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {}}, - }, - .FRECPS = { - {.FRECPS, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {}}, - {.FRECPS, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {}}, - {.FRECPS, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {}}, - {.FRECPS, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {}}, - {.FRECPS, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {}}, - }, - .FRSQRTS = { - {.FRSQRTS, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {}}, - {.FRSQRTS, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {}}, - {.FRSQRTS, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {}}, - {.FRSQRTS, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {}}, - {.FRSQRTS, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {}}, - }, - .FACGE = { - {.FACGE, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {}}, - {.FACGE, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {}}, - {.FACGE, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {}}, - {.FACGE, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {}}, - {.FACGE, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {}}, - }, - .FACGT = { - {.FACGT, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {}}, - {.FACGT, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {}}, - {.FACGT, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {}}, - {.FACGT, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {}}, - {.FACGT, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {}}, - }, - .FCMEQ = { - {.FCMEQ, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {}}, - {.FCMEQ, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {}}, - {.FCMEQ, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {}}, - {.FCMEQ, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {}}, - {.FCMEQ, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {}}, - }, - .FCMGE = { - {.FCMGE, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {}}, - {.FCMGE, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {}}, - {.FCMGE, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {}}, - {.FCMGE, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {}}, - {.FCMGE, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {}}, - }, - .FCMGT = { - {.FCMGT, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {}}, - {.FCMGT, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {}}, - {.FCMGT, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {}}, - {.FCMGT, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {}}, - {.FCMGT, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {}}, - }, - .FADDP_V = { - {.FADDP_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {}}, - {.FADDP_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {}}, - {.FADDP_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {}}, - {.FADDP_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {}}, - {.FADDP_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {}}, - }, - .FMAXP_V = { - {.FMAXP_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {}}, - {.FMAXP_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {}}, - {.FMAXP_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {}}, - {.FMAXP_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {}}, - {.FMAXP_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {}}, - }, - .FMINP_V = { - {.FMINP_V, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {}}, - {.FMINP_V, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {}}, - {.FMINP_V, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {}}, - {.FMINP_V, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {}}, - {.FMINP_V, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {}}, - }, - .FMAXNMP = { - {.FMAXNMP, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {}}, - {.FMAXNMP, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {}}, - {.FMAXNMP, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {}}, - {.FMAXNMP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {}}, - {.FMAXNMP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {}}, - }, - .FMINNMP = { - {.FMINNMP, {.V_2S, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {}}, - {.FMINNMP, {.V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {}}, - {.FMINNMP, {.V_2D, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {}}, - {.FMINNMP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {}}, - {.FMINNMP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {}}, - }, - - // Advanced SIMD floating-point two-register. - .FABS_V = { - {.FABS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {}}, - {.FABS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {}}, - {.FABS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {}}, - {.FABS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {}}, - {.FABS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {}}, - }, - .FNEG_V = { - {.FNEG_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {}}, - {.FNEG_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {}}, - {.FNEG_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {}}, - {.FNEG_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {}}, - {.FNEG_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {}}, - }, - .FSQRT_V = { - {.FSQRT_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {}}, - {.FSQRT_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {}}, - {.FSQRT_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {}}, - {.FSQRT_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {}}, - {.FSQRT_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTA_V = { - {.FRINTA_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {}}, - {.FRINTA_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {}}, - {.FRINTA_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {}}, - {.FRINTA_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {}}, - {.FRINTA_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTI_V = { - {.FRINTI_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {}}, - {.FRINTI_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {}}, - {.FRINTI_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {}}, - {.FRINTI_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {}}, - {.FRINTI_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTM_V = { - {.FRINTM_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {}}, - {.FRINTM_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {}}, - {.FRINTM_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {}}, - {.FRINTM_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {}}, - {.FRINTM_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTN_V = { - {.FRINTN_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {}}, - {.FRINTN_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {}}, - {.FRINTN_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {}}, - {.FRINTN_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {}}, - {.FRINTN_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTP_V = { - {.FRINTP_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {}}, - {.FRINTP_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {}}, - {.FRINTP_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {}}, - {.FRINTP_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {}}, - {.FRINTP_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTX_V = { - {.FRINTX_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {}}, - {.FRINTX_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {}}, - {.FRINTX_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {}}, - {.FRINTX_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {}}, - {.FRINTX_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTZ_V = { - {.FRINTZ_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {}}, - {.FRINTZ_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {}}, - {.FRINTZ_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {}}, - {.FRINTZ_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {}}, - {.FRINTZ_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {}}, - }, - .FRECPE = { - {.FRECPE, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {}}, - {.FRECPE, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {}}, - {.FRECPE, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {}}, - {.FRECPE, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {}}, - {.FRECPE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {}}, - }, - .FRSQRTE = { - {.FRSQRTE, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {}}, - {.FRSQRTE, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {}}, - {.FRSQRTE, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {}}, - {.FRSQRTE, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {}}, - {.FRSQRTE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {}}, - }, - - // Advanced SIMD floating-point convert (vector, register form). - .FCVTAS_V = { - {.FCVTAS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {}}, - {.FCVTAS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {}}, - {.FCVTAS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {}}, - {.FCVTAS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {}}, - {.FCVTAS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTAU_V = { - {.FCVTAU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {}}, - {.FCVTAU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {}}, - {.FCVTAU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {}}, - {.FCVTAU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {}}, - {.FCVTAU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTMS_V = { - {.FCVTMS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTMS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTMS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTMS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {}}, - {.FCVTMS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTMU_V = { - {.FCVTMU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTMU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTMU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTMU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {}}, - {.FCVTMU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTNS_V = { - {.FCVTNS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTNS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTNS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTNS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {}}, - {.FCVTNS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTNU_V = { - {.FCVTNU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTNU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTNU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTNU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {}}, - {.FCVTNU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTPS_V = { - {.FCVTPS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTPS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTPS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTPS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {}}, - {.FCVTPS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTPU_V = { - {.FCVTPU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTPU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTPU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {}}, - {.FCVTPU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {}}, - {.FCVTPU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTZS_V = { - {.FCVTZS_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTZS_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTZS_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTZS_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {}}, - {.FCVTZS_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTZU_V = { - {.FCVTZU_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTZU_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTZU_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {}}, - {.FCVTZU_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {}}, - {.FCVTZU_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {}}, - }, - .SCVTF_V = { - {.SCVTF_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {}}, - {.SCVTF_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {}}, - {.SCVTF_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {}}, - {.SCVTF_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {}}, - {.SCVTF_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {}}, - }, - .UCVTF_V = { - {.UCVTF_V, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {}}, - {.UCVTF_V, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {}}, - {.UCVTF_V, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {}}, - {.UCVTF_V, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {}}, - {.UCVTF_V, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {}}, - }, - - // Advanced SIMD three-different (long). - .SADDL = { - {.SADDL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {}}, - {.SADDL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {}}, - {.SADDL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {}}, - }, - .SADDL2 = { - {.SADDL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {}}, - {.SADDL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {}}, - {.SADDL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {}}, - }, - .UADDL = { - {.UADDL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {}}, - {.UADDL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {}}, - {.UADDL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {}}, - }, - .UADDL2 = { - {.UADDL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {}}, - {.UADDL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {}}, - {.UADDL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {}}, - }, - .SSUBL = { - {.SSUBL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {}}, - {.SSUBL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {}}, - {.SSUBL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {}}, - }, - .SSUBL2 = { - {.SSUBL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {}}, - {.SSUBL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {}}, - {.SSUBL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {}}, - }, - .USUBL = { - {.USUBL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {}}, - {.USUBL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {}}, - {.USUBL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {}}, - }, - .USUBL2 = { - {.USUBL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {}}, - {.USUBL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {}}, - {.USUBL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {}}, - }, - .SMULL_V = { - {.SMULL_V, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {}}, - {.SMULL_V, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {}}, - {.SMULL_V, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {}}, - }, - .SMULL2_V = { - {.SMULL2_V, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {}}, - {.SMULL2_V, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {}}, - {.SMULL2_V, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {}}, - }, - .UMULL_V = { - {.UMULL_V, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {}}, - {.UMULL_V, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {}}, - {.UMULL_V, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {}}, - }, - .UMULL2_V = { - {.UMULL2_V, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {}}, - {.UMULL2_V, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {}}, - {.UMULL2_V, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {}}, - }, - .SMLAL = { - {.SMLAL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {}}, - {.SMLAL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {}}, - {.SMLAL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {}}, - }, - .SMLAL2 = { - {.SMLAL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {}}, - {.SMLAL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {}}, - {.SMLAL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {}}, - }, - .UMLAL = { - {.UMLAL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {}}, - {.UMLAL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {}}, - {.UMLAL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {}}, - }, - .UMLAL2 = { - {.UMLAL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {}}, - {.UMLAL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {}}, - {.UMLAL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {}}, - }, - .SMLSL = { - {.SMLSL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {}}, - {.SMLSL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {}}, - {.SMLSL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {}}, - }, - .SMLSL2 = { - {.SMLSL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {}}, - {.SMLSL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {}}, - {.SMLSL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {}}, - }, - .UMLSL = { - {.UMLSL, {.V_8H, .V_8B, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {}}, - {.UMLSL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {}}, - {.UMLSL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {}}, - }, - .UMLSL2 = { - {.UMLSL2, {.V_8H, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {}}, - {.UMLSL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {}}, - {.UMLSL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMULL = { - {.SQDMULL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {}}, - {.SQDMULL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMULL2 = { - {.SQDMULL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {}}, - {.SQDMULL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMLAL = { - {.SQDMLAL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {}}, - {.SQDMLAL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMLAL2 = { - {.SQDMLAL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {}}, - {.SQDMLAL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMLSL = { - {.SQDMLSL, {.V_4S, .V_4H, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {}}, - {.SQDMLSL, {.V_2D, .V_2S, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {}}, - }, - .SQDMLSL2 = { - {.SQDMLSL2, {.V_4S, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {}}, - {.SQDMLSL2, {.V_2D, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {}}, - }, - - // Advanced SIMD three-different (wide). - .SADDW = { - {.SADDW, {.V_8H, .V_8H, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {}}, - {.SADDW, {.V_4S, .V_4S, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {}}, - {.SADDW, {.V_2D, .V_2D, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {}}, - }, - .SADDW2 = { - {.SADDW2, {.V_8H, .V_8H, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {}}, - {.SADDW2, {.V_4S, .V_4S, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {}}, - {.SADDW2, {.V_2D, .V_2D, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {}}, - }, - .UADDW = { - {.UADDW, {.V_8H, .V_8H, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {}}, - {.UADDW, {.V_4S, .V_4S, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {}}, - {.UADDW, {.V_2D, .V_2D, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {}}, - }, - .UADDW2 = { - {.UADDW2, {.V_8H, .V_8H, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {}}, - {.UADDW2, {.V_4S, .V_4S, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {}}, - {.UADDW2, {.V_2D, .V_2D, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {}}, - }, - .SSUBW = { - {.SSUBW, {.V_8H, .V_8H, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {}}, - {.SSUBW, {.V_4S, .V_4S, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {}}, - {.SSUBW, {.V_2D, .V_2D, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {}}, - }, - .SSUBW2 = { - {.SSUBW2, {.V_8H, .V_8H, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {}}, - {.SSUBW2, {.V_4S, .V_4S, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {}}, - {.SSUBW2, {.V_2D, .V_2D, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {}}, - }, - .USUBW = { - {.USUBW, {.V_8H, .V_8H, .V_8B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {}}, - {.USUBW, {.V_4S, .V_4S, .V_4H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {}}, - {.USUBW, {.V_2D, .V_2D, .V_2S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {}}, - }, - .USUBW2 = { - {.USUBW2, {.V_8H, .V_8H, .V_16B, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {}}, - {.USUBW2, {.V_4S, .V_4S, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {}}, - {.USUBW2, {.V_2D, .V_2D, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {}}, - }, - - // Advanced SIMD three-different (narrow, halving). - .ADDHN = { - {.ADDHN, {.V_8B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {}}, - {.ADDHN, {.V_4H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {}}, - {.ADDHN, {.V_2S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {}}, - }, - .ADDHN2 = { - {.ADDHN2, {.V_16B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {}}, - {.ADDHN2, {.V_8H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {}}, - {.ADDHN2, {.V_4S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {}}, - }, - .SUBHN = { - {.SUBHN, {.V_8B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {}}, - {.SUBHN, {.V_4H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {}}, - {.SUBHN, {.V_2S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {}}, - }, - .SUBHN2 = { - {.SUBHN2, {.V_16B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {}}, - {.SUBHN2, {.V_8H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {}}, - {.SUBHN2, {.V_4S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {}}, - }, - .RADDHN = { - {.RADDHN, {.V_8B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {}}, - {.RADDHN, {.V_4H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {}}, - {.RADDHN, {.V_2S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {}}, - }, - .RADDHN2 = { - {.RADDHN2, {.V_16B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {}}, - {.RADDHN2, {.V_8H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {}}, - {.RADDHN2, {.V_4S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {}}, - }, - .RSUBHN = { - {.RSUBHN, {.V_8B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {}}, - {.RSUBHN, {.V_4H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {}}, - {.RSUBHN, {.V_2S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {}}, - }, - .RSUBHN2 = { - {.RSUBHN2, {.V_16B, .V_8H, .V_8H, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {}}, - {.RSUBHN2, {.V_8H, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {}}, - {.RSUBHN2, {.V_4S, .V_2D, .V_2D, .NONE}, {.VD, .VN, .VM, .NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {}}, - }, - - // Advanced SIMD two-register narrowing (XTN). - .XTN = { - {.XTN, {.V_8B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {}}, - {.XTN, {.V_4H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {}}, - {.XTN, {.V_2S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {}}, - }, - .XTN2 = { - {.XTN2, {.V_16B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {}}, - {.XTN2, {.V_8H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {}}, - {.XTN2, {.V_4S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {}}, - }, - .SQXTN = { - {.SQXTN, {.V_8B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {}}, - {.SQXTN, {.V_4H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {}}, - {.SQXTN, {.V_2S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {}}, - }, - .SQXTN2 = { - {.SQXTN2, {.V_16B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {}}, - {.SQXTN2, {.V_8H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {}}, - {.SQXTN2, {.V_4S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {}}, - }, - .UQXTN = { - {.UQXTN, {.V_8B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {}}, - {.UQXTN, {.V_4H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {}}, - {.UQXTN, {.V_2S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {}}, - }, - .UQXTN2 = { - {.UQXTN2, {.V_16B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {}}, - {.UQXTN2, {.V_8H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {}}, - {.UQXTN2, {.V_4S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {}}, - }, - .SQXTUN = { - {.SQXTUN, {.V_8B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {}}, - {.SQXTUN, {.V_4H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {}}, - {.SQXTUN, {.V_2S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {}}, - }, - .SQXTUN2 = { - {.SQXTUN2, {.V_16B, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {}}, - {.SQXTUN2, {.V_8H, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {}}, - {.SQXTUN2, {.V_4S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {}}, - }, - - // Advanced SIMD two-register widen (SXTL/UXTL = SSHLL/USHLL #0). - .SXTL = { - {.SXTL, {.V_8H, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {}}, - {.SXTL, {.V_4S, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {}}, - {.SXTL, {.V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {}}, - }, - .SXTL2 = { - {.SXTL2, {.V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {}}, - {.SXTL2, {.V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {}}, - {.SXTL2, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {}}, - }, - .UXTL = { - {.UXTL, {.V_8H, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {}}, - {.UXTL, {.V_4S, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {}}, - {.UXTL, {.V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {}}, - }, - .UXTL2 = { - {.UXTL2, {.V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {}}, - {.UXTL2, {.V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {}}, - {.UXTL2, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {}}, - }, - - // Advanced SIMD two-register pairwise long. - .SADDLP = { - {.SADDLP, {.V_4H, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {}}, - {.SADDLP, {.V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {}}, - {.SADDLP, {.V_2S, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {}}, - {.SADDLP, {.V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {}}, - {.SADDLP, {.V_1D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {}}, - {.SADDLP, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {}}, - }, - .UADDLP = { - {.UADDLP, {.V_4H, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {}}, - {.UADDLP, {.V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {}}, - {.UADDLP, {.V_2S, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {}}, - {.UADDLP, {.V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {}}, - {.UADDLP, {.V_1D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {}}, - {.UADDLP, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {}}, - }, - .SADALP = { - {.SADALP, {.V_4H, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {}}, - {.SADALP, {.V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {}}, - {.SADALP, {.V_2S, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {}}, - {.SADALP, {.V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {}}, - {.SADALP, {.V_1D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {}}, - {.SADALP, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {}}, - }, - .UADALP = { - {.UADALP, {.V_4H, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {}}, - {.UADALP, {.V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {}}, - {.UADALP, {.V_2S, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {}}, - {.UADALP, {.V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {}}, - {.UADALP, {.V_1D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {}}, - {.UADALP, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {}}, - }, - - // Advanced SIMD across lanes. - .ADDV = { - {.ADDV, {.B_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {}}, - {.ADDV, {.B_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {}}, - {.ADDV, {.H_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {}}, - {.ADDV, {.H_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {}}, - {.ADDV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {}}, - }, - .SMAXV = { - {.SMAXV, {.B_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {}}, - {.SMAXV, {.B_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {}}, - {.SMAXV, {.H_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {}}, - {.SMAXV, {.H_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {}}, - {.SMAXV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {}}, - }, - .SMINV = { - {.SMINV, {.B_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {}}, - {.SMINV, {.B_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {}}, - {.SMINV, {.H_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {}}, - {.SMINV, {.H_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {}}, - {.SMINV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {}}, - }, - .UMAXV = { - {.UMAXV, {.B_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {}}, - {.UMAXV, {.B_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {}}, - {.UMAXV, {.H_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {}}, - {.UMAXV, {.H_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {}}, - {.UMAXV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {}}, - }, - .UMINV = { - {.UMINV, {.B_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {}}, - {.UMINV, {.B_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {}}, - {.UMINV, {.H_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {}}, - {.UMINV, {.H_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {}}, - {.UMINV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {}}, - }, - .SADDLV = { - {.SADDLV, {.H_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {}}, - {.SADDLV, {.H_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {}}, - {.SADDLV, {.S_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {}}, - {.SADDLV, {.S_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {}}, - {.SADDLV, {.D_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {}}, - }, - .UADDLV = { - {.UADDLV, {.H_REG, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {}}, - {.UADDLV, {.H_REG, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {}}, - {.UADDLV, {.S_REG, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {}}, - {.UADDLV, {.S_REG, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {}}, - {.UADDLV, {.D_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {}}, - }, - - // Advanced SIMD floating-point across lanes. - .FMAXV_V = { - {.FMAXV_V, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {}}, - {.FMAXV_V, {.H_REG, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {}}, - {.FMAXV_V, {.H_REG, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {}}, - }, - .FMINV_V = { - {.FMINV_V, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {}}, - {.FMINV_V, {.H_REG, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {}}, - {.FMINV_V, {.H_REG, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {}}, - }, - .FMAXNMV = { - {.FMAXNMV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {}}, - {.FMAXNMV, {.H_REG, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {}}, - {.FMAXNMV, {.H_REG, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {}}, - }, - .FMINNMV = { - {.FMINNMV, {.S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {}}, - {.FMINNMV, {.H_REG, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {}}, - {.FMINNMV, {.H_REG, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {}}, - }, - - // Advanced SIMD floating-point widen / narrow. - .FCVTL = { - {.FCVTL, {.V_4S, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {}}, - {.FCVTL, {.V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {}}, - }, - .FCVTL2 = { - {.FCVTL2, {.V_4S, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {}}, - {.FCVTL2, {.V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {}}, - }, - .FCVTN = { - {.FCVTN, {.V_4H_FP16, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {}}, - {.FCVTN, {.V_2S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {}}, - }, - .FCVTN2 = { - {.FCVTN2, {.V_8H_FP16, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {}}, - {.FCVTN2, {.V_4S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {}}, - }, - .FCVTXN = { - {.FCVTXN, {.V_2S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {}}, - }, - .FCVTXN2 = { - {.FCVTXN2, {.V_4S, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {}}, - }, - - // Advanced SIMD compare against zero. - .CMLE = { - {.CMLE, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {}}, - {.CMLE, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {}}, - {.CMLE, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {}}, - {.CMLE, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {}}, - {.CMLE, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {}}, - {.CMLE, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {}}, - {.CMLE, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {}}, - }, - .CMLT = { - {.CMLT, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {}}, - {.CMLT, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {}}, - {.CMLT, {.V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {}}, - {.CMLT, {.V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {}}, - {.CMLT, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {}}, - {.CMLT, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {}}, - {.CMLT, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {}}, - }, - .FCMLE = { - {.FCMLE, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {}}, - {.FCMLE, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {}}, - {.FCMLE, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {}}, - {.FCMLE, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {}}, - {.FCMLE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {}}, - }, - .FCMLT = { - {.FCMLT, {.V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {}}, - {.FCMLT, {.V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {}}, - {.FCMLT, {.V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {}}, - {.FCMLT, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {}}, - {.FCMLT, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {}}, - }, - - // Advanced SIMD shift by immediate. - .SHL_V = { - {.SHL_V, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F085400, 0xFFF8FC00, .NEON, {}}, - {.SHL_V, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {}}, - {.SHL_V, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {}}, - {.SHL_V, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {}}, - {.SHL_V, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F205400, 0xFFE0FC00, .NEON, {}}, - {.SHL_V, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F205400, 0xFFE0FC00, .NEON, {}}, - {.SHL_V, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F405400, 0xFFC0FC00, .NEON, {}}, - }, - .SLI = { - {.SLI, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {}}, - {.SLI, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {}}, - {.SLI, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {}}, - {.SLI, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {}}, - {.SLI, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F205400, 0xFFE0FC00, .NEON, {}}, - {.SLI, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F205400, 0xFFE0FC00, .NEON, {}}, - {.SLI, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F405400, 0xFFC0FC00, .NEON, {}}, - }, - .SQSHLU = { - {.SQSHLU, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {}}, - {.SQSHLU, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {}}, - {.SQSHLU, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {}}, - {.SQSHLU, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {}}, - {.SQSHLU, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F206400, 0xFFE0FC00, .NEON, {}}, - {.SQSHLU, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F206400, 0xFFE0FC00, .NEON, {}}, - {.SQSHLU, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F406400, 0xFFC0FC00, .NEON, {}}, - }, - .SQSHL_V = { - {.SQSHL_V, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {}}, - {.SQSHL_V, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {}}, - {.SQSHL_V, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {}}, - {.SQSHL_V, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {}}, - {.SQSHL_V, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F207400, 0xFFE0FC00, .NEON, {}}, - {.SQSHL_V, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F207400, 0xFFE0FC00, .NEON, {}}, - {.SQSHL_V, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F407400, 0xFFC0FC00, .NEON, {}}, - }, - .SSHR = { - {.SSHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {}}, - {.SSHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {}}, - {.SSHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F100400, 0xFFF0FC00, .NEON, {}}, - {.SSHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {}}, - {.SSHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F200400, 0xFFE0FC00, .NEON, {}}, - {.SSHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F200400, 0xFFE0FC00, .NEON, {}}, - {.SSHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F400400, 0xFFC0FC00, .NEON, {}}, - }, - .USHR = { - {.USHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {}}, - {.USHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {}}, - {.USHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {}}, - {.USHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F100400, 0xFFF0FC00, .NEON, {}}, - {.USHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F200400, 0xFFE0FC00, .NEON, {}}, - {.USHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F200400, 0xFFE0FC00, .NEON, {}}, - {.USHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F400400, 0xFFC0FC00, .NEON, {}}, - }, - .SRSHR = { - {.SRSHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {}}, - {.SRSHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F082400, 0xFFF8FC00, .NEON, {}}, - {.SRSHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {}}, - {.SRSHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {}}, - {.SRSHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F202400, 0xFFE0FC00, .NEON, {}}, - {.SRSHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F202400, 0xFFE0FC00, .NEON, {}}, - {.SRSHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F402400, 0xFFC0FC00, .NEON, {}}, - }, - .URSHR = { - {.URSHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F082400, 0xFFF8FC00, .NEON, {}}, - {.URSHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F082400, 0xFFF8FC00, .NEON, {}}, - {.URSHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {}}, - {.URSHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F102400, 0xFFF0FC00, .NEON, {}}, - {.URSHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F202400, 0xFFE0FC00, .NEON, {}}, - {.URSHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F202400, 0xFFE0FC00, .NEON, {}}, - {.URSHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F402400, 0xFFC0FC00, .NEON, {}}, - }, - .SSRA = { - {.SSRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {}}, - {.SSRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {}}, - {.SSRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {}}, - {.SSRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {}}, - {.SSRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F201400, 0xFFE0FC00, .NEON, {}}, - {.SSRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F201400, 0xFFE0FC00, .NEON, {}}, - {.SSRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F401400, 0xFFC0FC00, .NEON, {}}, - }, - .USRA = { - {.USRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {}}, - {.USRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {}}, - {.USRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {}}, - {.USRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {}}, - {.USRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F201400, 0xFFE0FC00, .NEON, {}}, - {.USRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F201400, 0xFFE0FC00, .NEON, {}}, - {.USRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F401400, 0xFFC0FC00, .NEON, {}}, - }, - .SRSRA = { - {.SRSRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F083400, 0xFFF8FC00, .NEON, {}}, - {.SRSRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F083400, 0xFFF8FC00, .NEON, {}}, - {.SRSRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F103400, 0xFFF0FC00, .NEON, {}}, - {.SRSRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {}}, - {.SRSRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F203400, 0xFFE0FC00, .NEON, {}}, - {.SRSRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F203400, 0xFFE0FC00, .NEON, {}}, - {.SRSRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F403400, 0xFFC0FC00, .NEON, {}}, - }, - .URSRA = { - {.URSRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {}}, - {.URSRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F083400, 0xFFF8FC00, .NEON, {}}, - {.URSRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {}}, - {.URSRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {}}, - {.URSRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F203400, 0xFFE0FC00, .NEON, {}}, - {.URSRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F203400, 0xFFE0FC00, .NEON, {}}, - {.URSRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F403400, 0xFFC0FC00, .NEON, {}}, - }, - .SRI = { - {.SRI, {.V_8B, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {}}, - {.SRI, {.V_16B, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {}}, - {.SRI, {.V_4H, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {}}, - {.SRI, {.V_8H, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {}}, - {.SRI, {.V_2S, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F204400, 0xFFE0FC00, .NEON, {}}, - {.SRI, {.V_4S, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F204400, 0xFFE0FC00, .NEON, {}}, - {.SRI, {.V_2D, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F404400, 0xFFC0FC00, .NEON, {}}, - }, - .SSHLL = { - {.SSHLL, {.V_8H, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {}}, - {.SSHLL, {.V_4S, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {}}, - {.SSHLL, {.V_2D, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x0F20A400, 0xFFE0FC00, .NEON, {}}, - }, - .SSHLL2 = { - {.SSHLL2, {.V_8H, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {}}, - {.SSHLL2, {.V_4S, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {}}, - {.SSHLL2, {.V_2D, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x4F20A400, 0xFFE0FC00, .NEON, {}}, - }, - .USHLL = { - {.USHLL, {.V_8H, .V_8B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {}}, - {.USHLL, {.V_4S, .V_4H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {}}, - {.USHLL, {.V_2D, .V_2S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x2F20A400, 0xFFE0FC00, .NEON, {}}, - }, - .USHLL2 = { - {.USHLL2, {.V_8H, .V_16B, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F08A400, 0xFFF8FC00, .NEON, {}}, - {.USHLL2, {.V_4S, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F10A400, 0xFFF0FC00, .NEON, {}}, - {.USHLL2, {.V_2D, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE}, 0x6F20A400, 0xFFE0FC00, .NEON, {}}, - }, - .SHRN = { - {.SHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F088400, 0xFFF8FC00, .NEON, {}}, - {.SHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F108400, 0xFFF0FC00, .NEON, {}}, - {.SHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F208400, 0xFFE0FC00, .NEON, {}}, - }, - .SHRN2 = { - {.SHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F088400, 0xFFF8FC00, .NEON, {}}, - {.SHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F108400, 0xFFF0FC00, .NEON, {}}, - {.SHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F208400, 0xFFE0FC00, .NEON, {}}, - }, - .RSHRN = { - {.RSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F088C00, 0xFFF8FC00, .NEON, {}}, - {.RSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F108C00, 0xFFF0FC00, .NEON, {}}, - {.RSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F208C00, 0xFFE0FC00, .NEON, {}}, - }, - .RSHRN2 = { - {.RSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F088C00, 0xFFF8FC00, .NEON, {}}, - {.RSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F108C00, 0xFFF0FC00, .NEON, {}}, - {.RSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F208C00, 0xFFE0FC00, .NEON, {}}, - }, - .SQSHRN = { - {.SQSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F089400, 0xFFF8FC00, .NEON, {}}, - {.SQSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F109400, 0xFFF0FC00, .NEON, {}}, - {.SQSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F209400, 0xFFE0FC00, .NEON, {}}, - }, - .SQSHRN2 = { - {.SQSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F089400, 0xFFF8FC00, .NEON, {}}, - {.SQSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F109400, 0xFFF0FC00, .NEON, {}}, - {.SQSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F209400, 0xFFE0FC00, .NEON, {}}, - }, - .UQSHRN = { - {.UQSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F089400, 0xFFF8FC00, .NEON, {}}, - {.UQSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F109400, 0xFFF0FC00, .NEON, {}}, - {.UQSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F209400, 0xFFE0FC00, .NEON, {}}, - }, - .UQSHRN2 = { - {.UQSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F089400, 0xFFF8FC00, .NEON, {}}, - {.UQSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F109400, 0xFFF0FC00, .NEON, {}}, - {.UQSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F209400, 0xFFE0FC00, .NEON, {}}, - }, - .SQRSHRN = { - {.SQRSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F089C00, 0xFFF8FC00, .NEON, {}}, - {.SQRSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F109C00, 0xFFF0FC00, .NEON, {}}, - {.SQRSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x0F209C00, 0xFFE0FC00, .NEON, {}}, - }, - .SQRSHRN2 = { - {.SQRSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F089C00, 0xFFF8FC00, .NEON, {}}, - {.SQRSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F109C00, 0xFFF0FC00, .NEON, {}}, - {.SQRSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x4F209C00, 0xFFE0FC00, .NEON, {}}, - }, - .UQRSHRN = { - {.UQRSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F089C00, 0xFFF8FC00, .NEON, {}}, - {.UQRSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F109C00, 0xFFF0FC00, .NEON, {}}, - {.UQRSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F209C00, 0xFFE0FC00, .NEON, {}}, - }, - .UQRSHRN2 = { - {.UQRSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F089C00, 0xFFF8FC00, .NEON, {}}, - {.UQRSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F109C00, 0xFFF0FC00, .NEON, {}}, - {.UQRSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F209C00, 0xFFE0FC00, .NEON, {}}, - }, - .SQSHRUN = { - {.SQSHRUN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F088400, 0xFFF8FC00, .NEON, {}}, - {.SQSHRUN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F108400, 0xFFF0FC00, .NEON, {}}, - {.SQSHRUN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F208400, 0xFFE0FC00, .NEON, {}}, - }, - .SQSHRUN2 = { - {.SQSHRUN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F088400, 0xFFF8FC00, .NEON, {}}, - {.SQSHRUN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {}}, - {.SQSHRUN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F208400, 0xFFE0FC00, .NEON, {}}, - }, - .SQRSHRUN = { - {.SQRSHRUN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F088C00, 0xFFF8FC00, .NEON, {}}, - {.SQRSHRUN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {}}, - {.SQRSHRUN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x2F208C00, 0xFFE0FC00, .NEON, {}}, - }, - .SQRSHRUN2 = { - {.SQRSHRUN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F088C00, 0xFFF8FC00, .NEON, {}}, - {.SQRSHRUN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {}}, - {.SQRSHRUN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE}, 0x6F208C00, 0xFFE0FC00, .NEON, {}}, - }, - - // Advanced SIMD copy / permute (MOV/MVN/DUP/INS/EXT). - .MOV_V = { - {.MOV_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN_VM_DUP, .NONE, .NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {}}, - {.MOV_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN_VM_DUP, .NONE, .NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {}}, - }, - .MVN_V = { - {.MVN_V, {.V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {}}, - {.MVN_V, {.V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {}}, - }, - .DUP_V = { - {.DUP_V, {.V_8B, .V_ELEM_B, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {}}, - {.DUP_V, {.V_16B, .V_ELEM_B, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {}}, - {.DUP_V, {.V_4H, .V_ELEM_H, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {}}, - {.DUP_V, {.V_8H, .V_ELEM_H, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {}}, - {.DUP_V, {.V_2S, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x0E040400, 0xFFE7FC00, .NEON, {}}, - {.DUP_V, {.V_4S, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x4E040400, 0xFFE7FC00, .NEON, {}}, - {.DUP_V, {.V_2D, .V_ELEM_D, .VEC_INDEX, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {}}, - {.DUP_V, {.V_8B, .W_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {}}, - {.DUP_V, {.V_16B, .W_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {}}, - {.DUP_V, {.V_4H, .W_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {}}, - {.DUP_V, {.V_8H, .W_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {}}, - {.DUP_V, {.V_2S, .W_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {}}, - {.DUP_V, {.V_4S, .W_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {}}, - {.DUP_V, {.V_2D, .X_REG, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {}}, - }, - .INS = { - {.INS, {.V_ELEM_B, .VEC_INDEX, .V_ELEM_B, .VEC_INDEX}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4}, 0x6E010400, 0xFFE18400, .NEON, {}}, - {.INS, {.V_ELEM_H, .VEC_INDEX, .V_ELEM_H, .VEC_INDEX}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4}, 0x6E020400, 0xFFE38C00, .NEON, {}}, - {.INS, {.V_ELEM_S, .VEC_INDEX, .V_ELEM_S, .VEC_INDEX}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4}, 0x6E040400, 0xFFE79C00, .NEON, {}}, - {.INS, {.V_ELEM_D, .VEC_INDEX, .V_ELEM_D, .VEC_INDEX}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4}, 0x6E080400, 0xFFEFBC00, .NEON, {}}, - {.INS, {.V_ELEM_B, .VEC_INDEX, .W_REG, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {}}, - {.INS, {.V_ELEM_H, .VEC_INDEX, .W_REG, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {}}, - {.INS, {.V_ELEM_S, .VEC_INDEX, .W_REG, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE}, 0x4E041C00, 0xFFE7FC00, .NEON, {}}, - {.INS, {.V_ELEM_D, .VEC_INDEX, .X_REG, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE}, 0x4E081C00, 0xFFEFFC00, .NEON, {}}, - }, - .EXT_V = { - {.EXT_V, {.V_8B, .V_8B, .V_8B, .VEC_INDEX}, {.VD, .VN, .VM, .NEON_EXT_IDX}, 0x2E000000, 0xFFE0C400, .NEON, {}}, - {.EXT_V, {.V_16B, .V_16B, .V_16B, .VEC_INDEX}, {.VD, .VN, .VM, .NEON_EXT_IDX}, 0x6E000000, 0xFFE08400, .NEON, {}}, - }, - - // Scalar FP round/reciprocal + FP-to-GPR convert. - .FRINTN = { - {.FRINTN, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E244000, 0xFFFFFC00, .FP, {}}, - {.FRINTN, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E644000, 0xFFFFFC00, .FP, {}}, - {.FRINTN, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE44000, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTP = { - {.FRINTP, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E24C000, 0xFFFFFC00, .FP, {}}, - {.FRINTP, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E64C000, 0xFFFFFC00, .FP, {}}, - {.FRINTP, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE4C000, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTM = { - {.FRINTM, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E254000, 0xFFFFFC00, .FP, {}}, - {.FRINTM, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E654000, 0xFFFFFC00, .FP, {}}, - {.FRINTM, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE54000, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTZ = { - {.FRINTZ, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E25C000, 0xFFFFFC00, .FP, {}}, - {.FRINTZ, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E65C000, 0xFFFFFC00, .FP, {}}, - {.FRINTZ, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE5C000, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTA = { - {.FRINTA, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E264000, 0xFFFFFC00, .FP, {}}, - {.FRINTA, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E664000, 0xFFFFFC00, .FP, {}}, - {.FRINTA, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE64000, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTX = { - {.FRINTX, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E274000, 0xFFFFFC00, .FP, {}}, - {.FRINTX, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E674000, 0xFFFFFC00, .FP, {}}, - {.FRINTX, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE74000, 0xFFFFFC00, .FP16, {}}, - }, - .FRINTI = { - {.FRINTI, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E27C000, 0xFFFFFC00, .FP, {}}, - {.FRINTI, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E67C000, 0xFFFFFC00, .FP, {}}, - {.FRINTI, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE7C000, 0xFFFFFC00, .FP16, {}}, - }, - .FRECPX = { - {.FRECPX, {.S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5EA1F800, 0xFFFFFC00, .FP, {}}, - {.FRECPX, {.D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5EE1F800, 0xFFFFFC00, .FP, {}}, - {.FRECPX, {.H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x5EF9F800, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTAS = { - {.FCVTAS, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E240000, 0xFFFFFC00, .FP, {}}, - {.FCVTAS, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E640000, 0xFFFFFC00, .FP, {}}, - {.FCVTAS, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE40000, 0xFFFFFC00, .FP16, {}}, - {.FCVTAS, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E240000, 0xFFFFFC00, .FP, {}}, - {.FCVTAS, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E640000, 0xFFFFFC00, .FP, {}}, - {.FCVTAS, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EE40000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTAU = { - {.FCVTAU, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E250000, 0xFFFFFC00, .FP, {}}, - {.FCVTAU, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E650000, 0xFFFFFC00, .FP, {}}, - {.FCVTAU, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE50000, 0xFFFFFC00, .FP16, {}}, - {.FCVTAU, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E250000, 0xFFFFFC00, .FP, {}}, - {.FCVTAU, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E650000, 0xFFFFFC00, .FP, {}}, - {.FCVTAU, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EE50000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTMS = { - {.FCVTMS, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E300000, 0xFFFFFC00, .FP, {}}, - {.FCVTMS, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E700000, 0xFFFFFC00, .FP, {}}, - {.FCVTMS, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EF00000, 0xFFFFFC00, .FP16, {}}, - {.FCVTMS, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E300000, 0xFFFFFC00, .FP, {}}, - {.FCVTMS, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E700000, 0xFFFFFC00, .FP, {}}, - {.FCVTMS, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EF00000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTMU = { - {.FCVTMU, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E310000, 0xFFFFFC00, .FP, {}}, - {.FCVTMU, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E710000, 0xFFFFFC00, .FP, {}}, - {.FCVTMU, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EF10000, 0xFFFFFC00, .FP16, {}}, - {.FCVTMU, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E310000, 0xFFFFFC00, .FP, {}}, - {.FCVTMU, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E710000, 0xFFFFFC00, .FP, {}}, - {.FCVTMU, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EF10000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTNS = { - {.FCVTNS, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E200000, 0xFFFFFC00, .FP, {}}, - {.FCVTNS, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E600000, 0xFFFFFC00, .FP, {}}, - {.FCVTNS, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE00000, 0xFFFFFC00, .FP16, {}}, - {.FCVTNS, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E200000, 0xFFFFFC00, .FP, {}}, - {.FCVTNS, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E600000, 0xFFFFFC00, .FP, {}}, - {.FCVTNS, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EE00000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTNU = { - {.FCVTNU, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E210000, 0xFFFFFC00, .FP, {}}, - {.FCVTNU, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E610000, 0xFFFFFC00, .FP, {}}, - {.FCVTNU, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE10000, 0xFFFFFC00, .FP16, {}}, - {.FCVTNU, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E210000, 0xFFFFFC00, .FP, {}}, - {.FCVTNU, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E610000, 0xFFFFFC00, .FP, {}}, - {.FCVTNU, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EE10000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTPS = { - {.FCVTPS, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E280000, 0xFFFFFC00, .FP, {}}, - {.FCVTPS, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E680000, 0xFFFFFC00, .FP, {}}, - {.FCVTPS, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE80000, 0xFFFFFC00, .FP16, {}}, - {.FCVTPS, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E280000, 0xFFFFFC00, .FP, {}}, - {.FCVTPS, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E680000, 0xFFFFFC00, .FP, {}}, - {.FCVTPS, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EE80000, 0xFFFFFC00, .FP16, {}}, - }, - .FCVTPU = { - {.FCVTPU, {.W_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E290000, 0xFFFFFC00, .FP, {}}, - {.FCVTPU, {.W_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1E690000, 0xFFFFFC00, .FP, {}}, - {.FCVTPU, {.W_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x1EE90000, 0xFFFFFC00, .FP16, {}}, - {.FCVTPU, {.X_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E290000, 0xFFFFFC00, .FP, {}}, - {.FCVTPU, {.X_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9E690000, 0xFFFFFC00, .FP, {}}, - {.FCVTPU, {.X_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x9EE90000, 0xFFFFFC00, .FP16, {}}, - }, - - // NEON modified immediate (MOVI/MVNI). - .MOVI = { - {.MOVI, {.V_8B, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {}}, - {.MOVI, {.V_16B, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {}}, - {.MOVI, {.V_4H, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {}}, - {.MOVI, {.V_8H, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {}}, - {.MOVI, {.V_2S, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {}}, - {.MOVI, {.V_4S, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {}}, - {.MOVI, {.V_2D, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {}}, - }, - .MVNI = { - {.MVNI, {.V_4H, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {}}, - {.MVNI, {.V_8H, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {}}, - {.MVNI, {.V_2S, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {}}, - {.MVNI, {.V_4S, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {}}, - }, - - // SVE predicated / compare / predicate-logical / SVE2. - .SVE_FRINTN = { - {.SVE_FRINTN, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6540A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTN, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6580A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTN, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRINTP = { - {.SVE_FRINTP, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6541A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTP, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6581A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTP, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRINTM = { - {.SVE_FRINTM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6542A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTM, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6582A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTM, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRINTZ = { - {.SVE_FRINTZ, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6543A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTZ, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6583A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTZ, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRINTA = { - {.SVE_FRINTA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6544A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTA, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6584A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTA, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRINTX = { - {.SVE_FRINTX, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6546A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTX, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6586A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTX, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRINTI = { - {.SVE_FRINTI, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6547A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTI, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x6587A000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRINTI, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FRECPX_Z = { - {.SVE_FRECPX_Z, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .NONE}, 0x654CA000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRECPX_Z, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x658CA000, 0xFFFFE000, .SVE, {}}, - {.SVE_FRECPX_Z, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_ASRR_PRED = { - {.SVE_ASRR_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VN}, 0x04148000, 0xFFFFE000, .SVE, {}}, - {.SVE_ASRR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VN}, 0x04548000, 0xFFFFE000, .SVE, {}}, - {.SVE_ASRR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VN}, 0x04948000, 0xFFFFE000, .SVE, {}}, - {.SVE_ASRR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VN}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_LSLR_PRED = { - {.SVE_LSLR_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VN}, 0x04178000, 0xFFFFE000, .SVE, {}}, - {.SVE_LSLR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VN}, 0x04578000, 0xFFFFE000, .SVE, {}}, - {.SVE_LSLR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VN}, 0x04978000, 0xFFFFE000, .SVE, {}}, - {.SVE_LSLR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VN}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_LSRR_PRED = { - {.SVE_LSRR_PRED, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.VD, .PG, .VD, .VN}, 0x04158000, 0xFFFFE000, .SVE, {}}, - {.SVE_LSRR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VN}, 0x04558000, 0xFFFFE000, .SVE, {}}, - {.SVE_LSRR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VN}, 0x04958000, 0xFFFFE000, .SVE, {}}, - {.SVE_LSRR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VN}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FSUBR_PRED = { - {.SVE_FSUBR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VN}, 0x65438000, 0xFFFFE000, .SVE, {}}, - {.SVE_FSUBR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VN}, 0x65838000, 0xFFFFE000, .SVE, {}}, - {.SVE_FSUBR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VN}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FDIVR_PRED = { - {.SVE_FDIVR_PRED, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.VD, .PG, .VD, .VN}, 0x654C8000, 0xFFFFE000, .SVE, {}}, - {.SVE_FDIVR_PRED, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.VD, .PG, .VD, .VN}, 0x658C8000, 0xFFFFE000, .SVE, {}}, - {.SVE_FDIVR_PRED, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D}, {.VD, .PG, .VD, .VN}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_FCMEQ = { - {.SVE_FCMEQ, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x65406000, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMEQ, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x65806000, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMEQ, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true}}, - }, - .SVE_FCMGE = { - {.SVE_FCMGE, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x65404000, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMGE, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x65804000, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMGE, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true}}, - }, - .SVE_FCMGT = { - {.SVE_FCMGT, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x65404010, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMGT, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x65804010, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMGT, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true}}, - }, - .SVE_FCMNE = { - {.SVE_FCMNE, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x65406010, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMNE, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x65806010, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMNE, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true}}, - }, - .SVE_FCMUO = { - {.SVE_FCMUO, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VN, .VM}, 0x6540C000, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMUO, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VN, .VM}, 0x6580C000, 0xFFE0E010, .SVE, {}}, - {.SVE_FCMUO, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VN, .VM}, 0x65C0C000, 0xFFE0E010, .SVE, {is_64=true}}, - }, - .SVE_FCMLE = { - {.SVE_FCMLE, {.P_REG, .P_REG_ZERO, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .NONE}, 0x65512010, 0xFFFFE010, .SVE, {}}, - {.SVE_FCMLE, {.P_REG, .P_REG_ZERO, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .NONE}, 0x65912010, 0xFFFFE010, .SVE, {}}, - {.SVE_FCMLE, {.P_REG, .P_REG_ZERO, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true}}, - }, - .SVE_FCMLT = { - {.SVE_FCMLT, {.P_REG, .P_REG_ZERO, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .NONE}, 0x65512000, 0xFFFFE010, .SVE, {}}, - {.SVE_FCMLT, {.P_REG, .P_REG_ZERO, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .NONE}, 0x65912000, 0xFFFFE010, .SVE, {}}, - {.SVE_FCMLT, {.P_REG, .P_REG_ZERO, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true}}, - }, - .SVE_CMPLE = { - {.SVE_CMPLE, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VM, .VN}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLE, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VM, .VN}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLE, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VM, .VN}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLE, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VM, .VN}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPLO = { - {.SVE_CMPLO, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VM, .VN}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLO, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VM, .VN}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLO, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VM, .VN}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLO, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VM, .VN}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPLS = { - {.SVE_CMPLS, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VM, .VN}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLS, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VM, .VN}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLS, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VM, .VN}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLS, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VM, .VN}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_CMPLT = { - {.SVE_CMPLT, {.P_REG, .P_REG_ZERO, .Z_REG_B, .Z_REG_B}, {.PD, .PG, .VM, .VN}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLT, {.P_REG, .P_REG_ZERO, .Z_REG_H, .Z_REG_H}, {.PD, .PG, .VM, .VN}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLT, {.P_REG, .P_REG_ZERO, .Z_REG_S, .Z_REG_S}, {.PD, .PG, .VM, .VN}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true}}, - {.SVE_CMPLT, {.P_REG, .P_REG_ZERO, .Z_REG_D, .Z_REG_D}, {.PD, .PG, .VM, .VN}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, - }, - .SVE_NANDS_P = { - {.SVE_NANDS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25C04210, 0xFFF0C210, .SVE, {sets_flags=true}}, - }, - .SVE_NORS_P = { - {.SVE_NORS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25C04200, 0xFFF0C210, .SVE, {sets_flags=true}}, - }, - .SVE_ORNS_P = { - {.SVE_ORNS_P, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x25C04010, 0xFFF0C210, .SVE, {sets_flags=true}}, - }, - .SVE_BRKPA = { - {.SVE_BRKPA, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x2500C000, 0xFFF0C210, .SVE, {}}, - }, - .SVE_BRKPB = { - {.SVE_BRKPB, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PM}, 0x2500C010, 0xFFF0C210, .SVE, {}}, - }, - .SVE_BRKA = { - {.SVE_BRKA, {.P_REG, .P_REG_MERGE, .P_REG, .NONE}, {.PD, .PG4, .PN, .NONE}, 0x25104010, 0xFFFFC210, .SVE, {}}, - }, - .SVE_BRKB = { - {.SVE_BRKB, {.P_REG, .P_REG_MERGE, .P_REG, .NONE}, {.PD, .PG4, .PN, .NONE}, 0x25904010, 0xFFFFC210, .SVE, {}}, - }, - .SVE_BRKAS = { - {.SVE_BRKAS, {.P_REG, .P_REG_ZERO, .P_REG, .NONE}, {.PD, .PG4, .PN, .NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true}}, - }, - .SVE_BRKBS = { - {.SVE_BRKBS, {.P_REG, .P_REG_ZERO, .P_REG, .NONE}, {.PD, .PG4, .PN, .NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true}}, - }, - .SVE_EOR3_Z = { - {.SVE_EOR3_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D}, {.VD, .VD, .VM, .VN}, 0x04203800, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_BCAX_Z = { - {.SVE_BCAX_Z, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D}, {.VD, .VD, .VM, .VN}, 0x04603800, 0xFFE0FC00, .SVE, {is_64=true}}, - }, - .SVE_INSR = { - {.SVE_INSR, {.Z_REG_B, .W_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05243800, 0xFFFFFC00, .SVE, {}}, - {.SVE_INSR, {.Z_REG_H, .W_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05643800, 0xFFFFFC00, .SVE, {}}, - {.SVE_INSR, {.Z_REG_S, .W_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {}}, - {.SVE_INSR, {.Z_REG_D, .X_REG, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true}}, - }, - .SVE_COMPACT = { - {.SVE_COMPACT, {.Z_REG_S, .P_REG_GOV, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .NONE}, 0x05A18000, 0xFFFFE000, .SVE, {}}, - {.SVE_COMPACT, {.Z_REG_D, .P_REG_GOV, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true}}, - }, - .SVE_SETFFR = { - {.SVE_SETFFR, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x252C9000, 0xFFFFFFFF, .SVE, {}}, - }, - .SVE_RDFFR = { - {.SVE_RDFFR, {.P_REG, .NONE, .NONE, .NONE}, {.PD, .NONE, .NONE, .NONE}, 0x2519F000, 0xFFFFFFF0, .SVE, {}}, - }, - .SVE_WRFFR = { - {.SVE_WRFFR, {.P_REG, .NONE, .NONE, .NONE}, {.PN, .NONE, .NONE, .NONE}, 0x25289000, 0xFFFFFE1F, .SVE, {}}, - }, - .SVE_BRKN = { - {.SVE_BRKN, {.P_REG, .P_REG_ZERO, .P_REG, .P_REG}, {.PD, .PG4, .PN, .PD}, 0x25184000, 0xFFFFC210, .SVE, {}}, - }, - // SPECGEN:END -} diff --git a/core/rexcode/isa/arm64/tablegen/gen.odin b/core/rexcode/isa/arm64/tablegen/gen.odin index 5a3edd497..283cabe73 100644 --- a/core/rexcode/isa/arm64/tablegen/gen.odin +++ b/core/rexcode/isa/arm64/tablegen/gen.odin @@ -28,13 +28,15 @@ import lib "../" // Package-scope aliases so the moved SoT resolves Mnemonic/Encoding unqualified. Encoding :: lib.Encoding Mnemonic :: lib.Mnemonic +Clobber :: lib.Clobber Blob :: struct { global, file, typ: string } BLOBS := [?]Blob{ - {"ENCODE_FORMS", "arm64.encode_forms.bin", "Encoding"}, - {"ENCODE_RUNS", "arm64.encode_runs.bin", "Encode_Run"}, - {"DECODE_ENTRIES", "arm64.entries.bin", "Decode_Entry"}, - {"DECODE_INDEX_OP0", "arm64.idx_op0.bin", "Decode_Index"}, + {"ENCODE_FORMS", "arm64.encode_forms.bin", "Encoding"}, + {"CLOBBER_FORMS", "arm64.clobber_forms.bin", "Clobber"}, + {"ENCODE_RUNS", "arm64.encode_runs.bin", "Encode_Run"}, + {"DECODE_ENTRIES", "arm64.entries.bin", "Decode_Entry"}, + {"DECODE_INDEX_OP0", "arm64.idx_op0.bin", "Decode_Index"}, } DIR_GEN :: #directory + "/generated/" @@ -42,13 +44,17 @@ PATH_LOADER :: #directory + "/../tables.odin" Entry :: struct { mnemonic: lib.Mnemonic, - ops: [4]lib.Operand_Type, - enc: [4]lib.Operand_Encoding, + ops: [5]lib.Operand_Type, + enc: [5]lib.Operand_Encoding, bits: u32, mask: u32, feature: lib.Feature, flags: lib.Encoding_Flags, op0: u8, // bits[28:25] + // Table order, so the sort is a total one. Without it, entries that tie on + // every other key come out in whatever order the sort leaves -- and which + // of them decode picks would vary between builds. + seq: u32, } Range :: struct { start: u16, count: u16 } @@ -72,16 +78,29 @@ emit_encode_tables :: proc() -> (total: int) { strings.write_string(&sb, "// Flattened encode forms + per-mnemonic run index (source: ENCODING_TABLE).\n\n") strings.write_string(&sb, "import lib \"../..\"\n\n") - for m in Mnemonic { total += len(ENCODING_TABLE[m]) } + for m in Mnemonic { total += len(INSTRUCTION_TABLE[m]) } strings.write_string(&sb, "@(rodata)\n") fmt.sbprintfln(&sb, "ENCODE_FORMS := [%d]lib.Encoding{{", total) for m in Mnemonic { - forms := ENCODING_TABLE[m] + forms := INSTRUCTION_TABLE[m] if len(forms) == 0 { continue } fmt.sbprintfln(&sb, "\t// .%v", m) for f in forms { - write_row(&sb, f.mnemonic, f.ops, f.enc, f.bits, f.mask, f.feature, f.flags) + e := f.encoding + write_row(&sb, e.mnemonic, e.ops, e.enc, e.bits, e.mask, e.feature, e.flags) + } + } + strings.write_string(&sb, "}\n\n") + + strings.write_string(&sb, "@(rodata)\n") + fmt.sbprintfln(&sb, "CLOBBER_FORMS := [%d]lib.Clobber{{", total) + for m in Mnemonic { + forms := INSTRUCTION_TABLE[m] + if len(forms) == 0 { continue } + fmt.sbprintfln(&sb, "\t// .%v", m) + for f in forms { + write_clobber(&sb, f.clobber) } } strings.write_string(&sb, "}\n\n") @@ -92,7 +111,7 @@ emit_encode_tables :: proc() -> (total: int) { strings.write_string(&sb, "ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{\n") start := 0 for m in Mnemonic { - c := len(ENCODING_TABLE[m]) + c := len(INSTRUCTION_TABLE[m]) name := reflect.enum_string(m) fmt.sbprintf(&sb, "\t.%s", name) for _ in 0.. (total: int) { return } +write_clobber :: proc(sb: ^strings.Builder, clobber: lib.Clobber) { + strings.write_string(sb, "\t{") + defer strings.write_string(sb, "},\n") + + n := 0 + for field in reflect.struct_fields_zipped(lib.Clobber) { + value := reflect.struct_field_value(clobber, field) + if reflect.is_bit_set(field.type) { + if !reflect.is_nil(value) { + if n > 0 { strings.write_string(sb, ", ") } + defer n += 1 + + value_int := value + switch type_info_of(value.id).size { + case 1: value_int.id = u8 + case 2: value_int.id = u16 + case 4: value_int.id = u32 + case 8: value_int.id = u64 + } + bits := reflect.as_u64(value_int) or_else panic("cannot get bits") + + bs := reflect.type_info_base(field.type).variant.(reflect.Type_Info_Bit_Set) + et := reflect.type_info_base(bs.elem) + lower := bs.lower + upper := bs.upper + + strings.write_string(sb, field.name) + strings.write_string(sb, "={") + defer strings.write_byte(sb, '}') + + e, is_enum := et.variant.(reflect.Type_Info_Enum) + + commas := 0 + loop: for i in transmute(bit_set[0..<64])bits { + elem := i64(i) + lower + if commas > 0 { strings.write_string(sb, ", ") } + + if is_enum { + for ev, evi in e.values { + v := u64(ev) + if v == u64(elem) { + strings.write_string(sb, ".") + strings.write_string(sb, e.names[evi]) + commas += 1 + continue loop + } + } + } else { + fmt.sbprintf(sb, "%d", elem) + commas += 1 + } + } + } + } else if reflect.is_boolean(field.type) { + if reflect.as_bool(value) or_else false { + if n > 0 { strings.write_string(sb, ", ") } + defer n += 1 + strings.write_string(sb, field.name) + strings.write_string(sb, "=true") + } + } else { + panic("unhandled type") + } + } +} + // ----------------------------------------------------------------------------- // Decode side // ----------------------------------------------------------------------------- @@ -118,13 +203,14 @@ emit_decode_tables :: proc() -> (total: int) { all: [dynamic]Entry defer delete(all) for mn in Mnemonic { - for f in ENCODING_TABLE[mn] { - op0_static := u8((f.bits >> 25) & 0xF) - op0_mask := u8((f.mask >> 25) & 0xF) + for form in INSTRUCTION_TABLE[mn] { + e := form.encoding + op0_static := u8((e.bits >> 25) & 0xF) + op0_mask := u8((e.mask >> 25) & 0xF) // Enumerate every 4-bit bucket B such that (B & op0_mask) == op0_static. for b: u8 = 0; b < 16; b += 1 { if (b & op0_mask) != op0_static { continue } - append(&all, Entry{f.mnemonic, f.ops, f.enc, f.bits, f.mask, f.feature, f.flags, b}) + append(&all, Entry{e.mnemonic, e.ops, e.enc, e.bits, e.mask, e.feature, e.flags, b, u32(len(all))}) } } } @@ -132,7 +218,8 @@ emit_decode_tables :: proc() -> (total: int) { if a.op0 != b.op0 { return a.op0 < b.op0 } ac := bits.count_ones(a.mask); bc := bits.count_ones(b.mask) if ac != bc { return ac > bc } - return u16(a.mnemonic) < u16(b.mnemonic) + if a.mnemonic != b.mnemonic { return u16(a.mnemonic) < u16(b.mnemonic) } + return a.seq < b.seq }) op0_idx: [16]Range @@ -173,13 +260,13 @@ emit_range :: proc(sb: ^strings.Builder, name: string, ranges: []Range) { // Shared row + flags formatting (compact, matching arm64's original generator) // ----------------------------------------------------------------------------- -write_row :: proc(sb: ^strings.Builder, mn: lib.Mnemonic, ops: [4]lib.Operand_Type, - enc: [4]lib.Operand_Encoding, bits, mask: u32, feature: lib.Feature, flags: lib.Encoding_Flags) { - fmt.sbprintf(sb, "\t{{ .%v, {{.%v,.%v,.%v,.%v}}, {{.%v,.%v,.%v,.%v}}, 0x%08X, 0x%08X, .%v, {{%s}} }},\n", - mn, ops[0], ops[1], ops[2], ops[3], enc[0], enc[1], enc[2], enc[3], bits, mask, feature, flags_lit(flags)) +write_row :: proc(sb: ^strings.Builder, mn: lib.Mnemonic, ops: [5]lib.Operand_Type, + enc: [5]lib.Operand_Encoding, bits, mask: u32, feature: lib.Feature, flags: lib.Encoding_Flags) { + fmt.sbprintf(sb, "\t{{ .%v, {{.%v,.%v,.%v,.%v,.%v}}, {{.%v,.%v,.%v,.%v,.%v}}, 0x%08X, 0x%08X, .%v, {{%s}} }},\n", + mn, ops[0], ops[1], ops[2], ops[3], ops[4], enc[0], enc[1], enc[2], enc[3], enc[4], bits, mask, feature, flags_lit(flags, ops)) } -flags_lit :: proc(f: lib.Encoding_Flags) -> string { +flags_lit :: proc(f: lib.Encoding_Flags, ops: [5]lib.Operand_Type) -> string { parts: [dynamic]string defer delete(parts) if f.branch { append(&parts, "branch=true") } @@ -187,6 +274,15 @@ flags_lit :: proc(f: lib.Encoding_Flags) -> string { if f.writes_pc { append(&parts, "writes_pc=true") } if f.sets_flags { append(&parts, "sets_flags=true") } if f.is_64 { append(&parts, "is_64=true") } + encoding_operand_count: u8 = 0 + for op_type in ops { + if op_type == .NONE { break } + encoding_operand_count += 1 + } + if encoding_operand_count > 0 { + append(&parts, fmt.tprintf("explicit_count=%d", encoding_operand_count)) + } + return strings.join(parts[:], ", ", context.temp_allocator) } @@ -225,14 +321,14 @@ Encode_Run :: struct { Decode_Entry :: struct #packed { mnemonic: Mnemonic, // 2 - ops: [4]Operand_Type, // 4 - enc: [4]Operand_Encoding, // 4 + ops: [5]Operand_Type, // 4 + enc: [5]Operand_Encoding, // 4 bits: u32, // 4 mask: u32, // 4 feature: Feature, // 1 flags: Encoding_Flags, // 1 } -#assert(size_of(Decode_Entry) == 20) +#assert(size_of(Decode_Entry) == 22) Decode_Index :: struct #packed { start: u16, diff --git a/core/rexcode/isa/arm64/tablegen/generated/decode_tables.odin b/core/rexcode/isa/arm64/tablegen/generated/decode_tables.odin index 95a570f53..bbc5ad6ce 100644 --- a/core/rexcode/isa/arm64/tablegen/generated/decode_tables.odin +++ b/core/rexcode/isa/arm64/tablegen/generated/decode_tables.odin @@ -8,2466 +8,2748 @@ package rexcode_arm64_generated import lib "../.." @(rodata) -DECODE_ENTRIES := [2442]lib.Decode_Entry{ - { .AMX_SET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {} }, - { .AMX_CLR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {} }, - { .AMX_LDX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_LDY, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201020, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_STX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201040, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_STY, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201060, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_LDZ, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201080, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_STZ, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002010A0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_LDZI, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002010C0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_STZI, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002010E0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_EXTRX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201100, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_EXTRY, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201120, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_FMA64, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201140, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_FMS64, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201160, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_FMA32, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201180, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_FMS32, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002011A0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_MAC16, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002011C0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_FMA16, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002011E0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_FMS16, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201200, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_VECINT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201260, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_VECFP, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201280, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_MATINT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002012A0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_MATFP, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002012C0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .AMX_GENLUT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002012E0, 0xFFFFFFE0, .AMX, {is_64=true} }, - { .SME_ZERO, {.SME_PATTERN,.NONE,.NONE,.NONE}, {.SME_PATTERN_FIELD,.NONE,.NONE,.NONE}, 0xC0080000, 0xFFFFFF00, .SME, {} }, - { .SME2_ZIP_4, {.Z_QUAD,.Z_QUAD,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE}, 0xC136E000, 0xFFFFFC00, .SME, {} }, - { .SME2_UZP_4, {.Z_QUAD,.Z_QUAD,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE}, 0xC136E002, 0xFFFFFC00, .SME, {} }, - { .SME_ADDHA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_LOW,.PG,.PM3,.VN}, 0xC0900000, 0xFFFF001C, .SME, {} }, - { .SME_ADDVA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_LOW,.PG,.PM3,.VN}, 0xC0910000, 0xFFFF001C, .SME, {} }, - { .SME2_ZIP_3, {.Z_PAIR,.Z_REG_B,.Z_REG_B,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE}, 0xC120D000, 0xFFE0FC00, .SME, {} }, - { .SME2_UZP_3, {.Z_PAIR,.Z_REG_B,.Z_REG_B,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE}, 0xC120D001, 0xFFE0FC00, .SME, {} }, - { .SME2_LUTI2_B, {.Z_PAIR,.Z_PAIR,.Z_REG_B,.IMM_3}, {.ENC_Z_PAIR_VD,.ENC_Z_PAIR_VN,.VM,.IMM12}, 0xC08C4000, 0xFFE0F000, .SME, {} }, - { .SME2_LUTI4_B, {.Z_PAIR,.Z_PAIR,.Z_REG_B,.IMM_2}, {.ENC_Z_PAIR_VD,.ENC_Z_PAIR_VN,.VM,.IMM12}, 0xC08A4000, 0xFFE0F000, .SME, {} }, - { .SME2_LD1B_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0000000, 0xFFE0E000, .SME, {} }, - { .SME2_LD1H_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0002000, 0xFFE0E000, .SME, {} }, - { .SME2_LD1W_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0004000, 0xFFE0E000, .SME, {} }, - { .SME2_LD1D_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0006000, 0xFFE0E000, .SME, {is_64=true} }, - { .SME2_LD1B_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0008000, 0xFFE0E000, .SME, {} }, - { .SME2_LD1H_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA000A000, 0xFFE0E000, .SME, {} }, - { .SME2_LD1W_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA000C000, 0xFFE0E000, .SME, {} }, - { .SME2_LD1D_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA000E000, 0xFFE0E000, .SME, {is_64=true} }, - { .SME2_ST1B_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0200000, 0xFFE0E000, .SME, {} }, - { .SME2_ST1H_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0202000, 0xFFE0E000, .SME, {} }, - { .SME2_ST1W_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0204000, 0xFFE0E000, .SME, {} }, - { .SME2_ST1D_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0206000, 0xFFE0E000, .SME, {is_64=true} }, - { .SME2_ST1B_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0208000, 0xFFE0E000, .SME, {} }, - { .SME2_ST1H_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA020A000, 0xFFE0E000, .SME, {} }, - { .SME2_ST1W_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA020C000, 0xFFE0E000, .SME, {} }, - { .SME2_ST1D_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA020E000, 0xFFE0E000, .SME, {is_64=true} }, - { .SME_FMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x80800000, 0xFFE08010, .SME, {} }, - { .SME_FMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x80800010, 0xFFE08010, .SME, {} }, - { .SME_BFMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x81800000, 0xFFE08010, .SME, {} }, - { .SME_BFMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x81800010, 0xFFE08010, .SME, {} }, - { .SME_SMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true} }, - { .SME_SMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800000, 0xFFE08010, .SME, {} }, - { .SME_SMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800010, 0xFFE08010, .SME, {} }, - { .SME_SMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true} }, - { .SME_UMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00000, 0xFFE08010, .SME, {} }, - { .SME_UMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true} }, - { .SME_UMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true} }, - { .SME_UMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00010, 0xFFE08010, .SME, {} }, - { .SME_USMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1800000, 0xFFE08010, .SME, {} }, - { .SME_SUMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0A00000, 0xFFE08010, .SME, {} }, - { .SME_MOVA_Z_FROM_TILE, {.Z_REG_B,.P_REG_MERGE,.SME_SLICE_B,.NONE}, {.VD,.PG,.SME_SLICE_B,.NONE}, 0xC0020000, 0xFFE08010, .SME, {} }, - { .SME_MOVA_TILE_FROM_Z, {.SME_SLICE_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.SME_SLICE_B,.PG,.VN,.NONE}, 0xC0000000, 0xFFE08010, .SME, {} }, - { .SME_LDR_ZA, {.IMM_5,.MEM,.NONE,.NONE}, {.SVE_IMM5,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE1000000, 0xFFE08000, .SME, {} }, - { .SME_STR_ZA, {.IMM_5,.MEM,.NONE,.NONE}, {.SVE_IMM5,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE1200000, 0xFFE08000, .SME, {} }, - { .SME_LD1B_TILE, {.SME_SLICE_B,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0000000, 0xFFE00010, .SME, {} }, - { .SME_LD1H_TILE, {.SME_SLICE_H,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0400000, 0xFFE00010, .SME, {} }, - { .SME_LD1W_TILE, {.SME_SLICE_W,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0800000, 0xFFE00010, .SME, {} }, - { .SME_LD1D_TILE, {.SME_SLICE_D,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0C00000, 0xFFE00010, .SME, {is_64=true} }, - { .SME_LD1Q_TILE, {.SME_SLICE_Q,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE1C00000, 0xFFE00010, .SME, {} }, - { .SME_ST1B_TILE, {.SME_SLICE_B,.P_REG,.MEM,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0200000, 0xFFE00010, .SME, {} }, - { .SME_ST1H_TILE, {.SME_SLICE_H,.P_REG,.MEM,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0600000, 0xFFE00010, .SME, {} }, - { .SME_ST1W_TILE, {.SME_SLICE_W,.P_REG,.MEM,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0A00000, 0xFFE00010, .SME, {} }, - { .SME_ST1D_TILE, {.SME_SLICE_D,.P_REG,.MEM,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0E00000, 0xFFE00010, .SME, {is_64=true} }, - { .SME_ST1Q_TILE, {.SME_SLICE_Q,.P_REG,.MEM,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE1E00000, 0xFFE00010, .SME, {} }, - { .SVE_SETFFR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x252C9000, 0xFFFFFFFF, .SVE, {} }, - { .SVE_PFALSE, {.P_REG,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE}, 0x2518E400, 0xFFFFFFF0, .SVE, {} }, - { .SVE_RDFFR, {.P_REG,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE}, 0x2519F000, 0xFFFFFFF0, .SVE, {} }, - { .SVE_WRFFR, {.P_REG,.NONE,.NONE,.NONE}, {.PN,.NONE,.NONE,.NONE}, 0x25289000, 0xFFFFFE1F, .SVE, {} }, - { .SVE_AESMC, {.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.NONE,.NONE,.NONE}, 0x4520E000, 0xFFFFFFE0, .SVE2, {} }, - { .SVE_AESIMC, {.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.NONE,.NONE,.NONE}, 0x4520E400, 0xFFFFFFE0, .SVE2, {} }, - { .SVE_PFIRST, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PD,.NONE}, 0x2558C000, 0xFFFFFE10, .SVE, {} }, - { .SVE_PNEXT, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PD,.NONE}, 0x2519C400, 0xFFFFFE10, .SVE, {} }, - { .SVE_REV_P, {.P_REG,.P_REG,.NONE,.NONE}, {.PD,.PN,.NONE,.NONE}, 0x05344000, 0xFFFFFE10, .SVE, {} }, - { .SVE_PTRUE, {.P_REG,.SVE_PATTERN,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {} }, - { .SVE_PTRUES, {.P_REG,.SVE_PATTERN,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true} }, - { .SVE_DUP_Z, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05203800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05603800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true} }, - { .SVE_INSR, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05243800, 0xFFFFFC00, .SVE, {} }, - { .SVE_INSR, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {} }, - { .SVE_INSR, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true} }, - { .SVE_INSR, {.Z_REG_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05643800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true} }, - { .SVE_REV_Z, {.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05783800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05383800, 0xFFFFFC00, .SVE, {} }, - { .SVE_AESE, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {} }, - { .SVE_AESD, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {} }, - { .SME_RDSVL, {.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.IMM6,.NONE,.NONE}, 0x04BF5800, 0xFFFFFC00, .SME, {is_64=true} }, - { .SVE_BRKA, {.P_REG,.P_REG_MERGE,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25104010, 0xFFFFC210, .SVE, {} }, - { .SVE_BRKB, {.P_REG,.P_REG_MERGE,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25904010, 0xFFFFC210, .SVE, {} }, - { .SVE_BRKAS, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true} }, - { .SVE_BRKBS, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true} }, - { .SVE_BRKN, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PD}, 0x25184000, 0xFFFFC210, .SVE, {} }, - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512010, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true} }, - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65912010, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true} }, - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65912000, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512000, 0xFFFFE010, .SVE, {} }, - { .SVE_AND_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x041A0000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_ORR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04180000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_EOR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04190000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_BIC_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x041B0000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_ASRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04948000, 0xFFFFE000, .SVE, {} }, - { .SVE_ASRR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04548000, 0xFFFFE000, .SVE, {} }, - { .SVE_ASRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_ASRR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04148000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04578000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04178000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_LSLR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04978000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04158000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_LSRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04958000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04558000, 0xFFFFE000, .SVE, {} }, - { .SVE_FSUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FSUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x65838000, 0xFFFFE000, .SVE, {} }, - { .SVE_FSUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x65438000, 0xFFFFE000, .SVE, {} }, - { .SVE_FDIVR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x658C8000, 0xFFFFE000, .SVE, {} }, - { .SVE_FDIVR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FDIVR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x654C8000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRECPX_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654CA000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRECPX_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRECPX_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658CA000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6540A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6580A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTP, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6581A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTP, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6541A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTP, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6582A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6542A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6543A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6583A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6584A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6544A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6586A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6546A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTI, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_FRINTI, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6547A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTI, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6587A000, 0xFFFFE000, .SVE, {} }, - { .SVE_ZIP1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204000, 0xFFE0FE10, .SVE, {} }, - { .SVE_ZIP2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204400, 0xFFE0FE10, .SVE, {} }, - { .SVE_UZP1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204800, 0xFFE0FE10, .SVE, {} }, - { .SVE_UZP2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {} }, - { .SVE_TRN1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05205000, 0xFFE0FE10, .SVE, {} }, - { .SVE_TRN2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05205400, 0xFFE0FE10, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_H,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0568A000, 0xFFFFE000, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_D,.P_REG_MERGE,.X_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_CPY_Z, {.Z_REG_B,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0528A000, 0xFFFFE000, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_S,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {} }, - { .SVE_COMPACT, {.Z_REG_S,.P_REG_GOV,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A18000, 0xFFFFE000, .SVE, {} }, - { .SVE_COMPACT, {.Z_REG_D,.P_REG_GOV,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true} }, - { .SVE_SPLICE, {.Z_REG_B,.P_REG_GOV,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x052C8000, 0xFFFFE000, .SVE, {} }, - { .SVE_BFCVT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658AA000, 0xFFFFE000, .SVE, {} }, - { .SVE_BFCVTNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x648AA000, 0xFFFFE000, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_ADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_SUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_SQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601000, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_UQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_SQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_UQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {} }, - { .SVE_FADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400000, 0xFFE0FC00, .SVE, {} }, - { .SVE_FADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400400, 0xFFE0FC00, .SVE, {} }, - { .SVE_FSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800400, 0xFFE0FC00, .SVE, {} }, - { .SVE_FSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FMUL_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FMUL_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FMUL_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FRSQRTS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRSQRTS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRSQRTS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FTSMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FTSMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FTSMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TBL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TBL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TBL, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05203000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TBL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05603000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_ZIP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_UZP1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_UZP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TRN1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_TRN1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_SQRDMLAH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_SQRDMLAH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLAH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLAH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_SQRDMLSH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_ADCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_ADCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_ADCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_ADCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SBCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SBCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_SBCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SBCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_TBL2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {} }, - { .SVE_TBX, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05202C00, 0xFFE0FC00, .SVE2, {} }, - { .SVE_BCAX_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04603800, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_EOR3_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04203800, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_HISTSEG, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4520A000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_FMLA_IDX_S, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S}, 0x64A00000, 0xFFE0FC00, .SVE, {} }, - { .SVE_FMLA_IDX_D, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D}, 0x64E00000, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_FMLS_IDX_S, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S}, 0x64A00400, 0xFFE0FC00, .SVE, {} }, - { .SVE_FMLS_IDX_D, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D}, 0x64E00400, 0xFFE0FC00, .SVE, {is_64=true} }, - { .SVE_INDEX_II, {.Z_REG_B,.IMM_5,.IMM_5,.NONE}, {.VD,.SVE_IMM5,.NONE,.NONE}, 0x04204000, 0xFFE0FC00, .SVE, {} }, - { .SVE_INDEX_IR, {.Z_REG_B,.IMM_5,.X_REG,.NONE}, {.VD,.SVE_IMM5,.RN,.NONE}, 0x04204800, 0xFFE0FC00, .SVE, {} }, - { .SVE_INDEX_RI, {.Z_REG_B,.X_REG,.IMM_5,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE}, 0x04204400, 0xFFE0FC00, .SVE, {} }, - { .SVE_INDEX_RR, {.Z_REG_B,.X_REG,.X_REG,.NONE}, {.VD,.RN,.RM,.NONE}, 0x04204C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_BSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04203C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_BSL1N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04603C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_BSL2N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04A03C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_NBSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04E03C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_PMUL_VEC, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04206400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_PMULLB, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45006800, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_PMULLT, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45006C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - { .SVE_BFADD_UNPRED, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65000000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_BFSUB_UNPRED, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65000400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_BFMUL_UNPRED, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65000800, 0xFFE0FC00, .SVE2, {} }, - { .SVE_BFCLAMP, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x64202400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_NANDS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04210, 0xFFF0C210, .SVE, {sets_flags=true} }, - { .SVE_NORS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04200, 0xFFF0C210, .SVE, {sets_flags=true} }, - { .SVE_ORNS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04010, 0xFFF0C210, .SVE, {sets_flags=true} }, - { .SVE_BRKPA, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x2500C000, 0xFFF0C210, .SVE, {} }, - { .SVE_BRKPB, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x2500C010, 0xFFF0C210, .SVE, {} }, - { .SVE_WHILEGE, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201000, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILEGT, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201010, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILELE, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201410, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILELT, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201400, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILEHI, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201810, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILEHS, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201800, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILELO, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201C00, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_WHILELS, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201C10, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - { .SVE_FMLA_IDX_H, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H}, 0x64200000, 0xFFA0FC00, .SVE, {} }, - { .SVE_FMLS_IDX_H, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H}, 0x64200400, 0xFFA0FC00, .SVE, {} }, - { .SVE_AND_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004000, 0xFFE0C210, .SVE, {} }, - { .SVE_BIC_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004010, 0xFFE0C210, .SVE, {} }, - { .SVE_ORR_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804000, 0xFFE0C210, .SVE, {} }, - { .SVE_EOR_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004200, 0xFFE0C210, .SVE, {} }, - { .SVE_NAND_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804210, 0xFFE0C210, .SVE, {} }, - { .SVE_NOR_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804200, 0xFFE0C210, .SVE, {} }, - { .SVE_ORN_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804010, 0xFFE0C210, .SVE, {} }, - { .SVE_SEL_P, {.P_REG,.P_REG,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004210, 0xFFE0C210, .SVE, {} }, - { .SVE_ANDS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true} }, - { .SVE_BICS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404010, 0xFFE0C210, .SVE, {sets_flags=true} }, - { .SVE_ORRS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04000, 0xFFE0C210, .SVE, {sets_flags=true} }, - { .SVE_EORS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true} }, - { .SVE_NOT_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4_PM_DUP,.PN,.NONE}, 0x25004200, 0xFFE0C210, .SVE, {} }, - { .SVE_MOV_P, {.P_REG,.P_REG,.NONE,.NONE}, {.PD,.PN_PG_PM_DUP,.NONE,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {} }, - { .SVE_MOV_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {} }, - { .SVE_MOVS_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65406000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true} }, - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65406010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true} }, - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65804000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65804010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true} }, - { .SVE_FCMUO, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C0C000, 0xFFE0E010, .SVE, {is_64=true} }, - { .SVE_FCMUO, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x6540C000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMUO, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x6580C000, 0xFFE0E010, .SVE, {} }, - { .SVE_LDR_P, {.P_REG,.MEM,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0x85800000, 0xFFE0E010, .SVE, {} }, - { .SVE_STR_P, {.P_REG,.MEM,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE5800000, 0xFFE0E010, .SVE, {} }, - { .SVE_XAR_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {} }, - { .SVE_XAR_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {is_64=true} }, - { .SVE_XAR_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {} }, - { .SVE_XAR_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {} }, - { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true} }, - { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true} }, - { .SVE_NMATCH, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true} }, - { .SVE_NMATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true} }, - { .SVE_ADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04800000, 0xFFE0E000, .SVE, {} }, - { .SVE_ADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04400000, 0xFFE0E000, .SVE, {} }, - { .SVE_ADD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C00000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_ADD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04000000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04810000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04010000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C10000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04410000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04830000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04430000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C30000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SUBR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04030000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D00000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_MUL_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04100000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04500000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04900000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04920000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04520000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04120000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D20000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D30000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UMULH_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04130000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04530000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04930000, 0xFFE0E000, .SVE, {} }, - { .SVE_SDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D40000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04940000, 0xFFE0E000, .SVE, {} }, - { .SVE_UDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D50000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04950000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04880000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04080000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C80000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04480000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C90000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04890000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04090000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04490000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CA0000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CB0000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CC0000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_SABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CD0000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_UABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04908000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04108000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04508000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D08000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_LSL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D38000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_LSL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04938000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04538000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSL_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04138000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04918000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04118000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D18000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_LSR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04518000, 0xFFE0E000, .SVE, {} }, - { .SVE_ABS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0416A000, 0xFFE0E000, .SVE, {} }, - { .SVE_ABS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D6A000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_ABS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0456A000, 0xFFE0E000, .SVE, {} }, - { .SVE_ABS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0496A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0417A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D7A000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_NEG_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0457A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0497A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0418A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0498A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D8A000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_CLS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0458A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLZ_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0459A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLZ_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0419A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLZ_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D9A000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_CLZ_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0499A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DAA000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_CNT_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x041AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x0520C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x0560C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65408000, 0xFFE0E000, .SVE, {} }, - { .SVE_FADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65808000, 0xFFE0E000, .SVE, {} }, - { .SVE_FADD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C08000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FSUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65818000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65418000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C18000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65828000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65428000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMUL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C28000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65CD8000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x658D8000, 0xFFE0E000, .SVE, {} }, - { .SVE_FDIV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x654D8000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C68000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65468000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65868000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65878000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65478000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C78000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMAXNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65448000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAXNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65848000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAXNM_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C48000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMINNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65858000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMINNM_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C58000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMINNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65458000, 0xFFE0E000, .SVE, {} }, - { .SVE_FABS_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045CA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FABS_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049CA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FABS_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DCA000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNEG_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNEG_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DDA000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNEG_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSQRT_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSQRT_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CDA000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FSQRT_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65600000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A00000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A02000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65602000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A04000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65604000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_FNMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65606000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A06000, 0xFFE0E000, .SVE, {} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true} }, - { .SVE_EXT_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_EXT_IMM}, 0x05200000, 0xFFE0E000, .SVE, {} }, - { .SVE_LD1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4004000, 0xFFE0E000, .SVE, {} }, - { .SVE_LD1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {} }, - { .SVE_LD1W, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5404000, 0xFFE0E000, .SVE, {} }, - { .SVE_LD1D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5E04000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_LD1SB, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5C04000, 0xFFE0E000, .SVE, {} }, - { .SVE_LD1SH, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5004000, 0xFFE0E000, .SVE, {} }, - { .SVE_LD1SW, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4804000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_ST1B, {.Z_REG_B,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4004000, 0xFFE0E000, .SVE, {} }, - { .SVE_ST1H, {.Z_REG_H,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4A04000, 0xFFE0E000, .SVE, {} }, - { .SVE_ST1W, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5404000, 0xFFE0E000, .SVE, {} }, - { .SVE_ST1D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5C04000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_LDR_Z, {.Z_REG_B,.MEM,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0x85804000, 0xFFE0E000, .SVE, {} }, - { .SVE_STR_Z, {.Z_REG_B,.MEM,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE5804000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDFF1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4006000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDFF1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4A06000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDFF1W, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5406000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDFF1D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5E06000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_HISTCNT, {.Z_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x45A0C000, 0xFFE0E000, .SVE2, {} }, - { .SVE_HISTCNT, {.Z_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x45E0C000, 0xFFE0E000, .SVE2, {is_64=true} }, - { .SVE_PRFB, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8400C000, 0xFFE0E000, .SVE, {} }, - { .SVE_PRFH, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8480C000, 0xFFE0E000, .SVE, {} }, - { .SVE_PRFW, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8500C000, 0xFFE0E000, .SVE, {} }, - { .SVE_PRFD, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8580C000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDNT1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA400C000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDNT1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA480C000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDNT1W, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA500C000, 0xFFE0E000, .SVE, {} }, - { .SVE_LDNT1D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA580C000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_STNT1B, {.Z_REG_B,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4006000, 0xFFE0E000, .SVE, {} }, - { .SVE_STNT1H, {.Z_REG_H,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4806000, 0xFFE0E000, .SVE, {} }, - { .SVE_STNT1W, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5006000, 0xFFE0E000, .SVE, {} }, - { .SVE_STNT1D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5806000, 0xFFE0E000, .SVE, {is_64=true} }, - { .SVE_EXT, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.IMM_8}, {.VD,.VD,.VM,.NONE}, 0x05200000, 0xFFE0E000, .SVE, {} }, - { .SVE_BFADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65008000, 0xFFE0E000, .SVE, {} }, - { .SVE_BFSUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65018000, 0xFFE0E000, .SVE, {} }, - { .SVE_BFMUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65028000, 0xFFE0E000, .SVE, {} }, - { .SVE_BFMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65200000, 0xFFE0E000, .SVE, {} }, - { .SVE_BFMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65202000, 0xFFE0E000, .SVE, {} }, - { .SVE_BFMAXNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65048000, 0xFFE0E000, .SVE2, {} }, - { .SVE_BFMINNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65058000, 0xFFE0E000, .SVE2, {} }, - { .SVE_LD1B_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84004000, 0xFFA0E000, .SVE, {} }, - { .SVE_LD1B_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4004000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_LD1H_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84804000, 0xFFA0E000, .SVE, {} }, - { .SVE_LD1H_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4804000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_LD1W_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x85004000, 0xFFA0E000, .SVE, {} }, - { .SVE_LD1W_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC5004000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_LD1D_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC5804000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_LD1SB_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84000000, 0xFFA0E000, .SVE, {} }, - { .SVE_LD1SB_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4000000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_LD1SH_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84800000, 0xFFA0E000, .SVE, {} }, - { .SVE_LD1SH_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4800000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_LD1SW_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC5000000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_ST1B_SCATTER_S, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4008000, 0xFFA0E000, .SVE, {} }, - { .SVE_ST1B_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4008000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_ST1H_SCATTER_S, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4808000, 0xFFA0E000, .SVE, {} }, - { .SVE_ST1H_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4808000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_ST1W_SCATTER_S, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE5008000, 0xFFA0E000, .SVE, {} }, - { .SVE_ST1W_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE5008000, 0xFFA0E000, .SVE, {is_64=true} }, - { .SVE_ST1D_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE5808000, 0xFFA0E000, .SVE, {is_64=true} }, - { .LDAR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC8DFFC00, 0xFFFFFC00, .BASE, {is_64=true} }, - { .LDAR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x88DFFC00, 0xFFFFFC00, .BASE, {} }, - { .STLR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC89FFC00, 0xFFFFFC00, .BASE, {is_64=true} }, - { .STLR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x889FFC00, 0xFFFFFC00, .BASE, {} }, - { .LDARB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x08DFFC00, 0xFFFFFC00, .BASE, {} }, - { .STLRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x089FFC00, 0xFFFFFC00, .BASE, {} }, - { .LDARH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x48DFFC00, 0xFFFFFC00, .BASE, {} }, - { .STLRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x489FFC00, 0xFFFFFC00, .BASE, {} }, - { .LDXR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC85F7C00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .LDXR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x885F7C00, 0xFFE0FC00, .BASE, {} }, - { .STXR, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x88007C00, 0xFFE0FC00, .BASE, {} }, - { .STXR, {.W_REG,.X_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0xC8007C00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .LDAXR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x885FFC00, 0xFFE0FC00, .BASE, {} }, - { .LDAXR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC85FFC00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .STLXR, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x8800FC00, 0xFFE0FC00, .BASE, {} }, - { .STLXR, {.W_REG,.X_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0xC800FC00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .LDXP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC87F0000, 0xFFFF8000, .BASE, {is_64=true} }, - { .LDXP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x887F0000, 0xFFFF8000, .BASE, {} }, - { .LDAXP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC87F8000, 0xFFFF8000, .BASE, {is_64=true} }, - { .LDAXP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x887F8000, 0xFFFF8000, .BASE, {} }, - { .LDXRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x085F7C00, 0xFFE0FC00, .BASE, {} }, - { .STXRB, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x08007C00, 0xFFE0FC00, .BASE, {} }, - { .LDAXRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x085FFC00, 0xFFE0FC00, .BASE, {} }, - { .STLXRB, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x0800FC00, 0xFFE0FC00, .BASE, {} }, - { .LDXRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x485F7C00, 0xFFE0FC00, .BASE, {} }, - { .STXRH, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x48007C00, 0xFFE0FC00, .BASE, {} }, - { .LDAXRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x485FFC00, 0xFFE0FC00, .BASE, {} }, - { .STLXRH, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x4800FC00, 0xFFE0FC00, .BASE, {} }, - { .CAS, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8A07C00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CAS, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88A07C00, 0xFFE0FC00, .LSE, {} }, - { .CASA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88E07C00, 0xFFE0FC00, .LSE, {} }, - { .CASA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8E07C00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8A0FC00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88A0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8E0FC00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88E0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08A07C00, 0xFFE0FC00, .LSE, {} }, - { .CASAB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08E07C00, 0xFFE0FC00, .LSE, {} }, - { .CASLB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08A0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASALB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08E0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48A07C00, 0xFFE0FC00, .LSE, {} }, - { .CASAH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48E07C00, 0xFFE0FC00, .LSE, {} }, - { .CASLH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48A0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASALH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48E0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASP, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08207C00, 0xFFE0FC00, .LSE, {} }, - { .CASP, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48207C00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASPA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48607C00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASPA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08607C00, 0xFFE0FC00, .LSE, {} }, - { .CASPL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x0820FC00, 0xFFE0FC00, .LSE, {} }, - { .CASPL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x4820FC00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASPAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x4860FC00, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CASPAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x0860FC00, 0xFFE0FC00, .LSE, {} }, - { .STXP, {.W_REG,.X_REG,.X_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0xC8200000, 0xFFE08000, .BASE, {is_64=true} }, - { .STXP, {.W_REG,.W_REG,.W_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0x88200000, 0xFFE08000, .BASE, {} }, - { .STLXP, {.W_REG,.W_REG,.W_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0x88208000, 0xFFE08000, .BASE, {} }, - { .STLXP, {.W_REG,.X_REG,.X_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0xC8208000, 0xFFE08000, .BASE, {is_64=true} }, - { .LDP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x29400000, 0xFFC00000, .BASE, {} }, - { .LDP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA9400000, 0xFFC00000, .BASE, {is_64=true} }, - { .STP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA9000000, 0xFFC00000, .BASE, {is_64=true} }, - { .STP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x29000000, 0xFFC00000, .BASE, {} }, - { .LDPSW, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x69400000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDP_PRE, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0x29C00000, 0xFFC00000, .BASE, {} }, - { .LDP_PRE, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0xA9C00000, 0xFFC00000, .BASE, {is_64=true} }, - { .STP_PRE, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0x29800000, 0xFFC00000, .BASE, {} }, - { .STP_PRE, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0xA9800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDP_POST, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0xA8C00000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDP_POST, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0x28C00000, 0xFFC00000, .BASE, {} }, - { .STP_POST, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0x28800000, 0xFFC00000, .BASE, {} }, - { .STP_POST, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0xA8800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDPSW_PRE, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0x69C00000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDPSW_POST, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0x68C00000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDNP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA8400000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDNP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x28400000, 0xFFC00000, .BASE, {} }, - { .STNP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x28000000, 0xFFC00000, .BASE, {} }, - { .STNP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA8000000, 0xFFC00000, .BASE, {is_64=true} }, - { .STGP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true} }, - { .MOV_REG, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {} }, - { .MOV_REG, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - { .MVN, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - { .MVN, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {} }, - { .CMP_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, - { .CMP_ER, {.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true} }, - { .CMN_ER, {.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true} }, - { .CMN_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, - { .NEG_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {} }, - { .NEG_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true} }, - { .NEGS, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true} }, - { .NEGS, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true} }, - { .CMP_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .CMP_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, - { .CMN_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .CMN_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, - { .TST_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .TST_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, - { .ADD_ER, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true} }, - { .ADD_ER, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0B200000, 0xFFE00000, .BASE, {} }, - { .ADDS_ER, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true} }, - { .ADDS_ER, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true} }, - { .SUB_ER, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4B200000, 0xFFE00000, .BASE, {} }, - { .SUB_ER, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCB200000, 0xFFE00000, .BASE, {is_64=true} }, - { .SUBS_ER, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true} }, - { .SUBS_ER, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6B200000, 0xFFE00000, .BASE, {sets_flags=true} }, - { .ADD_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0B000000, 0xFF200000, .BASE, {} }, - { .ADD_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8B000000, 0xFF200000, .BASE, {is_64=true} }, - { .ADDS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2B000000, 0xFF200000, .BASE, {sets_flags=true} }, - { .ADDS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - { .SUB_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCB000000, 0xFF200000, .BASE, {is_64=true} }, - { .SUB_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4B000000, 0xFF200000, .BASE, {} }, - { .SUBS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6B000000, 0xFF200000, .BASE, {sets_flags=true} }, - { .SUBS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - { .AND_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8A000000, 0xFF200000, .BASE, {is_64=true} }, - { .AND_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0A000000, 0xFF200000, .BASE, {} }, - { .ANDS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6A000000, 0xFF200000, .BASE, {sets_flags=true} }, - { .ANDS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEA000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - { .ORR_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2A000000, 0xFF200000, .BASE, {} }, - { .ORR_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAA000000, 0xFF200000, .BASE, {is_64=true} }, - { .EOR_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCA000000, 0xFF200000, .BASE, {is_64=true} }, - { .EOR_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4A000000, 0xFF200000, .BASE, {} }, - { .BIC_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0A200000, 0xFF200000, .BASE, {} }, - { .BIC_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8A200000, 0xFF200000, .BASE, {is_64=true} }, - { .BICS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEA200000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - { .BICS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6A200000, 0xFF200000, .BASE, {sets_flags=true} }, - { .ORN_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAA200000, 0xFF200000, .BASE, {is_64=true} }, - { .ORN_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2A200000, 0xFF200000, .BASE, {} }, - { .EON_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4A200000, 0xFF200000, .BASE, {} }, - { .EON_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCA200000, 0xFF200000, .BASE, {is_64=true} }, - { .LD1, {.V_2D,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407C00, 0xFFFFFC00, .NEON, {} }, - { .LD2, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C408000, 0xFFFFFC00, .NEON, {} }, - { .LD3, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C404000, 0xFFFFFC00, .NEON, {} }, - { .LD4, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C400000, 0xFFFFFC00, .NEON, {} }, - { .ST1, {.V_2D,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {} }, - { .ST2, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C008000, 0xFFFFFC00, .NEON, {} }, - { .ST3, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C004000, 0xFFFFFC00, .NEON, {} }, - { .ST4, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C000000, 0xFFFFFC00, .NEON, {} }, - { .LD1R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D40C000, 0xFFFFFC00, .NEON, {} }, - { .LD2R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {} }, - { .LD3R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {} }, - { .LD4R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {} }, - { .LD1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407400, 0xFFFFF400, .NEON, {} }, - { .LD1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407800, 0xFFFFF800, .NEON, {} }, - { .ST1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007400, 0xFFFFF400, .NEON, {} }, - { .ST1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007800, 0xFFFFF800, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {} }, - { .LD1, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407000, 0xFFFFF000, .NEON, {} }, - { .ST1, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007000, 0xFFFFF000, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D404000, 0xBFFFE400, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D604000, 0xBFFFE400, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D406000, 0xBFFFE400, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D606000, 0xBFFFE400, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D004000, 0xBFFFE400, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D204000, 0xBFFFE400, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D006000, 0xBFFFE400, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D206000, 0xBFFFE400, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D400000, 0xBFFFE000, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D600000, 0xBFFFE000, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D402000, 0xBFFFE000, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D602000, 0xBFFFE000, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D000000, 0xBFFFE000, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D200000, 0xBFFFE000, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D002000, 0xBFFFE000, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D202000, 0xBFFFE000, .NEON, {} }, - { .LDP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD400000, 0xFFC00000, .NEON, {} }, - { .LDP_V, {.D_REG,.D_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x6D400000, 0xFFC00000, .NEON, {} }, - { .LDP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D400000, 0xFFC00000, .NEON, {} }, - { .STP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD000000, 0xFFC00000, .NEON, {} }, - { .STP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D000000, 0xFFC00000, .NEON, {} }, - { .STP_V, {.D_REG,.D_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x6D000000, 0xFFC00000, .NEON, {} }, - { .AESE, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {} }, - { .AESD, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E285800, 0xFFFFFC00, .CRYPTO, {} }, - { .AESMC, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E286800, 0xFFFFFC00, .CRYPTO, {} }, - { .AESIMC, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E287800, 0xFFFFFC00, .CRYPTO, {} }, - { .SHA512SU0, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0xCEC08000, 0xFFFFFC00, .CRYPTO, {} }, - { .SM4E, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {} }, - { .BFCVTN, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {} }, - { .BFCVTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {} }, - { .NEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {} }, - { .XTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {} }, - { .XTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {} }, - { .XTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FNEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FNEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FABS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {} }, - { .FMAXV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {} }, - { .FMAXV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {} }, - { .FMAXV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {} }, - { .FMINV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {} }, - { .FMINV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {} }, - { .FMINV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {} }, - { .FMAXNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {} }, - { .FMAXNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {} }, - { .FMAXNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {} }, - { .FMINNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {} }, - { .FMINNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {} }, - { .FMINNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRECPE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRSQRTE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRSQRTE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTA_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTA_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTI_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTM_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTM_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTN_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTN_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTP_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {} }, - { .FRINTP_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {} }, - { .FRINTP_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTX_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTX_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTZ_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {} }, - { .SCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {} }, - { .SCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {} }, - { .SCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {} }, - { .SCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {} }, - { .SCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {} }, - { .UCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {} }, - { .UCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {} }, - { .UCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {} }, - { .UCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {} }, - { .UCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {} }, - { .FCVTAS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTL, {.V_4S,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {} }, - { .FCVTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {} }, - { .FCVTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {} }, - { .FCVTL2, {.V_4S,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {} }, - { .FCVTN, {.V_4H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {} }, - { .FCVTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {} }, - { .FCVTN2, {.V_8H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {} }, - { .FCVTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {} }, - { .FCVTXN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {} }, - { .FCVTXN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {} }, - { .FCMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {} }, - { .FCMLT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {} }, - { .FCMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {} }, - { .FCMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {} }, - { .MVN_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, - { .MVN_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - { .SXTL, {.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL, {.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_4S,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_2D,.X_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_4H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_8B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_16B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_2S,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_8H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {} }, - { .NOT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - { .RBIT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {} }, - { .RBIT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {} }, - { .REV16_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {} }, - { .REV16_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {} }, - { .CNT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {} }, - { .CNT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {} }, - { .URECPE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {} }, - { .URECPE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {} }, - { .URSQRTE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {} }, - { .URSQRTE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_2D,.V_ELEM_D,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {} }, - { .INS, {.V_ELEM_D,.VEC_INDEX,.X_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E081C00, 0xFFEFFC00, .NEON, {} }, - { .DUP_V, {.V_2S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E040400, 0xFFE7FC00, .NEON, {} }, - { .DUP_V, {.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E040400, 0xFFE7FC00, .NEON, {} }, - { .INS, {.V_ELEM_D,.VEC_INDEX,.V_ELEM_D,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E080400, 0xFFEFBC00, .NEON, {} }, - { .INS, {.V_ELEM_S,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E041C00, 0xFFE7FC00, .NEON, {} }, - { .SHL_V, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {} }, - { .SHL_V, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F085400, 0xFFF8FC00, .NEON, {} }, - { .SQSHL_V, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {} }, - { .SQSHL_V, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {} }, - { .SQSHLU, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {} }, - { .SQSHLU, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {} }, - { .SSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {} }, - { .SSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {} }, - { .USHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {} }, - { .USHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {} }, - { .SSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {} }, - { .SSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {} }, - { .USRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {} }, - { .USRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {} }, - { .SRSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F082400, 0xFFF8FC00, .NEON, {} }, - { .SRSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {} }, - { .URSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F082400, 0xFFF8FC00, .NEON, {} }, - { .URSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F082400, 0xFFF8FC00, .NEON, {} }, - { .SRSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F083400, 0xFFF8FC00, .NEON, {} }, - { .SRSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F083400, 0xFFF8FC00, .NEON, {} }, - { .URSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F083400, 0xFFF8FC00, .NEON, {} }, - { .URSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {} }, - { .SLI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {} }, - { .SLI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {} }, - { .SRI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {} }, - { .SRI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {} }, - { .SSHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {} }, - { .SSHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {} }, - { .USHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {} }, - { .USHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F08A400, 0xFFF8FC00, .NEON, {} }, - { .SHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F088400, 0xFFF8FC00, .NEON, {} }, - { .SHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F088400, 0xFFF8FC00, .NEON, {} }, - { .RSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F088C00, 0xFFF8FC00, .NEON, {} }, - { .RSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F088C00, 0xFFF8FC00, .NEON, {} }, - { .SQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F089400, 0xFFF8FC00, .NEON, {} }, - { .SQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F089400, 0xFFF8FC00, .NEON, {} }, - { .UQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F089400, 0xFFF8FC00, .NEON, {} }, - { .UQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F089400, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F089C00, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F089C00, 0xFFF8FC00, .NEON, {} }, - { .UQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F089C00, 0xFFF8FC00, .NEON, {} }, - { .UQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F089C00, 0xFFF8FC00, .NEON, {} }, - { .SQSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F088400, 0xFFF8FC00, .NEON, {} }, - { .SQSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F088400, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F088C00, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F088C00, 0xFFF8FC00, .NEON, {} }, - { .DUP_V, {.V_4H,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {} }, - { .DUP_V, {.V_8H,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {} }, - { .INS, {.V_ELEM_H,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {} }, - { .MOVI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_8B,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_2D,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_4H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_16B,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_4H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_8H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {} }, - { .FMOV_V_IMM, {.V_2D,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_4H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {} }, - { .SHL_V, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {} }, - { .SHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {} }, - { .SQSHL_V, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {} }, - { .SQSHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {} }, - { .SQSHLU, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {} }, - { .SQSHLU, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {} }, - { .SSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {} }, - { .SSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F100400, 0xFFF0FC00, .NEON, {} }, - { .USHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {} }, - { .USHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F100400, 0xFFF0FC00, .NEON, {} }, - { .SSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {} }, - { .SSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {} }, - { .USRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {} }, - { .USRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {} }, - { .SRSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {} }, - { .SRSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {} }, - { .URSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {} }, - { .URSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F102400, 0xFFF0FC00, .NEON, {} }, - { .SRSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F103400, 0xFFF0FC00, .NEON, {} }, - { .SRSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {} }, - { .URSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {} }, - { .URSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {} }, - { .SLI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {} }, - { .SLI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {} }, - { .SRI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {} }, - { .SRI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {} }, - { .SSHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {} }, - { .SSHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {} }, - { .USHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {} }, - { .USHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F10A400, 0xFFF0FC00, .NEON, {} }, - { .SHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F108400, 0xFFF0FC00, .NEON, {} }, - { .SHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F108400, 0xFFF0FC00, .NEON, {} }, - { .RSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F108C00, 0xFFF0FC00, .NEON, {} }, - { .RSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F108C00, 0xFFF0FC00, .NEON, {} }, - { .SQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F109400, 0xFFF0FC00, .NEON, {} }, - { .SQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F109400, 0xFFF0FC00, .NEON, {} }, - { .UQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F109400, 0xFFF0FC00, .NEON, {} }, - { .UQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F109400, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F109C00, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F109C00, 0xFFF0FC00, .NEON, {} }, - { .UQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F109C00, 0xFFF0FC00, .NEON, {} }, - { .UQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F109C00, 0xFFF0FC00, .NEON, {} }, - { .SQSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F108400, 0xFFF0FC00, .NEON, {} }, - { .SQSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {} }, - { .DUP_V, {.V_8B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {} }, - { .DUP_V, {.V_16B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {} }, - { .INS, {.V_ELEM_B,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {} }, - { .INS, {.V_ELEM_S,.VEC_INDEX,.V_ELEM_S,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E040400, 0xFFE79C00, .NEON, {} }, - { .SHA512H, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA512H2, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA512SU1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {} }, - { .RAX1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608C00, 0xFFE0FC00, .CRYPTO, {} }, - { .SM3PARTW1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE60C000, 0xFFE0FC00, .CRYPTO, {} }, - { .SM3PARTW2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE60C400, 0xFFE0FC00, .CRYPTO, {} }, - { .SM4EKEY, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE60C800, 0xFFE0FC00, .CRYPTO, {} }, - { .PMULL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20E000, 0xFFE0FC00, .CRYPTO, {} }, - { .PMULL, {.V_2D,.V_1D,.V_1D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EE0E000, 0xFFE0FC00, .CRYPTO, {} }, - { .PMULL2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0E000, 0xFFE0FC00, .CRYPTO, {} }, - { .PMULL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20E000, 0xFFE0FC00, .CRYPTO, {} }, - { .BFDOT, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E40FC00, 0xFFE0FC00, .BF16, {} }, - { .BFMMLA, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E40EC00, 0xFFE0FC00, .BF16, {} }, - { .BFMLALB, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC0FC00, 0xFFE0FC00, .BF16, {} }, - { .BFMLALT, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC0FC00, 0xFFE0FC00, .BF16, {} }, - { .ADD_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE08400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE08400, 0xFFE0FC00, .NEON, {} }, - { .MUL_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609C00, 0xFFE0FC00, .NEON, {} }, - { .MUL_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E209C00, 0xFFE0FC00, .NEON, {} }, - { .MUL_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09C00, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E609400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA09400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E209400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E209400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .SADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {} }, - { .SADDL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {} }, - { .SADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {} }, - { .UADDL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {} }, - { .UADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {} }, - { .UADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {} }, - { .USUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {} }, - { .USUBL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {} }, - { .USUBL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {} }, - { .USUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {} }, - { .USUBL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {} }, - { .USUBL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {} }, - { .SADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {} }, - { .SADDW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {} }, - { .SADDW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {} }, - { .SADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {} }, - { .SADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {} }, - { .SADDW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {} }, - { .UADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {} }, - { .UADDW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {} }, - { .UADDW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {} }, - { .USUBW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {} }, - { .USUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {} }, - { .USUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL2_V, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL2_V, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {} }, - { .SDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {} }, - { .UDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {} }, - { .UDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {} }, - { .USDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E809C00, 0xFFE0FC00, .DOT, {} }, - { .USDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E809C00, 0xFFE0FC00, .DOT, {} }, - { .FADD_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADD_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADD_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FDIV_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FDIV_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FDIV_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {} }, - { .FMLA_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {} }, - { .FMLA_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {} }, - { .FMLS_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {} }, - { .FMLS_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {} }, - { .FMULX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {} }, - { .FMAX_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {} }, - { .FMAX_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {} }, - { .FMIN_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMIN_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {} }, - { .FMINNM_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMINNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMAXP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {} }, - { .FMAXP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {} }, - { .FMINP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMINP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {} }, - { .FMINP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMINP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMINP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {} }, - { .FMINNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMINNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {} }, - { .FRECPS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {} }, - { .FRECPS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {} }, - { .FRSQRTS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {} }, - { .FRSQRTS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {} }, - { .FADDP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {} }, - { .FADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {} }, - { .FADDP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {} }, - { .FADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADDP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {} }, - { .FCMEQ, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {} }, - { .FCMGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {} }, - { .FCMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {} }, - { .FCMGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {} }, - { .FCMGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {} }, - { .FCMGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {} }, - { .FACGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {} }, - { .FACGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {} }, - { .FACGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {} }, - { .CMEQ, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {} }, - { .CMGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {} }, - { .CMGT, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {} }, - { .CMHI, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {} }, - { .CMHI, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {} }, - { .AND_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {} }, - { .ORR_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, - { .EOR_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {} }, - { .BIC_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601C00, 0xFFE0FC00, .NEON, {} }, - { .ORN_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE01C00, 0xFFE0FC00, .NEON, {} }, - { .BIT, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {} }, - { .BIF, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {} }, - { .BSL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {} }, - { .SHL_V, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F205400, 0xFFE0FC00, .NEON, {} }, - { .SHL_V, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F205400, 0xFFE0FC00, .NEON, {} }, - { .SQSHL_V, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F207400, 0xFFE0FC00, .NEON, {} }, - { .SQSHL_V, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F207400, 0xFFE0FC00, .NEON, {} }, - { .SQSHLU, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F206400, 0xFFE0FC00, .NEON, {} }, - { .SQSHLU, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F206400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {} }, - { .SSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F200400, 0xFFE0FC00, .NEON, {} }, - { .SSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F200400, 0xFFE0FC00, .NEON, {} }, - { .USHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F200400, 0xFFE0FC00, .NEON, {} }, - { .USHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F200400, 0xFFE0FC00, .NEON, {} }, - { .SSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F201400, 0xFFE0FC00, .NEON, {} }, - { .SSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F201400, 0xFFE0FC00, .NEON, {} }, - { .USRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F201400, 0xFFE0FC00, .NEON, {} }, - { .USRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F201400, 0xFFE0FC00, .NEON, {} }, - { .SRSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F202400, 0xFFE0FC00, .NEON, {} }, - { .SRSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F202400, 0xFFE0FC00, .NEON, {} }, - { .URSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F202400, 0xFFE0FC00, .NEON, {} }, - { .URSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F202400, 0xFFE0FC00, .NEON, {} }, - { .SRSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F203400, 0xFFE0FC00, .NEON, {} }, - { .SRSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F203400, 0xFFE0FC00, .NEON, {} }, - { .URSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F203400, 0xFFE0FC00, .NEON, {} }, - { .URSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F203400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {} }, - { .SLI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F205400, 0xFFE0FC00, .NEON, {} }, - { .SLI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F205400, 0xFFE0FC00, .NEON, {} }, - { .SRI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F204400, 0xFFE0FC00, .NEON, {} }, - { .SRI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F204400, 0xFFE0FC00, .NEON, {} }, - { .SSHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F20A400, 0xFFE0FC00, .NEON, {} }, - { .SSHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F20A400, 0xFFE0FC00, .NEON, {} }, - { .USHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F20A400, 0xFFE0FC00, .NEON, {} }, - { .USHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F20A400, 0xFFE0FC00, .NEON, {} }, - { .SHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F208400, 0xFFE0FC00, .NEON, {} }, - { .SHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F208400, 0xFFE0FC00, .NEON, {} }, - { .RSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F208C00, 0xFFE0FC00, .NEON, {} }, - { .RSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F208C00, 0xFFE0FC00, .NEON, {} }, - { .SQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F209400, 0xFFE0FC00, .NEON, {} }, - { .SQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F209400, 0xFFE0FC00, .NEON, {} }, - { .UQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F209400, 0xFFE0FC00, .NEON, {} }, - { .UQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F209400, 0xFFE0FC00, .NEON, {} }, - { .SQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F209C00, 0xFFE0FC00, .NEON, {} }, - { .SQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F209C00, 0xFFE0FC00, .NEON, {} }, - { .UQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F209C00, 0xFFE0FC00, .NEON, {} }, - { .UQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F209C00, 0xFFE0FC00, .NEON, {} }, - { .SQSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F208400, 0xFFE0FC00, .NEON, {} }, - { .SQSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F208400, 0xFFE0FC00, .NEON, {} }, - { .SQRSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F208C00, 0xFFE0FC00, .NEON, {} }, - { .SQRSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F208C00, 0xFFE0FC00, .NEON, {} }, - { .MOV_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {} }, - { .MOV_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, - { .TBL, {.V_8B,.V_16B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E000000, 0xFFE0FC00, .NEON, {} }, - { .TBL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E000000, 0xFFE0FC00, .NEON, {} }, - { .TBX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E001000, 0xFFE0FC00, .NEON, {} }, - { .TBX, {.V_8B,.V_16B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E001000, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E803800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E803800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E003800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E003800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC07800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E407800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E007800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E007800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E407800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E807800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E807800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E801800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E801800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC01800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E401800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E001800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E001800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E401800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC05800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E805800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E405800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E805800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E005800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E005800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E405800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC02800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E802800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E402800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E002800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E402800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E002800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E802800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E806800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E806800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC06800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E006800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E006800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E406800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E406800, 0xFFE0FC00, .NEON, {} }, - { .MOV_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, - { .MOV_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {} }, - { .SHL_V, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F405400, 0xFFC0FC00, .NEON, {} }, - { .SQSHL_V, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F407400, 0xFFC0FC00, .NEON, {} }, - { .SQSHLU, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F406400, 0xFFC0FC00, .NEON, {} }, - { .SSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F400400, 0xFFC0FC00, .NEON, {} }, - { .USHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F400400, 0xFFC0FC00, .NEON, {} }, - { .SSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F401400, 0xFFC0FC00, .NEON, {} }, - { .USRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F401400, 0xFFC0FC00, .NEON, {} }, - { .SRSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F402400, 0xFFC0FC00, .NEON, {} }, - { .URSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F402400, 0xFFC0FC00, .NEON, {} }, - { .SRSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F403400, 0xFFC0FC00, .NEON, {} }, - { .URSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F403400, 0xFFC0FC00, .NEON, {} }, - { .SLI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F405400, 0xFFC0FC00, .NEON, {} }, - { .SRI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F404400, 0xFFC0FC00, .NEON, {} }, - { .INS, {.V_ELEM_H,.VEC_INDEX,.V_ELEM_H,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E020400, 0xFFE38C00, .NEON, {} }, - { .SM3TT1A, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {} }, - { .SM3TT1B, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {} }, - { .SM3TT2A, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {} }, - { .SM3TT2B, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408C00, 0xFFE0CC00, .CRYPTO, {} }, - { .FCADD_4H, {.V_4H,.V_4H,.V_4H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x2E40E400, 0xFFA0EC00, .NEON, {} }, - { .FCADD_8H, {.V_8H,.V_8H,.V_8H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x6E40E400, 0xFFA0EC00, .NEON, {} }, - { .FCADD_4S, {.V_4S,.V_4S,.V_4S,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x6E80E400, 0xFFA0EC00, .NEON, {} }, - { .FCADD_2D, {.V_2D,.V_2D,.V_2D,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x6EC0E400, 0xFFA0EC00, .NEON, {} }, - { .INS, {.V_ELEM_B,.VEC_INDEX,.V_ELEM_B,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E010400, 0xFFE18400, .NEON, {} }, - { .EXT_V, {.V_8B,.V_8B,.V_8B,.VEC_INDEX}, {.VD,.VN,.VM,.NEON_EXT_IDX}, 0x2E000000, 0xFFE0C400, .NEON, {} }, - { .FCMLA_4H, {.V_4H,.V_4H,.V_4H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x2E40C400, 0xFFA0CC00, .NEON, {} }, - { .FCMLA_8H, {.V_8H,.V_8H,.V_8H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x6E40C400, 0xFFA0CC00, .NEON, {} }, - { .FCMLA_4S, {.V_4S,.V_4S,.V_4S,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x6E80C400, 0xFFA0CC00, .NEON, {} }, - { .FCMLA_2D, {.V_2D,.V_2D,.V_2D,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x6EC0C400, 0xFFA0CC00, .NEON, {} }, - { .EXT_V, {.V_16B,.V_16B,.V_16B,.VEC_INDEX}, {.VD,.VN,.VM,.NEON_EXT_IDX}, 0x6E000000, 0xFFE08400, .NEON, {} }, - { .EOR3, {.V_16B,.V_16B,.V_16B,.V_16B}, {.VD,.VN,.VM,.VA}, 0xCE000000, 0xFFE08000, .CRYPTO, {} }, - { .BCAX, {.V_16B,.V_16B,.V_16B,.V_16B}, {.VD,.VN,.VM,.VA}, 0xCE200000, 0xFFE08000, .CRYPTO, {} }, - { .SM3SS1, {.V_4S,.V_4S,.V_4S,.V_4S}, {.VD,.VN,.VM,.VA}, 0xCE400000, 0xFFE08000, .CRYPTO, {} }, - { .XAR, {.V_2D,.V_2D,.V_2D,.IMM_6}, {.VD,.VN,.VM,.IMM6}, 0xCE800000, 0xFFE00000, .CRYPTO, {} }, - { .CMP_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, - { .CMP_IMM, {.WSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true} }, - { .CMN_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, - { .CMN_IMM, {.WSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true} }, - { .ADDG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4}, {.RD,.RN,.IMM6,.IMM_HW}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true} }, - { .SUBG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4}, {.RD,.RN,.IMM6,.IMM_HW}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true} }, - { .ADD_IMM, {.XSP_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true} }, - { .ADD_IMM, {.WSP_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x11000000, 0xFF800000, .BASE, {} }, - { .ADDS_IMM, {.X_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xB1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true} }, - { .ADDS_IMM, {.W_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x31000000, 0xFF800000, .BASE, {sets_flags=true} }, - { .SUB_IMM, {.XSP_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xD1000000, 0xFF800000, .BASE, {is_64=true} }, - { .SUB_IMM, {.WSP_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x51000000, 0xFF800000, .BASE, {} }, - { .SUBS_IMM, {.W_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x71000000, 0xFF800000, .BASE, {sets_flags=true} }, - { .SUBS_IMM, {.X_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xF1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true} }, - { .ADR, {.X_REG,.REL_PG21,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE}, 0x10000000, 0x9F000000, .BASE, {} }, - { .ADRP, {.X_REG,.REL_PG21,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE}, 0x90000000, 0x9F000000, .BASE, {} }, - { .UXTB, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x53001C00, 0xFFFFFC00, .BASE, {} }, - { .UXTH, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x53003C00, 0xFFFFFC00, .BASE, {} }, - { .UXTW, {.X_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xD3407C00, 0xFFFFFC00, .BASE, {is_64=true} }, - { .SXTB, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {} }, - { .SXTH, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {} }, - { .SXTW, {.X_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true} }, - { .LSR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, - { .LSR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {} }, - { .ASR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, - { .ASR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {} }, - { .TST_IMM, {.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true} }, - { .MOV_BITMASK, {.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE}, 0x320003E0, 0xFFC003E0, .BASE, {} }, - { .TST_IMM, {.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, - { .MOV_BITMASK, {.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true} }, - { .EXTR, {.X_REG,.X_REG,.X_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true} }, - { .EXTR, {.W_REG,.W_REG,.W_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x13800000, 0xFFE08000, .BASE, {} }, - { .ROR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true} }, - { .ROR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x13800000, 0xFFE00000, .BASE, {} }, - { .AND_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x12000000, 0xFFC00000, .BASE, {} }, - { .ANDS_IMM, {.W_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true} }, - { .ORR_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x32000000, 0xFFC00000, .BASE, {} }, - { .EOR_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x52000000, 0xFFC00000, .BASE, {} }, - { .LSL_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.ENC_LSL_IMM_W,.NONE}, 0x53000000, 0xFFC00000, .BASE, {} }, - { .LSL_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.ENC_LSL_IMM_X,.NONE}, 0xD3400000, 0xFFC00000, .BASE, {is_64=true} }, - { .MOVZ, {.X_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0xD2800000, 0xFF800000, .BASE, {is_64=true} }, - { .MOVZ, {.W_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x52800000, 0xFF800000, .BASE, {} }, - { .MOVN, {.W_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x12800000, 0xFF800000, .BASE, {} }, - { .MOVN, {.X_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x92800000, 0xFF800000, .BASE, {is_64=true} }, - { .MOVK, {.W_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x72800000, 0xFF800000, .BASE, {} }, - { .MOVK, {.X_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0xF2800000, 0xFF800000, .BASE, {is_64=true} }, - { .AND_IMM, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x92000000, 0xFF800000, .BASE, {is_64=true} }, - { .ANDS_IMM, {.X_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0xF2000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true} }, - { .ORR_IMM, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0xB2000000, 0xFF800000, .BASE, {is_64=true} }, - { .EOR_IMM, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0xD2000000, 0xFF800000, .BASE, {is_64=true} }, - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFFFFF, .BASE, {} }, - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503203F, 0xFFFFFFFF, .BASE, {} }, - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503205F, 0xFFFFFFFF, .BASE, {} }, - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503207F, 0xFFFFFFFF, .BASE, {} }, - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503209F, 0xFFFFFFFF, .BASE, {} }, - { .SEVL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320BF, 0xFFFFFFFF, .BASE, {} }, - { .PACIASP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503233F, 0xFFFFFFFF, .PAC, {} }, - { .PACIBSP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503237F, 0xFFFFFFFF, .PAC, {} }, - { .AUTIASP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50323BF, 0xFFFFFFFF, .PAC, {} }, - { .AUTIBSP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50323FF, 0xFFFFFFFF, .PAC, {} }, - { .PACIA1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503211F, 0xFFFFFFFF, .PAC, {} }, - { .PACIB1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503215F, 0xFFFFFFFF, .PAC, {} }, - { .AUTIA1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503219F, 0xFFFFFFFF, .PAC, {} }, - { .AUTIB1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50321DF, 0xFFFFFFFF, .PAC, {} }, - { .XPACLRI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320FF, 0xFFFFFFFF, .PAC, {} }, - { .SME_SMSTART, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503477F, 0xFFFFFFFF, .SME, {} }, - { .SME_SMSTOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503467F, 0xFFFFFFFF, .SME, {} }, - { .TCOMMIT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503307F, 0xFFFFFFFF, .BASE, {} }, - { .SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50330FF, 0xFFFFFFFF, .BASE, {} }, - { .CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503229F, 0xFFFFFFFF, .BASE, {} }, - { .DGH, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320DF, 0xFFFFFFFF, .BASE, {} }, - { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503223F, 0xFFFFFFFF, .BASE, {} }, - { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503225F, 0xFFFFFFFF, .BASE, {} }, - { .BTI_J, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503245F, 0xFFFFFFFF, .BTI, {} }, - { .BTI_C, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503249F, 0xFFFFFFFF, .BTI, {} }, - { .BTI_JC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50324DF, 0xFFFFFFFF, .BTI, {} }, - { .TLBI_PAALL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508E89F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_PAALLOS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508E81F, 0xFFFFFFFF, .BASE, {} }, - { .IC_IALLUIS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508711F, 0xFFFFFFFF, .BASE, {} }, - { .IC_IALLU, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508751F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_VMALLE1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_VMALLE1IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_ALLE1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_ALLE1IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_ALLE2, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50C871F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_ALLE2IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50C831F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_ALLE3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50E871F, 0xFFFFFFFF, .BASE, {} }, - { .TLBI_ALLE3IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50E831F, 0xFFFFFFFF, .BASE, {} }, - { .BTI, {.IMM_2,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0xD503241F, 0xFFFFF8FF, .BTI, {} }, - { .ISB, {.IMM_4,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD50330DF, 0xFFFFF0FF, .BASE, {} }, - { .DSB, {.IMM_4,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD503309F, 0xFFFFF0FF, .BASE, {} }, - { .DMB, {.IMM_4,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD50330BF, 0xFFFFF0FF, .BASE, {} }, - { .TSTART, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5233060, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TTEST, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5233160, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .WFET, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5031000, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .WFIT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5031020, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_RPALOS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5084EE0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_RPAOS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5084EA0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E1A, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5079140, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CIPAPA, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7CE0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CIGDPAPA, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7DE0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_IVAC, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087620, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_ISW, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087640, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CSW, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087A40, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CISW, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087E40, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_ZVA, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7420, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CVAC, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7A20, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CVAU, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7B20, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .DC_CIVAC, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7E20, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .IC_IVAU, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7520, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E1R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087800, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E1W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087820, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E0R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087840, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E0W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087860, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E2R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C7800, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E2W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C7820, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E3R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7800, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S1E3W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7820, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S12E1R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C7880, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S12E1W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C78A0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S12E0R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C78C0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .AT_S12E0W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C78E0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VAE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088720, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VAE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088320, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_ASIDE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088740, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_ASIDE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088340, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VAAE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088760, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VAAE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088360, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VALE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50887A0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VALE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50883A0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VAALE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50887E0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .TLBI_VAALE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50883E0, 0xFFFFFFE0, .BASE, {is_64=true} }, - { .HINT, {.IMM_8,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFF01F, .BASE, {} }, - { .MSR_IMM, {.SYS_REG,.IMM_4,.NONE,.NONE}, {.MSR_PSTATE,.BARRIER_FIELD,.NONE,.NONE}, 0xD500401F, 0xFFF8F01F, .BASE, {} }, - { .SVC, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4000001, 0xFFE0001F, .BASE, {branch=true} }, - { .HVC, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4000002, 0xFFE0001F, .BASE, {branch=true} }, - { .SMC, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4000003, 0xFFE0001F, .BASE, {branch=true} }, - { .BRK, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4200000, 0xFFE0001F, .BASE, {branch=true} }, - { .HLT, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4400000, 0xFFE0001F, .BASE, {branch=true} }, - { .TCANCEL, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4600000, 0xFFE0001F, .BASE, {} }, - { .MRS, {.X_REG,.SYS_REG,.NONE,.NONE}, {.RT,.SYS_FIELD,.NONE,.NONE}, 0xD5300000, 0xFFF00000, .BASE, {} }, - { .MSR_REG, {.SYS_REG,.X_REG,.NONE,.NONE}, {.SYS_FIELD,.RT,.NONE,.NONE}, 0xD5100000, 0xFFF00000, .BASE, {} }, - { .B_COND, {.COND,.REL_19,.NONE,.NONE}, {.COND_LO,.BRANCH_19,.NONE,.NONE}, 0x54000000, 0xFF000010, .BASE, {cond_branch=true} }, - { .BC_COND, {.COND,.REL_19,.NONE,.NONE}, {.COND_LO,.BRANCH_19,.NONE,.NONE}, 0x54000010, 0xFF000010, .BASE, {cond_branch=true} }, - { .CBZ, {.X_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0xB4000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true} }, - { .CBZ, {.W_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x34000000, 0xFF000000, .BASE, {cond_branch=true} }, - { .CBNZ, {.W_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x35000000, 0xFF000000, .BASE, {cond_branch=true} }, - { .CBNZ, {.X_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0xB5000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true} }, - { .B, {.REL_26,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true} }, - { .BL, {.REL_26,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true} }, - { .RET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F03C0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, - { .ERET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F03E0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, - { .RETAA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, - { .RETAB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, - { .ERETAA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, - { .ERETAB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, - { .BR, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD61F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true} }, - { .BLR, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD63F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true} }, - { .RET, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD65F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true} }, - { .BRAAZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD61F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, - { .BRABZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD61F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, - { .BLRAAZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD63F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, - { .BLRABZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD63F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, - { .BRAA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD71F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, - { .BRAB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD71F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, - { .BLRAA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD73F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, - { .BLRAB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD73F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, - { .TBZ, {.X_REG,.IMM_5,.REL_14,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE}, 0x36000000, 0x7F000000, .BASE, {cond_branch=true} }, - { .TBNZ, {.X_REG,.IMM_5,.REL_14,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE}, 0x37000000, 0x7F000000, .BASE, {cond_branch=true} }, - { .B, {.REL_26,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true} }, - { .BL, {.REL_26,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true} }, - { .LDAPR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xB8BFC000, 0xFFFFFC00, .LSE2, {} }, - { .LDAPR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xF8BFC000, 0xFFFFFC00, .LSE2, {is_64=true} }, - { .LDAPRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x38BFC000, 0xFFFFFC00, .LSE2, {} }, - { .LDAPRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x78BFC000, 0xFFFFFC00, .LSE2, {} }, - { .LDADD, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8200000, 0xFFE0FC00, .LSE, {} }, - { .LDADD, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8200000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDADDA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A00000, 0xFFE0FC00, .LSE, {} }, - { .LDADDA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A00000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDADDL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8600000, 0xFFE0FC00, .LSE, {} }, - { .LDADDL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8600000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDADDAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E00000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDADDAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E00000, 0xFFE0FC00, .LSE, {} }, - { .LDCLR, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8201000, 0xFFE0FC00, .LSE, {} }, - { .LDCLR, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8201000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDCLRA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A01000, 0xFFE0FC00, .LSE, {} }, - { .LDCLRA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A01000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDCLRL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8601000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDCLRL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8601000, 0xFFE0FC00, .LSE, {} }, - { .LDCLRAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E01000, 0xFFE0FC00, .LSE, {} }, - { .LDCLRAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E01000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDEOR, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8202000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDEOR, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8202000, 0xFFE0FC00, .LSE, {} }, - { .LDEORA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A02000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDEORA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A02000, 0xFFE0FC00, .LSE, {} }, - { .LDEORL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8602000, 0xFFE0FC00, .LSE, {} }, - { .LDEORL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8602000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDEORAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E02000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDEORAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E02000, 0xFFE0FC00, .LSE, {} }, - { .LDSET, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8203000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSET, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8203000, 0xFFE0FC00, .LSE, {} }, - { .LDSETA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A03000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSETA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A03000, 0xFFE0FC00, .LSE, {} }, - { .LDSETL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8603000, 0xFFE0FC00, .LSE, {} }, - { .LDSETL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8603000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSETAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E03000, 0xFFE0FC00, .LSE, {} }, - { .LDSETAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E03000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMAX, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8204000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMAX, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8204000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A04000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMAXA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A04000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8604000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMAXL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8604000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E04000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E04000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMIN, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8205000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMIN, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8205000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A05000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A05000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMINL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8605000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8605000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDSMINAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E05000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E05000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMAX, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8206000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMAX, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8206000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A06000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMAXA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A06000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8606000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMAXL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8606000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E06000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E06000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMIN, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8207000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMIN, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8207000, 0xFFE0FC00, .LSE, {} }, - { .LDUMINA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A07000, 0xFFE0FC00, .LSE, {} }, - { .LDUMINA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A07000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMINL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8607000, 0xFFE0FC00, .LSE, {} }, - { .LDUMINL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8607000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMINAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E07000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .LDUMINAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E07000, 0xFFE0FC00, .LSE, {} }, - { .SWP, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8208000, 0xFFE0FC00, .LSE, {} }, - { .SWP, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8208000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .SWPA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A08000, 0xFFE0FC00, .LSE, {} }, - { .SWPA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A08000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .SWPL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8608000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .SWPL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8608000, 0xFFE0FC00, .LSE, {} }, - { .SWPAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E08000, 0xFFE0FC00, .LSE, {} }, - { .SWPAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E08000, 0xFFE0FC00, .LSE, {is_64=true} }, - { .CPYFP, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19000400, 0xFFE03C00, .BASE, {is_64=true} }, - { .CPYFM, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19400400, 0xFFE03C00, .BASE, {is_64=true} }, - { .CPYFE, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19800400, 0xFFE03C00, .BASE, {is_64=true} }, - { .SETP, {.XSP_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19C00400, 0xFFE03C00, .BASE, {is_64=true} }, - { .SETM, {.XSP_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19C04400, 0xFFE03C00, .BASE, {is_64=true} }, - { .SETE, {.XSP_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19C08400, 0xFFE03C00, .BASE, {is_64=true} }, - { .LDUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xB8400000, 0xFFE00C00, .BASE, {} }, - { .LDUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8400000, 0xFFE00C00, .BASE, {is_64=true} }, - { .STUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xB8000000, 0xFFE00C00, .BASE, {} }, - { .STUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8000000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38400000, 0xFFE00C00, .BASE, {} }, - { .STURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38000000, 0xFFE00C00, .BASE, {} }, - { .LDURSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38C00000, 0xFFE00C00, .BASE, {} }, - { .LDURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78400000, 0xFFE00C00, .BASE, {} }, - { .STURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78000000, 0xFFE00C00, .BASE, {} }, - { .LDURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78C00000, 0xFFE00C00, .BASE, {} }, - { .LDURSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDURSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xB8800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDR_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xB8400C00, 0xFFE00C00, .BASE, {} }, - { .LDR_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8400C00, 0xFFE00C00, .BASE, {is_64=true} }, - { .STR_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8000C00, 0xFFE00C00, .BASE, {is_64=true} }, - { .STR_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xB8000C00, 0xFFE00C00, .BASE, {} }, - { .LDR_POST, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xF8400400, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDR_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xB8400400, 0xFFE00C00, .BASE, {} }, - { .STR_POST, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xF8000400, 0xFFE00C00, .BASE, {is_64=true} }, - { .STR_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xB8000400, 0xFFE00C00, .BASE, {} }, - { .LDRB_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x38400C00, 0xFFE00C00, .BASE, {} }, - { .STRB_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x38000C00, 0xFFE00C00, .BASE, {} }, - { .LDRB_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x38400400, 0xFFE00C00, .BASE, {} }, - { .STRB_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x38000400, 0xFFE00C00, .BASE, {} }, - { .LDRH_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x78400C00, 0xFFE00C00, .BASE, {} }, - { .STRH_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x78000C00, 0xFFE00C00, .BASE, {} }, - { .LDRH_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x78400400, 0xFFE00C00, .BASE, {} }, - { .STRH_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x78000400, 0xFFE00C00, .BASE, {} }, - { .LDR_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xF8600800, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDR_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xB8600800, 0xFFE00C00, .BASE, {} }, - { .STR_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xB8200800, 0xFFE00C00, .BASE, {} }, - { .STR_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xF8200800, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDRB_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38600800, 0xFFE00C00, .BASE, {} }, - { .STRB_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38200800, 0xFFE00C00, .BASE, {} }, - { .LDRH_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78600800, 0xFFE00C00, .BASE, {} }, - { .STRH_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78200800, 0xFFE00C00, .BASE, {} }, - { .LDRSB_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38E00800, 0xFFE00C00, .BASE, {} }, - { .LDRSB_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38A00800, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDRSH_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78E00800, 0xFFE00C00, .BASE, {} }, - { .LDRSH_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78A00800, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDRSW_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xB8A00800, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9600000, 0xFFE00C00, .MTE, {is_64=true} }, - { .STG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9200800, 0xFFE00C00, .MTE, {is_64=true} }, - { .ST2G, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9A00800, 0xFFE00C00, .MTE, {is_64=true} }, - { .STZG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9600800, 0xFFE00C00, .MTE, {is_64=true} }, - { .STZ2G, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9E00800, 0xFFE00C00, .MTE, {is_64=true} }, - { .LDGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true} }, - { .STGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true} }, - { .STZGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true} }, - { .LDAPUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99400000, 0xFFE00C00, .BASE, {} }, - { .LDAPUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true} }, - { .STLUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99000000, 0xFFE00C00, .BASE, {} }, - { .STLUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDAPURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19400000, 0xFFE00C00, .BASE, {} }, - { .STLURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19000000, 0xFFE00C00, .BASE, {} }, - { .LDAPURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59400000, 0xFFE00C00, .BASE, {} }, - { .STLURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59000000, 0xFFE00C00, .BASE, {} }, - { .LDAPURSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDAPURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {} }, - { .LDAPURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {} }, - { .LDAPURSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDAPURSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .PRFUM, {.IMM_5,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDRAA, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true} }, - { .LDRAB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF8A00400, 0xFFA00C00, .PAC, {is_64=true} }, - { .LDRAA_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8200C00, 0xFFA00C00, .PAC, {is_64=true} }, - { .LDRAB_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8A00C00, 0xFFA00C00, .PAC, {is_64=true} }, - { .LDR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF9400000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xB9400000, 0xFFC00000, .BASE, {} }, - { .STR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xB9000000, 0xFFC00000, .BASE, {} }, - { .STR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF9000000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39400000, 0xFFC00000, .BASE, {} }, - { .STRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39000000, 0xFFC00000, .BASE, {} }, - { .LDRSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39C00000, 0xFFC00000, .BASE, {} }, - { .LDRSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79400000, 0xFFC00000, .BASE, {} }, - { .STRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79000000, 0xFFC00000, .BASE, {} }, - { .LDRSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79C00000, 0xFFC00000, .BASE, {} }, - { .LDRSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDRSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xB9800000, 0xFFC00000, .BASE, {is_64=true} }, - { .PRFM, {.IMM_5,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF9800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDR_LIT, {.W_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x18000000, 0xFF000000, .BASE, {} }, - { .LDR_LIT, {.X_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x58000000, 0xFF000000, .BASE, {is_64=true} }, - { .PRFM_LIT, {.IMM_5,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0xD8000000, 0xFF000000, .BASE, {is_64=true} }, - { .PACIZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC123E0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .PACIZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC127E0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .PACDZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC12BE0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .PACDZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC12FE0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .AUTIZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC133E0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .AUTIZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC137E0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .AUTDZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC13BE0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .AUTDZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC13FE0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .XPACI, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC143E0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .XPACD, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC147E0, 0xFFFFFFE0, .PAC, {is_64=true} }, - { .CLZ, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC01000, 0xFFFFFC00, .BASE, {} }, - { .CLZ, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC01000, 0xFFFFFC00, .BASE, {is_64=true} }, - { .CLS, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC01400, 0xFFFFFC00, .BASE, {is_64=true} }, - { .CLS, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC01400, 0xFFFFFC00, .BASE, {} }, - { .RBIT, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC00000, 0xFFFFFC00, .BASE, {} }, - { .RBIT, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00000, 0xFFFFFC00, .BASE, {is_64=true} }, - { .REV, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00C00, 0xFFFFFC00, .BASE, {is_64=true} }, - { .REV, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC00800, 0xFFFFFC00, .BASE, {} }, - { .REV16, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00400, 0xFFFFFC00, .BASE, {is_64=true} }, - { .REV16, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC00400, 0xFFFFFC00, .BASE, {} }, - { .REV32, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00800, 0xFFFFFC00, .BASE, {is_64=true} }, - { .PACIA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10000, 0xFFFFFC00, .PAC, {is_64=true} }, - { .PACIB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10400, 0xFFFFFC00, .PAC, {is_64=true} }, - { .PACDA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10800, 0xFFFFFC00, .PAC, {is_64=true} }, - { .PACDB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10C00, 0xFFFFFC00, .PAC, {is_64=true} }, - { .AUTIA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11000, 0xFFFFFC00, .PAC, {is_64=true} }, - { .AUTIB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true} }, - { .AUTDA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true} }, - { .AUTDB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true} }, - { .NGC, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - { .NGC, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {} }, - { .NGCS, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true} }, - { .NGCS, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true} }, - { .LSLV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {} }, - { .LSLV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true} }, - { .LSRV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true} }, - { .LSRV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02400, 0xFFE0FC00, .BASE, {} }, - { .ASRV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02800, 0xFFE0FC00, .BASE, {is_64=true} }, - { .ASRV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02800, 0xFFE0FC00, .BASE, {} }, - { .RORV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02C00, 0xFFE0FC00, .BASE, {} }, - { .RORV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02C00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .UDIV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC00800, 0xFFE0FC00, .BASE, {is_64=true} }, - { .UDIV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC00800, 0xFFE0FC00, .BASE, {} }, - { .SDIV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC00C00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .SDIV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC00C00, 0xFFE0FC00, .BASE, {} }, - { .SMULH, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9B407C00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .UMULH, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9BC07C00, 0xFFE0FC00, .BASE, {is_64=true} }, - { .PACGA, {.X_REG,.X_REG,.XSP_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC03000, 0xFFE0FC00, .PAC, {is_64=true} }, - { .IRG, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC01000, 0xFFE0FC00, .MTE, {is_64=true} }, - { .GMI, {.X_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC01400, 0xFFE0FC00, .MTE, {is_64=true} }, - { .SUBP, {.X_REG,.XSP_REG,.XSP_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC00000, 0xFFE0FC00, .MTE, {is_64=true} }, - { .SUBPS, {.X_REG,.XSP_REG,.XSP_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xBAC00000, 0xFFE0FC00, .MTE, {sets_flags=true, is_64=true} }, - { .CRC32B, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC04000, 0xFFE0FC00, .CRC32, {} }, - { .CRC32H, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC04400, 0xFFE0FC00, .CRC32, {} }, - { .CRC32W, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC04800, 0xFFE0FC00, .CRC32, {} }, - { .CRC32X, {.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC04C00, 0xFFE0FC00, .CRC32, {is_64=true} }, - { .CRC32CB, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC05000, 0xFFE0FC00, .CRC32, {} }, - { .CRC32CH, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC05400, 0xFFE0FC00, .CRC32, {} }, - { .CRC32CW, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC05800, 0xFFE0FC00, .CRC32, {} }, - { .CRC32CX, {.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC05C00, 0xFFE0FC00, .CRC32, {is_64=true} }, - { .ADC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true} }, - { .ADC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {} }, - { .ADCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, - { .ADCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true} }, - { .SBC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {} }, - { .SBC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true} }, - { .SBCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, - { .SBCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true} }, - { .CCMP_REG, {.X_REG,.X_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - { .CCMP_REG, {.W_REG,.W_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0x7A400000, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMP_IMM, {.X_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0xFA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - { .CCMP_IMM, {.W_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0x7A400800, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMN_REG, {.W_REG,.W_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0x3A400000, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMN_REG, {.X_REG,.X_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0xBA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - { .CCMN_IMM, {.W_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0x3A400800, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMN_IMM, {.X_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0xBA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - { .CSEL, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x9A800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .CSEL, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1A800000, 0xFFE00C00, .BASE, {} }, - { .CSINC, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1A800400, 0xFFE00C00, .BASE, {} }, - { .CSINC, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x9A800400, 0xFFE00C00, .BASE, {is_64=true} }, - { .CSINV, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x5A800000, 0xFFE00C00, .BASE, {} }, - { .CSINV, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0xDA800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .CSNEG, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0xDA800400, 0xFFE00C00, .BASE, {is_64=true} }, - { .CSNEG, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x5A800400, 0xFFE00C00, .BASE, {} }, - { .MADD, {.X_REG,.X_REG,.X_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B000000, 0xFFE08000, .BASE, {is_64=true} }, - { .MADD, {.W_REG,.W_REG,.W_REG,.W_REG}, {.RD,.RN,.RM,.RA}, 0x1B000000, 0xFFE08000, .BASE, {} }, - { .MSUB, {.W_REG,.W_REG,.W_REG,.W_REG}, {.RD,.RN,.RM,.RA}, 0x1B008000, 0xFFE08000, .BASE, {} }, - { .MSUB, {.X_REG,.X_REG,.X_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B008000, 0xFFE08000, .BASE, {is_64=true} }, - { .SMADDL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B200000, 0xFFE08000, .BASE, {is_64=true} }, - { .SMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B208000, 0xFFE08000, .BASE, {is_64=true} }, - { .UMADDL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9BA00000, 0xFFE08000, .BASE, {is_64=true} }, - { .UMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9BA08000, 0xFFE08000, .BASE, {is_64=true} }, - { .CPYP, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true} }, - { .CPYM, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true} }, - { .CPYE, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true} }, - { .LDUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {} }, - { .LDUR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xBC400000, 0xFFE00C00, .NEON, {} }, - { .LDUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC400000, 0xFFE00C00, .NEON, {} }, - { .STUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3C800000, 0xFFE00C00, .NEON, {} }, - { .STUR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xBC000000, 0xFFE00C00, .NEON, {} }, - { .STUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC000000, 0xFFE00C00, .NEON, {} }, - { .LDR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3DC00000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {} }, - { .STR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D800000, 0xFFC00000, .FP, {} }, - { .STR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {} }, - { .FMOV_REG, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E604000, 0xFFFFFC00, .FP, {} }, - { .FMOV_REG, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E204000, 0xFFFFFC00, .FP, {} }, - { .FMOV_GEN, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FMOV_GEN, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E260000, 0xFFFFFC00, .FP, {} }, - { .FMOV_GEN, {.S_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E270000, 0xFFFFFC00, .FP, {} }, - { .FMOV_GEN, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E660000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FABS, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E20C000, 0xFFFFFC00, .FP, {} }, - { .FABS, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E60C000, 0xFFFFFC00, .FP, {} }, - { .FNEG, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E214000, 0xFFFFFC00, .FP, {} }, - { .FNEG, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E614000, 0xFFFFFC00, .FP, {} }, - { .FSQRT, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E61C000, 0xFFFFFC00, .FP, {} }, - { .FSQRT, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E21C000, 0xFFFFFC00, .FP, {} }, - { .FCMP, {.D_REG,.D_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E602000, 0xFFE0FC1F, .FP, {sets_flags=true} }, - { .FCMP, {.S_REG,.S_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E202000, 0xFFE0FC1F, .FP, {sets_flags=true} }, - { .FCMPE, {.D_REG,.D_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E602010, 0xFFE0FC1F, .FP, {sets_flags=true} }, - { .FCMPE, {.S_REG,.S_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E202010, 0xFFE0FC1F, .FP, {sets_flags=true} }, - { .FCVT, {.D_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E22C000, 0xFFFFFC00, .FP, {} }, - { .FCVT, {.S_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E624000, 0xFFFFFC00, .FP, {} }, - { .SCVTF, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E620000, 0xFFFFFC00, .FP, {is_64=true} }, - { .SCVTF, {.D_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E620000, 0xFFFFFC00, .FP, {} }, - { .SCVTF, {.S_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E220000, 0xFFFFFC00, .FP, {} }, - { .SCVTF, {.S_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E220000, 0xFFFFFC00, .FP, {is_64=true} }, - { .UCVTF, {.S_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E230000, 0xFFFFFC00, .FP, {is_64=true} }, - { .UCVTF, {.D_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E630000, 0xFFFFFC00, .FP, {} }, - { .UCVTF, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E630000, 0xFFFFFC00, .FP, {is_64=true} }, - { .UCVTF, {.S_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E230000, 0xFFFFFC00, .FP, {} }, - { .FCVTZS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E380000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FCVTZS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E780000, 0xFFFFFC00, .FP, {} }, - { .FCVTZS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E780000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FCVTZS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E380000, 0xFFFFFC00, .FP, {} }, - { .FCVTZU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E790000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FCVTZU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E390000, 0xFFFFFC00, .FP, {} }, - { .FCVTZU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E790000, 0xFFFFFC00, .FP, {} }, - { .FCVTZU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E390000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FCVTAS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE40000, 0xFFFFFC00, .FP16, {} }, - { .FCVTAS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E640000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE40000, 0xFFFFFC00, .FP16, {} }, - { .FCVTAS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E240000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E640000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E240000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE50000, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E650000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E250000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E650000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE50000, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E250000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E600000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E200000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE00000, 0xFFFFFC00, .FP16, {} }, - { .FCVTNS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E600000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E200000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE00000, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E610000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE10000, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E610000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E210000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE10000, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E210000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E680000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE80000, 0xFFFFFC00, .FP16, {} }, - { .FCVTPS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E680000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E280000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE80000, 0xFFFFFC00, .FP16, {} }, - { .FCVTPS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E280000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE90000, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E690000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E290000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE90000, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E290000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E690000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EF00000, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E700000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF00000, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E300000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E700000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E300000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EF10000, 0xFFFFFC00, .FP16, {} }, - { .FCVTMU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E310000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF10000, 0xFFFFFC00, .FP16, {} }, - { .FCVTMU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E710000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E310000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E710000, 0xFFFFFC00, .FP, {} }, - { .FRINTA, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E264000, 0xFFFFFC00, .FP, {} }, - { .FRINTA, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E664000, 0xFFFFFC00, .FP, {} }, - { .FRINTA, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE64000, 0xFFFFFC00, .FP16, {} }, - { .FRINTI, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE7C000, 0xFFFFFC00, .FP16, {} }, - { .FRINTI, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E67C000, 0xFFFFFC00, .FP, {} }, - { .FRINTI, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E27C000, 0xFFFFFC00, .FP, {} }, - { .FRINTM, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE54000, 0xFFFFFC00, .FP16, {} }, - { .FRINTM, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E254000, 0xFFFFFC00, .FP, {} }, - { .FRINTM, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E654000, 0xFFFFFC00, .FP, {} }, - { .FRINTN, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE44000, 0xFFFFFC00, .FP16, {} }, - { .FRINTN, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E644000, 0xFFFFFC00, .FP, {} }, - { .FRINTN, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E244000, 0xFFFFFC00, .FP, {} }, - { .FRINTP, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE4C000, 0xFFFFFC00, .FP16, {} }, - { .FRINTP, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E24C000, 0xFFFFFC00, .FP, {} }, - { .FRINTP, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E64C000, 0xFFFFFC00, .FP, {} }, - { .FRINTX, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE74000, 0xFFFFFC00, .FP16, {} }, - { .FRINTX, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E274000, 0xFFFFFC00, .FP, {} }, - { .FRINTX, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E674000, 0xFFFFFC00, .FP, {} }, - { .FRINTZ, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE5C000, 0xFFFFFC00, .FP16, {} }, - { .FRINTZ, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E25C000, 0xFFFFFC00, .FP, {} }, - { .FRINTZ, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E65C000, 0xFFFFFC00, .FP, {} }, - { .SHA1H, {.S_REG,.S_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x5E280800, 0xFFFFFC00, .CRYPTO, {} }, - { .SHA1SU1, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x5E281800, 0xFFFFFC00, .CRYPTO, {} }, - { .SHA256SU0, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x5E282800, 0xFFFFFC00, .CRYPTO, {} }, - { .FABS_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE0C000, 0xFFFFFC00, .FP16, {} }, - { .FNEG_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE14000, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE1C000, 0xFFFFFC00, .FP16, {} }, - { .FCMP_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1EE02000, 0xFFE0FC1F, .FP16, {sets_flags=true} }, - { .FCMPE_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1EE02010, 0xFFE0FC1F, .FP16, {sets_flags=true} }, - { .FCVT_H_S, {.H_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E23C000, 0xFFFFFC00, .FP16, {} }, - { .FCVT_H_D, {.H_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E63C000, 0xFFFFFC00, .FP16, {} }, - { .FCVT_S_H, {.S_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE24000, 0xFFFFFC00, .FP16, {} }, - { .FCVT_D_H, {.D_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE2C000, 0xFFFFFC00, .FP16, {} }, - { .FMOV_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE04000, 0xFFFFFC00, .FP16, {} }, - { .SCVTF_H, {.H_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE20000, 0xFFFFFC00, .FP16, {} }, - { .UCVTF_H, {.H_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE30000, 0xFFFFFC00, .FP16, {} }, - { .FCVTZS_H, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF80000, 0xFFFFFC00, .FP16, {} }, - { .FCVTZU_H, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF90000, 0xFFFFFC00, .FP16, {} }, - { .BFCVT, {.H_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E634000, 0xFFFFFC00, .BF16, {} }, - { .FRECPX, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5EE1F800, 0xFFFFFC00, .FP, {} }, - { .FRECPX, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5EA1F800, 0xFFFFFC00, .FP, {} }, - { .FRECPX, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5EF9F800, 0xFFFFFC00, .FP16, {} }, - { .FMOV_IMM, {.S_REG,.IMM_8,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE}, 0x1E201000, 0xFFE01FE0, .FP, {} }, - { .FMOV_IMM, {.D_REG,.IMM_8,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE}, 0x1E601000, 0xFFE01FE0, .FP, {} }, - { .FMOV_IMM, {.H_REG,.IMM_8,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE}, 0x1EE01000, 0xFFE01FE0, .FP16, {} }, - { .FADD, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E202800, 0xFFE0FC00, .FP, {} }, - { .FADD, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E602800, 0xFFE0FC00, .FP, {} }, - { .FSUB, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E603800, 0xFFE0FC00, .FP, {} }, - { .FSUB, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E203800, 0xFFE0FC00, .FP, {} }, - { .FMUL, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E600800, 0xFFE0FC00, .FP, {} }, - { .FMUL, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E200800, 0xFFE0FC00, .FP, {} }, - { .FDIV, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E201800, 0xFFE0FC00, .FP, {} }, - { .FDIV, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E601800, 0xFFE0FC00, .FP, {} }, - { .FNMUL, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E608800, 0xFFE0FC00, .FP, {} }, - { .FNMUL, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E208800, 0xFFE0FC00, .FP, {} }, - { .FMAX, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E204800, 0xFFE0FC00, .FP, {} }, - { .FMAX, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E604800, 0xFFE0FC00, .FP, {} }, - { .FMIN, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E605800, 0xFFE0FC00, .FP, {} }, - { .FMIN, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E205800, 0xFFE0FC00, .FP, {} }, - { .FMAXNM, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E206800, 0xFFE0FC00, .FP, {} }, - { .FMAXNM, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E606800, 0xFFE0FC00, .FP, {} }, - { .FMINNM, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E207800, 0xFFE0FC00, .FP, {} }, - { .FMINNM, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E607800, 0xFFE0FC00, .FP, {} }, - { .SHA1C, {.Q_REG,.S_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E000000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA1P, {.Q_REG,.S_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E001000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA1M, {.Q_REG,.S_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E002000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA1SU0, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E003000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA256H, {.Q_REG,.Q_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E004000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA256H2, {.Q_REG,.Q_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E005000, 0xFFE0FC00, .CRYPTO, {} }, - { .SHA256SU1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E006000, 0xFFE0FC00, .CRYPTO, {} }, - { .FADD_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE02800, 0xFFE0FC00, .FP16, {} }, - { .FSUB_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE03800, 0xFFE0FC00, .FP16, {} }, - { .FMUL_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE00800, 0xFFE0FC00, .FP16, {} }, - { .FDIV_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE01800, 0xFFE0FC00, .FP16, {} }, - { .FNMUL_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE08800, 0xFFE0FC00, .FP16, {} }, - { .FMAX_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE04800, 0xFFE0FC00, .FP16, {} }, - { .FMIN_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE05800, 0xFFE0FC00, .FP16, {} }, - { .FMAXNM_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE06800, 0xFFE0FC00, .FP16, {} }, - { .FMINNM_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE07800, 0xFFE0FC00, .FP16, {} }, - { .FCSEL, {.D_REG,.D_REG,.D_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1E600C00, 0xFFE00C00, .FP, {} }, - { .FCSEL, {.S_REG,.S_REG,.S_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1E200C00, 0xFFE00C00, .FP, {} }, - { .FCSEL_H, {.H_REG,.H_REG,.H_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1EE00C00, 0xFFE00C00, .FP16, {} }, - { .FMADD, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F400000, 0xFFE08000, .FP, {} }, - { .FMADD, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F000000, 0xFFE08000, .FP, {} }, - { .FMSUB, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F408000, 0xFFE08000, .FP, {} }, - { .FMSUB, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F008000, 0xFFE08000, .FP, {} }, - { .FNMADD, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F200000, 0xFFE08000, .FP, {} }, - { .FNMADD, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F600000, 0xFFE08000, .FP, {} }, - { .FNMSUB, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F208000, 0xFFE08000, .FP, {} }, - { .FNMSUB, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F608000, 0xFFE08000, .FP, {} }, - { .FMADD_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FC00000, 0xFFE08000, .FP16, {} }, - { .FMSUB_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FC08000, 0xFFE08000, .FP16, {} }, - { .FNMADD_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FE00000, 0xFFE08000, .FP16, {} }, - { .FNMSUB_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FE08000, 0xFFE08000, .FP16, {} }, +DECODE_ENTRIES := [2724]lib.Decode_Entry{ + { .AMX_SET, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {} }, + { .AMX_CLR, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {} }, + { .AMX_LDX, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_LDY, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201020, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_STX, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201040, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_STY, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201060, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_LDZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201080, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_STZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002010A0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_LDZI, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002010C0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_STZI, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002010E0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_EXTRX, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201100, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_EXTRY, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201120, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_FMA64, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201140, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_FMS64, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201160, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_FMA32, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201180, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_FMS32, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002011A0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_MAC16, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002011C0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_FMA16, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002011E0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_FMS16, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201200, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_VECINT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201260, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_VECFP, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201280, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_MATINT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002012A0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_MATFP, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002012C0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .AMX_GENLUT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002012E0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + { .ZERO, {.SME_PATTERN,.NONE,.NONE,.NONE,.NONE}, {.SME_ZA_MASK,.NONE,.NONE,.NONE,.NONE}, 0xC0080000, 0xFFFFFF00, .SME, {explicit_count=1} }, + { .UZP, {.Z_QUAD_B,.Z_QUAD_B,.NONE,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE,.NONE}, 0xC136E002, 0xFFFFFC02, .SME, {explicit_count=2} }, + { .ZIP, {.Z_QUAD_B,.Z_QUAD_B,.NONE,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE,.NONE}, 0xC136E000, 0xFFFFFC00, .SME, {explicit_count=2} }, + { .LUTI2, {.Z_PAIR_B,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08C4000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI2, {.Z_PAIR_H,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08C5000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI2, {.Z_PAIR_S,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08C6000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI4, {.Z_PAIR_B,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08A4000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI4, {.Z_PAIR_H,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08A5000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI4, {.Z_PAIR_S,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08A6000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .ADDHA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZA_TILE_LOW,.PG,.PM3,.VN,.NONE}, 0xC0900000, 0xFFFF001C, .SME, {explicit_count=4} }, + { .ADDVA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZA_TILE_LOW,.PG,.PM3,.VN,.NONE}, 0xC0910000, 0xFFFF001C, .SME, {explicit_count=4} }, + { .UZP, {.Z_PAIR_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE,.NONE}, 0xC120D001, 0xFFE0FC01, .SME, {explicit_count=3} }, + { .ZIP, {.Z_PAIR_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE,.NONE}, 0xC120D000, 0xFFE0FC00, .SME, {explicit_count=3} }, + { .LD1B, {.Z_PAIR_B,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0000000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1B, {.Z_QUAD_B,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0008000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1H, {.Z_PAIR_H,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA0002000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1H, {.Z_QUAD_H,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA000A000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1W, {.Z_PAIR_S,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA0004000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1W, {.Z_QUAD_S,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA000C000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1D, {.Z_PAIR_D,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA0006000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + { .LD1D, {.Z_QUAD_D,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA000E000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + { .ST1B, {.Z_PAIR_B,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0200000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1B, {.Z_QUAD_B,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0208000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1H, {.Z_PAIR_H,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA0202000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1H, {.Z_QUAD_H,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA020A000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1W, {.Z_PAIR_S,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA0204000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1W, {.Z_QUAD_S,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA020C000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1D, {.Z_PAIR_D,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA0206000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + { .ST1D, {.Z_QUAD_D,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA020E000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + { .MOVA, {.Z_REG_B,.P_REG_MERGE,.SME_SLICE_B,.NONE,.NONE}, {.VD,.PG,.SME_SLICE_B,.NONE,.NONE}, 0xC0020000, 0xFFE28010, .SME, {explicit_count=3} }, + { .FMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x80800000, 0xFFE08010, .SME, {explicit_count=5} }, + { .FMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x80800010, 0xFFE08010, .SME, {explicit_count=5} }, + { .BFMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x81800000, 0xFFE08010, .SME, {explicit_count=5} }, + { .BFMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x81800010, 0xFFE08010, .SME, {explicit_count=5} }, + { .SMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA0800000, 0xFFE08010, .SME, {explicit_count=5} }, + { .SMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + { .SMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA0800010, 0xFFE08010, .SME, {explicit_count=5} }, + { .SMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + { .UMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA1A00000, 0xFFE08010, .SME, {explicit_count=5} }, + { .UMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + { .UMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA1A00010, 0xFFE08010, .SME, {explicit_count=5} }, + { .UMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + { .USMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA1800000, 0xFFE08010, .SME, {explicit_count=5} }, + { .SUMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA0A00000, 0xFFE08010, .SME, {explicit_count=5} }, + { .MOVA, {.SME_SLICE_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.SME_SLICE_B,.PG,.VN,.NONE,.NONE}, 0xC0000000, 0xFFE08010, .SME, {explicit_count=3} }, + { .LDR, {.ZA_ARRAY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.SME_ZA_ARRAY,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE1000000, 0xFFE08000, .SME, {explicit_count=2} }, + { .STR, {.ZA_ARRAY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.SME_ZA_ARRAY,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE1200000, 0xFFE08000, .SME, {explicit_count=2} }, + { .LD1B, {.SME_SLICE_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE0000000, 0xFFE00010, .SME, {explicit_count=3} }, + { .LD1H, {.SME_SLICE_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE0400000, 0xFFE00010, .SME, {explicit_count=3} }, + { .LD1W, {.SME_SLICE_W,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE0800000, 0xFFE00010, .SME, {explicit_count=3} }, + { .LD1D, {.SME_SLICE_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE0C00000, 0xFFE00010, .SME, {is_64=true, explicit_count=3} }, + { .ST1B, {.SME_SLICE_B,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE0200000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1H, {.SME_SLICE_H,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE0600000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1W, {.SME_SLICE_W,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE0A00000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1D, {.SME_SLICE_D,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE0E00000, 0xFFE00010, .SME, {is_64=true, explicit_count=3} }, + { .LD1Q, {.SME_SLICE_Q,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS4,.NONE,.NONE}, 0xE1C00000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1Q, {.SME_SLICE_Q,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS4,.NONE,.NONE}, 0xE1E00000, 0xFFE00010, .SME, {explicit_count=3} }, + { .SETFFR, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0x252C9000, 0xFFFFFFFF, .SVE, {} }, + { .PFALSE, {.P_REG_B,.NONE,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE,.NONE}, 0x2518E400, 0xFFFFFFF0, .SVE, {explicit_count=1} }, + { .RDFFR, {.P_REG_B,.NONE,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE,.NONE}, 0x2519F000, 0xFFFFFFF0, .SVE, {explicit_count=1} }, + { .WRFFR, {.P_REG_B,.NONE,.NONE,.NONE,.NONE}, {.PN,.NONE,.NONE,.NONE,.NONE}, 0x25289000, 0xFFFFFE1F, .SVE, {explicit_count=1} }, + { .AESMC, {.Z_REG_B,.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.VD,.NONE,.NONE,.NONE}, 0x4520E000, 0xFFFFFFE0, .SVE2, {explicit_count=2} }, + { .AESIMC, {.Z_REG_B,.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.VD,.NONE,.NONE,.NONE}, 0x4520E400, 0xFFFFFFE0, .SVE2, {explicit_count=2} }, + { .REV, {.P_REG_B,.P_REG_B,.NONE,.NONE,.NONE}, {.PD,.PN,.NONE,.NONE,.NONE}, 0x05344000, 0xFFFFFE10, .SVE, {explicit_count=2} }, + { .PFIRST, {.P_REG_B,.P_REG,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PD,.NONE,.NONE}, 0x2558C000, 0xFFFFFE10, .SVE, {explicit_count=3} }, + { .PNEXT, {.P_REG_B,.P_REG,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PD,.NONE,.NONE}, 0x2519C400, 0xFFFFFE10, .SVE, {explicit_count=3} }, + { .PTRUE, {.P_REG_B,.SVE_PATTERN,.NONE,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE,.NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {explicit_count=2} }, + { .PTRUES, {.P_REG_B,.SVE_PATTERN,.NONE,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE,.NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252C8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256C8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AC8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EC8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256C8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .INCP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AC8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .INCP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25EC8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252D8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256D8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AD8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25ED8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256D8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .DECP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AD8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .DECP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25ED8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25288C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25688C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25A88C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25E88C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_B,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25288800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.X_REG,.P_REG_H,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25688800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.X_REG,.P_REG_S,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25A88800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.X_REG,.P_REG_D,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25E88800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25688000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQINCP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25A88000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQINCP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25E88000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252A8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256A8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AA8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EA8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_B,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x252A8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.X_REG,.P_REG_H,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x256A8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.X_REG,.P_REG_S,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25AA8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.X_REG,.P_REG_D,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25EA8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256A8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQDECP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AA8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQDECP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25EA8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25298C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25698C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25A98C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25E98C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25298800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25698800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25A98800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25E98800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25698000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25A98000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25E98000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252B8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256B8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AB8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EB8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252B8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256B8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AB8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EB8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256B8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AB8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25EB8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_B,.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05383800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_H,.Z_REG_H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05783800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_S,.Z_REG_S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_D,.Z_REG_D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true, explicit_count=2} }, + { .AESE, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VD,.VN,.NONE,.NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {explicit_count=3} }, + { .AESD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VD,.VN,.NONE,.NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {explicit_count=3} }, + { .DUP, {.Z_REG_B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05203800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .DUP, {.Z_REG_H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05603800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .DUP, {.Z_REG_S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .DUP, {.Z_REG_D,.X_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true, explicit_count=2} }, + { .INSR, {.Z_REG_B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05243800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .INSR, {.Z_REG_H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05643800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .INSR, {.Z_REG_S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .INSR, {.Z_REG_D,.X_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true, explicit_count=2} }, + { .RDSVL, {.X_REG,.IMM_6,.NONE,.NONE,.NONE}, {.RD,.ENC_IMM6_LO,.NONE,.NONE,.NONE}, 0x04BF5800, 0xFFFFF800, .SME, {is_64=true, explicit_count=2} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_B,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25208020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_H,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25608020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_S,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25A08020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_D,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25E08020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .FCMLE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65512010, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65912010, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true, explicit_count=3} }, + { .FCMLT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65512000, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65912000, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true, explicit_count=3} }, + { .BRKA, {.P_REG_B,.P_REG_MERGE,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25104010, 0xFFFFC210, .SVE, {explicit_count=3} }, + { .BRKB, {.P_REG_B,.P_REG_MERGE,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25904010, 0xFFFFC210, .SVE, {explicit_count=3} }, + { .BRKAS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true, explicit_count=3} }, + { .BRKBS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true, explicit_count=3} }, + { .BRKN, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PD,.NONE}, 0x25184000, 0xFFFFC210, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04000000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04400000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04800000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C00000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .SUB, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04010000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04410000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUB, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04810000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUB, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C10000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .AND, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x041A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .AND, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x045A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .AND, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x049A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .AND, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04DA0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .ORR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04180000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ORR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04580000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ORR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04980000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ORR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D80000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .EOR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04190000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .EOR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04590000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .EOR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04990000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .EOR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D90000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .BIC, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x041B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BIC, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x045B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BIC, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x049B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BIC, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04DB0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .LSL, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04138000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04538000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSL, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04938000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSL, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D38000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .LSR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04118000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04518000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04918000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D18000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .ASR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04108000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04508000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04908000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D08000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .UDIV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04950000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UDIV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D50000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .SDIV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04940000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SDIV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D40000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .SMULH, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04120000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMULH, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04520000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMULH, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04920000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMULH, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D20000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .UMULH, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04130000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMULH, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04530000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMULH, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04930000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMULH, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D30000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65408000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FADD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65808000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FADD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C08000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FSUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65418000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUB, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65818000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUB, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C18000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FMUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65428000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMUL, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65828000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMUL, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C28000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FDIV, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x654D8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x658D8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65CD8000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FMAX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65468000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65868000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C68000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FMIN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65478000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMIN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65878000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMIN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C78000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FMAXNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65448000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAXNM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65848000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAXNM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C48000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FMINNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65458000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMINNM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65858000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMINNM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C58000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FRINTA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6544A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6584A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .FRINTI, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6547A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTI, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6587A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTI, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .FRINTM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6542A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6582A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .FRINTN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6540A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6580A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .FRINTP, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6541A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTP, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6581A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTP, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .FRINTX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6546A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6586A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .FRINTZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6543A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6583A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .XAR, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04283400, 0xFFF8FC00, .SVE2, {explicit_count=4} }, + { .BFCVT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x658AA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .MUL, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04100000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .MUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04500000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .MUL, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04900000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .MUL, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D00000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .SMAX, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04080000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMAX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04480000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMAX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04880000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMAX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C80000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .UMAX, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04090000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMAX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04490000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMAX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04890000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMAX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C90000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .SMIN, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMIN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMIN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMIN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CA0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .UMIN, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMIN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMIN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMIN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CB0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .SABD, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040C0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SABD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044C0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SABD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048C0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SABD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CC0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .UABD, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040D0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UABD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044D0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UABD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048D0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UABD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CD0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FRECPX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x654CA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRECPX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x658CA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRECPX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .ZIP1, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204000, 0xFFE0FE10, .SVE, {explicit_count=3} }, + { .ZIP2, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204400, 0xFFE0FE10, .SVE, {explicit_count=3} }, + { .UZP1, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204800, 0xFFE0FE10, .SVE, {explicit_count=3} }, + { .UZP2, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {explicit_count=3} }, + { .TRN1, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05205000, 0xFFE0FE10, .SVE, {explicit_count=3} }, + { .TRN2, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05205400, 0xFFE0FE10, .SVE, {explicit_count=3} }, + { .SUBR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04030000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUBR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04430000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUBR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04830000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUBR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C30000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .ASRR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04148000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASRR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04548000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASRR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04948000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASRR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .LSLR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04178000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSLR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04578000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSLR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04978000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSLR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .LSRR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04158000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSRR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04558000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSRR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04958000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSRR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FSUBR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65438000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUBR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65838000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUBR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .FDIVR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x654C8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIVR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x658C8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIVR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .CPY, {.Z_REG_B,.P_REG_MERGE,.W_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0528A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .CPY, {.Z_REG_H,.P_REG_MERGE,.W_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0568A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .CPY, {.Z_REG_S,.P_REG_MERGE,.W_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .CPY, {.Z_REG_D,.P_REG_MERGE,.X_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .COMPACT, {.Z_REG_S,.P_REG_GOV,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05A18000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .COMPACT, {.Z_REG_D,.P_REG_GOV,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + { .SPLICE, {.Z_REG_B,.P_REG_GOV,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x052C8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFCVTNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x648AA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .BFADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65008000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFSUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65018000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFMUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65028000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFMAXNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65048000, 0xFFFFE000, .SVE2, {explicit_count=4} }, + { .BFMINNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65058000, 0xFFFFE000, .SVE2, {explicit_count=4} }, + { .FNEG, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x045DA000, 0xFFFDE000, .SVE, {explicit_count=3} }, + { .FNEG, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x049DA000, 0xFFFDE000, .SVE, {explicit_count=3} }, + { .FNEG, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04DDA000, 0xFFFDE000, .SVE, {is_64=true, explicit_count=3} }, + { .XAR, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04303400, 0xFFF0FC00, .SVE2, {explicit_count=4} }, + { .NEG, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0417A000, 0xFFF7E000, .SVE, {explicit_count=3} }, + { .NEG, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0457A000, 0xFFF7E000, .SVE, {explicit_count=3} }, + { .NEG, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0497A000, 0xFFF7E000, .SVE, {explicit_count=3} }, + { .NEG, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D7A000, 0xFFF7E000, .SVE, {is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .CNTB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0420E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .CNTH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .CNTW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .CNTD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .INCW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .INCD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .DECB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .DECW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .DECD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .SQINCB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCB, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0420F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCH, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0460F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .SQINCW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCW, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04A0F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .SQINCD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCD, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04E0F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .SQDECB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECB, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0420F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECH, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0460F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460C800, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .SQDECW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECW, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04A0F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0C800, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .SQDECD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECD, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04E0F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0C800, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCB, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0420F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCH, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCW, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCD, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECB, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0420FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECH, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460CC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECW, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0CC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECD, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0CC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04200000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04600000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SUB, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04200400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04600400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .CLZ, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0419A000, 0xFFF9E000, .SVE, {explicit_count=3} }, + { .CLZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0459A000, 0xFFF9E000, .SVE, {explicit_count=3} }, + { .CLZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0499A000, 0xFFF9E000, .SVE, {explicit_count=3} }, + { .CLZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D9A000, 0xFFF9E000, .SVE, {is_64=true, explicit_count=3} }, + { .FABS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x045CA000, 0xFFFCE000, .SVE, {explicit_count=3} }, + { .FABS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x049CA000, 0xFFFCE000, .SVE, {explicit_count=3} }, + { .FABS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04DCA000, 0xFFFCE000, .SVE, {is_64=true, explicit_count=3} }, + { .FSQRT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x654DA000, 0xFFEDE000, .SVE, {explicit_count=3} }, + { .FSQRT, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x658DA000, 0xFFEDE000, .SVE, {explicit_count=3} }, + { .FSQRT, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65CDA000, 0xFFEDE000, .SVE, {is_64=true, explicit_count=3} }, + { .FADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FSUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FSUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .EOR3, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04203800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, + { .BCAX, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04603800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, + { .XAR, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04603400, 0xFFE0FC00, .SVE2, {explicit_count=4} }, + { .ABS, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0416A000, 0xFFF6E000, .SVE, {explicit_count=3} }, + { .ABS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0456A000, 0xFFF6E000, .SVE, {explicit_count=3} }, + { .ABS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0496A000, 0xFFF6E000, .SVE, {explicit_count=3} }, + { .ABS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D6A000, 0xFFF6E000, .SVE, {is_64=true, explicit_count=3} }, + { .SQADD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQADD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQSUB, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQSUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQSUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQSUB, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQSUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQSUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FMLA, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S,.NONE}, 0x64A00000, 0xFFE0FC00, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D,.NONE}, 0x64E00000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, + { .FMLS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S,.NONE}, 0x64A00400, 0xFFE0FC00, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D,.NONE}, 0x64E00400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, + { .FRECPS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65401800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRECPS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65801800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRECPS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FRSQRTS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRSQRTS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRSQRTS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .BSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04203C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + { .TBL, {.Z_REG_B,.Z_LIST1_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05203000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TBL, {.Z_REG_H,.Z_LIST1_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05603000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TBL, {.Z_REG_S,.Z_LIST1_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TBL, {.Z_REG_D,.Z_LIST1_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .TBL, {.Z_REG_B,.Z_LIST2_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN_LIST2,.VM,.NONE,.NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .TBX, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05202C00, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .ZIP1, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP1, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP1, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP1, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .ZIP2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP2, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP2, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP2, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UZP1, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP1, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP1, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP1, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UZP2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP2, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP2, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP2, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .TRN1, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05207000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN1, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05607000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN1, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN1, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .TRN2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05207400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN2, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN2, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN2, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .CNT, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x041AA000, 0xFFFAE000, .SVE, {explicit_count=3} }, + { .CNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x045AA000, 0xFFFAE000, .SVE, {explicit_count=3} }, + { .CNT, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x049AA000, 0xFFFAE000, .SVE, {explicit_count=3} }, + { .CNT, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04DAA000, 0xFFFAE000, .SVE, {is_64=true, explicit_count=3} }, + { .FTSMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FTSMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FTSMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .ADCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .ADCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .ADCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .ADCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .SBCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SBCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .SBCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SBCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .HISTSEG, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4520A000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04204000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.IMM_5,.W_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04204800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.W_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04204400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.W_REG,.W_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04204C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04604000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.IMM_5,.W_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04604800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.W_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04604400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.W_REG,.W_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04604C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04A04000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.IMM_5,.W_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04A04800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.W_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04A04400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.W_REG,.W_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04A04C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04E04000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.IMM_5,.X_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04E04800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.X_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04E04400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04E04C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .BSL1N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04603C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + { .BSL2N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04A03C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + { .NBSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04E03C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + { .PMUL, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04206400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .PMULLB, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C06800, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .PMULLT, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C06C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + { .BFADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65000000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .BFSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65000400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .BFMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65000800, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .BFCLAMP, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x64202400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .CLS, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0418A000, 0xFFF8E000, .SVE, {explicit_count=3} }, + { .CLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0458A000, 0xFFF8E000, .SVE, {explicit_count=3} }, + { .CLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0498A000, 0xFFF8E000, .SVE, {explicit_count=3} }, + { .CLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D8A000, 0xFFF8E000, .SVE, {is_64=true, explicit_count=3} }, + { .XAR, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04A03400, 0xFFA0FC00, .SVE2, {explicit_count=4} }, + { .FMLA, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H,.NONE}, 0x64200000, 0xFFA0FC00, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H,.NONE}, 0x64200400, 0xFFA0FC00, .SVE, {explicit_count=4} }, + { .NANDS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04210, 0xFFF0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .NORS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04200, 0xFFF0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .ORNS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04010, 0xFFF0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .BRKPA, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x2500C000, 0xFFF0C210, .SVE, {explicit_count=4} }, + { .BRKPB, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x2500C010, 0xFFF0C210, .SVE, {explicit_count=4} }, + { .AND, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .ANDS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .ORR, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .EOR, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004200, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .BIC, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004010, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .BICS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25404010, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .ORN, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804010, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .LDR, {.P_REG,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0x85800000, 0xFFE0E010, .SVE, {explicit_count=2} }, + { .STR, {.P_REG,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE5800000, 0xFFE0E010, .SVE, {explicit_count=2} }, + { .FCMEQ, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65406000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMEQ, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65806000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMEQ, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + { .FCMGE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65404000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65804000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + { .FCMGT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65404010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65804010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + { .MOV, {.P_REG_B,.P_REG_ZERO,.P_REG,.NONE,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {explicit_count=3} }, + { .MOV, {.P_REG_B,.P_REG,.NONE,.NONE,.NONE}, {.PD,.PN_PG_PM_DUP,.NONE,.NONE,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {explicit_count=2} }, + { .NOT, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.NONE,.NONE}, {.PD,.PG4_PM_DUP,.PN,.NONE,.NONE}, 0x25004200, 0xFFE0C210, .SVE, {explicit_count=3} }, + { .NAND, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804210, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .NOR, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804200, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .SEL, {.P_REG_B,.P_REG,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004210, 0xFFE0C210, .SVE, {explicit_count=4} }, + { .ORRS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04000, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .EORS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + { .MOVS, {.P_REG_B,.P_REG_ZERO,.P_REG,.NONE,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE,.NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=3} }, + { .CMPNE, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPNE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPNE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPNE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPGE, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPGT, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPLE, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPLT, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPHI, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHI, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHI, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHI, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPHS, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHS, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHS, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHS, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPLO, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLO, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLO, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLO, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CMPLS, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLS, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLS, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLS, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .FCMNE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65406010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMNE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65806010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMNE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + { .FCMUO, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x6540C000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMUO, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x6580C000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMUO, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C0C000, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + { .MATCH, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + { .MATCH, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + { .NMATCH, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + { .NMATCH, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + { .LDR, {.Z_REG_ANY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0x85804000, 0xFFE0E000, .SVE, {explicit_count=2} }, + { .STR, {.Z_REG_ANY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE5804000, 0xFFE0E000, .SVE, {explicit_count=2} }, + { .FMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65600000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A00000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + { .FMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65602000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A02000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + { .MOV, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x0520C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .MOV, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x0560C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .MOV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .MOV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .EXT, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT,.NONE}, {.VD,.VD,.VN,.SVE_EXT_IMM,.NONE}, 0x05200000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .EXT, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT,.NONE}, {.VD,.VD,.VN,.SVE_EXT_IMM,.NONE}, 0x05200000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65604000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A04000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + { .FNMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65606000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A06000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .LD1B, {.Z_REG_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA4004000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1H, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA5404000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA5E04000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1SB, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA5C04000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1SH, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA5004000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1SH, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA5204000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1SW, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA4804000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1B, {.Z_REG_B,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE4004000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .ST1H, {.Z_REG_H,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE4A04000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .ST1W, {.Z_REG_S,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE5404000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .ST1D, {.Z_REG_D,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE5E04000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LDFF1B, {.Z_REG_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA4006000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDFF1H, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA4A06000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDFF1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA5406000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDFF1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA5E06000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .HISTCNT, {.Z_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x45A0C000, 0xFFE0E000, .SVE2, {explicit_count=4} }, + { .HISTCNT, {.Z_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x45E0C000, 0xFFE0E000, .SVE2, {is_64=true, explicit_count=4} }, + { .PRFB, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0x8400C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .PRFH, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0x8480C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .PRFW, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0x8500C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .PRFD, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0x8580C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDNT1B, {.Z_REG_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA400C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDNT1H, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA480C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDNT1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA500C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LDNT1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA580C000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .STNT1B, {.Z_REG_B,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE4006000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .STNT1H, {.Z_REG_H,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE4806000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .STNT1W, {.Z_REG_S,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE5006000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .STNT1D, {.Z_REG_D,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE5806000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .BFMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65200000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .BFMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65202000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .LD1B, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84004000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1B, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4004000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1H, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84804000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1H, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4804000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x85004000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1W, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC5004000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC5804000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1SB, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84000000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1SB, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4000000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1SH, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84800000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1SH, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4800000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1SW, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC5000000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1B, {.Z_REG_S,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_S,.NONE,.NONE}, 0xE4408000, 0xFFE0A000, .SVE, {explicit_count=3} }, + { .ST1B, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE4008000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1H, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE4808000, 0xFFE0A000, .SVE, {explicit_count=3} }, + { .ST1H, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE4808000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1H, {.Z_REG_S,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_S,.NONE,.NONE}, 0xE4C08000, 0xFFE0A000, .SME, {explicit_count=3} }, + { .ST1W, {.Z_REG_S,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_S,.NONE,.NONE}, 0xE5408000, 0xFFE0A000, .SVE, {explicit_count=3} }, + { .ST1W, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE5008000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1D, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE5808000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .LDAR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x88DFFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDAR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC8DFFC00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .STLR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x889FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .STLR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC89FFC00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .LDARB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x08DFFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .STLRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x089FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDARH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x48DFFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .STLRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x489FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDXR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x885F7C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDXR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC85F7C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .LDAXR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x885FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDAXR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC85FFC00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .LDXRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x085F7C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDAXRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x085FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDXRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x485F7C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDAXRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x485FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .STXR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x88007C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STXR, {.W_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC8007C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .STLXR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x8800FC00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STLXR, {.W_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC800FC00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .LDXP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0x887F0000, 0xFFFF8000, .BASE, {explicit_count=3} }, + { .LDXP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0xC87F0000, 0xFFFF8000, .BASE, {is_64=true, explicit_count=3} }, + { .LDAXP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0x887F8000, 0xFFFF8000, .BASE, {explicit_count=3} }, + { .LDAXP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0xC87F8000, 0xFFFF8000, .BASE, {is_64=true, explicit_count=3} }, + { .STXRB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x08007C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STLXRB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x0800FC00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STXRH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x48007C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STLXRH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x4800FC00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .CAS, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88A07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CAS, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8A07C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88E07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8E07C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88A0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8A0FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88E0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8E0FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08A07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASAB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08E07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASLB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08A0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASALB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08E0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48A07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASAH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48E07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASLH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48A0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASALH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48E0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08207C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48207C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASPA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08607C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASPA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48607C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASPL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x0820FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASPL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x4820FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .CASPAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x0860FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASPAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x4860FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .STXP, {.W_REG,.W_REG,.W_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x88200000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .STXP, {.W_REG,.X_REG,.X_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC8200000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .STLXP, {.W_REG,.W_REG,.W_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x88208000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .STLXP, {.W_REG,.X_REG,.X_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC8208000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .LDP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29400000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDP, {.W_REG,.W_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29C00000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDP, {.X_REG,.X_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDP, {.W_REG,.W_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28C00000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDP, {.X_REG,.X_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9000000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STP, {.W_REG,.W_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29800000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STP, {.X_REG,.X_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STP, {.W_REG,.W_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28800000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STP, {.X_REG,.X_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDPSW, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x69400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDPSW, {.X_REG,.X_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x69C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDPSW, {.X_REG,.X_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x68C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDNP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28400000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDNP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STNP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STNP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8000000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STGP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_16,.NONE,.NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true, explicit_count=3} }, + { .MVN, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {explicit_count=2} }, + { .MVN, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true, explicit_count=2} }, + { .MOV, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {explicit_count=2} }, + { .MOV, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CMP, {.WSP_REG,.W_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMP, {.XSP_REG,.X_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMN, {.WSP_REG,.W_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMN, {.XSP_REG,.X_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .TST, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .TST, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .NEG, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {explicit_count=2} }, + { .NEG, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true, explicit_count=2} }, + { .NEGS, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true, explicit_count=2} }, + { .NEGS, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMP, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMP, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMN, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMN, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .ADD, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0B200000, 0xFFE00000, .BASE, {explicit_count=3} }, + { .ADD, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true, explicit_count=3} }, + { .ADDS, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADDS, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .SUB, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4B200000, 0xFFE00000, .BASE, {explicit_count=3} }, + { .SUB, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCB200000, 0xFFE00000, .BASE, {is_64=true, explicit_count=3} }, + { .SUBS, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6B200000, 0xFFE00000, .BASE, {sets_flags=true, explicit_count=3} }, + { .SUBS, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ADD, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0B000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .ADD, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8B000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .ADDS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2B000000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADDS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .SUB, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4B000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .SUB, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCB000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .SUBS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6B000000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .SUBS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .AND, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0A000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .AND, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8A000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .ANDS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6A000000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ANDS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEA000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ORR, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2A000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .ORR, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAA000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .EOR, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4A000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .EOR, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCA000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .BIC, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0A200000, 0xFF200000, .BASE, {explicit_count=3} }, + { .BIC, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8A200000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .BICS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6A200000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .BICS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEA200000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ORN, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2A200000, 0xFF200000, .BASE, {explicit_count=3} }, + { .ORN, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAA200000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .EON, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4A200000, 0xFF200000, .BASE, {explicit_count=3} }, + { .EON, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCA200000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .LD1, {.V_2D,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD2, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST2,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C408000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD3, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST3,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C404000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD4, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST4,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C400000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST1, {.V_2D,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST2, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST2,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C008000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST3, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST3,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C004000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST4, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST4,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C000000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD1R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D40C000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD2R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST2,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD3R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST3,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD4R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST4,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD1, {.V_8H,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407400, 0xFFFFF400, .NEON, {explicit_count=2} }, + { .LD1, {.V_4S,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407800, 0xFFFFF800, .NEON, {explicit_count=2} }, + { .LD1, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .ST1, {.V_8H,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007400, 0xFFFFF400, .NEON, {explicit_count=2} }, + { .ST1, {.V_4S,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007800, 0xFFFFF800, .NEON, {explicit_count=2} }, + { .ST1, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + { .LD1, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407000, 0xFFFFF000, .NEON, {explicit_count=2} }, + { .LD1, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST1, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007000, 0xFFFFF000, .NEON, {explicit_count=2} }, + { .ST1, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD1, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D404000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D604000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D406000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D606000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST1, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D004000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D204000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D006000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D206000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD1, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D400000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D600000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D402000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D602000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST1, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D000000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D200000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D002000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D202000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LDP, {.S_REG,.S_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x2D400000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .LDP, {.D_REG,.D_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0x6D400000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .LDP, {.Q_REG,.Q_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_16,.NONE,.NONE}, 0xAD400000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .STP, {.S_REG,.S_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x2D000000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .STP, {.D_REG,.D_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0x6D000000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .STP, {.Q_REG,.Q_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_16,.NONE,.NONE}, 0xAD000000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .CLZ, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .RBIT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .RBIT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV16, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV16, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FABS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FNEG, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FNEG, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FNEG, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FNEG, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FNEG, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FSQRT, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FSQRT, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FSQRT, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FSQRT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FSQRT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .SCVTF, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SCVTF, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SCVTF, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SCVTF, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .SCVTF, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .UCVTF, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UCVTF, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UCVTF, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UCVTF, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .UCVTF, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTA, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTA, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTA, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTA, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTA, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTI, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTI, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTI, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTI, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTI, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTM, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTM, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTM, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTM, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTM, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTN, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTN, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTN, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTN, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTN, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTP, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTP, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTP, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTP, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTP, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTX, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTX, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTX, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTX, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTX, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTZ, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTZ, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTZ, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTZ, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTZ, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .AESE, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESD, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E285800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESMC, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E286800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESIMC, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E287800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .SHA512SU0, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0xCEC08000, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .SM4E, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .BFCVTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {explicit_count=2} }, + { .BFCVTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {explicit_count=2} }, + { .NEG, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.H_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.H_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.S_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMAXV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMAXV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMAXV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMINV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMINV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMINV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMAXNMV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMAXNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMAXNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMINNMV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMINNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMINNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRECPE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRSQRTE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRSQRTE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRSQRTE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRSQRTE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTL, {.V_4S,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTL, {.V_2D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTL2, {.V_4S,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTL2, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTN, {.V_4H_FP16,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTN2, {.V_8H_FP16,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTXN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTXN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLT, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLT, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLT, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .CMLE, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MVN, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MVN, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL, {.V_8H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL, {.V_4S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL, {.V_2D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL2, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL2, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL2, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL, {.V_8H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL, {.V_4S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL, {.V_2D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL2, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL2, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL2, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_8B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_16B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_4H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_8H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_2S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_4S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_2D,.X_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_B,.W_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E011C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_H,.W_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E021C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_S,.W_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E041C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_D,.X_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E081C00, 0xFFFFFC00, .NEON, {is_64=true, explicit_count=2} }, + { .MOV, {.W_REG,.V_ELEM_B,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x0E013C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.W_REG,.V_ELEM_H,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x0E023C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.W_REG,.V_ELEM_S,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x0E043C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.X_REG,.V_ELEM_D,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x4E083C00, 0xFFFFFC00, .NEON, {is_64=true, explicit_count=2} }, + { .NOT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NOT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CNT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CNT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .URECPE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .URECPE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .URSQRTE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .URSQRTE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_2D,.V_ELEM_D,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_D,.VEC_INDEX,.X_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E081C00, 0xFFEFFC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_2S,.V_ELEM_S,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x0E040400, 0xFFE7FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E040400, 0xFFE7FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_D,.VEC_INDEX,.V_ELEM_D,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E080400, 0xFFEFBC00, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_S,.VEC_INDEX,.W_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E041C00, 0xFFE7FC00, .NEON, {explicit_count=3} }, + { .FMOV, {.V_2S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .FMOV, {.V_4S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .FMOV, {.V_2D,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .FMOV, {.V_4H_FP16,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {explicit_count=2} }, + { .FMOV, {.V_8H_FP16,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {explicit_count=2} }, + { .SHL, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .RSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .RSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_4H,.V_ELEM_H,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_8H,.V_ELEM_H,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_H,.VEC_INDEX,.W_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {explicit_count=3} }, + { .MOVI, {.V_8B,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_16B,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_4H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_8H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_2S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_4S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_2D,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_4H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_8H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_2S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_4S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .SHL, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .RSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .RSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_8B,.V_ELEM_B,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_16B,.V_ELEM_B,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_S,.VEC_INDEX,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E040400, 0xFFE79C00, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_B,.VEC_INDEX,.W_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {explicit_count=3} }, + { .MOV, {.V_ELEM_B,.V_ELEM_B,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E010400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_H,.V_ELEM_H,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E020400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_S,.V_ELEM_S,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E040400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_D,.V_ELEM_D,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E080400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .ADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E608400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E608400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E608400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .AND, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ORR, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .EOR, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .BIC, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E601C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ORN, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FSUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMUL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMUL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMUL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FDIV, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FDIV, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FDIV, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMIN, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMIN, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMIN, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMIN, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMIN, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNM, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNM, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNM, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNM, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNM, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNM, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNM, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNM, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNM, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNM, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .SHA512H, {.Q_REG,.Q_REG,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA512H2, {.Q_REG,.Q_REG,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA512SU1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .RAX1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608C00, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SM3PARTW1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE60C000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SM3PARTW2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE60C400, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SM4EKEY, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE60C800, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .PMULL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .PMULL, {.V_1Q,.V_1D,.V_1D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EE0E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .PMULL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .PMULL2, {.V_1Q,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .BFDOT, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E40FC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, + { .BFMMLA, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E40EC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, + { .BFMLALB, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC0FC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, + { .BFMLALT, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC0FC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, + { .MUL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MUL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E609C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MUL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA09C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLAL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLAL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLAL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLAL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLSL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLSL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLSL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLSL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SDOT, {.V_2S,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .SDOT, {.V_4S,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .UDOT, {.V_2S,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .UDOT, {.V_4S,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .USDOT, {.V_2S,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E809C00, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .USDOT, {.V_4S,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E809C00, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .FMLA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLA, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMULX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNMP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNMP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNMP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNMP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNMP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNMP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRECPS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRECPS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRECPS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRECPS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRECPS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRSQRTS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRSQRTS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRSQRTS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRSQRTS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRSQRTS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FADDP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADDP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADDP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADDP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FADDP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMEQ, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMEQ, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMEQ, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMEQ, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMEQ, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGE, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGE, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGE, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGT, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGT, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGT, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FACGE, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGE, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGE, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FACGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FACGT, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGT, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGT, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FACGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .CMEQ, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMEQ, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMEQ, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMEQ, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGT, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGT, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHI, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHI, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .BIT, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .BIF, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .BSL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MOV, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {explicit_count=2} }, + { .TBL, {.V_8B,.V_16B,.V_8B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x0E000000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x4E000000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBX, {.V_8B,.V_16B,.V_8B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x0E001000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBX, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x4E001000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E003800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E003800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E403800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E403800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E803800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E803800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC03800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E007800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E007800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E407800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E407800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E807800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E807800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC07800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E001800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E001800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E401800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E401800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E801800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E801800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC01800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E005800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E005800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E405800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E405800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E805800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E805800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC05800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E002800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E002800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E402800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E402800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E802800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E802800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC02800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E006800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E006800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E406800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E406800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E806800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E806800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC06800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F405400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F407400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F406400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F400400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F400400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F401400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F401400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F402400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F402400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F403400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F403400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F405400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F404400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_H,.VEC_INDEX,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E020400, 0xFFE38C00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_4H,.V_4H,.V_4H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x2E40E400, 0xFFE0EC00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_8H,.V_8H,.V_8H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x6E40E400, 0xFFE0EC00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_2D,.V_2D,.V_2D,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x6EC0E400, 0xFFE0EC00, .NEON, {explicit_count=4} }, + { .SM3TT1A, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, + { .SM3TT1B, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, + { .SM3TT2A, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, + { .SM3TT2B, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408C00, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, + { .FCMLA, {.V_4H,.V_4H,.V_4H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x2E40C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCMLA, {.V_8H,.V_8H,.V_8H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x6E40C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCMLA, {.V_4S,.V_4S,.V_4S,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x6E80C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCMLA, {.V_2D,.V_2D,.V_2D,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x6EC0C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_4S,.V_4S,.V_4S,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x6E80E400, 0xFFA0EC00, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_B,.VEC_INDEX,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E010400, 0xFFE18400, .NEON, {explicit_count=4} }, + { .EXT, {.V_8B,.V_8B,.V_8B,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_EXT_IDX,.NONE}, 0x2E000000, 0xFFE0C400, .NEON, {explicit_count=4} }, + { .EXT, {.V_16B,.V_16B,.V_16B,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_EXT_IDX,.NONE}, 0x6E000000, 0xFFE08400, .NEON, {explicit_count=4} }, + { .EOR3, {.V_16B,.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.VA,.NONE}, 0xCE000000, 0xFFE08000, .CRYPTO, {explicit_count=4} }, + { .BCAX, {.V_16B,.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.VA,.NONE}, 0xCE200000, 0xFFE08000, .CRYPTO, {explicit_count=4} }, + { .SM3SS1, {.V_4S,.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.VA,.NONE}, 0xCE400000, 0xFFE08000, .CRYPTO, {explicit_count=4} }, + { .XAR, {.V_2D,.V_2D,.V_2D,.IMM_6,.NONE}, {.VD,.VN,.VM,.IMM6,.NONE}, 0xCE800000, 0xFFE00000, .CRYPTO, {explicit_count=4} }, + { .CMP, {.WSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMP, {.XSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMN, {.WSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMN, {.XSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .ADDG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4,.NONE}, {.RD,.RN,.IMM6,.IMM_HW,.NONE}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true, explicit_count=4} }, + { .SUBG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4,.NONE}, {.RD,.RN,.IMM6,.IMM_HW,.NONE}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true, explicit_count=4} }, + { .ADD, {.WSP_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x11000000, 0xFF800000, .BASE, {explicit_count=3} }, + { .ADD, {.XSP_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .ADDS, {.W_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x31000000, 0xFF800000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADDS, {.X_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0xB1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .SUB, {.WSP_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x51000000, 0xFF800000, .BASE, {explicit_count=3} }, + { .SUB, {.XSP_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0xD1000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .SUBS, {.W_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x71000000, 0xFF800000, .BASE, {sets_flags=true, explicit_count=3} }, + { .SUBS, {.X_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0xF1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ADR, {.X_REG,.REL_PG21,.NONE,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE,.NONE}, 0x10000000, 0x9F000000, .BASE, {explicit_count=2} }, + { .ADRP, {.X_REG,.REL_PG21,.NONE,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE,.NONE}, 0x90000000, 0x9F000000, .BASE, {explicit_count=2} }, + { .UXTB, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x53001C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .UXTH, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x53003C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .UXTW, {.X_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xD3407C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .SXTB, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .SXTH, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .SXTW, {.X_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .LSR, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {explicit_count=3} }, + { .LSR, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .ASR, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {explicit_count=3} }, + { .ASR, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .TST, {.W_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .MOV, {.W_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0x320003E0, 0xFFC003E0, .BASE, {explicit_count=2} }, + { .TST, {.X_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .MOV, {.X_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true, explicit_count=2} }, + { .EXTR, {.W_REG,.W_REG,.W_REG,.IMM_6,.NONE}, {.RD,.RN,.RM,.IMM6,.NONE}, 0x13800000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .EXTR, {.X_REG,.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.RM,.IMM6,.NONE}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .ROR, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE,.NONE}, 0x13800000, 0xFFE00000, .BASE, {explicit_count=3} }, + { .ROR, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE,.NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true, explicit_count=3} }, + { .AND, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x12000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .ANDS, {.W_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ORR, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x32000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .EOR, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x52000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LSL, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.RN,.ENC_LSL_IMM_W,.NONE,.NONE}, 0x53000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LSL, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.RN,.ENC_LSL_IMM_X,.NONE,.NONE}, 0xD3400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .MOVZ, {.W_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x52800000, 0xFF800000, .BASE, {explicit_count=3} }, + { .MOVZ, {.X_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0xD2800000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .MOVN, {.W_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x12800000, 0xFF800000, .BASE, {explicit_count=3} }, + { .MOVN, {.X_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x92800000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .MOVK, {.W_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x72800000, 0xFF800000, .BASE, {explicit_count=3} }, + { .MOVK, {.X_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0xF2800000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .AND, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x92000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .ANDS, {.X_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xF2000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ORR, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xB2000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .EOR, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xD2000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFFFFF, .BASE, {} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503203F, 0xFFFFFFFF, .BASE, {} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503205F, 0xFFFFFFFF, .BASE, {} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503207F, 0xFFFFFFFF, .BASE, {} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503209F, 0xFFFFFFFF, .BASE, {} }, + { .SEVL, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50320BF, 0xFFFFFFFF, .BASE, {} }, + { .PACIASP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503233F, 0xFFFFFFFF, .PAC, {} }, + { .PACIBSP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503237F, 0xFFFFFFFF, .PAC, {} }, + { .AUTIASP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50323BF, 0xFFFFFFFF, .PAC, {} }, + { .AUTIBSP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50323FF, 0xFFFFFFFF, .PAC, {} }, + { .PACIA1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503211F, 0xFFFFFFFF, .PAC, {} }, + { .PACIB1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503215F, 0xFFFFFFFF, .PAC, {} }, + { .AUTIA1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503219F, 0xFFFFFFFF, .PAC, {} }, + { .AUTIB1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50321DF, 0xFFFFFFFF, .PAC, {} }, + { .XPACLRI, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50320FF, 0xFFFFFFFF, .PAC, {} }, + { .BTI, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503241F, 0xFFFFFFFF, .BTI, {} }, + { .SMSTART, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503477F, 0xFFFFFFFF, .SME, {} }, + { .SMSTOP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503467F, 0xFFFFFFFF, .SME, {} }, + { .TCOMMIT, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503307F, 0xFFFFFFFF, .BASE, {} }, + { .SB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50330FF, 0xFFFFFFFF, .BASE, {} }, + { .CSDB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503229F, 0xFFFFFFFF, .BASE, {} }, + { .DGH, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50320DF, 0xFFFFFFFF, .BASE, {} }, + { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503223F, 0xFFFFFFFF, .BASE, {} }, + { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503225F, 0xFFFFFFFF, .BASE, {} }, + { .BTI_J, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503249F, 0xFFFFFFFF, .BTI, {} }, + { .BTI_C, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503245F, 0xFFFFFFFF, .BTI, {} }, + { .BTI_JC, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50324DF, 0xFFFFFFFF, .BTI, {} }, + { .TLBI_PAALL, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E879F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_PAALLOS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E819F, 0xFFFFFFFF, .BASE, {} }, + { .IC_IALLUIS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508711F, 0xFFFFFFFF, .BASE, {} }, + { .IC_IALLU, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508751F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_VMALLE1, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_VMALLE1IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_ALLE1, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_ALLE1IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_ALLE2, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50C871F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_ALLE2IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50C831F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_ALLE3, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E871F, 0xFFFFFFFF, .BASE, {} }, + { .TLBI_ALLE3IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E831F, 0xFFFFFFFF, .BASE, {} }, + { .ISB, {.IMM_4,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD50330DF, 0xFFFFF0FF, .BASE, {explicit_count=1} }, + { .DSB, {.IMM_4,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD503309F, 0xFFFFF0FF, .BASE, {explicit_count=1} }, + { .DMB, {.IMM_4,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD50330BF, 0xFFFFF0FF, .BASE, {explicit_count=1} }, + { .TSTART, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5233060, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TTEST, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5233160, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .WFET, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5031000, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .WFIT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5031020, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_RPALOS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5084EE0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_RPAOS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5084EA0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E1A, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5079140, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CIPAPA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7CE0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CIGDPAPA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7DE0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_IVAC, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087620, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_ISW, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087640, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CSW, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087A40, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CISW, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087E40, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_ZVA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7420, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CVAC, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7A20, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CVAU, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7B20, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .DC_CIVAC, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7E20, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .IC_IVAU, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7520, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E1R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087800, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E1W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087820, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E0R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087840, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E0W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087860, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E2R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C7800, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E2W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C7820, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E3R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7800, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S1E3W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7820, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S12E1R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C7880, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S12E1W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C78A0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S12E0R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C78C0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .AT_S12E0W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C78E0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VAE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088720, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VAE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088320, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_ASIDE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088740, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_ASIDE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088340, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VAAE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088760, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VAAE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088360, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VALE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50887A0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VALE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50883A0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VAALE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50887E0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .TLBI_VAALE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50883E0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + { .HINT, {.IMM_8,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFF01F, .BASE, {explicit_count=1} }, + { .MSR, {.PSTATE_FIELD,.IMM_4,.NONE,.NONE,.NONE}, {.MSR_PSTATE,.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD500401F, 0xFFF8F01F, .BASE, {explicit_count=2} }, + { .SVC, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4000001, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, + { .HVC, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4000002, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, + { .SMC, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4000003, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, + { .BRK, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4200000, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, + { .HLT, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4400000, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, + { .TCANCEL, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4600000, 0xFFE0001F, .BASE, {explicit_count=1} }, + { .B_EQ, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000000, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_NE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000001, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_CS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000002, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_CC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000003, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_MI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000004, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_PL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000005, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_VS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000006, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_VC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000007, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_HI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000008, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_LS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000009, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_GE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000A, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_LT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000B, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_GT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000C, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_LE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000D, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_AL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000E, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .B_NV, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000F, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_EQ, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000010, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_NE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000011, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_CS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000012, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_CC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000013, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_MI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000014, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_PL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000015, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_VS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000016, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_VC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000017, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_HI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000018, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_LS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000019, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_GE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001A, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_LT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001B, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_GT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001C, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_LE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001D, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_AL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001E, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .BC_NV, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001F, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + { .MRS, {.X_REG,.SYS_REG,.NONE,.NONE,.NONE}, {.RT,.SYS_FIELD,.NONE,.NONE,.NONE}, 0xD5300000, 0xFFF00000, .BASE, {explicit_count=2} }, + { .MSR, {.SYS_REG,.X_REG,.NONE,.NONE,.NONE}, {.SYS_FIELD,.RT,.NONE,.NONE,.NONE}, 0xD5100000, 0xFFF00000, .BASE, {explicit_count=2} }, + { .CBZ, {.W_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x34000000, 0xFF000000, .BASE, {cond_branch=true, explicit_count=2} }, + { .CBZ, {.X_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0xB4000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true, explicit_count=2} }, + { .CBNZ, {.W_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x35000000, 0xFF000000, .BASE, {cond_branch=true, explicit_count=2} }, + { .CBNZ, {.X_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0xB5000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true, explicit_count=2} }, + { .B, {.REL_26,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE,.NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true, explicit_count=1} }, + { .BL, {.REL_26,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE,.NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true, explicit_count=1} }, + { .RET, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD65F03C0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, + { .ERET, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD69F03E0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, + { .RETAA, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD65F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .RETAB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD65F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .ERETAA, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD69F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .ERETAB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD69F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .BR, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD61F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true, explicit_count=1} }, + { .BLR, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD63F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true, explicit_count=1} }, + { .RET, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD65F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true, explicit_count=1} }, + { .BRAAZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD61F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, + { .BRABZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD61F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, + { .BLRAAZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD63F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, + { .BLRABZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD63F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, + { .BRAA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD71F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, + { .BRAB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD71F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, + { .BLRAA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD73F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, + { .BLRAB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD73F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, + { .TBZ, {.X_REG,.IMM_5,.REL_14,.NONE,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE,.NONE}, 0x36000000, 0x7F000000, .BASE, {cond_branch=true, explicit_count=3} }, + { .TBNZ, {.X_REG,.IMM_5,.REL_14,.NONE,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE,.NONE}, 0x37000000, 0x7F000000, .BASE, {cond_branch=true, explicit_count=3} }, + { .B, {.REL_26,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE,.NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true, explicit_count=1} }, + { .BL, {.REL_26,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE,.NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true, explicit_count=1} }, + { .LDAPR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xB8BFC000, 0xFFFFFC00, .LSE2, {explicit_count=2} }, + { .LDAPR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xF8BFC000, 0xFFFFFC00, .LSE2, {is_64=true, explicit_count=2} }, + { .LDAPRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x38BFC000, 0xFFFFFC00, .LSE2, {explicit_count=2} }, + { .LDAPRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x78BFC000, 0xFFFFFC00, .LSE2, {explicit_count=2} }, + { .LDADD, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8200000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADD, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8200000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDADDA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A00000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADDA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A00000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDADDL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8600000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADDL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8600000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDADDAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E00000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADDAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E00000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDCLR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8201000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLR, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8201000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDCLRA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A01000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLRA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A01000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDCLRL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8601000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLRL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8601000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDCLRAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E01000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLRAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E01000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDEOR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8202000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEOR, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8202000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDEORA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A02000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEORA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A02000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDEORL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8602000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEORL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8602000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDEORAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E02000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEORAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E02000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSET, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8203000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSET, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8203000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSETA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A03000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSETA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A03000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSETL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8603000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSETL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8603000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSETAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E03000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSETAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E03000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMAX, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8204000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAX, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8204000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMAXA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A04000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAXA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A04000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMAXL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8604000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAXL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8604000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMAXAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E04000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAXAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E04000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMIN, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8205000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMIN, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8205000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMINA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A05000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMINA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A05000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMINL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8605000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMINL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8605000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDSMINAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E05000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMINAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E05000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMAX, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8206000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAX, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8206000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMAXA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A06000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAXA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A06000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMAXL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8606000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAXL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8606000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMAXAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E06000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAXAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E06000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMIN, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8207000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMIN, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8207000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMINA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A07000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMINA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A07000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMINL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8607000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMINL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8607000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .LDUMINAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E07000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMINAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E07000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .SWP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8208000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8208000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .SWPA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A08000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWPA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A08000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .SWPL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8608000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWPL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8608000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .SWPAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E08000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWPAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E08000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, + { .SETM, {.XSP_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19C04400, 0xFFE07C00, .BASE, {is_64=true, explicit_count=3} }, + { .SETE, {.XSP_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19C08400, 0xFFE0BC00, .BASE, {is_64=true, explicit_count=3} }, + { .CPYFP, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19000400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .CPYFM, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19400400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .CPYFE, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19800400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .SETP, {.XSP_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19C00400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .LDR, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xB8400C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8400C00, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xB8400400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xF8400400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xB8600800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xF8600800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xB8000C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8000C00, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xB8000400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xF8000400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xB8200800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xF8200800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x38400C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x38400400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38600800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x38000C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x38000400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38200800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRSB, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38E00800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRSB, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38A00800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x78400C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x78400400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78600800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x78000C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x78000400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78200800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRSH, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78E00800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRSH, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78A00800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDRSW, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xB8A00800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xB8400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xF8400000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xB8000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xF8000000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDURSB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDURSB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDURSH, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDURSH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDURSW, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xB8800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDG, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9600000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .STG, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9200800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .ST2G, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9A00800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .STZG, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9600800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .STZ2G, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9E00800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .LDGM, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .STGM, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .STZGM, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, + { .LDAPUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x99400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDAPUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STLUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x99000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STLUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDAPURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STLURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDAPURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STLURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDAPURSB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDAPURSB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDAPURSH, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDAPURSH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDAPURSW, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .PRFUM, {.IMM_5,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDRAA, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + { .LDRAA, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8200C00, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + { .LDRAB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF8A00400, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + { .LDRAB, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8A00C00, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xB9400000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF9400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xB9000000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF9000000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39400000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39000000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRSB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDRSB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39C00000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79400000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79000000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRSH, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDRSH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79C00000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRSW, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xB9800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .PRFM, {.IMM_5,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF9800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x18000000, 0xFF000000, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x58000000, 0xFF000000, .BASE, {is_64=true, explicit_count=2} }, + { .PRFM, {.IMM_5,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0xD8000000, 0xFF000000, .BASE, {is_64=true, explicit_count=2} }, + { .PACIZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC123E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .PACIZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC127E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .PACDZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC12BE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .PACDZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC12FE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .AUTIZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC133E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .AUTIZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC137E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .AUTDZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC13BE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .AUTDZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC13FE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .XPACI, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC143E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .XPACD, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC147E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, + { .CSET, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x1A9FC7E0, 0xFFFFEFE0, .BASE, {explicit_count=2} }, + { .CSET, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x9A9FC7E0, 0xFFFFEFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSETM, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x5A9FC3E0, 0xFFFFEFE0, .BASE, {explicit_count=2} }, + { .CSETM, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0xDA9FC3E0, 0xFFFFEFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSET, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x1A9F87E0, 0xFFFFCFE0, .BASE, {explicit_count=2} }, + { .CSET, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x9A9F87E0, 0xFFFFCFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSETM, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x5A9F83E0, 0xFFFFCFE0, .BASE, {explicit_count=2} }, + { .CSETM, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0xDA9F83E0, 0xFFFFCFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSET, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x1A9F07E0, 0xFFFF8FE0, .BASE, {explicit_count=2} }, + { .CSET, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x9A9F07E0, 0xFFFF8FE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSETM, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x5A9F03E0, 0xFFFF8FE0, .BASE, {explicit_count=2} }, + { .CSETM, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0xDA9F03E0, 0xFFFF8FE0, .BASE, {is_64=true, explicit_count=2} }, + { .CLZ, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC01000, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .CLZ, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC01000, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .CLS, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC01400, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .CLS, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC01400, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .RBIT, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC00000, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .RBIT, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00000, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .REV, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC00800, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .REV, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .REV16, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC00400, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .REV16, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00400, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .REV32, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00800, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .PACIA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10000, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .PACIB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10400, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .PACDA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10800, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .PACDB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10C00, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .AUTIA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11000, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .AUTIB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .AUTDA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .AUTDB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, + { .NGC, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {explicit_count=2} }, + { .NGC, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true, explicit_count=2} }, + { .NGCS, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, explicit_count=2} }, + { .NGCS, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .LSL, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .LSL, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .LSR, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02400, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .LSR, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .ASR, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02800, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .ASR, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02800, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .ROR, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .ROR, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .UDIV, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC00800, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .UDIV, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC00800, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .SDIV, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC00C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .SDIV, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC00C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .SMULH, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9B407C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .UMULH, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9BC07C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .PACGA, {.X_REG,.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC03000, 0xFFE0FC00, .PAC, {is_64=true, explicit_count=3} }, + { .IRG, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC01000, 0xFFE0FC00, .MTE, {is_64=true, explicit_count=3} }, + { .GMI, {.X_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC01400, 0xFFE0FC00, .MTE, {is_64=true, explicit_count=3} }, + { .SUBP, {.X_REG,.XSP_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC00000, 0xFFE0FC00, .MTE, {is_64=true, explicit_count=3} }, + { .SUBPS, {.X_REG,.XSP_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xBAC00000, 0xFFE0FC00, .MTE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .CRC32B, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC04000, 0xFFE0FC00, .CRC32, {explicit_count=3} }, + { .CRC32H, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC04400, 0xFFE0FC00, .CRC32, {explicit_count=3} }, + { .CRC32W, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC04800, 0xFFE0FC00, .CRC32, {explicit_count=3} }, + { .CRC32X, {.W_REG,.W_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC04C00, 0xFFE0FC00, .CRC32, {is_64=true, explicit_count=3} }, + { .CRC32CB, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC05000, 0xFFE0FC00, .CRC32, {explicit_count=3} }, + { .CRC32CH, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC05400, 0xFFE0FC00, .CRC32, {explicit_count=3} }, + { .CRC32CW, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC05800, 0xFFE0FC00, .CRC32, {explicit_count=3} }, + { .CRC32CX, {.W_REG,.W_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC05C00, 0xFFE0FC00, .CRC32, {is_64=true, explicit_count=3} }, + { .ADC, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .ADC, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .ADCS, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADCS, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .SBC, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .SBC, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .SBCS, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true, explicit_count=3} }, + { .SBCS, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .CINC, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x1A80C400, 0xFFE0EC00, .BASE, {explicit_count=3} }, + { .CINC, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x9A80C400, 0xFFE0EC00, .BASE, {is_64=true, explicit_count=3} }, + { .CINV, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A80C000, 0xFFE0EC00, .BASE, {explicit_count=3} }, + { .CINV, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA80C000, 0xFFE0EC00, .BASE, {is_64=true, explicit_count=3} }, + { .CNEG, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A80C400, 0xFFE0EC00, .BASE, {explicit_count=3} }, + { .CNEG, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA80C400, 0xFFE0EC00, .BASE, {is_64=true, explicit_count=3} }, + { .CINC, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x1A808400, 0xFFE0CC00, .BASE, {explicit_count=3} }, + { .CINC, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x9A808400, 0xFFE0CC00, .BASE, {is_64=true, explicit_count=3} }, + { .CINV, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A808000, 0xFFE0CC00, .BASE, {explicit_count=3} }, + { .CINV, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA808000, 0xFFE0CC00, .BASE, {is_64=true, explicit_count=3} }, + { .CNEG, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A808400, 0xFFE0CC00, .BASE, {explicit_count=3} }, + { .CNEG, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA808400, 0xFFE0CC00, .BASE, {is_64=true, explicit_count=3} }, + { .CCMP, {.W_REG,.W_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0x7A400000, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMP, {.X_REG,.X_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CCMP, {.W_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0x7A400800, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMP, {.X_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0xFA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CCMN, {.W_REG,.W_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0x3A400000, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMN, {.X_REG,.X_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0xBA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CCMN, {.W_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0x3A400800, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMN, {.X_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0xBA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CINC, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x1A800400, 0xFFE08C00, .BASE, {explicit_count=3} }, + { .CINC, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x9A800400, 0xFFE08C00, .BASE, {is_64=true, explicit_count=3} }, + { .CINV, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A800000, 0xFFE08C00, .BASE, {explicit_count=3} }, + { .CINV, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA800000, 0xFFE08C00, .BASE, {is_64=true, explicit_count=3} }, + { .CNEG, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A800400, 0xFFE08C00, .BASE, {explicit_count=3} }, + { .CNEG, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA800400, 0xFFE08C00, .BASE, {is_64=true, explicit_count=3} }, + { .CSEL, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1A800000, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSEL, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x9A800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, + { .CSINC, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1A800400, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSINC, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x9A800400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, + { .CSINV, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x5A800000, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSINV, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0xDA800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, + { .CSNEG, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x5A800400, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSNEG, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0xDA800400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, + { .MADD, {.W_REG,.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1B000000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .MADD, {.X_REG,.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B000000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .MSUB, {.W_REG,.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1B008000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .MSUB, {.X_REG,.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B008000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .SMADDL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B200000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .SMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B208000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .UMADDL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9BA00000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .UMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9BA08000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, + { .CPYP, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .CPYM, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .CPYE, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + { .LDR, {.B_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3C600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x7C600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xBC600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xFC600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3CE00800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.B_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3C400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x7C400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xBC400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xFC400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3CC00C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.B_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3C400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x7C400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xBC400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xFC400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3CC00400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3C200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x7C200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xBC200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xFC200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3CA00800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3C000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x7C000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xBC000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xFC000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3C800C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3C000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x7C000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xBC000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xFC000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3C800400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDUR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xBC400000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .LDUR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xFC400000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .LDUR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .STUR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xBC000000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .STUR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xFC000000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .STUR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x3C800000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .LDR, {.B_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xBD400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xFD400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3DC00000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3D000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x7D000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xFD000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3D800000, 0xFFC00000, .FP, {explicit_count=2} }, + { .FMOV, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E204000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E604000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E260000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.S_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E270000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E660000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FMOV, {.D_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FMOV, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE04000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMOV, {.X_REG,.V_ELEM_D,.NONE,.NONE,.NONE}, {.RD,.NEON_LANE_D,.NONE,.NONE,.NONE}, 0x9EAE0000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FMOV, {.V_ELEM_D,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EAF0000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FABS, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E20C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FABS, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E60C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FABS, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE0C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FNEG, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E214000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FNEG, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E614000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FNEG, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE14000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FSQRT, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E21C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FSQRT, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E61C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FSQRT, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE1C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMP, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E202000, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMP, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E602000, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMP, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1EE02000, 0xFFE0FC1F, .FP16, {sets_flags=true, explicit_count=2} }, + { .FCMPE, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E202010, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMPE, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E602010, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMPE, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1EE02010, 0xFFE0FC1F, .FP16, {sets_flags=true, explicit_count=2} }, + { .FCVT, {.D_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E22C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVT, {.S_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E624000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVT, {.H_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E23C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVT, {.H_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E63C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVT, {.S_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE24000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVT, {.D_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE2C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .SCVTF, {.S_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E220000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .SCVTF, {.D_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E620000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .SCVTF, {.S_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E220000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .SCVTF, {.D_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E620000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .SCVTF, {.H_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE20000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .UCVTF, {.S_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E230000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .UCVTF, {.D_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E630000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .UCVTF, {.S_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E230000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .UCVTF, {.D_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E630000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .UCVTF, {.H_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE30000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E380000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E780000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E380000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E780000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF80000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E390000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E790000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E390000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E790000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF90000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E240000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E640000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE40000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E240000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E640000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE40000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E250000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E650000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE50000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E250000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E650000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE50000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E200000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E600000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E200000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E600000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E210000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E610000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E210000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E610000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E280000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E680000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE80000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E280000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E680000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE80000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E290000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E690000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE90000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E290000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E690000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE90000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E300000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E700000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E300000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E700000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EF00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E310000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E710000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E310000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E710000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EF10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTA, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E264000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTA, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E664000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTA, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE64000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTI, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E27C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTI, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E67C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTI, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE7C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTM, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E254000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTM, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E654000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTM, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE54000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTN, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E244000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTN, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E644000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTN, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE44000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTP, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E24C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTP, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E64C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTP, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE4C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTX, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E274000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTX, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E674000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTX, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE74000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTZ, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E25C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTZ, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E65C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTZ, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE5C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .SHA1H, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x5E280800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .SHA1SU1, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x5E281800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .SHA256SU0, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x5E282800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .BFCVT, {.H_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E634000, 0xFFFFFC00, .BF16, {explicit_count=2} }, + { .FRECPX, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5EA1F800, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRECPX, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5EE1F800, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRECPX, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5EF9F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .MOV, {.B_REG,.V_ELEM_B,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E010400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.H_REG,.V_ELEM_H,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E020400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.S_REG,.V_ELEM_S,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E040400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.D_REG,.V_ELEM_D,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E080400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMOV, {.S_REG,.IMM_8,.NONE,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE,.NONE}, 0x1E201000, 0xFFE01FE0, .FP, {explicit_count=2} }, + { .FMOV, {.D_REG,.IMM_8,.NONE,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE,.NONE}, 0x1E601000, 0xFFE01FE0, .FP, {explicit_count=2} }, + { .FMOV, {.H_REG,.IMM_8,.NONE,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE,.NONE}, 0x1EE01000, 0xFFE01FE0, .FP16, {explicit_count=2} }, + { .FADD, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E202800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FADD, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E602800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FADD, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE02800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FSUB, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E203800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FSUB, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E603800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FSUB, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE03800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMUL, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E200800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMUL, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E600800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMUL, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE00800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FDIV, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E201800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FDIV, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E601800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FDIV, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE01800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FNMUL, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E208800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FNMUL, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E608800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FNMUL, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE08800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAX, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E204800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAX, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E604800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAX, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE04800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMIN, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E205800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMIN, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E605800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMIN, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE05800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNM, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E206800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAXNM, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E606800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAXNM, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE06800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNM, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E207800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMINNM, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E607800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMINNM, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE07800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .SHA1C, {.Q_REG,.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E000000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA1P, {.Q_REG,.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E001000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA1M, {.Q_REG,.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E002000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA1SU0, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E003000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA256H, {.Q_REG,.Q_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E004000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA256H2, {.Q_REG,.Q_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E005000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .SHA256SU1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E006000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .FCSEL, {.S_REG,.S_REG,.S_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1E200C00, 0xFFE00C00, .FP, {explicit_count=4} }, + { .FCSEL, {.D_REG,.D_REG,.D_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1E600C00, 0xFFE00C00, .FP, {explicit_count=4} }, + { .FCSEL, {.H_REG,.H_REG,.H_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1EE00C00, 0xFFE00C00, .FP16, {explicit_count=4} }, + { .FMADD, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F000000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMADD, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F400000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMADD, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FC00000, 0xFFE08000, .FP16, {explicit_count=4} }, + { .FMSUB, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F008000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMSUB, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F408000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMSUB, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FC08000, 0xFFE08000, .FP16, {explicit_count=4} }, + { .FNMADD, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F200000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMADD, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F600000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMADD, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FE00000, 0xFFE08000, .FP16, {explicit_count=4} }, + { .FNMSUB, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F208000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMSUB, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F608000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMSUB, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FE08000, 0xFFE08000, .FP16, {explicit_count=4} }, } @(rodata) DECODE_INDEX_OP0 := [16]lib.Decode_Index{ - 0x00 = { 0, 77}, - 0x02 = { 77, 496}, - 0x04 = { 573, 76}, - 0x05 = { 649, 50}, - 0x06 = { 699, 56}, - 0x07 = { 755, 1062}, - 0x08 = {1817, 16}, - 0x09 = {1833, 34}, - 0x0A = {1867, 100}, - 0x0B = {1967, 21}, - 0x0C = {1988, 167}, - 0x0D = {2155, 92}, - 0x0E = {2247, 19}, - 0x0F = {2266, 176}, + 0x00 = { 0, 81}, + 0x02 = { 81, 670}, + 0x04 = { 751, 76}, + 0x05 = { 827, 50}, + 0x06 = { 877, 56}, + 0x07 = { 933, 1070}, + 0x08 = {2003, 16}, + 0x09 = {2019, 34}, + 0x0A = {2053, 130}, + 0x0B = {2183, 21}, + 0x0C = {2204, 167}, + 0x0D = {2371, 122}, + 0x0E = {2493, 49}, + 0x0F = {2542, 182}, } diff --git a/core/rexcode/isa/arm64/tablegen/generated/encode_tables.odin b/core/rexcode/isa/arm64/tablegen/generated/encode_tables.odin index 9758f501e..f6d181ac5 100644 --- a/core/rexcode/isa/arm64/tablegen/generated/encode_tables.odin +++ b/core/rexcode/isa/arm64/tablegen/generated/encode_tables.odin @@ -8,4656 +8,8020 @@ package rexcode_arm64_generated import lib "../.." @(rodata) -ENCODE_FORMS := [2440]lib.Encoding{ - // .ADD_IMM - { .ADD_IMM, {.WSP_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x11000000, 0xFF800000, .BASE, {} }, - { .ADD_IMM, {.XSP_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true} }, - // .ADDS_IMM - { .ADDS_IMM, {.W_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x31000000, 0xFF800000, .BASE, {sets_flags=true} }, - { .ADDS_IMM, {.X_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xB1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true} }, - // .SUB_IMM - { .SUB_IMM, {.WSP_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x51000000, 0xFF800000, .BASE, {} }, - { .SUB_IMM, {.XSP_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xD1000000, 0xFF800000, .BASE, {is_64=true} }, - // .SUBS_IMM - { .SUBS_IMM, {.W_REG,.WSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x71000000, 0xFF800000, .BASE, {sets_flags=true} }, - { .SUBS_IMM, {.X_REG,.XSP_REG,.IMM_12,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xF1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true} }, +ENCODE_FORMS := [2722]lib.Encoding{ + // .ADD + { .ADD, {.WSP_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x11000000, 0xFF800000, .BASE, {explicit_count=3} }, + { .ADD, {.XSP_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .ADD, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0B000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .ADD, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8B000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .ADD, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0B200000, 0xFFE00000, .BASE, {explicit_count=3} }, + { .ADD, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true, explicit_count=3} }, + { .ADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E608400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E608400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04200000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04600000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .ADD, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04000000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04400000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04800000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ADD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C00000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .ADDS + { .ADDS, {.W_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x31000000, 0xFF800000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADDS, {.X_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0xB1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ADDS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2B000000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADDS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ADDS, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADDS, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + // .SUB + { .SUB, {.WSP_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x51000000, 0xFF800000, .BASE, {explicit_count=3} }, + { .SUB, {.XSP_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0xD1000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .SUB, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4B000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .SUB, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCB000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .SUB, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4B200000, 0xFFE00000, .BASE, {explicit_count=3} }, + { .SUB, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCB200000, 0xFFE00000, .BASE, {is_64=true, explicit_count=3} }, + { .SUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E608400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE08400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUB, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04200400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04600400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SUB, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04010000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04410000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUB, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04810000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUB, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C10000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .SUBS + { .SUBS, {.W_REG,.WSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0x71000000, 0xFF800000, .BASE, {sets_flags=true, explicit_count=3} }, + { .SUBS, {.X_REG,.XSP_REG,.IMM_12,.NONE,.NONE}, {.RD,.RN,.IMM12,.NONE,.NONE}, 0xF1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .SUBS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6B000000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .SUBS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .SUBS, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6B200000, 0xFFE00000, .BASE, {sets_flags=true, explicit_count=3} }, + { .SUBS, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, // .MOVZ - { .MOVZ, {.W_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x52800000, 0xFF800000, .BASE, {} }, - { .MOVZ, {.X_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0xD2800000, 0xFF800000, .BASE, {is_64=true} }, + { .MOVZ, {.W_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x52800000, 0xFF800000, .BASE, {explicit_count=3} }, + { .MOVZ, {.X_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0xD2800000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, // .MOVN - { .MOVN, {.W_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x12800000, 0xFF800000, .BASE, {} }, - { .MOVN, {.X_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x92800000, 0xFF800000, .BASE, {is_64=true} }, + { .MOVN, {.W_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x12800000, 0xFF800000, .BASE, {explicit_count=3} }, + { .MOVN, {.X_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x92800000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, // .MOVK - { .MOVK, {.W_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0x72800000, 0xFF800000, .BASE, {} }, - { .MOVK, {.X_REG,.IMM_16,.HW_SHIFT,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE}, 0xF2800000, 0xFF800000, .BASE, {is_64=true} }, + { .MOVK, {.W_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0x72800000, 0xFF800000, .BASE, {explicit_count=3} }, + { .MOVK, {.X_REG,.IMM_16,.HW_SHIFT,.NONE,.NONE}, {.RD,.IMM16,.IMM_HW,.NONE,.NONE}, 0xF2800000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, // .ADR - { .ADR, {.X_REG,.REL_PG21,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE}, 0x10000000, 0x9F000000, .BASE, {} }, + { .ADR, {.X_REG,.REL_PG21,.NONE,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE,.NONE}, 0x10000000, 0x9F000000, .BASE, {explicit_count=2} }, // .ADRP - { .ADRP, {.X_REG,.REL_PG21,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE}, 0x90000000, 0x9F000000, .BASE, {} }, - // .ADD_SR - { .ADD_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0B000000, 0xFF200000, .BASE, {} }, - { .ADD_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8B000000, 0xFF200000, .BASE, {is_64=true} }, - // .ADDS_SR - { .ADDS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2B000000, 0xFF200000, .BASE, {sets_flags=true} }, - { .ADDS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - // .SUB_SR - { .SUB_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4B000000, 0xFF200000, .BASE, {} }, - { .SUB_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCB000000, 0xFF200000, .BASE, {is_64=true} }, - // .SUBS_SR - { .SUBS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6B000000, 0xFF200000, .BASE, {sets_flags=true} }, - { .SUBS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - // .AND_SR - { .AND_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0A000000, 0xFF200000, .BASE, {} }, - { .AND_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8A000000, 0xFF200000, .BASE, {is_64=true} }, - // .ANDS_SR - { .ANDS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6A000000, 0xFF200000, .BASE, {sets_flags=true} }, - { .ANDS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEA000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - // .ORR_SR - { .ORR_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2A000000, 0xFF200000, .BASE, {} }, - { .ORR_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAA000000, 0xFF200000, .BASE, {is_64=true} }, - // .EOR_SR - { .EOR_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4A000000, 0xFF200000, .BASE, {} }, - { .EOR_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCA000000, 0xFF200000, .BASE, {is_64=true} }, - // .BIC_SR - { .BIC_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0A200000, 0xFF200000, .BASE, {} }, - { .BIC_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8A200000, 0xFF200000, .BASE, {is_64=true} }, - // .BICS_SR - { .BICS_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6A200000, 0xFF200000, .BASE, {sets_flags=true} }, - { .BICS_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEA200000, 0xFF200000, .BASE, {sets_flags=true, is_64=true} }, - // .ORN_SR - { .ORN_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2A200000, 0xFF200000, .BASE, {} }, - { .ORN_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAA200000, 0xFF200000, .BASE, {is_64=true} }, - // .EON_SR - { .EON_SR, {.W_REG,.W_REG,.W_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4A200000, 0xFF200000, .BASE, {} }, - { .EON_SR, {.X_REG,.X_REG,.X_SHIFTED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCA200000, 0xFF200000, .BASE, {is_64=true} }, - // .ADD_ER - { .ADD_ER, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x0B200000, 0xFFE00000, .BASE, {} }, - { .ADD_ER, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true} }, - // .ADDS_ER - { .ADDS_ER, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true} }, - { .ADDS_ER, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xAB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true} }, - // .SUB_ER - { .SUB_ER, {.WSP_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x4B200000, 0xFFE00000, .BASE, {} }, - { .SUB_ER, {.XSP_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xCB200000, 0xFFE00000, .BASE, {is_64=true} }, - // .SUBS_ER - { .SUBS_ER, {.W_REG,.WSP_REG,.W_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0x6B200000, 0xFFE00000, .BASE, {sets_flags=true} }, - { .SUBS_ER, {.X_REG,.XSP_REG,.X_EXTENDED,.NONE}, {.RD,.RN,.RM,.NONE}, 0xEB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true} }, - // .LSLV - { .LSLV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {} }, - { .LSLV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true} }, - // .LSRV - { .LSRV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02400, 0xFFE0FC00, .BASE, {} }, - { .LSRV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true} }, - // .ASRV - { .ASRV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02800, 0xFFE0FC00, .BASE, {} }, - { .ASRV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02800, 0xFFE0FC00, .BASE, {is_64=true} }, - // .RORV - { .RORV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC02C00, 0xFFE0FC00, .BASE, {} }, - { .RORV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC02C00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .ADRP, {.X_REG,.REL_PG21,.NONE,.NONE,.NONE}, {.RD,.BRANCH_PG21,.NONE,.NONE,.NONE}, 0x90000000, 0x9F000000, .BASE, {explicit_count=2} }, + // .AND + { .AND, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0A000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .AND, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8A000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .AND, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x12000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .AND, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x92000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .AND, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .AND, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x041A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .AND, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x045A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .AND, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x049A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .AND, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04DA0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .AND, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .ANDS + { .ANDS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6A000000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ANDS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEA000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ANDS, {.W_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true, explicit_count=3} }, + { .ANDS, {.X_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xF2000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .ANDS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .ORR + { .ORR, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2A000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .ORR, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAA000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .ORR, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x32000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .ORR, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xB2000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .ORR, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ORR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04180000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ORR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04580000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ORR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04980000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ORR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D80000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .ORR, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .EOR + { .EOR, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4A000000, 0xFF200000, .BASE, {explicit_count=3} }, + { .EOR, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCA000000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .EOR, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x52000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .EOR, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xD2000000, 0xFF800000, .BASE, {is_64=true, explicit_count=3} }, + { .EOR, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .EOR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04190000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .EOR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04590000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .EOR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04990000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .EOR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D90000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .EOR, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004200, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .BIC + { .BIC, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x0A200000, 0xFF200000, .BASE, {explicit_count=3} }, + { .BIC, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x8A200000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .BIC, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E601C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .BIC, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x041B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BIC, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x045B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BIC, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x049B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BIC, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04DB0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .BIC, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004010, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .BICS + { .BICS, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x6A200000, 0xFF200000, .BASE, {sets_flags=true, explicit_count=3} }, + { .BICS, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xEA200000, 0xFF200000, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + { .BICS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25404010, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .ORN + { .ORN, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x2A200000, 0xFF200000, .BASE, {explicit_count=3} }, + { .ORN, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xAA200000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + { .ORN, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ORN, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804010, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .EON + { .EON, {.W_REG,.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x4A200000, 0xFF200000, .BASE, {explicit_count=3} }, + { .EON, {.X_REG,.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xCA200000, 0xFF200000, .BASE, {is_64=true, explicit_count=3} }, + // .LSL + { .LSL, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .LSL, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .LSL, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04138000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04538000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSL, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04938000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSL, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D38000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .LSL, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.RN,.ENC_LSL_IMM_W,.NONE,.NONE}, 0x53000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LSL, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.RN,.ENC_LSL_IMM_X,.NONE,.NONE}, 0xD3400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + // .LSR + { .LSR, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02400, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .LSR, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .LSR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04118000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04518000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04918000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D18000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .LSR, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {explicit_count=3} }, + { .LSR, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true, explicit_count=3} }, + // .ASR + { .ASR, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02800, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .ASR, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02800, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .ASR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04108000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04508000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04908000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D08000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + { .ASR, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {explicit_count=3} }, + { .ASR, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.RN,.ENC_SHIFT_IMMR,.NONE,.NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true, explicit_count=3} }, + // .ROR + { .ROR, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC02C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .ROR, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC02C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .ROR, {.W_REG,.W_REG,.IMM_5,.NONE,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE,.NONE}, 0x13800000, 0xFFE00000, .BASE, {explicit_count=3} }, + { .ROR, {.X_REG,.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE,.NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true, explicit_count=3} }, // .UDIV - { .UDIV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC00800, 0xFFE0FC00, .BASE, {} }, - { .UDIV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC00800, 0xFFE0FC00, .BASE, {is_64=true} }, + { .UDIV, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC00800, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .UDIV, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC00800, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .UDIV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04950000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UDIV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D50000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .SDIV - { .SDIV, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC00C00, 0xFFE0FC00, .BASE, {} }, - { .SDIV, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC00C00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .SDIV, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC00C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .SDIV, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC00C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .SDIV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04940000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SDIV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D40000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .MADD - { .MADD, {.W_REG,.W_REG,.W_REG,.W_REG}, {.RD,.RN,.RM,.RA}, 0x1B000000, 0xFFE08000, .BASE, {} }, - { .MADD, {.X_REG,.X_REG,.X_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B000000, 0xFFE08000, .BASE, {is_64=true} }, + { .MADD, {.W_REG,.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1B000000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .MADD, {.X_REG,.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B000000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .MSUB - { .MSUB, {.W_REG,.W_REG,.W_REG,.W_REG}, {.RD,.RN,.RM,.RA}, 0x1B008000, 0xFFE08000, .BASE, {} }, - { .MSUB, {.X_REG,.X_REG,.X_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B008000, 0xFFE08000, .BASE, {is_64=true} }, + { .MSUB, {.W_REG,.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1B008000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .MSUB, {.X_REG,.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B008000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .SMADDL - { .SMADDL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B200000, 0xFFE08000, .BASE, {is_64=true} }, + { .SMADDL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B200000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .SMSUBL - { .SMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9B208000, 0xFFE08000, .BASE, {is_64=true} }, + { .SMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9B208000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .UMADDL - { .UMADDL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9BA00000, 0xFFE08000, .BASE, {is_64=true} }, + { .UMADDL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9BA00000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .UMSUBL - { .UMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG}, {.RD,.RN,.RM,.RA}, 0x9BA08000, 0xFFE08000, .BASE, {is_64=true} }, + { .UMSUBL, {.X_REG,.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x9BA08000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .SMULH - { .SMULH, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9B407C00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .SMULH, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9B407C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .SMULH, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04120000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMULH, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04520000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMULH, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04920000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMULH, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D20000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .UMULH - { .UMULH, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9BC07C00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .UMULH, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9BC07C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + { .UMULH, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04130000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMULH, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04530000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMULH, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04930000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMULH, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D30000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .CLZ - { .CLZ, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC01000, 0xFFFFFC00, .BASE, {} }, - { .CLZ, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC01000, 0xFFFFFC00, .BASE, {is_64=true} }, + { .CLZ, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC01000, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .CLZ, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC01000, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .CLZ, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLZ, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0419A000, 0xFFF9E000, .SVE, {explicit_count=3} }, + { .CLZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0459A000, 0xFFF9E000, .SVE, {explicit_count=3} }, + { .CLZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0499A000, 0xFFF9E000, .SVE, {explicit_count=3} }, + { .CLZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D9A000, 0xFFF9E000, .SVE, {is_64=true, explicit_count=3} }, // .CLS - { .CLS, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC01400, 0xFFFFFC00, .BASE, {} }, - { .CLS, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC01400, 0xFFFFFC00, .BASE, {is_64=true} }, + { .CLS, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC01400, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .CLS, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC01400, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .CLS, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CLS, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0418A000, 0xFFF8E000, .SVE, {explicit_count=3} }, + { .CLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0458A000, 0xFFF8E000, .SVE, {explicit_count=3} }, + { .CLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0498A000, 0xFFF8E000, .SVE, {explicit_count=3} }, + { .CLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D8A000, 0xFFF8E000, .SVE, {is_64=true, explicit_count=3} }, // .RBIT - { .RBIT, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC00000, 0xFFFFFC00, .BASE, {} }, - { .RBIT, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00000, 0xFFFFFC00, .BASE, {is_64=true} }, + { .RBIT, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC00000, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .RBIT, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00000, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .RBIT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .RBIT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .REV - { .REV, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC00800, 0xFFFFFC00, .BASE, {} }, - { .REV, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00C00, 0xFFFFFC00, .BASE, {is_64=true} }, + { .REV, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC00800, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .REV, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .REV, {.Z_REG_B,.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05383800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_H,.Z_REG_H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05783800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_S,.Z_REG_S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .REV, {.Z_REG_D,.Z_REG_D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true, explicit_count=2} }, + { .REV, {.P_REG_B,.P_REG_B,.NONE,.NONE,.NONE}, {.PD,.PN,.NONE,.NONE,.NONE}, 0x05344000, 0xFFFFFE10, .SVE, {explicit_count=2} }, // .REV16 - { .REV16, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5AC00400, 0xFFFFFC00, .BASE, {} }, - { .REV16, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00400, 0xFFFFFC00, .BASE, {is_64=true} }, + { .REV16, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5AC00400, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .REV16, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00400, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .REV16, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV16, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .REV32 - { .REV32, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC00800, 0xFFFFFC00, .BASE, {is_64=true} }, + { .REV32, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC00800, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + { .REV32, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV32, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .CSEL - { .CSEL, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1A800000, 0xFFE00C00, .BASE, {} }, - { .CSEL, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x9A800000, 0xFFE00C00, .BASE, {is_64=true} }, + { .CSEL, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1A800000, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSEL, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x9A800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, // .CSINC - { .CSINC, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1A800400, 0xFFE00C00, .BASE, {} }, - { .CSINC, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x9A800400, 0xFFE00C00, .BASE, {is_64=true} }, + { .CSINC, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1A800400, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSINC, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x9A800400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, // .CSINV - { .CSINV, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x5A800000, 0xFFE00C00, .BASE, {} }, - { .CSINV, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0xDA800000, 0xFFE00C00, .BASE, {is_64=true} }, + { .CSINV, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x5A800000, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSINV, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0xDA800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, // .CSNEG - { .CSNEG, {.W_REG,.W_REG,.W_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x5A800400, 0xFFE00C00, .BASE, {} }, - { .CSNEG, {.X_REG,.X_REG,.X_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0xDA800400, 0xFFE00C00, .BASE, {is_64=true} }, - // .CCMP_REG - { .CCMP_REG, {.W_REG,.W_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0x7A400000, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMP_REG, {.X_REG,.X_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - // .CCMP_IMM - { .CCMP_IMM, {.W_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0x7A400800, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMP_IMM, {.X_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0xFA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - // .CCMN_REG - { .CCMN_REG, {.W_REG,.W_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0x3A400000, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMN_REG, {.X_REG,.X_REG,.NZCV_IMM,.COND}, {.RN,.RM,.NZCV_FIELD,.COND_HI}, 0xBA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, - // .CCMN_IMM - { .CCMN_IMM, {.W_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0x3A400800, 0xFFE00C10, .BASE, {sets_flags=true} }, - { .CCMN_IMM, {.X_REG,.IMM_5,.NZCV_IMM,.COND}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI}, 0xBA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true} }, + { .CSNEG, {.W_REG,.W_REG,.W_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x5A800400, 0xFFE00C00, .BASE, {explicit_count=4} }, + { .CSNEG, {.X_REG,.X_REG,.X_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0xDA800400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=4} }, + // .CCMP + { .CCMP, {.W_REG,.W_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0x7A400000, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMP, {.X_REG,.X_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CCMP, {.W_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0x7A400800, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMP, {.X_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0xFA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CCMN + { .CCMN, {.W_REG,.W_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0x3A400000, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMN, {.X_REG,.X_REG,.NZCV_IMM,.COND,.NONE}, {.RN,.RM,.NZCV_FIELD,.COND_HI,.NONE}, 0xBA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + { .CCMN, {.W_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0x3A400800, 0xFFE00C10, .BASE, {sets_flags=true, explicit_count=4} }, + { .CCMN, {.X_REG,.IMM_5,.NZCV_IMM,.COND,.NONE}, {.RN,.IMM5_HI,.NZCV_FIELD,.COND_HI,.NONE}, 0xBA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CSET + { .CSET, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x1A9F07E0, 0xFFFF8FE0, .BASE, {explicit_count=2} }, + { .CSET, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x1A9F87E0, 0xFFFFCFE0, .BASE, {explicit_count=2} }, + { .CSET, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x1A9FC7E0, 0xFFFFEFE0, .BASE, {explicit_count=2} }, + { .CSET, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x9A9F07E0, 0xFFFF8FE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSET, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x9A9F87E0, 0xFFFFCFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSET, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x9A9FC7E0, 0xFFFFEFE0, .BASE, {is_64=true, explicit_count=2} }, + // .CSETM + { .CSETM, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x5A9F03E0, 0xFFFF8FE0, .BASE, {explicit_count=2} }, + { .CSETM, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x5A9F83E0, 0xFFFFCFE0, .BASE, {explicit_count=2} }, + { .CSETM, {.W_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0x5A9FC3E0, 0xFFFFEFE0, .BASE, {explicit_count=2} }, + { .CSETM, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0xDA9F03E0, 0xFFFF8FE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSETM, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0xDA9F83E0, 0xFFFFCFE0, .BASE, {is_64=true, explicit_count=2} }, + { .CSETM, {.X_REG,.COND_NOT_AL,.NONE,.NONE,.NONE}, {.RD,.COND_HI_INV,.NONE,.NONE,.NONE}, 0xDA9FC3E0, 0xFFFFEFE0, .BASE, {is_64=true, explicit_count=2} }, + // .CINC + { .CINC, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x1A800400, 0xFFE08C00, .BASE, {explicit_count=3} }, + { .CINC, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x1A808400, 0xFFE0CC00, .BASE, {explicit_count=3} }, + { .CINC, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x1A80C400, 0xFFE0EC00, .BASE, {explicit_count=3} }, + { .CINC, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x9A800400, 0xFFE08C00, .BASE, {is_64=true, explicit_count=3} }, + { .CINC, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x9A808400, 0xFFE0CC00, .BASE, {is_64=true, explicit_count=3} }, + { .CINC, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x9A80C400, 0xFFE0EC00, .BASE, {is_64=true, explicit_count=3} }, + // .CINV + { .CINV, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A800000, 0xFFE08C00, .BASE, {explicit_count=3} }, + { .CINV, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A808000, 0xFFE0CC00, .BASE, {explicit_count=3} }, + { .CINV, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A80C000, 0xFFE0EC00, .BASE, {explicit_count=3} }, + { .CINV, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA800000, 0xFFE08C00, .BASE, {is_64=true, explicit_count=3} }, + { .CINV, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA808000, 0xFFE0CC00, .BASE, {is_64=true, explicit_count=3} }, + { .CINV, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA80C000, 0xFFE0EC00, .BASE, {is_64=true, explicit_count=3} }, + // .CNEG + { .CNEG, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A800400, 0xFFE08C00, .BASE, {explicit_count=3} }, + { .CNEG, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A808400, 0xFFE0CC00, .BASE, {explicit_count=3} }, + { .CNEG, {.W_REG,.W_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0x5A80C400, 0xFFE0EC00, .BASE, {explicit_count=3} }, + { .CNEG, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA800400, 0xFFE08C00, .BASE, {is_64=true, explicit_count=3} }, + { .CNEG, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA808400, 0xFFE0CC00, .BASE, {is_64=true, explicit_count=3} }, + { .CNEG, {.X_REG,.X_REG,.COND_NOT_AL,.NONE,.NONE}, {.RD,.RN_RM,.COND_HI_INV,.NONE,.NONE}, 0xDA80C400, 0xFFE0EC00, .BASE, {is_64=true, explicit_count=3} }, // .EXTR - { .EXTR, {.W_REG,.W_REG,.W_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x13800000, 0xFFE08000, .BASE, {} }, - { .EXTR, {.X_REG,.X_REG,.X_REG,.IMM_6}, {.RD,.RN,.RM,.IMM6}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true} }, + { .EXTR, {.W_REG,.W_REG,.W_REG,.IMM_6,.NONE}, {.RD,.RN,.RM,.IMM6,.NONE}, 0x13800000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .EXTR, {.X_REG,.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.RM,.IMM6,.NONE}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .B - { .B, {.REL_26,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true} }, + { .B, {.REL_26,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE,.NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true, explicit_count=1} }, // .BL - { .BL, {.REL_26,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true} }, + { .BL, {.REL_26,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_26,.NONE,.NONE,.NONE,.NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true, explicit_count=1} }, // .BR - { .BR, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD61F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true} }, + { .BR, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD61F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true, explicit_count=1} }, // .BLR - { .BLR, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD63F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true} }, + { .BLR, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD63F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true, explicit_count=1} }, // .RET - { .RET, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD65F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true} }, - { .RET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F03C0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, - // .B_COND - { .B_COND, {.COND,.REL_19,.NONE,.NONE}, {.COND_LO,.BRANCH_19,.NONE,.NONE}, 0x54000000, 0xFF000010, .BASE, {cond_branch=true} }, + { .RET, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD65F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true, explicit_count=1} }, + { .RET, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD65F03C0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, + // .B_EQ + { .B_EQ, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000000, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_NE + { .B_NE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000001, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_CS + { .B_CS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000002, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_CC + { .B_CC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000003, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_MI + { .B_MI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000004, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_PL + { .B_PL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000005, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_VS + { .B_VS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000006, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_VC + { .B_VC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000007, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_HI + { .B_HI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000008, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_LS + { .B_LS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000009, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_GE + { .B_GE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000A, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_LT + { .B_LT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000B, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_GT + { .B_GT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000C, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_LE + { .B_LE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000D, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_AL + { .B_AL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000E, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .B_NV + { .B_NV, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400000F, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, // .CBZ - { .CBZ, {.W_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x34000000, 0xFF000000, .BASE, {cond_branch=true} }, - { .CBZ, {.X_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0xB4000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true} }, + { .CBZ, {.W_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x34000000, 0xFF000000, .BASE, {cond_branch=true, explicit_count=2} }, + { .CBZ, {.X_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0xB4000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true, explicit_count=2} }, // .CBNZ - { .CBNZ, {.W_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x35000000, 0xFF000000, .BASE, {cond_branch=true} }, - { .CBNZ, {.X_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0xB5000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true} }, + { .CBNZ, {.W_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x35000000, 0xFF000000, .BASE, {cond_branch=true, explicit_count=2} }, + { .CBNZ, {.X_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0xB5000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true, explicit_count=2} }, // .TBZ - { .TBZ, {.X_REG,.IMM_5,.REL_14,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE}, 0x36000000, 0x7F000000, .BASE, {cond_branch=true} }, + { .TBZ, {.X_REG,.IMM_5,.REL_14,.NONE,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE,.NONE}, 0x36000000, 0x7F000000, .BASE, {cond_branch=true, explicit_count=3} }, // .TBNZ - { .TBNZ, {.X_REG,.IMM_5,.REL_14,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE}, 0x37000000, 0x7F000000, .BASE, {cond_branch=true} }, + { .TBNZ, {.X_REG,.IMM_5,.REL_14,.NONE,.NONE}, {.RT,.TBZ_BIT,.BRANCH_14,.NONE,.NONE}, 0x37000000, 0x7F000000, .BASE, {cond_branch=true, explicit_count=3} }, // .LDR - { .LDR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xB9400000, 0xFFC00000, .BASE, {} }, - { .LDR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF9400000, 0xFFC00000, .BASE, {is_64=true} }, + { .LDR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xB9400000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF9400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x18000000, 0xFF000000, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0x58000000, 0xFF000000, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xB8400C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8400C00, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xB8400400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xF8400400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xB8600800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDR, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xF8600800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDR, {.B_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xBD400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xFD400000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3DC00000, 0xFFC00000, .FP, {explicit_count=2} }, + { .LDR, {.B_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3C600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x7C600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xBC600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xFC600800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3CE00800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.B_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3C400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x7C400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xBC400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xFC400C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3CC00C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.B_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3C400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.H_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x7C400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.S_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xBC400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.D_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xFC400400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Q_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3CC00400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .LDR, {.Z_REG_ANY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0x85804000, 0xFFE0E000, .SVE, {explicit_count=2} }, + { .LDR, {.P_REG,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0x85800000, 0xFFE0E010, .SVE, {explicit_count=2} }, + { .LDR, {.ZA_ARRAY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.SME_ZA_ARRAY,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE1000000, 0xFFE08000, .SME, {explicit_count=2} }, // .STR - { .STR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xB9000000, 0xFFC00000, .BASE, {} }, - { .STR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF9000000, 0xFFC00000, .BASE, {is_64=true} }, + { .STR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xB9000000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF9000000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xB8000C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8000C00, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xB8000400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xF8000400, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xB8200800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STR, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xF8200800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STR, {.B_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3D000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x7D000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xFD000000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x3D800000, 0xFFC00000, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3C200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x7C200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xBC200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xFC200800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x3CA00800, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3C000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x7C000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xBC000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xFC000C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x3C800C00, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.B_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3C000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.H_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x7C000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.S_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xBC000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.D_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0xFC000400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Q_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x3C800400, 0xFFE00C00, .FP, {explicit_count=2} }, + { .STR, {.Z_REG_ANY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE5804000, 0xFFE0E000, .SVE, {explicit_count=2} }, + { .STR, {.P_REG,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE5800000, 0xFFE0E010, .SVE, {explicit_count=2} }, + { .STR, {.ZA_ARRAY,.MEM_SVE_SI,.NONE,.NONE,.NONE}, {.SME_ZA_ARRAY,.SVE_OFFSET_BASE_SI,.NONE,.NONE,.NONE}, 0xE1200000, 0xFFE08000, .SME, {explicit_count=2} }, // .LDRB - { .LDRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39400000, 0xFFC00000, .BASE, {} }, + { .LDRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39400000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x38400C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x38400400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRB, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38600800, 0xFFE00C00, .BASE, {explicit_count=2} }, // .STRB - { .STRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39000000, 0xFFC00000, .BASE, {} }, + { .STRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39000000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x38000C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x38000400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRB, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38200800, 0xFFE00C00, .BASE, {explicit_count=2} }, // .LDRSB - { .LDRSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDRSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x39C00000, 0xFFC00000, .BASE, {} }, + { .LDRSB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDRSB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x39C00000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRSB, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38E00800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRSB, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x38A00800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, // .LDRH - { .LDRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79400000, 0xFFC00000, .BASE, {} }, + { .LDRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79400000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x78400C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x78400400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRH, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78600800, 0xFFE00C00, .BASE, {explicit_count=2} }, // .STRH - { .STRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79000000, 0xFFC00000, .BASE, {} }, + { .STRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79000000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0x78000C00, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_POST,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE,.NONE}, 0x78000400, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STRH, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78200800, 0xFFE00C00, .BASE, {explicit_count=2} }, // .LDRSH - { .LDRSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79800000, 0xFFC00000, .BASE, {is_64=true} }, - { .LDRSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x79C00000, 0xFFC00000, .BASE, {} }, + { .LDRSH, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDRSH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0x79C00000, 0xFFC00000, .BASE, {explicit_count=2} }, + { .LDRSH, {.W_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78E00800, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDRSH, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0x78A00800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, // .LDRSW - { .LDRSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xB9800000, 0xFFC00000, .BASE, {is_64=true} }, + { .LDRSW, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xB9800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .LDRSW, {.X_REG,.MEM_REG,.NONE,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE,.NONE}, 0xB8A00800, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, // .LDP - { .LDP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x29400000, 0xFFC00000, .BASE, {} }, - { .LDP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA9400000, 0xFFC00000, .BASE, {is_64=true} }, + { .LDP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29400000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDP, {.W_REG,.W_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29C00000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDP, {.X_REG,.X_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDP, {.W_REG,.W_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28C00000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDP, {.X_REG,.X_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDP, {.S_REG,.S_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x2D400000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .LDP, {.D_REG,.D_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0x6D400000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .LDP, {.Q_REG,.Q_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_16,.NONE,.NONE}, 0xAD400000, 0xFFC00000, .NEON, {explicit_count=3} }, // .STP - { .STP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x29000000, 0xFFC00000, .BASE, {} }, - { .STP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA9000000, 0xFFC00000, .BASE, {is_64=true} }, + { .STP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9000000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STP, {.W_REG,.W_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x29800000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STP, {.X_REG,.X_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA9800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STP, {.W_REG,.W_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28800000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STP, {.X_REG,.X_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .STP, {.S_REG,.S_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x2D000000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .STP, {.D_REG,.D_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0x6D000000, 0xFFC00000, .NEON, {explicit_count=3} }, + { .STP, {.Q_REG,.Q_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_16,.NONE,.NONE}, 0xAD000000, 0xFFC00000, .NEON, {explicit_count=3} }, // .LDPSW - { .LDPSW, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x69400000, 0xFFC00000, .BASE, {is_64=true} }, - // .LDR_LIT - { .LDR_LIT, {.W_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x18000000, 0xFF000000, .BASE, {} }, - { .LDR_LIT, {.X_REG,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0x58000000, 0xFF000000, .BASE, {is_64=true} }, + { .LDPSW, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x69400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDPSW, {.X_REG,.X_REG,.MEM_PRE,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x69C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, + { .LDPSW, {.X_REG,.X_REG,.MEM_POST,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x68C00000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, // .LDAR - { .LDAR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x88DFFC00, 0xFFFFFC00, .BASE, {} }, - { .LDAR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC8DFFC00, 0xFFFFFC00, .BASE, {is_64=true} }, + { .LDAR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x88DFFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDAR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC8DFFC00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, // .STLR - { .STLR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x889FFC00, 0xFFFFFC00, .BASE, {} }, - { .STLR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC89FFC00, 0xFFFFFC00, .BASE, {is_64=true} }, + { .STLR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x889FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .STLR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC89FFC00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, // .LDARB - { .LDARB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x08DFFC00, 0xFFFFFC00, .BASE, {} }, + { .LDARB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x08DFFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .STLRB - { .STLRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x089FFC00, 0xFFFFFC00, .BASE, {} }, + { .STLRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x089FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .LDARH - { .LDARH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x48DFFC00, 0xFFFFFC00, .BASE, {} }, + { .LDARH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x48DFFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .STLRH - { .STLRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x489FFC00, 0xFFFFFC00, .BASE, {} }, + { .STLRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x489FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .LDXR - { .LDXR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x885F7C00, 0xFFE0FC00, .BASE, {} }, - { .LDXR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC85F7C00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .LDXR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x885F7C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDXR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC85F7C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, // .STXR - { .STXR, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x88007C00, 0xFFE0FC00, .BASE, {} }, - { .STXR, {.W_REG,.X_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0xC8007C00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .STXR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x88007C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STXR, {.W_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC8007C00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, // .LDAXR - { .LDAXR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x885FFC00, 0xFFE0FC00, .BASE, {} }, - { .LDAXR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC85FFC00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .LDAXR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x885FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + { .LDAXR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xC85FFC00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, // .STLXR - { .STLXR, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x8800FC00, 0xFFE0FC00, .BASE, {} }, - { .STLXR, {.W_REG,.X_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0xC800FC00, 0xFFE0FC00, .BASE, {is_64=true} }, + { .STLXR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x8800FC00, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .STLXR, {.W_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xC800FC00, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, // .NOP - { .NOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFFFFF, .BASE, {} }, + { .NOP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFFFFF, .BASE, {} }, // .YIELD - { .YIELD, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503203F, 0xFFFFFFFF, .BASE, {} }, + { .YIELD, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503203F, 0xFFFFFFFF, .BASE, {} }, // .WFE - { .WFE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503205F, 0xFFFFFFFF, .BASE, {} }, + { .WFE, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503205F, 0xFFFFFFFF, .BASE, {} }, // .WFI - { .WFI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503207F, 0xFFFFFFFF, .BASE, {} }, + { .WFI, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503207F, 0xFFFFFFFF, .BASE, {} }, // .SEV - { .SEV, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503209F, 0xFFFFFFFF, .BASE, {} }, + { .SEV, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503209F, 0xFFFFFFFF, .BASE, {} }, // .SEVL - { .SEVL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320BF, 0xFFFFFFFF, .BASE, {} }, + { .SEVL, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50320BF, 0xFFFFFFFF, .BASE, {} }, // .HINT - { .HINT, {.IMM_8,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFF01F, .BASE, {} }, + { .HINT, {.IMM_8,.NONE,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD503201F, 0xFFFFF01F, .BASE, {explicit_count=1} }, // .MRS - { .MRS, {.X_REG,.SYS_REG,.NONE,.NONE}, {.RT,.SYS_FIELD,.NONE,.NONE}, 0xD5300000, 0xFFF00000, .BASE, {} }, - // .MSR_IMM - { .MSR_IMM, {.SYS_REG,.IMM_4,.NONE,.NONE}, {.MSR_PSTATE,.BARRIER_FIELD,.NONE,.NONE}, 0xD500401F, 0xFFF8F01F, .BASE, {} }, - // .MSR_REG - { .MSR_REG, {.SYS_REG,.X_REG,.NONE,.NONE}, {.SYS_FIELD,.RT,.NONE,.NONE}, 0xD5100000, 0xFFF00000, .BASE, {} }, + { .MRS, {.X_REG,.SYS_REG,.NONE,.NONE,.NONE}, {.RT,.SYS_FIELD,.NONE,.NONE,.NONE}, 0xD5300000, 0xFFF00000, .BASE, {explicit_count=2} }, + // .MSR + { .MSR, {.PSTATE_FIELD,.IMM_4,.NONE,.NONE,.NONE}, {.MSR_PSTATE,.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD500401F, 0xFFF8F01F, .BASE, {explicit_count=2} }, + { .MSR, {.SYS_REG,.X_REG,.NONE,.NONE,.NONE}, {.SYS_FIELD,.RT,.NONE,.NONE,.NONE}, 0xD5100000, 0xFFF00000, .BASE, {explicit_count=2} }, // .ISB - { .ISB, {.IMM_4,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD50330DF, 0xFFFFF0FF, .BASE, {} }, + { .ISB, {.IMM_4,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD50330DF, 0xFFFFF0FF, .BASE, {explicit_count=1} }, // .DSB - { .DSB, {.IMM_4,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD503309F, 0xFFFFF0FF, .BASE, {} }, + { .DSB, {.IMM_4,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD503309F, 0xFFFFF0FF, .BASE, {explicit_count=1} }, // .DMB - { .DMB, {.IMM_4,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE}, 0xD50330BF, 0xFFFFF0FF, .BASE, {} }, + { .DMB, {.IMM_4,.NONE,.NONE,.NONE,.NONE}, {.BARRIER_FIELD,.NONE,.NONE,.NONE,.NONE}, 0xD50330BF, 0xFFFFF0FF, .BASE, {explicit_count=1} }, // .SVC - { .SVC, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4000001, 0xFFE0001F, .BASE, {branch=true} }, + { .SVC, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4000001, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, // .HVC - { .HVC, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4000002, 0xFFE0001F, .BASE, {branch=true} }, + { .HVC, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4000002, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, // .SMC - { .SMC, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4000003, 0xFFE0001F, .BASE, {branch=true} }, + { .SMC, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4000003, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, // .BRK - { .BRK, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4200000, 0xFFE0001F, .BASE, {branch=true} }, + { .BRK, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4200000, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, // .HLT - { .HLT, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4400000, 0xFFE0001F, .BASE, {branch=true} }, + { .HLT, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4400000, 0xFFE0001F, .BASE, {branch=true, explicit_count=1} }, // .ERET - { .ERET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F03E0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, - // .FMOV_REG - { .FMOV_REG, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E204000, 0xFFFFFC00, .FP, {} }, - { .FMOV_REG, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E604000, 0xFFFFFC00, .FP, {} }, - // .FMOV_IMM - { .FMOV_IMM, {.S_REG,.IMM_8,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE}, 0x1E201000, 0xFFE01FE0, .FP, {} }, - { .FMOV_IMM, {.D_REG,.IMM_8,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE}, 0x1E601000, 0xFFE01FE0, .FP, {} }, - { .FMOV_IMM, {.H_REG,.IMM_8,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE}, 0x1EE01000, 0xFFE01FE0, .FP16, {} }, - // .FMOV_GEN - { .FMOV_GEN, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E260000, 0xFFFFFC00, .FP, {} }, - { .FMOV_GEN, {.S_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E270000, 0xFFFFFC00, .FP, {} }, - { .FMOV_GEN, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E660000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FMOV_GEN, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true} }, + { .ERET, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD69F03E0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true} }, + // .FMOV + { .FMOV, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E204000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E604000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.S_REG,.IMM_8,.NONE,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE,.NONE}, 0x1E201000, 0xFFE01FE0, .FP, {explicit_count=2} }, + { .FMOV, {.D_REG,.IMM_8,.NONE,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE,.NONE}, 0x1E601000, 0xFFE01FE0, .FP, {explicit_count=2} }, + { .FMOV, {.H_REG,.IMM_8,.NONE,.NONE,.NONE}, {.RD,.FMOV_SCALAR_IMM,.NONE,.NONE,.NONE}, 0x1EE01000, 0xFFE01FE0, .FP16, {explicit_count=2} }, + { .FMOV, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E260000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.S_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E270000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FMOV, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E660000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FMOV, {.D_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FMOV, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE04000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMOV, {.V_2S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .FMOV, {.V_4S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .FMOV, {.V_2D,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .FMOV, {.V_4H_FP16,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {explicit_count=2} }, + { .FMOV, {.V_8H_FP16,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {explicit_count=2} }, + { .FMOV, {.X_REG,.V_ELEM_D,.NONE,.NONE,.NONE}, {.RD,.NEON_LANE_D,.NONE,.NONE,.NONE}, 0x9EAE0000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FMOV, {.V_ELEM_D,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EAF0000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, // .FABS - { .FABS, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E20C000, 0xFFFFFC00, .FP, {} }, - { .FABS, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E60C000, 0xFFFFFC00, .FP, {} }, + { .FABS, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E20C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FABS, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E60C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FABS, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE0C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FABS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FABS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FABS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FABS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x045CA000, 0xFFFCE000, .SVE, {explicit_count=3} }, + { .FABS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x049CA000, 0xFFFCE000, .SVE, {explicit_count=3} }, + { .FABS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04DCA000, 0xFFFCE000, .SVE, {is_64=true, explicit_count=3} }, // .FNEG - { .FNEG, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E214000, 0xFFFFFC00, .FP, {} }, - { .FNEG, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E614000, 0xFFFFFC00, .FP, {} }, + { .FNEG, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E214000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FNEG, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E614000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FNEG, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE14000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FNEG, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FNEG, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FNEG, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FNEG, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FNEG, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FNEG, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x045DA000, 0xFFFDE000, .SVE, {explicit_count=3} }, + { .FNEG, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x049DA000, 0xFFFDE000, .SVE, {explicit_count=3} }, + { .FNEG, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04DDA000, 0xFFFDE000, .SVE, {is_64=true, explicit_count=3} }, // .FSQRT - { .FSQRT, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E21C000, 0xFFFFFC00, .FP, {} }, - { .FSQRT, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E61C000, 0xFFFFFC00, .FP, {} }, + { .FSQRT, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E21C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FSQRT, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E61C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FSQRT, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE1C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FSQRT, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FSQRT, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FSQRT, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FSQRT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FSQRT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FSQRT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x654DA000, 0xFFEDE000, .SVE, {explicit_count=3} }, + { .FSQRT, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x658DA000, 0xFFEDE000, .SVE, {explicit_count=3} }, + { .FSQRT, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65CDA000, 0xFFEDE000, .SVE, {is_64=true, explicit_count=3} }, // .FADD - { .FADD, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E202800, 0xFFE0FC00, .FP, {} }, - { .FADD, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E602800, 0xFFE0FC00, .FP, {} }, + { .FADD, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E202800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FADD, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E602800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FADD, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE02800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65408000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FADD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65808000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FADD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C08000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FSUB - { .FSUB, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E203800, 0xFFE0FC00, .FP, {} }, - { .FSUB, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E603800, 0xFFE0FC00, .FP, {} }, + { .FSUB, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E203800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FSUB, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E603800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FSUB, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE03800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FSUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FSUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FSUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FSUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65418000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUB, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65818000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUB, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C18000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FMUL - { .FMUL, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E200800, 0xFFE0FC00, .FP, {} }, - { .FMUL, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E600800, 0xFFE0FC00, .FP, {} }, + { .FMUL, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E200800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMUL, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E600800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMUL, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE00800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMUL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMUL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMUL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .FMUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65428000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMUL, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65828000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMUL, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C28000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FDIV - { .FDIV, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E201800, 0xFFE0FC00, .FP, {} }, - { .FDIV, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E601800, 0xFFE0FC00, .FP, {} }, + { .FDIV, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E201800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FDIV, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E601800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FDIV, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE01800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FDIV, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FDIV, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FDIV, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FDIV, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x654D8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x658D8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65CD8000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FNMUL - { .FNMUL, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E208800, 0xFFE0FC00, .FP, {} }, - { .FNMUL, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E608800, 0xFFE0FC00, .FP, {} }, + { .FNMUL, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E208800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FNMUL, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E608800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FNMUL, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE08800, 0xFFE0FC00, .FP16, {explicit_count=3} }, // .FMADD - { .FMADD, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F000000, 0xFFE08000, .FP, {} }, - { .FMADD, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F400000, 0xFFE08000, .FP, {} }, + { .FMADD, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F000000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMADD, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F400000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMADD, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FC00000, 0xFFE08000, .FP16, {explicit_count=4} }, // .FMSUB - { .FMSUB, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F008000, 0xFFE08000, .FP, {} }, - { .FMSUB, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F408000, 0xFFE08000, .FP, {} }, + { .FMSUB, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F008000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMSUB, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F408000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FMSUB, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FC08000, 0xFFE08000, .FP16, {explicit_count=4} }, // .FNMADD - { .FNMADD, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F200000, 0xFFE08000, .FP, {} }, - { .FNMADD, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F600000, 0xFFE08000, .FP, {} }, + { .FNMADD, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F200000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMADD, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F600000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMADD, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FE00000, 0xFFE08000, .FP16, {explicit_count=4} }, // .FNMSUB - { .FNMSUB, {.S_REG,.S_REG,.S_REG,.S_REG}, {.RD,.RN,.RM,.RA}, 0x1F208000, 0xFFE08000, .FP, {} }, - { .FNMSUB, {.D_REG,.D_REG,.D_REG,.D_REG}, {.RD,.RN,.RM,.RA}, 0x1F608000, 0xFFE08000, .FP, {} }, + { .FNMSUB, {.S_REG,.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F208000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMSUB, {.D_REG,.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1F608000, 0xFFE08000, .FP, {explicit_count=4} }, + { .FNMSUB, {.H_REG,.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.RA,.NONE}, 0x1FE08000, 0xFFE08000, .FP16, {explicit_count=4} }, // .FCMP - { .FCMP, {.S_REG,.S_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E202000, 0xFFE0FC1F, .FP, {sets_flags=true} }, - { .FCMP, {.D_REG,.D_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E602000, 0xFFE0FC1F, .FP, {sets_flags=true} }, + { .FCMP, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E202000, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMP, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E602000, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMP, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1EE02000, 0xFFE0FC1F, .FP16, {sets_flags=true, explicit_count=2} }, // .FCMPE - { .FCMPE, {.S_REG,.S_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E202010, 0xFFE0FC1F, .FP, {sets_flags=true} }, - { .FCMPE, {.D_REG,.D_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1E602010, 0xFFE0FC1F, .FP, {sets_flags=true} }, + { .FCMPE, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E202010, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMPE, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1E602010, 0xFFE0FC1F, .FP, {sets_flags=true, explicit_count=2} }, + { .FCMPE, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x1EE02010, 0xFFE0FC1F, .FP16, {sets_flags=true, explicit_count=2} }, // .FCSEL - { .FCSEL, {.S_REG,.S_REG,.S_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1E200C00, 0xFFE00C00, .FP, {} }, - { .FCSEL, {.D_REG,.D_REG,.D_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1E600C00, 0xFFE00C00, .FP, {} }, + { .FCSEL, {.S_REG,.S_REG,.S_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1E200C00, 0xFFE00C00, .FP, {explicit_count=4} }, + { .FCSEL, {.D_REG,.D_REG,.D_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1E600C00, 0xFFE00C00, .FP, {explicit_count=4} }, + { .FCSEL, {.H_REG,.H_REG,.H_REG,.COND,.NONE}, {.RD,.RN,.RM,.COND_HI,.NONE}, 0x1EE00C00, 0xFFE00C00, .FP16, {explicit_count=4} }, // .FMAX - { .FMAX, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E204800, 0xFFE0FC00, .FP, {} }, - { .FMAX, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E604800, 0xFFE0FC00, .FP, {} }, + { .FMAX, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E204800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAX, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E604800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAX, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE04800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65468000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65868000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C68000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FMIN - { .FMIN, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E205800, 0xFFE0FC00, .FP, {} }, - { .FMIN, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E605800, 0xFFE0FC00, .FP, {} }, + { .FMIN, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E205800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMIN, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E605800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMIN, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE05800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMIN, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMIN, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMIN, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMIN, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMIN, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMIN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65478000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMIN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65878000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMIN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C78000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FMAXNM - { .FMAXNM, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E206800, 0xFFE0FC00, .FP, {} }, - { .FMAXNM, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E606800, 0xFFE0FC00, .FP, {} }, + { .FMAXNM, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E206800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAXNM, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E606800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMAXNM, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE06800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNM, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNM, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNM, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNM, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNM, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65448000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAXNM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65848000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMAXNM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C48000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FMINNM - { .FMINNM, {.S_REG,.S_REG,.S_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E207800, 0xFFE0FC00, .FP, {} }, - { .FMINNM, {.D_REG,.D_REG,.D_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1E607800, 0xFFE0FC00, .FP, {} }, + { .FMINNM, {.S_REG,.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E207800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMINNM, {.D_REG,.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1E607800, 0xFFE0FC00, .FP, {explicit_count=3} }, + { .FMINNM, {.H_REG,.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1EE07800, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNM, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNM, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNM, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNM, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNM, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65458000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMINNM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65858000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FMINNM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C58000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .FCVT - { .FCVT, {.D_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E22C000, 0xFFFFFC00, .FP, {} }, - { .FCVT, {.S_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E624000, 0xFFFFFC00, .FP, {} }, + { .FCVT, {.D_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E22C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVT, {.S_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E624000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVT, {.H_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E23C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVT, {.H_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E63C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVT, {.S_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE24000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVT, {.D_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE2C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .SCVTF - { .SCVTF, {.S_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E220000, 0xFFFFFC00, .FP, {} }, - { .SCVTF, {.D_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E620000, 0xFFFFFC00, .FP, {} }, - { .SCVTF, {.S_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E220000, 0xFFFFFC00, .FP, {is_64=true} }, - { .SCVTF, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E620000, 0xFFFFFC00, .FP, {is_64=true} }, + { .SCVTF, {.S_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E220000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .SCVTF, {.D_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E620000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .SCVTF, {.S_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E220000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .SCVTF, {.D_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E620000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .SCVTF, {.H_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE20000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .SCVTF, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SCVTF, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SCVTF, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SCVTF, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .SCVTF, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .UCVTF - { .UCVTF, {.S_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E230000, 0xFFFFFC00, .FP, {} }, - { .UCVTF, {.D_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E630000, 0xFFFFFC00, .FP, {} }, - { .UCVTF, {.S_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E230000, 0xFFFFFC00, .FP, {is_64=true} }, - { .UCVTF, {.D_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E630000, 0xFFFFFC00, .FP, {is_64=true} }, + { .UCVTF, {.S_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E230000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .UCVTF, {.D_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E630000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .UCVTF, {.S_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E230000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .UCVTF, {.D_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E630000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .UCVTF, {.H_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE30000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .UCVTF, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UCVTF, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UCVTF, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UCVTF, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .UCVTF, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTZS - { .FCVTZS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E380000, 0xFFFFFC00, .FP, {} }, - { .FCVTZS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E780000, 0xFFFFFC00, .FP, {} }, - { .FCVTZS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E380000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FCVTZS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E780000, 0xFFFFFC00, .FP, {is_64=true} }, + { .FCVTZS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E380000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E780000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E380000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E780000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF80000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTZU - { .FCVTZU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E390000, 0xFFFFFC00, .FP, {} }, - { .FCVTZU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E790000, 0xFFFFFC00, .FP, {} }, - { .FCVTZU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E390000, 0xFFFFFC00, .FP, {is_64=true} }, - { .FCVTZU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E790000, 0xFFFFFC00, .FP, {is_64=true} }, + { .FCVTZU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E390000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E790000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTZU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E390000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E790000, 0xFFFFFC00, .FP, {is_64=true, explicit_count=2} }, + { .FCVTZU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF90000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTZU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTZU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTAS - { .FCVTAS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E240000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E640000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE40000, 0xFFFFFC00, .FP16, {} }, - { .FCVTAS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E240000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E640000, 0xFFFFFC00, .FP, {} }, - { .FCVTAS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE40000, 0xFFFFFC00, .FP16, {} }, + { .FCVTAS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E240000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E640000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE40000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E240000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E640000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE40000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTAU - { .FCVTAU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E250000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E650000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE50000, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E250000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E650000, 0xFFFFFC00, .FP, {} }, - { .FCVTAU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE50000, 0xFFFFFC00, .FP16, {} }, + { .FCVTAU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E250000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E650000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE50000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E250000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E650000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTAU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE50000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTAU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTAU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTNS - { .FCVTNS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E200000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E600000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE00000, 0xFFFFFC00, .FP16, {} }, - { .FCVTNS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E200000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E600000, 0xFFFFFC00, .FP, {} }, - { .FCVTNS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE00000, 0xFFFFFC00, .FP16, {} }, + { .FCVTNS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E200000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E600000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E200000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E600000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTNU - { .FCVTNU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E210000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E610000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE10000, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E210000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E610000, 0xFFFFFC00, .FP, {} }, - { .FCVTNU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE10000, 0xFFFFFC00, .FP16, {} }, + { .FCVTNU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E210000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E610000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E210000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E610000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTNU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTNU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTNU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTPS - { .FCVTPS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E280000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E680000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE80000, 0xFFFFFC00, .FP16, {} }, - { .FCVTPS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E280000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E680000, 0xFFFFFC00, .FP, {} }, - { .FCVTPS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE80000, 0xFFFFFC00, .FP16, {} }, + { .FCVTPS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E280000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E680000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE80000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E280000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E680000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE80000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTPU - { .FCVTPU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E290000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E690000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE90000, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E290000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E690000, 0xFFFFFC00, .FP, {} }, - { .FCVTPU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EE90000, 0xFFFFFC00, .FP16, {} }, + { .FCVTPU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E290000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E690000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE90000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E290000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E690000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTPU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EE90000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTPU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTPU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTMS - { .FCVTMS, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E300000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E700000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF00000, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E300000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E700000, 0xFFFFFC00, .FP, {} }, - { .FCVTMS, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EF00000, 0xFFFFFC00, .FP16, {} }, + { .FCVTMS, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E300000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E700000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E300000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E700000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMS, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EF00000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMS, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMS, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FCVTMU - { .FCVTMU, {.W_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E310000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.W_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E710000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF10000, 0xFFFFFC00, .FP16, {} }, - { .FCVTMU, {.X_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E310000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.X_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9E710000, 0xFFFFFC00, .FP, {} }, - { .FCVTMU, {.X_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x9EF10000, 0xFFFFFC00, .FP16, {} }, + { .FCVTMU, {.W_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E310000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.W_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E710000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.W_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EF10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.X_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E310000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.X_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9E710000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FCVTMU, {.X_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x9EF10000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMU, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMU, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCVTMU, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTMU, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FRINTA - { .FRINTA, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E264000, 0xFFFFFC00, .FP, {} }, - { .FRINTA, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E664000, 0xFFFFFC00, .FP, {} }, - { .FRINTA, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE64000, 0xFFFFFC00, .FP16, {} }, + { .FRINTA, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E264000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTA, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E664000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTA, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE64000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTA, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTA, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTA, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTA, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTA, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6544A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6584A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, // .FRINTI - { .FRINTI, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E27C000, 0xFFFFFC00, .FP, {} }, - { .FRINTI, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E67C000, 0xFFFFFC00, .FP, {} }, - { .FRINTI, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE7C000, 0xFFFFFC00, .FP16, {} }, + { .FRINTI, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E27C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTI, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E67C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTI, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE7C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTI, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTI, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTI, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTI, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTI, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTI, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6547A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTI, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6587A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTI, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, // .FRINTM - { .FRINTM, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E254000, 0xFFFFFC00, .FP, {} }, - { .FRINTM, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E654000, 0xFFFFFC00, .FP, {} }, - { .FRINTM, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE54000, 0xFFFFFC00, .FP16, {} }, + { .FRINTM, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E254000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTM, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E654000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTM, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE54000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTM, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTM, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTM, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTM, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTM, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6542A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6582A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, // .FRINTN - { .FRINTN, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E244000, 0xFFFFFC00, .FP, {} }, - { .FRINTN, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E644000, 0xFFFFFC00, .FP, {} }, - { .FRINTN, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE44000, 0xFFFFFC00, .FP16, {} }, + { .FRINTN, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E244000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTN, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E644000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTN, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE44000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTN, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTN, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTN, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTN, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTN, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6540A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6580A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, // .FRINTP - { .FRINTP, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E24C000, 0xFFFFFC00, .FP, {} }, - { .FRINTP, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E64C000, 0xFFFFFC00, .FP, {} }, - { .FRINTP, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE4C000, 0xFFFFFC00, .FP16, {} }, + { .FRINTP, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E24C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTP, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E64C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTP, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE4C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTP, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTP, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTP, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTP, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTP, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTP, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6541A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTP, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6581A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTP, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, // .FRINTX - { .FRINTX, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E274000, 0xFFFFFC00, .FP, {} }, - { .FRINTX, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E674000, 0xFFFFFC00, .FP, {} }, - { .FRINTX, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE74000, 0xFFFFFC00, .FP16, {} }, + { .FRINTX, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E274000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTX, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E674000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTX, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE74000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTX, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTX, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTX, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTX, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTX, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6546A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6586A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, // .FRINTZ - { .FRINTZ, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E25C000, 0xFFFFFC00, .FP, {} }, - { .FRINTZ, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E65C000, 0xFFFFFC00, .FP, {} }, - { .FRINTZ, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE5C000, 0xFFFFFC00, .FP16, {} }, - // .AND_IMM - { .AND_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x12000000, 0xFFC00000, .BASE, {} }, - { .AND_IMM, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x92000000, 0xFF800000, .BASE, {is_64=true} }, - // .ANDS_IMM - { .ANDS_IMM, {.W_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true} }, - { .ANDS_IMM, {.X_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0xF2000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true} }, - // .ORR_IMM - { .ORR_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x32000000, 0xFFC00000, .BASE, {} }, - { .ORR_IMM, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0xB2000000, 0xFF800000, .BASE, {is_64=true} }, - // .EOR_IMM - { .EOR_IMM, {.WSP_REG,.W_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0x52000000, 0xFFC00000, .BASE, {} }, - { .EOR_IMM, {.XSP_REG,.X_REG,.BITMASK_IMM,.NONE}, {.RD,.RN,.BITMASK_FIELD,.NONE}, 0xD2000000, 0xFF800000, .BASE, {is_64=true} }, - // .TST_IMM - { .TST_IMM, {.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true} }, - { .TST_IMM, {.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, + { .FRINTZ, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E25C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTZ, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E65C000, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRINTZ, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1EE5C000, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTZ, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTZ, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTZ, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRINTZ, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTZ, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRINTZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6543A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x6583A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRINTZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + // .TST + { .TST, {.W_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .TST, {.X_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RN,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .TST, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .TST, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, // .LDUR - { .LDUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xB8400000, 0xFFE00C00, .BASE, {} }, - { .LDUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8400000, 0xFFE00C00, .BASE, {is_64=true} }, + { .LDUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xB8400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xF8400000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDUR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xBC400000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .LDUR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xFC400000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .LDUR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {explicit_count=2} }, // .STUR - { .STUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xB8000000, 0xFFE00C00, .BASE, {} }, - { .STUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8000000, 0xFFE00C00, .BASE, {is_64=true} }, + { .STUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xB8000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xF8000000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .STUR, {.S_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xBC000000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .STUR, {.D_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xFC000000, 0xFFE00C00, .NEON, {explicit_count=2} }, + { .STUR, {.Q_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x3C800000, 0xFFE00C00, .NEON, {explicit_count=2} }, // .LDURB - { .LDURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38400000, 0xFFE00C00, .BASE, {} }, + { .LDURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38400000, 0xFFE00C00, .BASE, {explicit_count=2} }, // .STURB - { .STURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38000000, 0xFFE00C00, .BASE, {} }, + { .STURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38000000, 0xFFE00C00, .BASE, {explicit_count=2} }, // .LDURSB - { .LDURSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x38C00000, 0xFFE00C00, .BASE, {} }, + { .LDURSB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDURSB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x38C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, // .LDURH - { .LDURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78400000, 0xFFE00C00, .BASE, {} }, + { .LDURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78400000, 0xFFE00C00, .BASE, {explicit_count=2} }, // .STURH - { .STURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78000000, 0xFFE00C00, .BASE, {} }, + { .STURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78000000, 0xFFE00C00, .BASE, {explicit_count=2} }, // .LDURSH - { .LDURSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x78C00000, 0xFFE00C00, .BASE, {} }, + { .LDURSH, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDURSH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x78C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, // .LDURSW - { .LDURSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xB8800000, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDR_PRE - { .LDR_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xB8400C00, 0xFFE00C00, .BASE, {} }, - { .LDR_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8400C00, 0xFFE00C00, .BASE, {is_64=true} }, - // .STR_PRE - { .STR_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xB8000C00, 0xFFE00C00, .BASE, {} }, - { .STR_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8000C00, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDR_POST - { .LDR_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xB8400400, 0xFFE00C00, .BASE, {} }, - { .LDR_POST, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xF8400400, 0xFFE00C00, .BASE, {is_64=true} }, - // .STR_POST - { .STR_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xB8000400, 0xFFE00C00, .BASE, {} }, - { .STR_POST, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0xF8000400, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDRB_PRE - { .LDRB_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x38400C00, 0xFFE00C00, .BASE, {} }, - // .STRB_PRE - { .STRB_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x38000C00, 0xFFE00C00, .BASE, {} }, - // .LDRB_POST - { .LDRB_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x38400400, 0xFFE00C00, .BASE, {} }, - // .STRB_POST - { .STRB_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x38000400, 0xFFE00C00, .BASE, {} }, - // .LDRH_PRE - { .LDRH_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x78400C00, 0xFFE00C00, .BASE, {} }, - // .STRH_PRE - { .STRH_PRE, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0x78000C00, 0xFFE00C00, .BASE, {} }, - // .LDRH_POST - { .LDRH_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x78400400, 0xFFE00C00, .BASE, {} }, - // .STRH_POST - { .STRH_POST, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_POST,.NONE,.NONE}, 0x78000400, 0xFFE00C00, .BASE, {} }, - // .LDR_REG - { .LDR_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xB8600800, 0xFFE00C00, .BASE, {} }, - { .LDR_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xF8600800, 0xFFE00C00, .BASE, {is_64=true} }, - // .STR_REG - { .STR_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xB8200800, 0xFFE00C00, .BASE, {} }, - { .STR_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xF8200800, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDRB_REG - { .LDRB_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38600800, 0xFFE00C00, .BASE, {} }, - // .STRB_REG - { .STRB_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38200800, 0xFFE00C00, .BASE, {} }, - // .LDRH_REG - { .LDRH_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78600800, 0xFFE00C00, .BASE, {} }, - // .STRH_REG - { .STRH_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78200800, 0xFFE00C00, .BASE, {} }, - // .LDRSB_REG - { .LDRSB_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38E00800, 0xFFE00C00, .BASE, {} }, - { .LDRSB_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x38A00800, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDRSH_REG - { .LDRSH_REG, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78E00800, 0xFFE00C00, .BASE, {} }, - { .LDRSH_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0x78A00800, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDRSW_REG - { .LDRSW_REG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_REG,.NONE,.NONE}, 0xB8A00800, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDP_PRE - { .LDP_PRE, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0x29C00000, 0xFFC00000, .BASE, {} }, - { .LDP_PRE, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0xA9C00000, 0xFFC00000, .BASE, {is_64=true} }, - // .STP_PRE - { .STP_PRE, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0x29800000, 0xFFC00000, .BASE, {} }, - { .STP_PRE, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0xA9800000, 0xFFC00000, .BASE, {is_64=true} }, - // .LDP_POST - { .LDP_POST, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0x28C00000, 0xFFC00000, .BASE, {} }, - { .LDP_POST, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0xA8C00000, 0xFFC00000, .BASE, {is_64=true} }, - // .STP_POST - { .STP_POST, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0x28800000, 0xFFC00000, .BASE, {} }, - { .STP_POST, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0xA8800000, 0xFFC00000, .BASE, {is_64=true} }, - // .LDPSW_PRE - { .LDPSW_PRE, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_PRE,.NONE}, 0x69C00000, 0xFFC00000, .BASE, {is_64=true} }, - // .LDPSW_POST - { .LDPSW_POST, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_POST,.NONE}, 0x68C00000, 0xFFC00000, .BASE, {is_64=true} }, + { .LDURSW, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xB8800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, // .LDNP - { .LDNP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x28400000, 0xFFC00000, .BASE, {} }, - { .LDNP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA8400000, 0xFFC00000, .BASE, {is_64=true} }, + { .LDNP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28400000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .LDNP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8400000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, // .STNP - { .STNP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x28000000, 0xFFC00000, .BASE, {} }, - { .STNP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xA8000000, 0xFFC00000, .BASE, {is_64=true} }, + { .STNP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_4,.NONE,.NONE}, 0x28000000, 0xFFC00000, .BASE, {explicit_count=3} }, + { .STNP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_8,.NONE,.NONE}, 0xA8000000, 0xFFC00000, .BASE, {is_64=true, explicit_count=3} }, // .LDXP - { .LDXP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x887F0000, 0xFFFF8000, .BASE, {} }, - { .LDXP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC87F0000, 0xFFFF8000, .BASE, {is_64=true} }, + { .LDXP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0x887F0000, 0xFFFF8000, .BASE, {explicit_count=3} }, + { .LDXP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0xC87F0000, 0xFFFF8000, .BASE, {is_64=true, explicit_count=3} }, // .STXP - { .STXP, {.W_REG,.W_REG,.W_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0x88200000, 0xFFE08000, .BASE, {} }, - { .STXP, {.W_REG,.X_REG,.X_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0xC8200000, 0xFFE08000, .BASE, {is_64=true} }, + { .STXP, {.W_REG,.W_REG,.W_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x88200000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .STXP, {.W_REG,.X_REG,.X_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC8200000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .LDAXP - { .LDAXP, {.W_REG,.W_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x887F8000, 0xFFFF8000, .BASE, {} }, - { .LDAXP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC87F8000, 0xFFFF8000, .BASE, {is_64=true} }, + { .LDAXP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0x887F8000, 0xFFFF8000, .BASE, {explicit_count=3} }, + { .LDAXP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_BASE_A,.NONE,.NONE}, 0xC87F8000, 0xFFFF8000, .BASE, {is_64=true, explicit_count=3} }, // .STLXP - { .STLXP, {.W_REG,.W_REG,.W_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0x88208000, 0xFFE08000, .BASE, {} }, - { .STLXP, {.W_REG,.X_REG,.X_REG,.MEM}, {.RD,.RT,.RT2,.OFFSET_BASE_A}, 0xC8208000, 0xFFE08000, .BASE, {is_64=true} }, + { .STLXP, {.W_REG,.W_REG,.W_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0x88208000, 0xFFE08000, .BASE, {explicit_count=4} }, + { .STLXP, {.W_REG,.X_REG,.X_REG,.MEM_OFFSET,.NONE}, {.RD,.RT,.RT2,.OFFSET_BASE_A,.NONE}, 0xC8208000, 0xFFE08000, .BASE, {is_64=true, explicit_count=4} }, // .LDXRB - { .LDXRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x085F7C00, 0xFFE0FC00, .BASE, {} }, + { .LDXRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x085F7C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .STXRB - { .STXRB, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x08007C00, 0xFFE0FC00, .BASE, {} }, + { .STXRB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x08007C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, // .LDAXRB - { .LDAXRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x085FFC00, 0xFFE0FC00, .BASE, {} }, + { .LDAXRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x085FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .STLXRB - { .STLXRB, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x0800FC00, 0xFFE0FC00, .BASE, {} }, + { .STLXRB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x0800FC00, 0xFFE0FC00, .BASE, {explicit_count=3} }, // .LDXRH - { .LDXRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x485F7C00, 0xFFE0FC00, .BASE, {} }, + { .LDXRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x485F7C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .STXRH - { .STXRH, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x48007C00, 0xFFE0FC00, .BASE, {} }, + { .STXRH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x48007C00, 0xFFE0FC00, .BASE, {explicit_count=3} }, // .LDAXRH - { .LDAXRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x485FFC00, 0xFFE0FC00, .BASE, {} }, + { .LDAXRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x485FFC00, 0xFFFFFC00, .BASE, {explicit_count=2} }, // .STLXRH - { .STLXRH, {.W_REG,.W_REG,.MEM,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE}, 0x4800FC00, 0xFFE0FC00, .BASE, {} }, + { .STLXRH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.RD,.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x4800FC00, 0xFFE0FC00, .BASE, {explicit_count=3} }, // .LDAPR - { .LDAPR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xB8BFC000, 0xFFFFFC00, .LSE2, {} }, - { .LDAPR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xF8BFC000, 0xFFFFFC00, .LSE2, {is_64=true} }, + { .LDAPR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xB8BFC000, 0xFFFFFC00, .LSE2, {explicit_count=2} }, + { .LDAPR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xF8BFC000, 0xFFFFFC00, .LSE2, {is_64=true, explicit_count=2} }, // .LDAPRB - { .LDAPRB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x38BFC000, 0xFFFFFC00, .LSE2, {} }, + { .LDAPRB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x38BFC000, 0xFFFFFC00, .LSE2, {explicit_count=2} }, // .LDAPRH - { .LDAPRH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0x78BFC000, 0xFFFFFC00, .LSE2, {} }, + { .LDAPRH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x78BFC000, 0xFFFFFC00, .LSE2, {explicit_count=2} }, // .LDADD - { .LDADD, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8200000, 0xFFE0FC00, .LSE, {} }, - { .LDADD, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8200000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDADD, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8200000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADD, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8200000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDADDA - { .LDADDA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A00000, 0xFFE0FC00, .LSE, {} }, - { .LDADDA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A00000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDADDA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A00000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADDA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A00000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDADDL - { .LDADDL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8600000, 0xFFE0FC00, .LSE, {} }, - { .LDADDL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8600000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDADDL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8600000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADDL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8600000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDADDAL - { .LDADDAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E00000, 0xFFE0FC00, .LSE, {} }, - { .LDADDAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E00000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDADDAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E00000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDADDAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E00000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDCLR - { .LDCLR, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8201000, 0xFFE0FC00, .LSE, {} }, - { .LDCLR, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8201000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDCLR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8201000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLR, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8201000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDCLRA - { .LDCLRA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A01000, 0xFFE0FC00, .LSE, {} }, - { .LDCLRA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A01000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDCLRA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A01000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLRA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A01000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDCLRL - { .LDCLRL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8601000, 0xFFE0FC00, .LSE, {} }, - { .LDCLRL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8601000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDCLRL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8601000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLRL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8601000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDCLRAL - { .LDCLRAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E01000, 0xFFE0FC00, .LSE, {} }, - { .LDCLRAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E01000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDCLRAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E01000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDCLRAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E01000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDEOR - { .LDEOR, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8202000, 0xFFE0FC00, .LSE, {} }, - { .LDEOR, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8202000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDEOR, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8202000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEOR, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8202000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDEORA - { .LDEORA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A02000, 0xFFE0FC00, .LSE, {} }, - { .LDEORA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A02000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDEORA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A02000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEORA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A02000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDEORL - { .LDEORL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8602000, 0xFFE0FC00, .LSE, {} }, - { .LDEORL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8602000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDEORL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8602000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEORL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8602000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDEORAL - { .LDEORAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E02000, 0xFFE0FC00, .LSE, {} }, - { .LDEORAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E02000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDEORAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E02000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDEORAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E02000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSET - { .LDSET, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8203000, 0xFFE0FC00, .LSE, {} }, - { .LDSET, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8203000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSET, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8203000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSET, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8203000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSETA - { .LDSETA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A03000, 0xFFE0FC00, .LSE, {} }, - { .LDSETA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A03000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSETA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A03000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSETA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A03000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSETL - { .LDSETL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8603000, 0xFFE0FC00, .LSE, {} }, - { .LDSETL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8603000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSETL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8603000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSETL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8603000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSETAL - { .LDSETAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E03000, 0xFFE0FC00, .LSE, {} }, - { .LDSETAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E03000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSETAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E03000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSETAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E03000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMAX - { .LDSMAX, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8204000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAX, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8204000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMAX, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8204000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAX, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8204000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMAXA - { .LDSMAXA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A04000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A04000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMAXA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A04000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAXA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A04000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMAXL - { .LDSMAXL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8604000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8604000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMAXL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8604000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAXL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8604000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMAXAL - { .LDSMAXAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E04000, 0xFFE0FC00, .LSE, {} }, - { .LDSMAXAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E04000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMAXAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E04000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMAXAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E04000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMIN - { .LDSMIN, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8205000, 0xFFE0FC00, .LSE, {} }, - { .LDSMIN, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8205000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMIN, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8205000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMIN, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8205000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMINA - { .LDSMINA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A05000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A05000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMINA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A05000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMINA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A05000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMINL - { .LDSMINL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8605000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8605000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMINL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8605000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMINL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8605000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDSMINAL - { .LDSMINAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E05000, 0xFFE0FC00, .LSE, {} }, - { .LDSMINAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E05000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDSMINAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E05000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDSMINAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E05000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMAX - { .LDUMAX, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8206000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAX, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8206000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMAX, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8206000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAX, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8206000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMAXA - { .LDUMAXA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A06000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A06000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMAXA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A06000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAXA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A06000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMAXL - { .LDUMAXL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8606000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8606000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMAXL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8606000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAXL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8606000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMAXAL - { .LDUMAXAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E06000, 0xFFE0FC00, .LSE, {} }, - { .LDUMAXAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E06000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMAXAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E06000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMAXAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E06000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMIN - { .LDUMIN, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8207000, 0xFFE0FC00, .LSE, {} }, - { .LDUMIN, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8207000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMIN, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8207000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMIN, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8207000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMINA - { .LDUMINA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A07000, 0xFFE0FC00, .LSE, {} }, - { .LDUMINA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A07000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMINA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A07000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMINA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A07000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMINL - { .LDUMINL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8607000, 0xFFE0FC00, .LSE, {} }, - { .LDUMINL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8607000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMINL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8607000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMINL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8607000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .LDUMINAL - { .LDUMINAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E07000, 0xFFE0FC00, .LSE, {} }, - { .LDUMINAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E07000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .LDUMINAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E07000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .LDUMINAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E07000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .SWP - { .SWP, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8208000, 0xFFE0FC00, .LSE, {} }, - { .SWP, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8208000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .SWP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8208000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8208000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .SWPA - { .SWPA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8A08000, 0xFFE0FC00, .LSE, {} }, - { .SWPA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8A08000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .SWPA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8A08000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWPA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8A08000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .SWPL - { .SWPL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8608000, 0xFFE0FC00, .LSE, {} }, - { .SWPL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8608000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .SWPL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8608000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWPL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8608000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .SWPAL - { .SWPAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xB8E08000, 0xFFE0FC00, .LSE, {} }, - { .SWPAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xF8E08000, 0xFFE0FC00, .LSE, {is_64=true} }, + { .SWPAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xB8E08000, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .SWPAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xF8E08000, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CAS - { .CAS, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88A07C00, 0xFFE0FC00, .LSE, {} }, - { .CAS, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8A07C00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CAS, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88A07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CAS, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8A07C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASA - { .CASA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88E07C00, 0xFFE0FC00, .LSE, {} }, - { .CASA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8E07C00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88E07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8E07C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASL - { .CASL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88A0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8A0FC00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88A0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8A0FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASAL - { .CASAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x88E0FC00, 0xFFE0FC00, .LSE, {} }, - { .CASAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0xC8E0FC00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x88E0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0xC8E0FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASB - { .CASB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08A07C00, 0xFFE0FC00, .LSE, {} }, + { .CASB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08A07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASAB - { .CASAB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08E07C00, 0xFFE0FC00, .LSE, {} }, + { .CASAB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08E07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASLB - { .CASLB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08A0FC00, 0xFFE0FC00, .LSE, {} }, + { .CASLB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08A0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASALB - { .CASALB, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08E0FC00, 0xFFE0FC00, .LSE, {} }, + { .CASALB, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08E0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASH - { .CASH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48A07C00, 0xFFE0FC00, .LSE, {} }, + { .CASH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48A07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASAH - { .CASAH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48E07C00, 0xFFE0FC00, .LSE, {} }, + { .CASAH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48E07C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASLH - { .CASLH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48A0FC00, 0xFFE0FC00, .LSE, {} }, + { .CASLH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48A0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASALH - { .CASALH, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48E0FC00, 0xFFE0FC00, .LSE, {} }, + { .CASALH, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48E0FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, // .CASP - { .CASP, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08207C00, 0xFFE0FC00, .LSE, {} }, - { .CASP, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48207C00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASP, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08207C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48207C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASPA - { .CASPA, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x08607C00, 0xFFE0FC00, .LSE, {} }, - { .CASPA, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x48607C00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASPA, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x08607C00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASPA, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x48607C00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASPL - { .CASPL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x0820FC00, 0xFFE0FC00, .LSE, {} }, - { .CASPL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x4820FC00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASPL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x0820FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASPL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x4820FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .CASPAL - { .CASPAL, {.W_REG,.W_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x0860FC00, 0xFFE0FC00, .LSE, {} }, - { .CASPAL, {.X_REG,.X_REG,.MEM,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE}, 0x4860FC00, 0xFFE0FC00, .LSE, {is_64=true} }, + { .CASPAL, {.W_REG,.W_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x0860FC00, 0xFFE0FC00, .LSE, {explicit_count=3} }, + { .CASPAL, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.ATOMIC_RS,.ATOMIC_RT,.ATOMIC_RN,.NONE,.NONE}, 0x4860FC00, 0xFFE0FC00, .LSE, {is_64=true, explicit_count=3} }, // .PACIA - { .PACIA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10000, 0xFFFFFC00, .PAC, {is_64=true} }, + { .PACIA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10000, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .PACIB - { .PACIB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10400, 0xFFFFFC00, .PAC, {is_64=true} }, + { .PACIB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10400, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .PACDA - { .PACDA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10800, 0xFFFFFC00, .PAC, {is_64=true} }, + { .PACDA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10800, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .PACDB - { .PACDB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC10C00, 0xFFFFFC00, .PAC, {is_64=true} }, + { .PACDB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC10C00, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .PACIZA - { .PACIZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC123E0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .PACIZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC123E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .PACIZB - { .PACIZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC127E0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .PACIZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC127E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .PACDZA - { .PACDZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC12BE0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .PACDZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC12BE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .PACDZB - { .PACDZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC12FE0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .PACDZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC12FE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .AUTIA - { .AUTIA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11000, 0xFFFFFC00, .PAC, {is_64=true} }, + { .AUTIA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11000, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .AUTIB - { .AUTIB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true} }, + { .AUTIB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .AUTDA - { .AUTDA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true} }, + { .AUTDA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .AUTDB - { .AUTDB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true} }, + { .AUTDB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true, explicit_count=2} }, // .AUTIZA - { .AUTIZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC133E0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .AUTIZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC133E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .AUTIZB - { .AUTIZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC137E0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .AUTIZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC137E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .AUTDZA - { .AUTDZA, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC13BE0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .AUTDZA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC13BE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .AUTDZB - { .AUTDZB, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC13FE0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .AUTDZB, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC13FE0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .PACIASP - { .PACIASP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503233F, 0xFFFFFFFF, .PAC, {} }, + { .PACIASP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503233F, 0xFFFFFFFF, .PAC, {} }, // .PACIBSP - { .PACIBSP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503237F, 0xFFFFFFFF, .PAC, {} }, + { .PACIBSP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503237F, 0xFFFFFFFF, .PAC, {} }, // .AUTIASP - { .AUTIASP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50323BF, 0xFFFFFFFF, .PAC, {} }, + { .AUTIASP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50323BF, 0xFFFFFFFF, .PAC, {} }, // .AUTIBSP - { .AUTIBSP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50323FF, 0xFFFFFFFF, .PAC, {} }, + { .AUTIBSP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50323FF, 0xFFFFFFFF, .PAC, {} }, // .PACIA1716 - { .PACIA1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503211F, 0xFFFFFFFF, .PAC, {} }, + { .PACIA1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503211F, 0xFFFFFFFF, .PAC, {} }, // .PACIB1716 - { .PACIB1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503215F, 0xFFFFFFFF, .PAC, {} }, + { .PACIB1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503215F, 0xFFFFFFFF, .PAC, {} }, // .AUTIA1716 - { .AUTIA1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503219F, 0xFFFFFFFF, .PAC, {} }, + { .AUTIA1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503219F, 0xFFFFFFFF, .PAC, {} }, // .AUTIB1716 - { .AUTIB1716, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50321DF, 0xFFFFFFFF, .PAC, {} }, + { .AUTIB1716, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50321DF, 0xFFFFFFFF, .PAC, {} }, // .PACGA - { .PACGA, {.X_REG,.X_REG,.XSP_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC03000, 0xFFE0FC00, .PAC, {is_64=true} }, + { .PACGA, {.X_REG,.X_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC03000, 0xFFE0FC00, .PAC, {is_64=true, explicit_count=3} }, // .XPACI - { .XPACI, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC143E0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .XPACI, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC143E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .XPACD - { .XPACD, {.X_REG,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0xDAC147E0, 0xFFFFFFE0, .PAC, {is_64=true} }, + { .XPACD, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE,.NONE}, 0xDAC147E0, 0xFFFFFFE0, .PAC, {is_64=true, explicit_count=1} }, // .XPACLRI - { .XPACLRI, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320FF, 0xFFFFFFFF, .PAC, {} }, + { .XPACLRI, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50320FF, 0xFFFFFFFF, .PAC, {} }, // .RETAA - { .RETAA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .RETAA, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD65F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, // .RETAB - { .RETAB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD65F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .RETAB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD65F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, // .BRAA - { .BRAA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD71F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, + { .BRAA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD71F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, // .BRAB - { .BRAB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD71F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, + { .BRAB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD71F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, // .BRAAZ - { .BRAAZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD61F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, + { .BRAAZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD61F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, // .BRABZ - { .BRABZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD61F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, + { .BRABZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD61F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, // .BLRAA - { .BLRAA, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD73F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, + { .BLRAA, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD73F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, // .BLRAB - { .BLRAB, {.X_REG,.XSP_REG,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE}, 0xD73F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true} }, + { .BLRAB, {.X_REG,.XSP_REG,.NONE,.NONE,.NONE}, {.RN,.RD,.NONE,.NONE,.NONE}, 0xD73F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true, explicit_count=2} }, // .BLRAAZ - { .BLRAAZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD63F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, + { .BLRAAZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD63F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, // .BLRABZ - { .BLRABZ, {.X_REG,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE}, 0xD63F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true} }, + { .BLRABZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RN,.NONE,.NONE,.NONE,.NONE}, 0xD63F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true, explicit_count=1} }, // .ERETAA - { .ERETAA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .ERETAA, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD69F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, // .ERETAB - { .ERETAB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD69F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, + { .ERETAB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD69F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true} }, // .BTI - { .BTI, {.IMM_2,.NONE,.NONE,.NONE}, {.HINT_FIELD,.NONE,.NONE,.NONE}, 0xD503241F, 0xFFFFF8FF, .BTI, {} }, + { .BTI, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503241F, 0xFFFFFFFF, .BTI, {} }, // .IRG - { .IRG, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC01000, 0xFFE0FC00, .MTE, {is_64=true} }, + { .IRG, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC01000, 0xFFE0FC00, .MTE, {is_64=true, explicit_count=3} }, // .ADDG - { .ADDG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4}, {.RD,.RN,.IMM6,.IMM_HW}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true} }, + { .ADDG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4,.NONE}, {.RD,.RN,.IMM6,.IMM_HW,.NONE}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true, explicit_count=4} }, // .SUBG - { .SUBG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4}, {.RD,.RN,.IMM6,.IMM_HW}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true} }, + { .SUBG, {.XSP_REG,.XSP_REG,.IMM_6,.IMM_4,.NONE}, {.RD,.RN,.IMM6,.IMM_HW,.NONE}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true, explicit_count=4} }, // .GMI - { .GMI, {.X_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC01400, 0xFFE0FC00, .MTE, {is_64=true} }, + { .GMI, {.X_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC01400, 0xFFE0FC00, .MTE, {is_64=true, explicit_count=3} }, // .SUBP - { .SUBP, {.X_REG,.XSP_REG,.XSP_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC00000, 0xFFE0FC00, .MTE, {is_64=true} }, + { .SUBP, {.X_REG,.XSP_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC00000, 0xFFE0FC00, .MTE, {is_64=true, explicit_count=3} }, // .SUBPS - { .SUBPS, {.X_REG,.XSP_REG,.XSP_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xBAC00000, 0xFFE0FC00, .MTE, {sets_flags=true, is_64=true} }, + { .SUBPS, {.X_REG,.XSP_REG,.XSP_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xBAC00000, 0xFFE0FC00, .MTE, {sets_flags=true, is_64=true, explicit_count=3} }, // .LDG - { .LDG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9600000, 0xFFE00C00, .MTE, {is_64=true} }, + { .LDG, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9600000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .STG - { .STG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9200800, 0xFFE00C00, .MTE, {is_64=true} }, + { .STG, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9200800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .ST2G - { .ST2G, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9A00800, 0xFFE00C00, .MTE, {is_64=true} }, + { .ST2G, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9A00800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .STZG - { .STZG, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9600800, 0xFFE00C00, .MTE, {is_64=true} }, + { .STZG, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9600800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .STZ2G - { .STZ2G, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9E00800, 0xFFE00C00, .MTE, {is_64=true} }, + { .STZ2G, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9E00800, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .STGP - { .STGP, {.X_REG,.X_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true} }, + { .STGP, {.X_REG,.X_REG,.MEM_OFFSET,.NONE,.NONE}, {.RT,.RT2,.OFFSET_PAIR_16,.NONE,.NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true, explicit_count=3} }, // .LDGM - { .LDGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true} }, + { .LDGM, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .STGM - { .STGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true} }, + { .STGM, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .STZGM - { .STZGM, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true} }, + { .STZGM, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true, explicit_count=2} }, // .CRC32B - { .CRC32B, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC04000, 0xFFE0FC00, .CRC32, {} }, + { .CRC32B, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC04000, 0xFFE0FC00, .CRC32, {explicit_count=3} }, // .CRC32H - { .CRC32H, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC04400, 0xFFE0FC00, .CRC32, {} }, + { .CRC32H, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC04400, 0xFFE0FC00, .CRC32, {explicit_count=3} }, // .CRC32W - { .CRC32W, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC04800, 0xFFE0FC00, .CRC32, {} }, + { .CRC32W, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC04800, 0xFFE0FC00, .CRC32, {explicit_count=3} }, // .CRC32X - { .CRC32X, {.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC04C00, 0xFFE0FC00, .CRC32, {is_64=true} }, + { .CRC32X, {.W_REG,.W_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC04C00, 0xFFE0FC00, .CRC32, {is_64=true, explicit_count=3} }, // .CRC32CB - { .CRC32CB, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC05000, 0xFFE0FC00, .CRC32, {} }, + { .CRC32CB, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC05000, 0xFFE0FC00, .CRC32, {explicit_count=3} }, // .CRC32CH - { .CRC32CH, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC05400, 0xFFE0FC00, .CRC32, {} }, + { .CRC32CH, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC05400, 0xFFE0FC00, .CRC32, {explicit_count=3} }, // .CRC32CW - { .CRC32CW, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1AC05800, 0xFFE0FC00, .CRC32, {} }, + { .CRC32CW, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1AC05800, 0xFFE0FC00, .CRC32, {explicit_count=3} }, // .CRC32CX - { .CRC32CX, {.W_REG,.W_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9AC05C00, 0xFFE0FC00, .CRC32, {is_64=true} }, + { .CRC32CX, {.W_REG,.W_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9AC05C00, 0xFFE0FC00, .CRC32, {is_64=true, explicit_count=3} }, // .AESE - { .AESE, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {} }, + { .AESE, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESE, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VD,.VN,.NONE,.NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {explicit_count=3} }, // .AESD - { .AESD, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E285800, 0xFFFFFC00, .CRYPTO, {} }, + { .AESD, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E285800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VD,.VN,.NONE,.NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {explicit_count=3} }, // .AESMC - { .AESMC, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E286800, 0xFFFFFC00, .CRYPTO, {} }, + { .AESMC, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E286800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESMC, {.Z_REG_B,.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.VD,.NONE,.NONE,.NONE}, 0x4520E000, 0xFFFFFFE0, .SVE2, {explicit_count=2} }, // .AESIMC - { .AESIMC, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E287800, 0xFFFFFC00, .CRYPTO, {} }, + { .AESIMC, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E287800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, + { .AESIMC, {.Z_REG_B,.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.VD,.NONE,.NONE,.NONE}, 0x4520E400, 0xFFFFFFE0, .SVE2, {explicit_count=2} }, // .SHA1H - { .SHA1H, {.S_REG,.S_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x5E280800, 0xFFFFFC00, .CRYPTO, {} }, + { .SHA1H, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x5E280800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, // .SHA1C - { .SHA1C, {.Q_REG,.S_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E000000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA1C, {.Q_REG,.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E000000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA1P - { .SHA1P, {.Q_REG,.S_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E001000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA1P, {.Q_REG,.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E001000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA1M - { .SHA1M, {.Q_REG,.S_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E002000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA1M, {.Q_REG,.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E002000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA1SU0 - { .SHA1SU0, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E003000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA1SU0, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E003000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA1SU1 - { .SHA1SU1, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x5E281800, 0xFFFFFC00, .CRYPTO, {} }, + { .SHA1SU1, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x5E281800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, // .SHA256H - { .SHA256H, {.Q_REG,.Q_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E004000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA256H, {.Q_REG,.Q_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E004000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA256H2 - { .SHA256H2, {.Q_REG,.Q_REG,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E005000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA256H2, {.Q_REG,.Q_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E005000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA256SU0 - { .SHA256SU0, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x5E282800, 0xFFFFFC00, .CRYPTO, {} }, + { .SHA256SU0, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x5E282800, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, // .SHA256SU1 - { .SHA256SU1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x5E006000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA256SU1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x5E006000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA512H - { .SHA512H, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA512H, {.Q_REG,.Q_REG,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA512H2 - { .SHA512H2, {.Q_REG,.Q_REG,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA512H2, {.Q_REG,.Q_REG,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SHA512SU0 - { .SHA512SU0, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0xCEC08000, 0xFFFFFC00, .CRYPTO, {} }, + { .SHA512SU0, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0xCEC08000, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, // .SHA512SU1 - { .SHA512SU1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {} }, + { .SHA512SU1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .EOR3 - { .EOR3, {.V_16B,.V_16B,.V_16B,.V_16B}, {.VD,.VN,.VM,.VA}, 0xCE000000, 0xFFE08000, .CRYPTO, {} }, + { .EOR3, {.V_16B,.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.VA,.NONE}, 0xCE000000, 0xFFE08000, .CRYPTO, {explicit_count=4} }, + { .EOR3, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04203800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, // .BCAX - { .BCAX, {.V_16B,.V_16B,.V_16B,.V_16B}, {.VD,.VN,.VM,.VA}, 0xCE200000, 0xFFE08000, .CRYPTO, {} }, + { .BCAX, {.V_16B,.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.VA,.NONE}, 0xCE200000, 0xFFE08000, .CRYPTO, {explicit_count=4} }, + { .BCAX, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04603800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, // .RAX1 - { .RAX1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE608C00, 0xFFE0FC00, .CRYPTO, {} }, + { .RAX1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE608C00, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .XAR - { .XAR, {.V_2D,.V_2D,.V_2D,.IMM_6}, {.VD,.VN,.VM,.IMM6}, 0xCE800000, 0xFFE00000, .CRYPTO, {} }, + { .XAR, {.V_2D,.V_2D,.V_2D,.IMM_6,.NONE}, {.VD,.VN,.VM,.IMM6,.NONE}, 0xCE800000, 0xFFE00000, .CRYPTO, {explicit_count=4} }, + { .XAR, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04A03400, 0xFFA0FC00, .SVE2, {explicit_count=4} }, + { .XAR, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04603400, 0xFFE0FC00, .SVE2, {explicit_count=4} }, + { .XAR, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04303400, 0xFFF0FC00, .SVE2, {explicit_count=4} }, + { .XAR, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT,.NONE}, {.VD_TSZ,.VD_TSZ,.VN_TSZ,.SVE_XAR_SHIFT,.NONE}, 0x04283400, 0xFFF8FC00, .SVE2, {explicit_count=4} }, // .SM3PARTW1 - { .SM3PARTW1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE60C000, 0xFFE0FC00, .CRYPTO, {} }, + { .SM3PARTW1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE60C000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SM3PARTW2 - { .SM3PARTW2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE60C400, 0xFFE0FC00, .CRYPTO, {} }, + { .SM3PARTW2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE60C400, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .SM3SS1 - { .SM3SS1, {.V_4S,.V_4S,.V_4S,.V_4S}, {.VD,.VN,.VM,.VA}, 0xCE400000, 0xFFE08000, .CRYPTO, {} }, + { .SM3SS1, {.V_4S,.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.VA,.NONE}, 0xCE400000, 0xFFE08000, .CRYPTO, {explicit_count=4} }, // .SM3TT1A - { .SM3TT1A, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {} }, + { .SM3TT1A, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, // .SM3TT1B - { .SM3TT1B, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {} }, + { .SM3TT1B, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, // .SM3TT2A - { .SM3TT2A, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {} }, + { .SM3TT2A, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, // .SM3TT2B - { .SM3TT2B, {.V_4S,.V_4S,.V_ELEM_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE408C00, 0xFFE0CC00, .CRYPTO, {} }, + { .SM3TT2B, {.V_4S,.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_IDX2,.NONE}, 0xCE408C00, 0xFFE0CC00, .CRYPTO, {explicit_count=4} }, // .SM4E - { .SM4E, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {} }, + { .SM4E, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {explicit_count=2} }, // .SM4EKEY - { .SM4EKEY, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0xCE60C800, 0xFFE0FC00, .CRYPTO, {} }, + { .SM4EKEY, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0xCE60C800, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .PMULL - { .PMULL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20E000, 0xFFE0FC00, .CRYPTO, {} }, - { .PMULL, {.V_2D,.V_1D,.V_1D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EE0E000, 0xFFE0FC00, .CRYPTO, {} }, + { .PMULL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .PMULL, {.V_1Q,.V_1D,.V_1D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EE0E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .PMULL2 - { .PMULL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20E000, 0xFFE0FC00, .CRYPTO, {} }, - { .PMULL2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0E000, 0xFFE0FC00, .CRYPTO, {} }, - // .FABS_H - { .FABS_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE0C000, 0xFFFFFC00, .FP16, {} }, - // .FNEG_H - { .FNEG_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE14000, 0xFFFFFC00, .FP16, {} }, - // .FSQRT_H - { .FSQRT_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE1C000, 0xFFFFFC00, .FP16, {} }, - // .FADD_H - { .FADD_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE02800, 0xFFE0FC00, .FP16, {} }, - // .FSUB_H - { .FSUB_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE03800, 0xFFE0FC00, .FP16, {} }, - // .FMUL_H - { .FMUL_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE00800, 0xFFE0FC00, .FP16, {} }, - // .FDIV_H - { .FDIV_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE01800, 0xFFE0FC00, .FP16, {} }, - // .FNMUL_H - { .FNMUL_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE08800, 0xFFE0FC00, .FP16, {} }, - // .FMADD_H - { .FMADD_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FC00000, 0xFFE08000, .FP16, {} }, - // .FMSUB_H - { .FMSUB_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FC08000, 0xFFE08000, .FP16, {} }, - // .FNMADD_H - { .FNMADD_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FE00000, 0xFFE08000, .FP16, {} }, - // .FNMSUB_H - { .FNMSUB_H, {.H_REG,.H_REG,.H_REG,.H_REG}, {.RD,.RN,.RM,.RA}, 0x1FE08000, 0xFFE08000, .FP16, {} }, - // .FCMP_H - { .FCMP_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1EE02000, 0xFFE0FC1F, .FP16, {sets_flags=true} }, - // .FCMPE_H - { .FCMPE_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x1EE02010, 0xFFE0FC1F, .FP16, {sets_flags=true} }, - // .FCSEL_H - { .FCSEL_H, {.H_REG,.H_REG,.H_REG,.COND}, {.RD,.RN,.RM,.COND_HI}, 0x1EE00C00, 0xFFE00C00, .FP16, {} }, - // .FMAX_H - { .FMAX_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE04800, 0xFFE0FC00, .FP16, {} }, - // .FMIN_H - { .FMIN_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE05800, 0xFFE0FC00, .FP16, {} }, - // .FMAXNM_H - { .FMAXNM_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE06800, 0xFFE0FC00, .FP16, {} }, - // .FMINNM_H - { .FMINNM_H, {.H_REG,.H_REG,.H_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1EE07800, 0xFFE0FC00, .FP16, {} }, - // .FCVT_H_S - { .FCVT_H_S, {.H_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E23C000, 0xFFFFFC00, .FP16, {} }, - // .FCVT_H_D - { .FCVT_H_D, {.H_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E63C000, 0xFFFFFC00, .FP16, {} }, - // .FCVT_S_H - { .FCVT_S_H, {.S_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE24000, 0xFFFFFC00, .FP16, {} }, - // .FCVT_D_H - { .FCVT_D_H, {.D_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE2C000, 0xFFFFFC00, .FP16, {} }, - // .FMOV_H - { .FMOV_H, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE04000, 0xFFFFFC00, .FP16, {} }, - // .SCVTF_H - { .SCVTF_H, {.H_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE20000, 0xFFFFFC00, .FP16, {} }, - // .UCVTF_H - { .UCVTF_H, {.H_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EE30000, 0xFFFFFC00, .FP16, {} }, - // .FCVTZS_H - { .FCVTZS_H, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF80000, 0xFFFFFC00, .FP16, {} }, - // .FCVTZU_H - { .FCVTZU_H, {.W_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1EF90000, 0xFFFFFC00, .FP16, {} }, + { .PMULL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, + { .PMULL2, {.V_1Q,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0E000, 0xFFE0FC00, .CRYPTO, {explicit_count=3} }, // .BFCVT - { .BFCVT, {.H_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x1E634000, 0xFFFFFC00, .BF16, {} }, + { .BFCVT, {.H_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x1E634000, 0xFFFFFC00, .BF16, {explicit_count=2} }, + { .BFCVT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x658AA000, 0xFFFFE000, .SVE, {explicit_count=3} }, // .BFDOT - { .BFDOT, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E40FC00, 0xFFE0FC00, .BF16, {} }, + { .BFDOT, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E40FC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, // .BFMMLA - { .BFMMLA, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E40EC00, 0xFFE0FC00, .BF16, {} }, + { .BFMMLA, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E40EC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, // .BFMLALB - { .BFMLALB, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC0FC00, 0xFFE0FC00, .BF16, {} }, + { .BFMLALB, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC0FC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, // .BFMLALT - { .BFMLALT, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC0FC00, 0xFFE0FC00, .BF16, {} }, + { .BFMLALT, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC0FC00, 0xFFE0FC00, .BF16, {explicit_count=3} }, // .BFCVTN - { .BFCVTN, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {} }, + { .BFCVTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {explicit_count=2} }, // .BFCVTN2 - { .BFCVTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {} }, - // .ADD_V - { .ADD_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE08400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608400, 0xFFE0FC00, .NEON, {} }, - { .ADD_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08400, 0xFFE0FC00, .NEON, {} }, - // .SUB_V - { .SUB_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08400, 0xFFE0FC00, .NEON, {} }, - { .SUB_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE08400, 0xFFE0FC00, .NEON, {} }, - // .MUL_V - { .MUL_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E209C00, 0xFFE0FC00, .NEON, {} }, - { .MUL_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609C00, 0xFFE0FC00, .NEON, {} }, - { .MUL_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09C00, 0xFFE0FC00, .NEON, {} }, - // .MLA_V - { .MLA_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E209400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E209400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E609400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA09400, 0xFFE0FC00, .NEON, {} }, - { .MLA_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09400, 0xFFE0FC00, .NEON, {} }, - // .MLS_V - { .MLS_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {} }, - { .MLS_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {} }, - // .NEG_V - { .NEG_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {} }, - { .NEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {} }, - // .ABS_V - { .ABS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {} }, - { .ABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {} }, + { .BFCVTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {explicit_count=2} }, + // .MUL + { .MUL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MUL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E609C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MUL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA09C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MUL, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04100000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .MUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04500000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .MUL, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04900000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .MUL, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D00000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .MLA + { .MLA, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .MLS + { .MLS, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .MLS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .NEG + { .NEG, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NEG, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0417A000, 0xFFF7E000, .SVE, {explicit_count=3} }, + { .NEG, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0457A000, 0xFFF7E000, .SVE, {explicit_count=3} }, + { .NEG, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0497A000, 0xFFF7E000, .SVE, {explicit_count=3} }, + { .NEG, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D7A000, 0xFFF7E000, .SVE, {is_64=true, explicit_count=3} }, + { .NEG, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {explicit_count=2} }, + { .NEG, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true, explicit_count=2} }, + // .ABS + { .ABS, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ABS, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0416A000, 0xFFF6E000, .SVE, {explicit_count=3} }, + { .ABS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0456A000, 0xFFF6E000, .SVE, {explicit_count=3} }, + { .ABS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0496A000, 0xFFF6E000, .SVE, {explicit_count=3} }, + { .ABS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04D6A000, 0xFFF6E000, .SVE, {is_64=true, explicit_count=3} }, // .SHADD - { .SHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {} }, - { .SHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {} }, + { .SHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UHADD - { .UHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {} }, - { .UHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {} }, + { .UHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SHSUB - { .SHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {} }, - { .SHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {} }, + { .SHSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UHSUB - { .UHSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {} }, - { .UHSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {} }, + { .UHSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UHSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SRHADD - { .SRHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {} }, - { .SRHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {} }, + { .SRHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .URHADD - { .URHADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {} }, - { .URHADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {} }, + { .URHADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URHADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQADD - { .SQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {} }, - { .SQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {} }, + { .SQADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQADD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, // .UQADD - { .UQADD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {} }, - { .UQADD, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {} }, + { .UQADD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQADD, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQADD, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQADD, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, // .SQSUB - { .SQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {} }, - { .SQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {} }, + { .SQSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSUB, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQSUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .SQSUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, // .UQSUB - { .UQSUB, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {} }, - { .UQSUB, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {} }, + { .UQSUB, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UQSUB, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQSUB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UQSUB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, // .SMAX - { .SMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {} }, - { .SMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {} }, + { .SMAX, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAX, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04080000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMAX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04480000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMAX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04880000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMAX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C80000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .UMAX - { .UMAX, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {} }, - { .UMAX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {} }, + { .UMAX, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAX, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04090000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMAX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04490000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMAX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04890000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMAX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C90000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .SMIN - { .SMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {} }, - { .SMIN, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {} }, + { .SMIN, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMIN, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMIN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMIN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048A0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SMIN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CA0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .UMIN - { .UMIN, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {} }, - { .UMIN, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {} }, + { .UMIN, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMIN, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMIN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMIN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048B0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UMIN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CB0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .SABD - { .SABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {} }, - { .SABD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {} }, + { .SABD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABD, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040C0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SABD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044C0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SABD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048C0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SABD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CC0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .UABD - { .UABD, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {} }, - { .UABD, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {} }, + { .UABD, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABD, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x040D0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UABD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x044D0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UABD, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x048D0000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .UABD, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04CD0000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, // .SABA - { .SABA, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {} }, - { .SABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {} }, + { .SABA, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SABA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UABA - { .UABA, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {} }, - { .UABA, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {} }, - // .ADDP_V - { .ADDP_V, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {} }, - { .ADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {} }, + { .UABA, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UABA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .ADDP + { .ADDP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .ADDV - { .ADDV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {} }, - { .ADDV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {} }, + { .ADDV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ADDV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SADDLP - { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {} }, - { .SADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {} }, + { .SADDLP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UADDLP - { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {} }, - { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {} }, + { .UADDLP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SADALP - { .SADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {} }, - { .SADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {} }, + { .SADALP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADALP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UADALP - { .UADALP, {.V_4H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_2S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_1D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {} }, - { .UADALP, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {} }, + { .UADALP, {.V_4H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_2S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_1D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADALP, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SADDLV - { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {} }, - { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {} }, + { .SADDLV, {.H_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.H_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.S_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.S_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SADDLV, {.D_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UADDLV - { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.H_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.S_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {} }, - { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {} }, + { .UADDLV, {.H_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.H_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.S_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.S_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UADDLV, {.D_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SMAXV - { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {} }, - { .SMAXV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {} }, + { .SMAXV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMAXV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UMAXV - { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {} }, - { .UMAXV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {} }, + { .UMAXV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMAXV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SMINV - { .SMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {} }, - { .SMINV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {} }, + { .SMINV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SMINV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UMINV - { .UMINV, {.B_REG,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.B_REG,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.H_REG,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.H_REG,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {} }, - { .UMINV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {} }, + { .UMINV, {.B_REG,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.B_REG,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.H_REG,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.H_REG,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UMINV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SMAXP - { .SMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {} }, - { .SMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {} }, + { .SMAXP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMAXP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UMAXP - { .UMAXP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {} }, - { .UMAXP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {} }, + { .UMAXP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMAXP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SMINP - { .SMINP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .SMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {} }, + { .SMINP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMINP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UMINP - { .UMINP, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {} }, - { .UMINP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {} }, + { .UMINP, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMINP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SADDL - { .SADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {} }, - { .SADDL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {} }, - { .SADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {} }, + { .SADDL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SADDL2 - { .SADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {} }, - { .SADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {} }, + { .SADDL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UADDL - { .UADDL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {} }, - { .UADDL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {} }, - { .UADDL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {} }, + { .UADDL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UADDL2 - { .UADDL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {} }, - { .UADDL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {} }, + { .UADDL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SSUBL - { .SSUBL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {} }, + { .SSUBL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SSUBL2 - { .SSUBL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {} }, - { .SSUBL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {} }, + { .SSUBL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .USUBL - { .USUBL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {} }, - { .USUBL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {} }, - { .USUBL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {} }, + { .USUBL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .USUBL2 - { .USUBL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {} }, - { .USUBL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {} }, - { .USUBL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {} }, + { .USUBL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SADDW - { .SADDW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {} }, - { .SADDW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {} }, - { .SADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {} }, + { .SADDW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SADDW2 - { .SADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {} }, - { .SADDW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {} }, - { .SADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {} }, + { .SADDW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SADDW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UADDW - { .UADDW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {} }, - { .UADDW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {} }, - { .UADDW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {} }, + { .UADDW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UADDW2 - { .UADDW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {} }, - { .UADDW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {} }, + { .UADDW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UADDW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SSUBW - { .SSUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {} }, + { .SSUBW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SSUBW2 - { .SSUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {} }, - { .SSUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {} }, + { .SSUBW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSUBW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .USUBW - { .USUBW, {.V_8H,.V_8H,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {} }, - { .USUBW, {.V_4S,.V_4S,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {} }, - { .USUBW, {.V_2D,.V_2D,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {} }, + { .USUBW, {.V_8H,.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW, {.V_4S,.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW, {.V_2D,.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .USUBW2 - { .USUBW2, {.V_8H,.V_8H,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_4S,.V_4S,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {} }, - { .USUBW2, {.V_2D,.V_2D,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {} }, + { .USUBW2, {.V_8H,.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW2, {.V_4S,.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USUBW2, {.V_2D,.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .RADDHN - { .RADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {} }, + { .RADDHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .RADDHN2 - { .RADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {} }, - { .RADDHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {} }, + { .RADDHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RADDHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .RSUBHN - { .RSUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {} }, + { .RSUBHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .RSUBHN2 - { .RSUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {} }, - { .RSUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {} }, + { .RSUBHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .RSUBHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .ADDHN - { .ADDHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {} }, + { .ADDHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .ADDHN2 - { .ADDHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {} }, - { .ADDHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {} }, + { .ADDHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ADDHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SUBHN - { .SUBHN, {.V_8B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN, {.V_4H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN, {.V_2S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {} }, + { .SUBHN, {.V_8B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN, {.V_4H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN, {.V_2S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SUBHN2 - { .SUBHN2, {.V_16B,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_8H,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {} }, - { .SUBHN2, {.V_4S,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {} }, + { .SUBHN2, {.V_16B,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN2, {.V_8H,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SUBHN2, {.V_4S,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .XTN - { .XTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {} }, - { .XTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {} }, + { .XTN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .XTN2 - { .XTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {} }, - { .XTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {} }, - { .XTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {} }, + { .XTN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .XTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SQXTN - { .SQXTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {} }, + { .SQXTN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SQXTN2 - { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {} }, - { .SQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {} }, + { .SQXTN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UQXTN - { .UQXTN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .UQXTN2 - { .UQXTN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {} }, - { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {} }, + { .UQXTN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UQXTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SQXTUN - { .SQXTUN, {.V_8B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_4H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {} }, + { .SQXTUN, {.V_8B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN, {.V_4H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .SQXTUN2 - { .SQXTUN2, {.V_16B,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN2, {.V_8H,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {} }, - { .SQXTUN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {} }, - // .SMULL_V - { .SMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {} }, - // .SMULL2_V - { .SMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL2_V, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {} }, - { .SMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {} }, - // .UMULL_V - { .UMULL_V, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL_V, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL_V, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {} }, - // .UMULL2_V - { .UMULL2_V, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL2_V, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {} }, - { .UMULL2_V, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {} }, + { .SQXTUN2, {.V_16B,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN2, {.V_8H,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SQXTUN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .SMULL + { .SMULL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SMULL2 + { .SMULL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMULL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .UMULL + { .UMULL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .UMULL2 + { .UMULL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMULL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SMLAL - { .SMLAL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {} }, + { .SMLAL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SMLAL2 - { .SMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {} }, - { .SMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {} }, + { .SMLAL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLAL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UMLAL - { .UMLAL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {} }, + { .UMLAL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UMLAL2 - { .UMLAL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {} }, - { .UMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {} }, + { .UMLAL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLAL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SMLSL - { .SMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {} }, + { .SMLSL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SMLSL2 - { .SMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {} }, - { .SMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {} }, + { .SMLSL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SMLSL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UMLSL - { .UMLSL, {.V_8H,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {} }, + { .UMLSL, {.V_8H,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .UMLSL2 - { .UMLSL2, {.V_8H,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {} }, - { .UMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {} }, + { .UMLSL2, {.V_8H,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UMLSL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMULL - { .SQDMULL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {} }, + { .SQDMULL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMULL2 - { .SQDMULL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {} }, - { .SQDMULL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {} }, + { .SQDMULL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMLAL - { .SQDMLAL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLAL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLAL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMLAL2 - { .SQDMLAL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLAL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLAL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLAL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMLSL - { .SQDMLSL, {.V_4S,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL, {.V_2D,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLSL, {.V_4S,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLSL, {.V_2D,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMLSL2 - { .SQDMLSL2, {.V_4S,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {} }, - { .SQDMLSL2, {.V_2D,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {} }, + { .SQDMLSL2, {.V_4S,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMLSL2, {.V_2D,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQDMULH - { .SQDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {} }, + { .SQDMULH, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQDMULH, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SQRDMULH - { .SQRDMULH, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {} }, - { .SQRDMULH, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {} }, + { .SQRDMULH, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQRDMULH, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .SDOT - { .SDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {} }, - { .SDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {} }, + { .SDOT, {.V_2S,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .SDOT, {.V_4S,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, // .UDOT - { .UDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {} }, - { .UDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {} }, + { .UDOT, {.V_2S,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .UDOT, {.V_4S,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {explicit_count=3} }, // .USDOT - { .USDOT, {.V_2S,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E809C00, 0xFFE0FC00, .DOT, {} }, - { .USDOT, {.V_4S,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E809C00, 0xFFE0FC00, .DOT, {} }, - // .FADD_V - { .FADD_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADD_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADD_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {} }, - // .FSUB_V - { .FSUB_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {} }, - { .FSUB_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {} }, - // .FMUL_V - { .FMUL_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMUL_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {} }, - // .FDIV_V - { .FDIV_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FDIV_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FDIV_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {} }, - // .FNEG_V - { .FNEG_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {} }, - { .FNEG_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FNEG_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {} }, - // .FABS_V - { .FABS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {} }, - { .FABS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {} }, - { .FABS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {} }, - // .FSQRT_V - { .FSQRT_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {} }, - { .FSQRT_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {} }, - { .FSQRT_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {} }, - // .FMLA_V - { .FMLA_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {} }, - { .FMLA_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {} }, - // .FMLS_V - { .FMLS_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {} }, - { .FMLS_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {} }, + { .USDOT, {.V_2S,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E809C00, 0xFFE0FC00, .DOT, {explicit_count=3} }, + { .USDOT, {.V_4S,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E809C00, 0xFFE0FC00, .DOT, {explicit_count=3} }, + // .FMLA + { .FMLA, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLA, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65600000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A00000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + { .FMLA, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H,.NONE}, 0x64200000, 0xFFA0FC00, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S,.NONE}, 0x64A00000, 0xFFE0FC00, .SVE, {explicit_count=4} }, + { .FMLA, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D,.NONE}, 0x64E00000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, + // .FMLS + { .FMLS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65602000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A02000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + { .FMLS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H,.NONE}, 0x64200400, 0xFFA0FC00, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S,.NONE}, 0x64A00400, 0xFFE0FC00, .SVE, {explicit_count=4} }, + { .FMLS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2,.NONE}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D,.NONE}, 0x64E00400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=4} }, // .FMULX - { .FMULX, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {} }, - { .FMULX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {} }, - { .FMULX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {} }, - // .FMAX_V - { .FMAX_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {} }, - { .FMAX_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {} }, - { .FMAX_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {} }, - // .FMIN_V - { .FMIN_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {} }, - { .FMIN_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMIN_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {} }, - // .FMAXNM_V - { .FMAXNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNM_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {} }, - // .FMINNM_V - { .FMINNM_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNM_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMINNM_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {} }, - // .FMAXP_V - { .FMAXP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {} }, - { .FMAXP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {} }, - { .FMAXP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {} }, - // .FMINP_V - { .FMINP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMINP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {} }, - { .FMINP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {} }, - { .FMINP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {} }, - { .FMINP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {} }, + { .FMULX, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMULX, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMULX, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + // .FMAXP + { .FMAXP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + // .FMINP + { .FMINP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {explicit_count=3} }, // .FMAXNMP - { .FMAXNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {} }, - { .FMAXNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {} }, - { .FMAXNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {} }, + { .FMAXNMP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNMP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNMP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMAXNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMAXNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {explicit_count=3} }, // .FMINNMP - { .FMINNMP, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {} }, - { .FMINNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {} }, - { .FMINNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {} }, - // .FMAXV_V - { .FMAXV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {} }, - { .FMAXV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {} }, - { .FMAXV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {} }, - // .FMINV_V - { .FMINV_V, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {} }, - { .FMINV_V, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {} }, - { .FMINV_V, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {} }, + { .FMINNMP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNMP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNMP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FMINNMP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FMINNMP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + // .FMAXV + { .FMAXV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMAXV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMAXV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + // .FMINV + { .FMINV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMINV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMINV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FMAXNMV - { .FMAXNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {} }, - { .FMAXNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {} }, - { .FMAXNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {} }, + { .FMAXNMV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMAXNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMAXNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FMINNMV - { .FMINNMV, {.S_REG,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {} }, - { .FMINNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {} }, - { .FMINNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {} }, + { .FMINNMV, {.S_REG,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FMINNMV, {.H_REG,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FMINNMV, {.H_REG,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FRECPE - { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {} }, - { .FRECPE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {} }, + { .FRECPE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRECPE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRECPE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRECPE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRECPE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FRSQRTE - { .FRSQRTE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {} }, - { .FRSQRTE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {} }, - { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {} }, + { .FRSQRTE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRSQRTE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRSQRTE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FRSQRTE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRSQRTE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, // .FRECPS - { .FRECPS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {} }, - { .FRECPS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {} }, - { .FRECPS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {} }, + { .FRECPS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRECPS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRECPS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRECPS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRECPS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRECPS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65401800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRECPS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65801800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRECPS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, // .FRSQRTS - { .FRSQRTS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {} }, - { .FRSQRTS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {} }, - { .FRSQRTS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {} }, + { .FRSQRTS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRSQRTS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRSQRTS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FRSQRTS, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRSQRTS, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FRSQRTS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRSQRTS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FRSQRTS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, // .FRECPX - { .FRECPX, {.S_REG,.S_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5EA1F800, 0xFFFFFC00, .FP, {} }, - { .FRECPX, {.D_REG,.D_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5EE1F800, 0xFFFFFC00, .FP, {} }, - { .FRECPX, {.H_REG,.H_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x5EF9F800, 0xFFFFFC00, .FP16, {} }, - // .FADDP_V - { .FADDP_V, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADDP_V, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {} }, - { .FADDP_V, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {} }, - { .FADDP_V, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {} }, - { .FADDP_V, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {} }, - // .FRINTA_V - { .FRINTA_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {} }, - { .FRINTA_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTA_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {} }, - // .FRINTI_V - { .FRINTI_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTI_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTI_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {} }, - // .FRINTM_V - { .FRINTM_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {} }, - { .FRINTM_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTM_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {} }, - // .FRINTN_V - { .FRINTN_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {} }, - { .FRINTN_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {} }, - { .FRINTN_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {} }, - // .FRINTP_V - { .FRINTP_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {} }, - { .FRINTP_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {} }, - { .FRINTP_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {} }, - // .FRINTX_V - { .FRINTX_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {} }, - { .FRINTX_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {} }, - { .FRINTX_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {} }, - // .FRINTZ_V - { .FRINTZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {} }, - { .FRINTZ_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {} }, - { .FRINTZ_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {} }, - // .SCVTF_V - { .SCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {} }, - { .SCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {} }, - { .SCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {} }, - { .SCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {} }, - { .SCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {} }, - // .UCVTF_V - { .UCVTF_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {} }, - { .UCVTF_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {} }, - { .UCVTF_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {} }, - { .UCVTF_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {} }, - { .UCVTF_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {} }, - // .FCVTAS_V - { .FCVTAS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {} }, - { .FCVTAS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {} }, - // .FCVTAU_V - { .FCVTAU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {} }, - { .FCVTAU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {} }, - { .FCVTAU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {} }, - // .FCVTMS_V - { .FCVTMS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {} }, - // .FCVTMU_V - { .FCVTMU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTMU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTMU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {} }, - // .FCVTNS_V - { .FCVTNS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {} }, - // .FCVTNU_V - { .FCVTNU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTNU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTNU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {} }, - // .FCVTPS_V - { .FCVTPS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {} }, - // .FCVTPU_V - { .FCVTPU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {} }, - { .FCVTPU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {} }, - { .FCVTPU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {} }, - // .FCVTZS_V - { .FCVTZS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZS_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZS_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {} }, - // .FCVTZU_V - { .FCVTZU_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZU_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZU_V, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {} }, - { .FCVTZU_V, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {} }, - { .FCVTZU_V, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {} }, + { .FRECPX, {.S_REG,.S_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5EA1F800, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRECPX, {.D_REG,.D_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5EE1F800, 0xFFFFFC00, .FP, {explicit_count=2} }, + { .FRECPX, {.H_REG,.H_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x5EF9F800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FRECPX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x654CA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRECPX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x658CA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .FRECPX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + // .FADDP + { .FADDP, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADDP, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADDP, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FADDP, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FADDP, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {explicit_count=3} }, // .FCVTL - { .FCVTL, {.V_4S,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {} }, - { .FCVTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {} }, + { .FCVTL, {.V_4S,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTL, {.V_2D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .FCVTL2 - { .FCVTL2, {.V_4S,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {} }, - { .FCVTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {} }, + { .FCVTL2, {.V_4S,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTL2, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .FCVTN - { .FCVTN, {.V_4H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {} }, - { .FCVTN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {} }, + { .FCVTN, {.V_4H_FP16,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .FCVTN2 - { .FCVTN2, {.V_8H_FP16,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {} }, - { .FCVTN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {} }, + { .FCVTN2, {.V_8H_FP16,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCVTN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .FCVTXN - { .FCVTXN, {.V_2S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {} }, + { .FCVTXN, {.V_2S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .FCVTXN2 - { .FCVTXN2, {.V_4S,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {} }, + { .FCVTXN2, {.V_4S,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .FCMEQ - { .FCMEQ, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {} }, - { .FCMEQ, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {} }, - { .FCMEQ, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {} }, + { .FCMEQ, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMEQ, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMEQ, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMEQ, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMEQ, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMEQ, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65406000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMEQ, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65806000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMEQ, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, // .FCMGE - { .FCMGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {} }, - { .FCMGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {} }, + { .FCMGE, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGE, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGE, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65404000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65804000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, // .FCMGT - { .FCMGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {} }, - { .FCMGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {} }, - { .FCMGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {} }, + { .FCMGT, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGT, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGT, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FCMGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FCMGT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65404010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65804010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMGT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, // .FCMLE - { .FCMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {} }, - { .FCMLE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {} }, - { .FCMLE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {} }, + { .FCMLE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLE, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLE, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65512010, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65912010, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true, explicit_count=3} }, // .FCMLT - { .FCMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {} }, - { .FCMLT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {} }, - { .FCMLT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {} }, + { .FCMLT, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLT, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLT, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .FCMLT, {.V_4H_FP16,.V_4H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLT, {.V_8H_FP16,.V_8H_FP16,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {explicit_count=2} }, + { .FCMLT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65512000, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65912000, 0xFFFFE010, .SVE, {explicit_count=3} }, + { .FCMLT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.NONE,.NONE}, {.PD,.PG,.VN,.NONE,.NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true, explicit_count=3} }, // .FACGE - { .FACGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {} }, - { .FACGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {} }, + { .FACGE, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGE, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGE, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGE, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FACGE, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, // .FACGT - { .FACGT, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {} }, - { .FACGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {} }, - { .FACGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {} }, + { .FACGT, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGT, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGT, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .FACGT, {.V_4H_FP16,.V_4H_FP16,.V_4H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, + { .FACGT, {.V_8H_FP16,.V_8H_FP16,.V_8H_FP16,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {explicit_count=3} }, // .CMEQ - { .CMEQ, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {} }, - { .CMEQ, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {} }, + { .CMEQ, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMEQ, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMEQ, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMEQ, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .CMGE - { .CMGE, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMGE, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {} }, + { .CMGE, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGE, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .CMGT - { .CMGT, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {} }, - { .CMGT, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {} }, + { .CMGT, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMGT, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .CMHI - { .CMHI, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {} }, - { .CMHI, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {} }, + { .CMHI, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHI, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .CMHS - { .CMHS, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {} }, - { .CMHS, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {} }, + { .CMHS, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMHS, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .CMLE - { .CMLE, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {} }, - { .CMLE, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {} }, + { .CMLE, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLE, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .CMLT - { .CMLT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {} }, - { .CMLT, {.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {} }, + { .CMLT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CMLT, {.V_2D,.V_2D,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {explicit_count=2} }, // .CMTST - { .CMTST, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {} }, - { .CMTST, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {} }, - // .AND_V - { .AND_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {} }, - // .ORR_V - { .ORR_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, - // .EOR_V - { .EOR_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {} }, - // .BIC_V - { .BIC_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E601C00, 0xFFE0FC00, .NEON, {} }, - // .ORN_V - { .ORN_V, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE01C00, 0xFFE0FC00, .NEON, {} }, - // .MVN_V - { .MVN_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, - { .MVN_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - // .BIT - { .BIT, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {} }, - // .BIF - { .BIF, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {} }, - // .BSL - { .BSL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {} }, - // .SHL_V - { .SHL_V, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F085400, 0xFFF8FC00, .NEON, {} }, - { .SHL_V, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {} }, - { .SHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {} }, - { .SHL_V, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {} }, - { .SHL_V, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F205400, 0xFFE0FC00, .NEON, {} }, - { .SHL_V, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F205400, 0xFFE0FC00, .NEON, {} }, - { .SHL_V, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F405400, 0xFFC0FC00, .NEON, {} }, - // .SQSHL_V - { .SQSHL_V, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {} }, - { .SQSHL_V, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {} }, - { .SQSHL_V, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {} }, - { .SQSHL_V, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {} }, - { .SQSHL_V, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F207400, 0xFFE0FC00, .NEON, {} }, - { .SQSHL_V, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F207400, 0xFFE0FC00, .NEON, {} }, - { .SQSHL_V, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F407400, 0xFFC0FC00, .NEON, {} }, - // .SQSHLU - { .SQSHLU, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {} }, - { .SQSHLU, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {} }, - { .SQSHLU, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {} }, - { .SQSHLU, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {} }, - { .SQSHLU, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F206400, 0xFFE0FC00, .NEON, {} }, - { .SQSHLU, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F206400, 0xFFE0FC00, .NEON, {} }, - { .SQSHLU, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F406400, 0xFFC0FC00, .NEON, {} }, - // .SRSHL - { .SRSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {} }, - { .SRSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {} }, - // .URSHL - { .URSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {} }, - { .URSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {} }, - // .SSHR - { .SSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {} }, - { .SSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {} }, - { .SSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F100400, 0xFFF0FC00, .NEON, {} }, - { .SSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {} }, - { .SSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F200400, 0xFFE0FC00, .NEON, {} }, - { .SSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F200400, 0xFFE0FC00, .NEON, {} }, - { .SSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F400400, 0xFFC0FC00, .NEON, {} }, - // .USHR - { .USHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {} }, - { .USHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {} }, - { .USHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {} }, - { .USHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F100400, 0xFFF0FC00, .NEON, {} }, - { .USHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F200400, 0xFFE0FC00, .NEON, {} }, - { .USHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F200400, 0xFFE0FC00, .NEON, {} }, - { .USHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F400400, 0xFFC0FC00, .NEON, {} }, - // .SSRA - { .SSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {} }, - { .SSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {} }, - { .SSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {} }, - { .SSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {} }, - { .SSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F201400, 0xFFE0FC00, .NEON, {} }, - { .SSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F201400, 0xFFE0FC00, .NEON, {} }, - { .SSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F401400, 0xFFC0FC00, .NEON, {} }, - // .USRA - { .USRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {} }, - { .USRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {} }, - { .USRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {} }, - { .USRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {} }, - { .USRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F201400, 0xFFE0FC00, .NEON, {} }, - { .USRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F201400, 0xFFE0FC00, .NEON, {} }, - { .USRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F401400, 0xFFC0FC00, .NEON, {} }, - // .SRSHR - { .SRSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {} }, - { .SRSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F082400, 0xFFF8FC00, .NEON, {} }, - { .SRSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {} }, - { .SRSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {} }, - { .SRSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F202400, 0xFFE0FC00, .NEON, {} }, - { .SRSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F202400, 0xFFE0FC00, .NEON, {} }, - { .SRSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F402400, 0xFFC0FC00, .NEON, {} }, - // .URSHR - { .URSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F082400, 0xFFF8FC00, .NEON, {} }, - { .URSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F082400, 0xFFF8FC00, .NEON, {} }, - { .URSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {} }, - { .URSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F102400, 0xFFF0FC00, .NEON, {} }, - { .URSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F202400, 0xFFE0FC00, .NEON, {} }, - { .URSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F202400, 0xFFE0FC00, .NEON, {} }, - { .URSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F402400, 0xFFC0FC00, .NEON, {} }, - // .SRSRA - { .SRSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F083400, 0xFFF8FC00, .NEON, {} }, - { .SRSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F083400, 0xFFF8FC00, .NEON, {} }, - { .SRSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F103400, 0xFFF0FC00, .NEON, {} }, - { .SRSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {} }, - { .SRSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F203400, 0xFFE0FC00, .NEON, {} }, - { .SRSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F203400, 0xFFE0FC00, .NEON, {} }, - { .SRSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F403400, 0xFFC0FC00, .NEON, {} }, - // .URSRA - { .URSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {} }, - { .URSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F083400, 0xFFF8FC00, .NEON, {} }, - { .URSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {} }, - { .URSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {} }, - { .URSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F203400, 0xFFE0FC00, .NEON, {} }, - { .URSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F203400, 0xFFE0FC00, .NEON, {} }, - { .URSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F403400, 0xFFC0FC00, .NEON, {} }, - // .SSHL - { .SSHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {} }, - { .SSHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {} }, - // .USHL - { .USHL, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {} }, - { .USHL, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {} }, - // .SLI - { .SLI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {} }, - { .SLI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {} }, - { .SLI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {} }, - { .SLI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {} }, - { .SLI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F205400, 0xFFE0FC00, .NEON, {} }, - { .SLI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F205400, 0xFFE0FC00, .NEON, {} }, - { .SLI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F405400, 0xFFC0FC00, .NEON, {} }, - // .SRI - { .SRI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {} }, - { .SRI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {} }, - { .SRI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {} }, - { .SRI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {} }, - { .SRI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F204400, 0xFFE0FC00, .NEON, {} }, - { .SRI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F204400, 0xFFE0FC00, .NEON, {} }, - { .SRI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F404400, 0xFFC0FC00, .NEON, {} }, - // .SSHLL - { .SSHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {} }, - { .SSHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {} }, - { .SSHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x0F20A400, 0xFFE0FC00, .NEON, {} }, - // .SSHLL2 - { .SSHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {} }, - { .SSHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {} }, - { .SSHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x4F20A400, 0xFFE0FC00, .NEON, {} }, - // .USHLL - { .USHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {} }, - { .USHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {} }, - { .USHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x2F20A400, 0xFFE0FC00, .NEON, {} }, - // .USHLL2 - { .USHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F08A400, 0xFFF8FC00, .NEON, {} }, - { .USHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F10A400, 0xFFF0FC00, .NEON, {} }, - { .USHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE}, 0x6F20A400, 0xFFE0FC00, .NEON, {} }, - // .SXTL - { .SXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL, {.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {} }, - // .SXTL2 - { .SXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {} }, - { .SXTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {} }, - // .UXTL - { .UXTL, {.V_8H,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL, {.V_4S,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL, {.V_2D,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {} }, - // .UXTL2 - { .UXTL2, {.V_8H,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL2, {.V_4S,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {} }, - { .UXTL2, {.V_2D,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {} }, - // .SHRN - { .SHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F088400, 0xFFF8FC00, .NEON, {} }, - { .SHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F108400, 0xFFF0FC00, .NEON, {} }, - { .SHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F208400, 0xFFE0FC00, .NEON, {} }, - // .SHRN2 - { .SHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F088400, 0xFFF8FC00, .NEON, {} }, - { .SHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F108400, 0xFFF0FC00, .NEON, {} }, - { .SHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F208400, 0xFFE0FC00, .NEON, {} }, - // .RSHRN - { .RSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F088C00, 0xFFF8FC00, .NEON, {} }, - { .RSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F108C00, 0xFFF0FC00, .NEON, {} }, - { .RSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F208C00, 0xFFE0FC00, .NEON, {} }, - // .RSHRN2 - { .RSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F088C00, 0xFFF8FC00, .NEON, {} }, - { .RSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F108C00, 0xFFF0FC00, .NEON, {} }, - { .RSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F208C00, 0xFFE0FC00, .NEON, {} }, - // .SQSHRN - { .SQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F089400, 0xFFF8FC00, .NEON, {} }, - { .SQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F109400, 0xFFF0FC00, .NEON, {} }, - { .SQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F209400, 0xFFE0FC00, .NEON, {} }, - // .SQSHRN2 - { .SQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F089400, 0xFFF8FC00, .NEON, {} }, - { .SQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F109400, 0xFFF0FC00, .NEON, {} }, - { .SQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F209400, 0xFFE0FC00, .NEON, {} }, - // .UQSHRN - { .UQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F089400, 0xFFF8FC00, .NEON, {} }, - { .UQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F109400, 0xFFF0FC00, .NEON, {} }, - { .UQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F209400, 0xFFE0FC00, .NEON, {} }, - // .UQSHRN2 - { .UQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F089400, 0xFFF8FC00, .NEON, {} }, - { .UQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F109400, 0xFFF0FC00, .NEON, {} }, - { .UQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F209400, 0xFFE0FC00, .NEON, {} }, - // .SQRSHRN - { .SQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F089C00, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F109C00, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x0F209C00, 0xFFE0FC00, .NEON, {} }, - // .SQRSHRN2 - { .SQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F089C00, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F109C00, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x4F209C00, 0xFFE0FC00, .NEON, {} }, - // .UQRSHRN - { .UQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F089C00, 0xFFF8FC00, .NEON, {} }, - { .UQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F109C00, 0xFFF0FC00, .NEON, {} }, - { .UQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F209C00, 0xFFE0FC00, .NEON, {} }, - // .UQRSHRN2 - { .UQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F089C00, 0xFFF8FC00, .NEON, {} }, - { .UQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F109C00, 0xFFF0FC00, .NEON, {} }, - { .UQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F209C00, 0xFFE0FC00, .NEON, {} }, - // .SQSHRUN - { .SQSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F088400, 0xFFF8FC00, .NEON, {} }, - { .SQSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F108400, 0xFFF0FC00, .NEON, {} }, - { .SQSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F208400, 0xFFE0FC00, .NEON, {} }, - // .SQSHRUN2 - { .SQSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F088400, 0xFFF8FC00, .NEON, {} }, - { .SQSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {} }, - { .SQSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F208400, 0xFFE0FC00, .NEON, {} }, - // .SQRSHRUN - { .SQRSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F088C00, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x2F208C00, 0xFFE0FC00, .NEON, {} }, - // .SQRSHRUN2 - { .SQRSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F088C00, 0xFFF8FC00, .NEON, {} }, - { .SQRSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {} }, - { .SQRSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE}, 0x6F208C00, 0xFFE0FC00, .NEON, {} }, - // .DUP_V - { .DUP_V, {.V_8B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {} }, - { .DUP_V, {.V_16B,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {} }, - { .DUP_V, {.V_4H,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {} }, - { .DUP_V, {.V_8H,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {} }, - { .DUP_V, {.V_2S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x0E040400, 0xFFE7FC00, .NEON, {} }, - { .DUP_V, {.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E040400, 0xFFE7FC00, .NEON, {} }, - { .DUP_V, {.V_2D,.V_ELEM_D,.VEC_INDEX,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {} }, - { .DUP_V, {.V_8B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_16B,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_4H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_8H,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_2S,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_4S,.W_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {} }, - { .DUP_V, {.V_2D,.X_REG,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {} }, - // .INS - { .INS, {.V_ELEM_B,.VEC_INDEX,.V_ELEM_B,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E010400, 0xFFE18400, .NEON, {} }, - { .INS, {.V_ELEM_H,.VEC_INDEX,.V_ELEM_H,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E020400, 0xFFE38C00, .NEON, {} }, - { .INS, {.V_ELEM_S,.VEC_INDEX,.V_ELEM_S,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E040400, 0xFFE79C00, .NEON, {} }, - { .INS, {.V_ELEM_D,.VEC_INDEX,.V_ELEM_D,.VEC_INDEX}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4}, 0x6E080400, 0xFFEFBC00, .NEON, {} }, - { .INS, {.V_ELEM_B,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {} }, - { .INS, {.V_ELEM_H,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {} }, - { .INS, {.V_ELEM_S,.VEC_INDEX,.W_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E041C00, 0xFFE7FC00, .NEON, {} }, - { .INS, {.V_ELEM_D,.VEC_INDEX,.X_REG,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE}, 0x4E081C00, 0xFFEFFC00, .NEON, {} }, - // .MOV_V - { .MOV_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {} }, - { .MOV_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, - // .EXT_V - { .EXT_V, {.V_8B,.V_8B,.V_8B,.VEC_INDEX}, {.VD,.VN,.VM,.NEON_EXT_IDX}, 0x2E000000, 0xFFE0C400, .NEON, {} }, - { .EXT_V, {.V_16B,.V_16B,.V_16B,.VEC_INDEX}, {.VD,.VN,.VM,.NEON_EXT_IDX}, 0x6E000000, 0xFFE08400, .NEON, {} }, - // .TBL - { .TBL, {.V_8B,.V_16B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E000000, 0xFFE0FC00, .NEON, {} }, - { .TBL, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E000000, 0xFFE0FC00, .NEON, {} }, - // .TBX - { .TBX, {.V_8B,.V_16B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E001000, 0xFFE0FC00, .NEON, {} }, - { .TBX, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E001000, 0xFFE0FC00, .NEON, {} }, - // .ZIP1 - { .ZIP1, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E003800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E003800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E403800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E403800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E803800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E803800, 0xFFE0FC00, .NEON, {} }, - { .ZIP1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC03800, 0xFFE0FC00, .NEON, {} }, - // .ZIP2 - { .ZIP2, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E007800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E007800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E407800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E407800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E807800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E807800, 0xFFE0FC00, .NEON, {} }, - { .ZIP2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC07800, 0xFFE0FC00, .NEON, {} }, - // .UZP1 - { .UZP1, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E001800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E001800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E401800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E401800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E801800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E801800, 0xFFE0FC00, .NEON, {} }, - { .UZP1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC01800, 0xFFE0FC00, .NEON, {} }, - // .UZP2 - { .UZP2, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E005800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E005800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E405800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E405800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E805800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E805800, 0xFFE0FC00, .NEON, {} }, - { .UZP2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC05800, 0xFFE0FC00, .NEON, {} }, - // .TRN1 - { .TRN1, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E002800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E002800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E402800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E402800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E802800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E802800, 0xFFE0FC00, .NEON, {} }, - { .TRN1, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC02800, 0xFFE0FC00, .NEON, {} }, - // .TRN2 - { .TRN2, {.V_8B,.V_8B,.V_8B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E006800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_16B,.V_16B,.V_16B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E006800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_4H,.V_4H,.V_4H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E406800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_8H,.V_8H,.V_8H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E406800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_2S,.V_2S,.V_2S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x0E806800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_4S,.V_4S,.V_4S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4E806800, 0xFFE0FC00, .NEON, {} }, - { .TRN2, {.V_2D,.V_2D,.V_2D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4EC06800, 0xFFE0FC00, .NEON, {} }, - // .NOT_V - { .NOT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - // .RBIT_V - { .RBIT_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {} }, - { .RBIT_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {} }, - // .REV16_V - { .REV16_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {} }, - { .REV16_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {} }, - // .REV32_V - { .REV32_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {} }, - { .REV32_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {} }, - // .REV64 - { .REV64, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {} }, - { .REV64, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {} }, - // .CLS_V - { .CLS_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLS_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {} }, - // .CLZ_V - { .CLZ_V, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {} }, - { .CLZ_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {} }, - // .CNT - { .CNT, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {} }, - { .CNT, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {} }, - // .URECPE_V - { .URECPE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {} }, - { .URECPE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {} }, - // .URSQRTE_V - { .URSQRTE_V, {.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {} }, - { .URSQRTE_V, {.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {} }, - // .MOVI - { .MOVI, {.V_8B,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_16B,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_4H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {} }, - { .MOVI, {.V_2D,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {} }, - // .MVNI - { .MVNI, {.V_4H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_8H,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {} }, - { .MVNI, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {} }, - // .FMOV_V_IMM - { .FMOV_V_IMM, {.V_2S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_4S,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_2D,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {} }, - { .FMOV_V_IMM, {.V_4H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {} }, - { .FMOV_V_IMM, {.V_8H_FP16,.IMM_8,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {} }, - // .LD1 - { .LD1, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407000, 0xFFFFF000, .NEON, {} }, - { .LD1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407400, 0xFFFFF400, .NEON, {} }, - { .LD1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407800, 0xFFFFF800, .NEON, {} }, - { .LD1, {.V_2D,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C407C00, 0xFFFFFC00, .NEON, {} }, - // .LD2 - { .LD2, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C408000, 0xFFFFFC00, .NEON, {} }, - // .LD3 - { .LD3, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C404000, 0xFFFFFC00, .NEON, {} }, - // .LD4 - { .LD4, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C400000, 0xFFFFFC00, .NEON, {} }, - // .ST1 - { .ST1, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007000, 0xFFFFF000, .NEON, {} }, - { .ST1, {.V_8H,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007400, 0xFFFFF400, .NEON, {} }, - { .ST1, {.V_4S,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007800, 0xFFFFF800, .NEON, {} }, - { .ST1, {.V_2D,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {} }, - // .ST2 - { .ST2, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C008000, 0xFFFFFC00, .NEON, {} }, - // .ST3 - { .ST3, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C004000, 0xFFFFFC00, .NEON, {} }, - // .ST4 - { .ST4, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4C000000, 0xFFFFFC00, .NEON, {} }, - // .LD1R - { .LD1R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D40C000, 0xFFFFFC00, .NEON, {} }, - // .LD2R - { .LD2R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {} }, - // .LD3R - { .LD3R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {} }, - // .LD4R - { .LD4R, {.V_16B,.MEM,.NONE,.NONE}, {.VD,.OFFSET_BASE_A,.NONE,.NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {} }, - // .LD1_LANE - { .LD1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D400000, 0xBFFFE000, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D404000, 0xBFFFE400, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {} }, - { .LD1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {} }, - // .LD2_LANE - { .LD2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D600000, 0xBFFFE000, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D604000, 0xBFFFE400, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {} }, - { .LD2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {} }, - // .LD3_LANE - { .LD3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D402000, 0xBFFFE000, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D406000, 0xBFFFE400, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {} }, - { .LD3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {} }, - // .LD4_LANE - { .LD4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D602000, 0xBFFFE000, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D606000, 0xBFFFE400, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {} }, - { .LD4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {} }, - // .ST1_LANE - { .ST1_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D000000, 0xBFFFE000, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D004000, 0xBFFFE400, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {} }, - { .ST1_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {} }, - // .ST2_LANE - { .ST2_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D200000, 0xBFFFE000, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D204000, 0xBFFFE400, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {} }, - { .ST2_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {} }, - // .ST3_LANE - { .ST3_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D002000, 0xBFFFE000, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D006000, 0xBFFFE400, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {} }, - { .ST3_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {} }, - // .ST4_LANE - { .ST4_LANE, {.V_ELEM_B,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_B,.OFFSET_BASE_A,.NONE}, 0x0D202000, 0xBFFFE000, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_H,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_H,.OFFSET_BASE_A,.NONE}, 0x0D206000, 0xBFFFE400, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_S,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_S,.OFFSET_BASE_A,.NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {} }, - { .ST4_LANE, {.V_ELEM_D,.VEC_INDEX,.MEM,.NONE}, {.VD,.NEON_LANE_D,.OFFSET_BASE_A,.NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {} }, - // .LDR_V - { .LDR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD400000, 0xFFC00000, .FP, {} }, - { .LDR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3DC00000, 0xFFC00000, .FP, {} }, - // .STR_V - { .STR_V, {.B_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.H_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x7D000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xBD000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xFD000000, 0xFFC00000, .FP, {} }, - { .STR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0x3D800000, 0xFFC00000, .FP, {} }, - // .LDP_V - { .LDP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D400000, 0xFFC00000, .NEON, {} }, - { .LDP_V, {.D_REG,.D_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x6D400000, 0xFFC00000, .NEON, {} }, - { .LDP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD400000, 0xFFC00000, .NEON, {} }, - // .STP_V - { .STP_V, {.S_REG,.S_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x2D000000, 0xFFC00000, .NEON, {} }, - { .STP_V, {.D_REG,.D_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0x6D000000, 0xFFC00000, .NEON, {} }, - { .STP_V, {.Q_REG,.Q_REG,.MEM,.NONE}, {.RT,.RT2,.OFFSET_BASE_S9,.NONE}, 0xAD000000, 0xFFC00000, .NEON, {} }, - // .LDUR_V - { .LDUR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xBC400000, 0xFFE00C00, .NEON, {} }, - { .LDUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC400000, 0xFFE00C00, .NEON, {} }, - { .LDUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {} }, - // .STUR_V - { .STUR_V, {.S_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xBC000000, 0xFFE00C00, .NEON, {} }, - { .STUR_V, {.D_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xFC000000, 0xFFE00C00, .NEON, {} }, - { .STUR_V, {.Q_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x3C800000, 0xFFE00C00, .NEON, {} }, - // .SVE_ADD_Z - { .SVE_ADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_SUB_Z - { .SVE_SUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04200400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04600400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {} }, - { .SVE_SUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_SQADD_Z - { .SVE_SQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_UQADD_Z - { .SVE_UQADD_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_SQSUB_Z - { .SVE_SQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {} }, - { .SVE_SQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_UQSUB_Z - { .SVE_UQSUB_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UQSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_ADD_PRED - { .SVE_ADD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04000000, 0xFFE0E000, .SVE, {} }, - { .SVE_ADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04400000, 0xFFE0E000, .SVE, {} }, - { .SVE_ADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04800000, 0xFFE0E000, .SVE, {} }, - { .SVE_ADD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C00000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SUB_PRED - { .SVE_SUB_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04010000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04410000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04810000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C10000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SUBR_PRED - { .SVE_SUBR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04030000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04430000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04830000, 0xFFE0E000, .SVE, {} }, - { .SVE_SUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C30000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_MUL_PRED - { .SVE_MUL_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04100000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04500000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04900000, 0xFFE0E000, .SVE, {} }, - { .SVE_MUL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D00000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SMULH_PRED - { .SVE_SMULH_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04120000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04520000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04920000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D20000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_UMULH_PRED - { .SVE_UMULH_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04130000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMULH_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04530000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMULH_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04930000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMULH_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D30000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SDIV_PRED - { .SVE_SDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04940000, 0xFFE0E000, .SVE, {} }, - { .SVE_SDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D40000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_UDIV_PRED - { .SVE_UDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04950000, 0xFFE0E000, .SVE, {} }, - { .SVE_UDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D50000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SMAX_PRED - { .SVE_SMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04080000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04480000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04880000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C80000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_UMAX_PRED - { .SVE_UMAX_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04090000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04490000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04890000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04C90000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SMIN_PRED - { .SVE_SMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048A0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CA0000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_UMIN_PRED - { .SVE_UMIN_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048B0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CB0000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_SABD_PRED - { .SVE_SABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048C0000, 0xFFE0E000, .SVE, {} }, - { .SVE_SABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CC0000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_UABD_PRED - { .SVE_UABD_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x040D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x044D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x048D0000, 0xFFE0E000, .SVE, {} }, - { .SVE_UABD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04CD0000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_AND_PRED - { .SVE_AND_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x041A0000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_ORR_PRED - { .SVE_ORR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04180000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_EOR_PRED - { .SVE_EOR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04190000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_BIC_PRED - { .SVE_BIC_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x041B0000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_ASR_PRED - { .SVE_ASR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04108000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04508000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04908000, 0xFFE0E000, .SVE, {} }, - { .SVE_ASR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D08000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_LSL_PRED - { .SVE_LSL_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04138000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04538000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04938000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D38000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_LSR_PRED - { .SVE_LSR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VM}, 0x04118000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x04518000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x04918000, 0xFFE0E000, .SVE, {} }, - { .SVE_LSR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x04D18000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_ASRR_PRED - { .SVE_ASRR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04148000, 0xFFFFE000, .SVE, {} }, - { .SVE_ASRR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04548000, 0xFFFFE000, .SVE, {} }, - { .SVE_ASRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04948000, 0xFFFFE000, .SVE, {} }, - { .SVE_ASRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_LSLR_PRED - { .SVE_LSLR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04178000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04578000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04978000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSLR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_LSRR_PRED - { .SVE_LSRR_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x04158000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x04558000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x04958000, 0xFFFFE000, .SVE, {} }, - { .SVE_LSRR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_ABS_PRED - { .SVE_ABS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0416A000, 0xFFE0E000, .SVE, {} }, - { .SVE_ABS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0456A000, 0xFFE0E000, .SVE, {} }, - { .SVE_ABS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0496A000, 0xFFE0E000, .SVE, {} }, - { .SVE_ABS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D6A000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_NEG_PRED - { .SVE_NEG_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0417A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0457A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0497A000, 0xFFE0E000, .SVE, {} }, - { .SVE_NEG_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D7A000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_CLS_PRED - { .SVE_CLS_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0418A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0458A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0498A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLS_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D8A000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_CLZ_PRED - { .SVE_CLZ_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0419A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLZ_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0459A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLZ_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0499A000, 0xFFE0E000, .SVE, {} }, - { .SVE_CLZ_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04D9A000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_CNT_PRED - { .SVE_CNT_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.VD,.PG,.VN,.NONE}, 0x041AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049AA000, 0xFFE0E000, .SVE, {} }, - { .SVE_CNT_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DAA000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_MOV_PRED - { .SVE_MOV_PRED, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x0520C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x0560C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {} }, - { .SVE_MOV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FADD_Z - { .SVE_FADD_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400000, 0xFFE0FC00, .SVE, {} }, - { .SVE_FADD_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800000, 0xFFE0FC00, .SVE, {} }, - { .SVE_FADD_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FSUB_Z - { .SVE_FSUB_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400400, 0xFFE0FC00, .SVE, {} }, - { .SVE_FSUB_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800400, 0xFFE0FC00, .SVE, {} }, - { .SVE_FSUB_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FMUL_Z - { .SVE_FMUL_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FMUL_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FMUL_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FRECPS - { .SVE_FRECPS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801800, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRECPS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FRSQRTS - { .SVE_FRSQRTS, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRSQRTS, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FRSQRTS, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FTSMUL - { .SVE_FTSMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FTSMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_FTSMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FADD_PRED - { .SVE_FADD_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65408000, 0xFFE0E000, .SVE, {} }, - { .SVE_FADD_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65808000, 0xFFE0E000, .SVE, {} }, - { .SVE_FADD_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C08000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FSUB_PRED - { .SVE_FSUB_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65418000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSUB_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65818000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSUB_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C18000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FSUBR_PRED - { .SVE_FSUBR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x65438000, 0xFFFFE000, .SVE, {} }, - { .SVE_FSUBR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x65838000, 0xFFFFE000, .SVE, {} }, - { .SVE_FSUBR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FMUL_PRED - { .SVE_FMUL_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65428000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMUL_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65828000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMUL_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C28000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FDIV_PRED - { .SVE_FDIV_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x654D8000, 0xFFE0E000, .SVE, {} }, - { .SVE_FDIV_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x658D8000, 0xFFE0E000, .SVE, {} }, - { .SVE_FDIV_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65CD8000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FDIVR_PRED - { .SVE_FDIVR_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VN}, 0x654C8000, 0xFFFFE000, .SVE, {} }, - { .SVE_FDIVR_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VN}, 0x658C8000, 0xFFFFE000, .SVE, {} }, - { .SVE_FDIVR_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VN}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FMAX_PRED - { .SVE_FMAX_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65468000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAX_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65868000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAX_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C68000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FMIN_PRED - { .SVE_FMIN_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65478000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMIN_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65878000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMIN_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C78000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FMAXNM_PRED - { .SVE_FMAXNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65448000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAXNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65848000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMAXNM_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C48000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FMINNM_PRED - { .SVE_FMINNM_PRED, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65458000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMINNM_PRED, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VD,.VM}, 0x65858000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMINNM_PRED, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VD,.VM}, 0x65C58000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FABS_Z - { .SVE_FABS_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045CA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FABS_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049CA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FABS_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DCA000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FNEG_Z - { .SVE_FNEG_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x045DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNEG_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x049DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNEG_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x04DDA000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FSQRT_Z - { .SVE_FSQRT_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSQRT_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658DA000, 0xFFE0E000, .SVE, {} }, - { .SVE_FSQRT_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CDA000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FRECPX_Z - { .SVE_FRECPX_Z, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x654CA000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRECPX_Z, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658CA000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRECPX_Z, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTN - { .SVE_FRINTN, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6540A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTN, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6580A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTN, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTP - { .SVE_FRINTP, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6541A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTP, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6581A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTP, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTM - { .SVE_FRINTM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6542A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTM, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6582A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTM, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTZ - { .SVE_FRINTZ, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6543A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTZ, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6583A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTZ, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTA - { .SVE_FRINTA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6544A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6584A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTX - { .SVE_FRINTX, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6546A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTX, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6586A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTX, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FRINTI - { .SVE_FRINTI, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6547A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTI, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x6587A000, 0xFFFFE000, .SVE, {} }, - { .SVE_FRINTI, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_FMLA - { .SVE_FMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65600000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A00000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FMLS - { .SVE_FMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65602000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A02000, 0xFFE0E000, .SVE, {} }, - { .SVE_FMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FNMLA - { .SVE_FNMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65604000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A04000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_FNMLS - { .SVE_FNMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65606000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x65A06000, 0xFFE0E000, .SVE, {} }, - { .SVE_FNMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_AND_P - { .SVE_AND_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004000, 0xFFE0C210, .SVE, {} }, - // .SVE_BIC_P - { .SVE_BIC_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004010, 0xFFE0C210, .SVE, {} }, - // .SVE_ORR_P - { .SVE_ORR_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804000, 0xFFE0C210, .SVE, {} }, - // .SVE_EOR_P - { .SVE_EOR_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004200, 0xFFE0C210, .SVE, {} }, - // .SVE_NAND_P - { .SVE_NAND_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804210, 0xFFE0C210, .SVE, {} }, - // .SVE_NOR_P - { .SVE_NOR_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804200, 0xFFE0C210, .SVE, {} }, - // .SVE_ORN_P - { .SVE_ORN_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25804010, 0xFFE0C210, .SVE, {} }, - // .SVE_SEL_P - { .SVE_SEL_P, {.P_REG,.P_REG,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25004210, 0xFFE0C210, .SVE, {} }, - // .SVE_ANDS_P - { .SVE_ANDS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true} }, - // .SVE_BICS_P - { .SVE_BICS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404010, 0xFFE0C210, .SVE, {sets_flags=true} }, - // .SVE_ORRS_P - { .SVE_ORRS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04000, 0xFFE0C210, .SVE, {sets_flags=true} }, - // .SVE_EORS_P - { .SVE_EORS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true} }, - // .SVE_NANDS_P - { .SVE_NANDS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04210, 0xFFF0C210, .SVE, {sets_flags=true} }, - // .SVE_NORS_P - { .SVE_NORS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04200, 0xFFF0C210, .SVE, {sets_flags=true} }, - // .SVE_ORNS_P - { .SVE_ORNS_P, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x25C04010, 0xFFF0C210, .SVE, {sets_flags=true} }, - // .SVE_NOT_P - { .SVE_NOT_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4_PM_DUP,.PN,.NONE}, 0x25004200, 0xFFE0C210, .SVE, {} }, - // .SVE_MOV_P - { .SVE_MOV_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {} }, - { .SVE_MOV_P, {.P_REG,.P_REG,.NONE,.NONE}, {.PD,.PN_PG_PM_DUP,.NONE,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {} }, - // .SVE_MOVS_P - { .SVE_MOVS_P, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true} }, - // .SVE_PTRUE - { .SVE_PTRUE, {.P_REG,.SVE_PATTERN,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {} }, - // .SVE_PTRUES - { .SVE_PTRUES, {.P_REG,.SVE_PATTERN,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true} }, - // .SVE_PFALSE - { .SVE_PFALSE, {.P_REG,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE}, 0x2518E400, 0xFFFFFFF0, .SVE, {} }, - // .SVE_PFIRST - { .SVE_PFIRST, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PD,.NONE}, 0x2558C000, 0xFFFFFE10, .SVE, {} }, - // .SVE_PNEXT - { .SVE_PNEXT, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PD,.NONE}, 0x2519C400, 0xFFFFFE10, .SVE, {} }, - // .SVE_BRKA - { .SVE_BRKA, {.P_REG,.P_REG_MERGE,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25104010, 0xFFFFC210, .SVE, {} }, - // .SVE_BRKB - { .SVE_BRKB, {.P_REG,.P_REG_MERGE,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25904010, 0xFFFFC210, .SVE, {} }, - // .SVE_BRKAS - { .SVE_BRKAS, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true} }, - // .SVE_BRKBS - { .SVE_BRKBS, {.P_REG,.P_REG_ZERO,.P_REG,.NONE}, {.PD,.PG4,.PN,.NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true} }, - // .SVE_BRKPA - { .SVE_BRKPA, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x2500C000, 0xFFF0C210, .SVE, {} }, - // .SVE_BRKPB - { .SVE_BRKPB, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PM}, 0x2500C010, 0xFFF0C210, .SVE, {} }, - // .SVE_BRKN - { .SVE_BRKN, {.P_REG,.P_REG_ZERO,.P_REG,.P_REG}, {.PD,.PG4,.PN,.PD}, 0x25184000, 0xFFFFC210, .SVE, {} }, - // .SVE_RDFFR - { .SVE_RDFFR, {.P_REG,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE}, 0x2519F000, 0xFFFFFFF0, .SVE, {} }, - // .SVE_WRFFR - { .SVE_WRFFR, {.P_REG,.NONE,.NONE,.NONE}, {.PN,.NONE,.NONE,.NONE}, 0x25289000, 0xFFFFFE1F, .SVE, {} }, - // .SVE_SETFFR - { .SVE_SETFFR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x252C9000, 0xFFFFFFFF, .SVE, {} }, - // .SVE_CMPEQ - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true} }, - { .SVE_CMPEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPNE - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPGE - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPGT - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPLE - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPLT - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPHI - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHI, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPHS - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPHS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPLO - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLO, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_CMPLS - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VM,.VN}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VM,.VN}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VM,.VN}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true} }, - { .SVE_CMPLS, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VM,.VN}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true} }, - // .SVE_FCMEQ - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65406000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMEQ, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true} }, - // .SVE_FCMNE - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65406010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65806010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMNE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true} }, - // .SVE_FCMGE - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65804000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true} }, - // .SVE_FCMGT - { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x65404010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x65804010, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMGT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true} }, - // .SVE_FCMLE - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512010, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65912010, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLE, {.P_REG,.P_REG_ZERO,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true} }, - // .SVE_FCMLT - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65512000, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65912000, 0xFFFFE010, .SVE, {} }, - { .SVE_FCMLT, {.P_REG,.P_REG_ZERO,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true} }, - // .SVE_FCMUO - { .SVE_FCMUO, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x6540C000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMUO, {.P_REG,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.PD,.PG,.VN,.VM}, 0x6580C000, 0xFFE0E010, .SVE, {} }, - { .SVE_FCMUO, {.P_REG,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.PD,.PG,.VN,.VM}, 0x65C0C000, 0xFFE0E010, .SVE, {is_64=true} }, - // .SVE_DUP_Z - { .SVE_DUP_Z, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05203800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05603800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {} }, - { .SVE_DUP_Z, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true} }, - // .SVE_INSR - { .SVE_INSR, {.Z_REG_B,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05243800, 0xFFFFFC00, .SVE, {} }, - { .SVE_INSR, {.Z_REG_H,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05643800, 0xFFFFFC00, .SVE, {} }, - { .SVE_INSR, {.Z_REG_S,.W_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {} }, - { .SVE_INSR, {.Z_REG_D,.X_REG,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true} }, - // .SVE_REV_Z - { .SVE_REV_Z, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05383800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05783800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {} }, - { .SVE_REV_Z, {.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true} }, - // .SVE_REV_P - { .SVE_REV_P, {.P_REG,.P_REG,.NONE,.NONE}, {.PD,.PN,.NONE,.NONE}, 0x05344000, 0xFFFFFE10, .SVE, {} }, - // .SVE_TBL - { .SVE_TBL, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05203000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TBL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05603000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TBL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TBL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_ZIP1_Z - { .SVE_ZIP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_ZIP2_Z - { .SVE_ZIP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {} }, - { .SVE_ZIP2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_UZP1_Z - { .SVE_UZP1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_UZP2_Z - { .SVE_UZP2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {} }, - { .SVE_UZP2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_TRN1_Z - { .SVE_TRN1_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN1_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN1_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN1_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_TRN2_Z - { .SVE_TRN2_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05207400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {} }, - { .SVE_TRN2_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_ZIP1_P - { .SVE_ZIP1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204000, 0xFFE0FE10, .SVE, {} }, - // .SVE_ZIP2_P - { .SVE_ZIP2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204400, 0xFFE0FE10, .SVE, {} }, - // .SVE_UZP1_P - { .SVE_UZP1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204800, 0xFFE0FE10, .SVE, {} }, - // .SVE_UZP2_P - { .SVE_UZP2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {} }, - // .SVE_TRN1_P - { .SVE_TRN1_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05205000, 0xFFE0FE10, .SVE, {} }, - // .SVE_TRN2_P - { .SVE_TRN2_P, {.P_REG,.P_REG,.P_REG,.NONE}, {.PD,.PN,.PM,.NONE}, 0x05205400, 0xFFE0FE10, .SVE, {} }, - // .SVE_CPY_Z - { .SVE_CPY_Z, {.Z_REG_B,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0528A000, 0xFFFFE000, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_H,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x0568A000, 0xFFFFE000, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_S,.P_REG_MERGE,.W_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {} }, - { .SVE_CPY_Z, {.Z_REG_D,.P_REG_MERGE,.X_REG,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_COMPACT - { .SVE_COMPACT, {.Z_REG_S,.P_REG_GOV,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05A18000, 0xFFFFE000, .SVE, {} }, - { .SVE_COMPACT, {.Z_REG_D,.P_REG_GOV,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true} }, - // .SVE_EXT_Z - { .SVE_EXT_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_EXT_IMM}, 0x05200000, 0xFFE0E000, .SVE, {} }, - // .SVE_LD1B - { .SVE_LD1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4004000, 0xFFE0E000, .SVE, {} }, - // .SVE_LD1H - { .SVE_LD1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {} }, - // .SVE_LD1W - { .SVE_LD1W, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5404000, 0xFFE0E000, .SVE, {} }, - // .SVE_LD1D - { .SVE_LD1D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5E04000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_LD1SB - { .SVE_LD1SB, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5C04000, 0xFFE0E000, .SVE, {} }, - // .SVE_LD1SH - { .SVE_LD1SH, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5004000, 0xFFE0E000, .SVE, {} }, - // .SVE_LD1SW - { .SVE_LD1SW, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4804000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_ST1B - { .SVE_ST1B, {.Z_REG_B,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4004000, 0xFFE0E000, .SVE, {} }, - // .SVE_ST1H - { .SVE_ST1H, {.Z_REG_H,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4A04000, 0xFFE0E000, .SVE, {} }, - // .SVE_ST1W - { .SVE_ST1W, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5404000, 0xFFE0E000, .SVE, {} }, - // .SVE_ST1D - { .SVE_ST1D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5C04000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_LDR_Z - { .SVE_LDR_Z, {.Z_REG_B,.MEM,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0x85804000, 0xFFE0E000, .SVE, {} }, - // .SVE_STR_Z - { .SVE_STR_Z, {.Z_REG_B,.MEM,.NONE,.NONE}, {.VD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE5804000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDR_P - { .SVE_LDR_P, {.P_REG,.MEM,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0x85800000, 0xFFE0E010, .SVE, {} }, - // .SVE_STR_P - { .SVE_STR_P, {.P_REG,.MEM,.NONE,.NONE}, {.PD,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE5800000, 0xFFE0E010, .SVE, {} }, - // .SVE_LDFF1B - { .SVE_LDFF1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4006000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDFF1H - { .SVE_LDFF1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA4A06000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDFF1W - { .SVE_LDFF1W, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5406000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDFF1D - { .SVE_LDFF1D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA5E06000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_WHILEGE - { .SVE_WHILEGE, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201000, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILEGT - { .SVE_WHILEGT, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201010, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILELE - { .SVE_WHILELE, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201410, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILELT - { .SVE_WHILELT, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201400, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILEHI - { .SVE_WHILEHI, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201810, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILEHS - { .SVE_WHILEHS, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201800, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILELO - { .SVE_WHILELO, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201C00, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_WHILELS - { .SVE_WHILELS, {.P_REG,.X_REG,.X_REG,.NONE}, {.PD,.RN,.RM,.NONE}, 0x25201C10, 0xFF20FC10, .SVE2, {sets_flags=true, is_64=true} }, - // .SVE_SQRDMLAH - { .SVE_SQRDMLAH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLAH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLAH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLAH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_SQRDMLSH - { .SVE_SQRDMLSH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SQRDMLSH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_ADCLB - { .SVE_ADCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_ADCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_ADCLT - { .SVE_ADCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_ADCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_SBCLB - { .SVE_SBCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SBCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_SBCLT - { .SVE_SBCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {} }, - { .SVE_SBCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_TBL2 - { .SVE_TBL2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {} }, - // .SVE_TBX - { .SVE_TBX, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x05202C00, 0xFFE0FC00, .SVE2, {} }, - // .SVE_AESE - { .SVE_AESE, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {} }, - // .SVE_AESD - { .SVE_AESD, {.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {} }, - // .SVE_AESMC - { .SVE_AESMC, {.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.NONE,.NONE,.NONE}, 0x4520E000, 0xFFFFFFE0, .SVE2, {} }, - // .SVE_AESIMC - { .SVE_AESIMC, {.Z_REG_B,.NONE,.NONE,.NONE}, {.VD,.NONE,.NONE,.NONE}, 0x4520E400, 0xFFFFFFE0, .SVE2, {} }, - // .SVE_BCAX_Z - { .SVE_BCAX_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04603800, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_XAR_Z - { .SVE_XAR_Z, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {} }, - { .SVE_XAR_Z, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {} }, - { .SVE_XAR_Z, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {} }, - { .SVE_XAR_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.VEC_SHIFT}, {.VD,.VD,.VN,.SVE_XAR_SHIFT}, 0x04203400, 0xFF20FC00, .SVE2, {is_64=true} }, - // .SVE_EOR3_Z - { .SVE_EOR3_Z, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04203800, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_MATCH - { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true} }, - { .SVE_MATCH, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true} }, - // .SVE_NMATCH - { .SVE_NMATCH, {.P_REG,.P_REG_ZERO,.Z_REG_B,.Z_REG_B}, {.PD,.PG,.VN,.VM}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true} }, - { .SVE_NMATCH, {.P_REG,.P_REG_ZERO,.Z_REG_H,.Z_REG_H}, {.PD,.PG,.VN,.VM}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true} }, - // .SVE_HISTCNT - { .SVE_HISTCNT, {.Z_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S}, {.VD,.PG,.VN,.VM}, 0x45A0C000, 0xFFE0E000, .SVE2, {} }, - { .SVE_HISTCNT, {.Z_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D}, {.VD,.PG,.VN,.VM}, 0x45E0C000, 0xFFE0E000, .SVE2, {is_64=true} }, - // .SVE_HISTSEG - { .SVE_HISTSEG, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x4520A000, 0xFFE0FC00, .SVE2, {} }, - // .SME_SMSTART - { .SME_SMSTART, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503477F, 0xFFFFFFFF, .SME, {} }, - // .SME_SMSTOP - { .SME_SMSTOP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503467F, 0xFFFFFFFF, .SME, {} }, - // .SME_RDSVL - { .SME_RDSVL, {.X_REG,.IMM_6,.NONE,.NONE}, {.RD,.IMM6,.NONE,.NONE}, 0x04BF5800, 0xFFFFFC00, .SME, {is_64=true} }, - // .SME_ADDHA - { .SME_ADDHA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_LOW,.PG,.PM3,.VN}, 0xC0900000, 0xFFFF001C, .SME, {} }, - // .SME_ADDVA - { .SME_ADDVA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_LOW,.PG,.PM3,.VN}, 0xC0910000, 0xFFFF001C, .SME, {} }, - // .SME_ZERO - { .SME_ZERO, {.SME_PATTERN,.NONE,.NONE,.NONE}, {.SME_PATTERN_FIELD,.NONE,.NONE,.NONE}, 0xC0080000, 0xFFFFFF00, .SME, {} }, - // .SME_FMOPA - { .SME_FMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x80800000, 0xFFE08010, .SME, {} }, - // .SME_FMOPS - { .SME_FMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x80800010, 0xFFE08010, .SME, {} }, - // .SME_BFMOPA - { .SME_BFMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x81800000, 0xFFE08010, .SME, {} }, - // .SME_BFMOPS - { .SME_BFMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0x81800010, 0xFFE08010, .SME, {} }, - // .SME_SMOPA - { .SME_SMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800000, 0xFFE08010, .SME, {} }, - { .SME_SMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true} }, - // .SME_SMOPS - { .SME_SMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0800010, 0xFFE08010, .SME, {} }, - { .SME_SMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true} }, - // .SME_UMOPA - { .SME_UMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00000, 0xFFE08010, .SME, {} }, - { .SME_UMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true} }, - // .SME_UMOPS - { .SME_UMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1A00010, 0xFFE08010, .SME, {} }, - { .SME_UMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true} }, - // .SME_USMOPA - { .SME_USMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA1800000, 0xFFE08010, .SME, {} }, - // .SME_SUMOPA - { .SME_SUMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN}, 0xA0A00000, 0xFFE08010, .SME, {} }, - // .SME_LDR_ZA - { .SME_LDR_ZA, {.IMM_5,.MEM,.NONE,.NONE}, {.SVE_IMM5,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE1000000, 0xFFE08000, .SME, {} }, - // .SME_STR_ZA - { .SME_STR_ZA, {.IMM_5,.MEM,.NONE,.NONE}, {.SVE_IMM5,.SVE_OFFSET_BASE_SI,.NONE,.NONE}, 0xE1200000, 0xFFE08000, .SME, {} }, - // .SVE_FMLA_IDX_H - { .SVE_FMLA_IDX_H, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H}, 0x64200000, 0xFFA0FC00, .SVE, {} }, - // .SVE_FMLA_IDX_S - { .SVE_FMLA_IDX_S, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S}, 0x64A00000, 0xFFE0FC00, .SVE, {} }, - // .SVE_FMLA_IDX_D - { .SVE_FMLA_IDX_D, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D}, 0x64E00000, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_FMLS_IDX_H - { .SVE_FMLS_IDX_H, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.IMM_3}, {.VD,.VN,.VM,.SVE_FMLA_IDX_H}, 0x64200400, 0xFFA0FC00, .SVE, {} }, - // .SVE_FMLS_IDX_S - { .SVE_FMLS_IDX_S, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_S}, 0x64A00400, 0xFFE0FC00, .SVE, {} }, - // .SVE_FMLS_IDX_D - { .SVE_FMLS_IDX_D, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.IMM_2}, {.VD,.VN,.VM,.SVE_FMLA_IDX_D}, 0x64E00400, 0xFFE0FC00, .SVE, {is_64=true} }, - // .SVE_LD1B_GATHER_S - { .SVE_LD1B_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84004000, 0xFFA0E000, .SVE, {} }, - // .SVE_LD1B_GATHER_D - { .SVE_LD1B_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4004000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_LD1H_GATHER_S - { .SVE_LD1H_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84804000, 0xFFA0E000, .SVE, {} }, - // .SVE_LD1H_GATHER_D - { .SVE_LD1H_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4804000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_LD1W_GATHER_S - { .SVE_LD1W_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x85004000, 0xFFA0E000, .SVE, {} }, - // .SVE_LD1W_GATHER_D - { .SVE_LD1W_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC5004000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_LD1D_GATHER_D - { .SVE_LD1D_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC5804000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_LD1SB_GATHER_S - { .SVE_LD1SB_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84000000, 0xFFA0E000, .SVE, {} }, - // .SVE_LD1SB_GATHER_D - { .SVE_LD1SB_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4000000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_LD1SH_GATHER_S - { .SVE_LD1SH_GATHER_S, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0x84800000, 0xFFA0E000, .SVE, {} }, - // .SVE_LD1SH_GATHER_D - { .SVE_LD1SH_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC4800000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_LD1SW_GATHER_D - { .SVE_LD1SW_GATHER_D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xC5000000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_ST1B_SCATTER_S - { .SVE_ST1B_SCATTER_S, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4008000, 0xFFA0E000, .SVE, {} }, - // .SVE_ST1B_SCATTER_D - { .SVE_ST1B_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4008000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_ST1H_SCATTER_S - { .SVE_ST1H_SCATTER_S, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4808000, 0xFFA0E000, .SVE, {} }, - // .SVE_ST1H_SCATTER_D - { .SVE_ST1H_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE4808000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_ST1W_SCATTER_S - { .SVE_ST1W_SCATTER_S, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE5008000, 0xFFA0E000, .SVE, {} }, - // .SVE_ST1W_SCATTER_D - { .SVE_ST1W_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE5008000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SVE_ST1D_SCATTER_D - { .SVE_ST1D_SCATTER_D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_VEC,.NONE}, 0xE5808000, 0xFFA0E000, .SVE, {is_64=true} }, - // .SME_LD1B_TILE - { .SME_LD1B_TILE, {.SME_SLICE_B,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0000000, 0xFFE00010, .SME, {} }, - // .SME_LD1H_TILE - { .SME_LD1H_TILE, {.SME_SLICE_H,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0400000, 0xFFE00010, .SME, {} }, - // .SME_LD1W_TILE - { .SME_LD1W_TILE, {.SME_SLICE_W,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0800000, 0xFFE00010, .SME, {} }, - // .SME_LD1D_TILE - { .SME_LD1D_TILE, {.SME_SLICE_D,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0C00000, 0xFFE00010, .SME, {is_64=true} }, - // .SME_LD1Q_TILE - { .SME_LD1Q_TILE, {.SME_SLICE_Q,.P_REG_ZERO,.MEM,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE1C00000, 0xFFE00010, .SME, {} }, - // .SME_ST1B_TILE - { .SME_ST1B_TILE, {.SME_SLICE_B,.P_REG,.MEM,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0200000, 0xFFE00010, .SME, {} }, - // .SME_ST1H_TILE - { .SME_ST1H_TILE, {.SME_SLICE_H,.P_REG,.MEM,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0600000, 0xFFE00010, .SME, {} }, - // .SME_ST1W_TILE - { .SME_ST1W_TILE, {.SME_SLICE_W,.P_REG,.MEM,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0A00000, 0xFFE00010, .SME, {} }, - // .SME_ST1D_TILE - { .SME_ST1D_TILE, {.SME_SLICE_D,.P_REG,.MEM,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE0E00000, 0xFFE00010, .SME, {is_64=true} }, - // .SME_ST1Q_TILE - { .SME_ST1Q_TILE, {.SME_SLICE_Q,.P_REG,.MEM,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE1E00000, 0xFFE00010, .SME, {} }, - // .SME_MOVA_Z_FROM_TILE - { .SME_MOVA_Z_FROM_TILE, {.Z_REG_B,.P_REG_MERGE,.SME_SLICE_B,.NONE}, {.VD,.PG,.SME_SLICE_B,.NONE}, 0xC0020000, 0xFFE08010, .SME, {} }, - // .SME_MOVA_TILE_FROM_Z - { .SME_MOVA_TILE_FROM_Z, {.SME_SLICE_B,.P_REG_MERGE,.Z_REG_B,.NONE}, {.SME_SLICE_B,.PG,.VN,.NONE}, 0xC0000000, 0xFFE08010, .SME, {} }, - // .FCMLA_4H - { .FCMLA_4H, {.V_4H,.V_4H,.V_4H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x2E40C400, 0xFFA0CC00, .NEON, {} }, - // .FCMLA_8H - { .FCMLA_8H, {.V_8H,.V_8H,.V_8H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x6E40C400, 0xFFA0CC00, .NEON, {} }, - // .FCMLA_4S - { .FCMLA_4S, {.V_4S,.V_4S,.V_4S,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x6E80C400, 0xFFA0CC00, .NEON, {} }, - // .FCMLA_2D - { .FCMLA_2D, {.V_2D,.V_2D,.V_2D,.IMM_2}, {.VD,.VN,.VM,.ENC_FCMLA_ROT}, 0x6EC0C400, 0xFFA0CC00, .NEON, {} }, - // .FCADD_4H - { .FCADD_4H, {.V_4H,.V_4H,.V_4H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x2E40E400, 0xFFA0EC00, .NEON, {} }, - // .FCADD_8H - { .FCADD_8H, {.V_8H,.V_8H,.V_8H,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x6E40E400, 0xFFA0EC00, .NEON, {} }, - // .FCADD_4S - { .FCADD_4S, {.V_4S,.V_4S,.V_4S,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x6E80E400, 0xFFA0EC00, .NEON, {} }, - // .FCADD_2D - { .FCADD_2D, {.V_2D,.V_2D,.V_2D,.IMM_2}, {.VD,.VN,.VM,.ENC_FCADD_ROT}, 0x6EC0E400, 0xFFA0EC00, .NEON, {} }, - // .SVE_PRFB - { .SVE_PRFB, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8400C000, 0xFFE0E000, .SVE, {} }, - // .SVE_PRFH - { .SVE_PRFH, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8480C000, 0xFFE0E000, .SVE, {} }, - // .SVE_PRFW - { .SVE_PRFW, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8500C000, 0xFFE0E000, .SVE, {} }, - // .SVE_PRFD - { .SVE_PRFD, {.IMM_4,.P_REG_GOV,.MEM,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0x8580C000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDNT1B - { .SVE_LDNT1B, {.Z_REG_B,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA400C000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDNT1H - { .SVE_LDNT1H, {.Z_REG_H,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA480C000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDNT1W - { .SVE_LDNT1W, {.Z_REG_S,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA500C000, 0xFFE0E000, .SVE, {} }, - // .SVE_LDNT1D - { .SVE_LDNT1D, {.Z_REG_D,.P_REG_ZERO,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA580C000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_STNT1B - { .SVE_STNT1B, {.Z_REG_B,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4006000, 0xFFE0E000, .SVE, {} }, - // .SVE_STNT1H - { .SVE_STNT1H, {.Z_REG_H,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE4806000, 0xFFE0E000, .SVE, {} }, - // .SVE_STNT1W - { .SVE_STNT1W, {.Z_REG_S,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5006000, 0xFFE0E000, .SVE, {} }, - // .SVE_STNT1D - { .SVE_STNT1D, {.Z_REG_D,.P_REG,.MEM,.NONE}, {.VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xE5806000, 0xFFE0E000, .SVE, {is_64=true} }, - // .SVE_EXT - { .SVE_EXT, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.IMM_8}, {.VD,.VD,.VM,.NONE}, 0x05200000, 0xFFE0E000, .SVE, {} }, - // .SVE_SPLICE - { .SVE_SPLICE, {.Z_REG_B,.P_REG_GOV,.Z_REG_B,.Z_REG_B}, {.VD,.PG,.VD,.VN}, 0x052C8000, 0xFFFFE000, .SVE, {} }, - // .SVE_INDEX_II - { .SVE_INDEX_II, {.Z_REG_B,.IMM_5,.IMM_5,.NONE}, {.VD,.SVE_IMM5,.NONE,.NONE}, 0x04204000, 0xFFE0FC00, .SVE, {} }, - // .SVE_INDEX_IR - { .SVE_INDEX_IR, {.Z_REG_B,.IMM_5,.X_REG,.NONE}, {.VD,.SVE_IMM5,.RN,.NONE}, 0x04204800, 0xFFE0FC00, .SVE, {} }, - // .SVE_INDEX_RI - { .SVE_INDEX_RI, {.Z_REG_B,.X_REG,.IMM_5,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE}, 0x04204400, 0xFFE0FC00, .SVE, {} }, - // .SVE_INDEX_RR - { .SVE_INDEX_RR, {.Z_REG_B,.X_REG,.X_REG,.NONE}, {.VD,.RN,.RM,.NONE}, 0x04204C00, 0xFFE0FC00, .SVE, {} }, - // .SVE_BSL - { .SVE_BSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04203C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_BSL1N - { .SVE_BSL1N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04603C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_BSL2N - { .SVE_BSL2N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04A03C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_NBSL - { .SVE_NBSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D}, {.VD,.VD,.VM,.VN}, 0x04E03C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_PMUL_VEC - { .SVE_PMUL_VEC, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.VN,.VM,.NONE}, 0x04206400, 0xFFE0FC00, .SVE2, {} }, - // .SVE_PMULLB - { .SVE_PMULLB, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45006800, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_PMULLT - { .SVE_PMULLT, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.VN,.VM,.NONE}, 0x45006C00, 0xFFE0FC00, .SVE2, {is_64=true} }, - // .SVE_BFCVT - { .SVE_BFCVT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x658AA000, 0xFFFFE000, .SVE, {} }, - // .SVE_BFCVTNT - { .SVE_BFCVTNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.NONE}, 0x648AA000, 0xFFFFE000, .SVE, {} }, - // .LDRAA - { .LDRAA, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true} }, - // .LDRAB - { .LDRAB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF8A00400, 0xFFA00C00, .PAC, {is_64=true} }, - // .LDRAA_PRE - { .LDRAA_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8200C00, 0xFFA00C00, .PAC, {is_64=true} }, - // .LDRAB_PRE - { .LDRAB_PRE, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE}, 0xF8A00C00, 0xFFA00C00, .PAC, {is_64=true} }, - // .TSTART - { .TSTART, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5233060, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TCOMMIT - { .TCOMMIT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503307F, 0xFFFFFFFF, .BASE, {} }, - // .TCANCEL - { .TCANCEL, {.IMM_16,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE}, 0xD4600000, 0xFFE0001F, .BASE, {} }, - // .TTEST - { .TTEST, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5233160, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .WFET - { .WFET, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5031000, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .WFIT - { .WFIT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5031020, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .BC_COND - { .BC_COND, {.COND,.REL_19,.NONE,.NONE}, {.COND_LO,.BRANCH_19,.NONE,.NONE}, 0x54000010, 0xFF000010, .BASE, {cond_branch=true} }, - // .UXTB - { .UXTB, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x53001C00, 0xFFFFFC00, .BASE, {} }, - // .UXTH - { .UXTH, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x53003C00, 0xFFFFFC00, .BASE, {} }, - // .UXTW - { .UXTW, {.X_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0xD3407C00, 0xFFFFFC00, .BASE, {is_64=true} }, - // .SXTB - { .SXTB, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {} }, - // .SXTH - { .SXTH, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {} }, - // .SXTW - { .SXTW, {.X_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true} }, - // .ADC - { .ADC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {} }, - { .ADC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true} }, - // .ADCS - { .ADCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, - { .ADCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true} }, - // .SBC - { .SBC, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {} }, - { .SBC, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true} }, - // .SBCS - { .SBCS, {.W_REG,.W_REG,.W_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true} }, - { .SBCS, {.X_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true} }, - // .NGC - { .NGC, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {} }, - { .NGC, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - // .NGCS - { .NGCS, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true} }, - { .NGCS, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true} }, - // .LDAPUR - { .LDAPUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99400000, 0xFFE00C00, .BASE, {} }, - { .LDAPUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true} }, - // .STLUR - { .STLUR, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99000000, 0xFFE00C00, .BASE, {} }, - { .STLUR, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true} }, - // .LDAPURB - { .LDAPURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19400000, 0xFFE00C00, .BASE, {} }, - // .STLURB - { .STLURB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19000000, 0xFFE00C00, .BASE, {} }, - // .LDAPURH - { .LDAPURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59400000, 0xFFE00C00, .BASE, {} }, - // .STLURH - { .STLURH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59000000, 0xFFE00C00, .BASE, {} }, - // .LDAPURSB - { .LDAPURSB, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDAPURSB, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {} }, - // .LDAPURSH - { .LDAPURSH, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true} }, - { .LDAPURSH, {.W_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {} }, - // .LDAPURSW - { .LDAPURSW, {.X_REG,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true} }, - // .SVE_BFADD - { .SVE_BFADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65008000, 0xFFE0E000, .SVE, {} }, - // .SVE_BFSUB - { .SVE_BFSUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65018000, 0xFFE0E000, .SVE, {} }, - // .SVE_BFMUL - { .SVE_BFMUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65028000, 0xFFE0E000, .SVE, {} }, - // .SVE_BFMLA - { .SVE_BFMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65200000, 0xFFE0E000, .SVE, {} }, - // .SVE_BFMLS - { .SVE_BFMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VN,.VM}, 0x65202000, 0xFFE0E000, .SVE, {} }, - // .SB - { .SB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50330FF, 0xFFFFFFFF, .BASE, {} }, - // .CSDB - { .CSDB, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503229F, 0xFFFFFFFF, .BASE, {} }, - // .DGH - { .DGH, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50320DF, 0xFFFFFFFF, .BASE, {} }, - // .PSB_CSYNC - { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503223F, 0xFFFFFFFF, .BASE, {} }, - // .TSB_CSYNC - { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503225F, 0xFFFFFFFF, .BASE, {} }, - // .BTI_J - { .BTI_J, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503245F, 0xFFFFFFFF, .BTI, {} }, - // .BTI_C - { .BTI_C, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD503249F, 0xFFFFFFFF, .BTI, {} }, - // .BTI_JC - { .BTI_JC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50324DF, 0xFFFFFFFF, .BTI, {} }, - // .MOV_V_ALIAS - { .MOV_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {} }, - { .MOV_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {} }, - // .NOT_V_ALIAS - { .NOT_V_ALIAS, {.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {} }, - { .NOT_V_ALIAS, {.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {} }, - // .LSL_IMM - { .LSL_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.ENC_LSL_IMM_W,.NONE}, 0x53000000, 0xFFC00000, .BASE, {} }, - { .LSL_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.ENC_LSL_IMM_X,.NONE}, 0xD3400000, 0xFFC00000, .BASE, {is_64=true} }, - // .LSR_IMM - { .LSR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {} }, - { .LSR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, - // .ASR_IMM - { .ASR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {} }, - { .ASR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.RN,.IMM12,.NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true} }, - // .ROR_IMM - { .ROR_IMM, {.W_REG,.W_REG,.IMM_5,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x13800000, 0xFFE00000, .BASE, {} }, - { .ROR_IMM, {.X_REG,.X_REG,.IMM_6,.NONE}, {.RD,.ENC_DUAL_RN_RM,.ENC_ROR_SHIFT,.NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true} }, - // .SVE_BFADD_UNPRED - { .SVE_BFADD_UNPRED, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65000000, 0xFFE0FC00, .SVE2, {} }, - // .SVE_BFSUB_UNPRED - { .SVE_BFSUB_UNPRED, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65000400, 0xFFE0FC00, .SVE2, {} }, - // .SVE_BFMUL_UNPRED - { .SVE_BFMUL_UNPRED, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x65000800, 0xFFE0FC00, .SVE2, {} }, - // .SVE_BFCLAMP - { .SVE_BFCLAMP, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.VN,.VM,.NONE}, 0x64202400, 0xFFE0FC00, .SVE2, {} }, - // .SVE_BFMAXNM - { .SVE_BFMAXNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65048000, 0xFFE0E000, .SVE2, {} }, - // .SVE_BFMINNM - { .SVE_BFMINNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.VD,.PG,.VD,.VM}, 0x65058000, 0xFFE0E000, .SVE2, {} }, - // .SME2_LUTI2_B - { .SME2_LUTI2_B, {.Z_PAIR,.Z_PAIR,.Z_REG_B,.IMM_3}, {.ENC_Z_PAIR_VD,.ENC_Z_PAIR_VN,.VM,.IMM12}, 0xC08C4000, 0xFFE0F000, .SME, {} }, - // .SME2_LUTI4_B - { .SME2_LUTI4_B, {.Z_PAIR,.Z_PAIR,.Z_REG_B,.IMM_2}, {.ENC_Z_PAIR_VD,.ENC_Z_PAIR_VN,.VM,.IMM12}, 0xC08A4000, 0xFFE0F000, .SME, {} }, - // .SME2_LD1B_X2 - { .SME2_LD1B_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0000000, 0xFFE0E000, .SME, {} }, - // .SME2_LD1H_X2 - { .SME2_LD1H_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0002000, 0xFFE0E000, .SME, {} }, - // .SME2_LD1W_X2 - { .SME2_LD1W_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0004000, 0xFFE0E000, .SME, {} }, - // .SME2_LD1D_X2 - { .SME2_LD1D_X2, {.Z_PAIR,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0006000, 0xFFE0E000, .SME, {is_64=true} }, - // .SME2_LD1B_X4 - { .SME2_LD1B_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0008000, 0xFFE0E000, .SME, {} }, - // .SME2_LD1H_X4 - { .SME2_LD1H_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA000A000, 0xFFE0E000, .SME, {} }, - // .SME2_LD1W_X4 - { .SME2_LD1W_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA000C000, 0xFFE0E000, .SME, {} }, - // .SME2_LD1D_X4 - { .SME2_LD1D_X4, {.Z_QUAD,.P_REG_ZERO,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA000E000, 0xFFE0E000, .SME, {is_64=true} }, - // .SME2_ST1B_X2 - { .SME2_ST1B_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0200000, 0xFFE0E000, .SME, {} }, - // .SME2_ST1H_X2 - { .SME2_ST1H_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0202000, 0xFFE0E000, .SME, {} }, - // .SME2_ST1W_X2 - { .SME2_ST1W_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0204000, 0xFFE0E000, .SME, {} }, - // .SME2_ST1D_X2 - { .SME2_ST1D_X2, {.Z_PAIR,.P_REG,.MEM,.NONE}, {.ENC_Z_PAIR_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0206000, 0xFFE0E000, .SME, {is_64=true} }, - // .SME2_ST1B_X4 - { .SME2_ST1B_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA0208000, 0xFFE0E000, .SME, {} }, - // .SME2_ST1H_X4 - { .SME2_ST1H_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA020A000, 0xFFE0E000, .SME, {} }, - // .SME2_ST1W_X4 - { .SME2_ST1W_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA020C000, 0xFFE0E000, .SME, {} }, - // .SME2_ST1D_X4 - { .SME2_ST1D_X4, {.Z_QUAD,.P_REG,.MEM,.NONE}, {.ENC_Z_QUAD_VD,.PG,.SVE_OFFSET_BASE_SS,.NONE}, 0xA020E000, 0xFFE0E000, .SME, {is_64=true} }, - // .SME2_ZIP_3 - { .SME2_ZIP_3, {.Z_PAIR,.Z_REG_B,.Z_REG_B,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE}, 0xC120D000, 0xFFE0FC00, .SME, {} }, - // .SME2_ZIP_4 - { .SME2_ZIP_4, {.Z_QUAD,.Z_QUAD,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE}, 0xC136E000, 0xFFFFFC00, .SME, {} }, - // .SME2_UZP_3 - { .SME2_UZP_3, {.Z_PAIR,.Z_REG_B,.Z_REG_B,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE}, 0xC120D001, 0xFFE0FC00, .SME, {} }, - // .SME2_UZP_4 - { .SME2_UZP_4, {.Z_QUAD,.Z_QUAD,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE}, 0xC136E002, 0xFFFFFC00, .SME, {} }, - // .TLBI_RPALOS - { .TLBI_RPALOS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5084EE0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_RPAOS - { .TLBI_RPAOS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5084EA0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E1A - { .AT_S1E1A, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5079140, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CIPAPA - { .DC_CIPAPA, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7CE0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CIGDPAPA - { .DC_CIGDPAPA, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7DE0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_PAALL - { .TLBI_PAALL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508E89F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_PAALLOS - { .TLBI_PAALLOS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508E81F, 0xFFFFFFFF, .BASE, {} }, - // .AMX_LDX - { .AMX_LDX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_LDY - { .AMX_LDY, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201020, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_STX - { .AMX_STX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201040, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_STY - { .AMX_STY, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201060, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_LDZ - { .AMX_LDZ, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201080, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_STZ - { .AMX_STZ, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002010A0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_LDZI - { .AMX_LDZI, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002010C0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_STZI - { .AMX_STZI, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002010E0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_EXTRX - { .AMX_EXTRX, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201100, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_EXTRY - { .AMX_EXTRY, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201120, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_FMA64 - { .AMX_FMA64, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201140, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_FMS64 - { .AMX_FMS64, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201160, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_FMA32 - { .AMX_FMA32, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201180, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_FMS32 - { .AMX_FMS32, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002011A0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_MAC16 - { .AMX_MAC16, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002011C0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_FMA16 - { .AMX_FMA16, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002011E0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_FMS16 - { .AMX_FMS16, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201200, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_SET - { .AMX_SET, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {} }, - // .AMX_CLR - { .AMX_CLR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {} }, - // .AMX_VECINT - { .AMX_VECINT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201260, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_VECFP - { .AMX_VECFP, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x00201280, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_MATINT - { .AMX_MATINT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002012A0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_MATFP - { .AMX_MATFP, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002012C0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .AMX_GENLUT - { .AMX_GENLUT, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0x002012E0, 0xFFFFFFE0, .AMX, {is_64=true} }, - // .CPYP - { .CPYP, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true} }, - // .CPYM - { .CPYM, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true} }, - // .CPYE - { .CPYE, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true} }, - // .CPYFP - { .CPYFP, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19000400, 0xFFE03C00, .BASE, {is_64=true} }, - // .CPYFM - { .CPYFM, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19400400, 0xFFE03C00, .BASE, {is_64=true} }, - // .CPYFE - { .CPYFE, {.XSP_REG,.XSP_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19800400, 0xFFE03C00, .BASE, {is_64=true} }, - // .SETP - { .SETP, {.XSP_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19C00400, 0xFFE03C00, .BASE, {is_64=true} }, - // .SETM - { .SETM, {.XSP_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19C04400, 0xFFE03C00, .BASE, {is_64=true} }, - // .SETE - { .SETE, {.XSP_REG,.X_REG,.X_REG,.NONE}, {.RD,.RN,.RM,.NONE}, 0x19C08400, 0xFFE03C00, .BASE, {is_64=true} }, - // .DC_IVAC - { .DC_IVAC, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087620, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_ISW - { .DC_ISW, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087640, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CSW - { .DC_CSW, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087A40, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CISW - { .DC_CISW, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087E40, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_ZVA - { .DC_ZVA, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7420, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CVAC - { .DC_CVAC, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7A20, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CVAU - { .DC_CVAU, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7B20, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .DC_CIVAC - { .DC_CIVAC, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7E20, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .IC_IALLUIS - { .IC_IALLUIS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508711F, 0xFFFFFFFF, .BASE, {} }, - // .IC_IALLU - { .IC_IALLU, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508751F, 0xFFFFFFFF, .BASE, {} }, - // .IC_IVAU - { .IC_IVAU, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50B7520, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E1R - { .AT_S1E1R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087800, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E1W - { .AT_S1E1W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087820, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E0R - { .AT_S1E0R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087840, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E0W - { .AT_S1E0W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5087860, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E2R - { .AT_S1E2R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C7800, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E2W - { .AT_S1E2W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C7820, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E3R - { .AT_S1E3R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7800, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S1E3W - { .AT_S1E3W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50E7820, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S12E1R - { .AT_S12E1R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C7880, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S12E1W - { .AT_S12E1W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C78A0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S12E0R - { .AT_S12E0R, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C78C0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .AT_S12E0W - { .AT_S12E0W, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50C78E0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VMALLE1 - { .TLBI_VMALLE1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_VMALLE1IS - { .TLBI_VMALLE1IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_VAE1 - { .TLBI_VAE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088720, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VAE1IS - { .TLBI_VAE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088320, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_ASIDE1 - { .TLBI_ASIDE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088740, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_ASIDE1IS - { .TLBI_ASIDE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088340, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VAAE1 - { .TLBI_VAAE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088760, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VAAE1IS - { .TLBI_VAAE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD5088360, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VALE1 - { .TLBI_VALE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50887A0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VALE1IS - { .TLBI_VALE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50883A0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VAALE1 - { .TLBI_VAALE1, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50887E0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_VAALE1IS - { .TLBI_VAALE1IS, {.X_REG,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE}, 0xD50883E0, 0xFFFFFFE0, .BASE, {is_64=true} }, - // .TLBI_ALLE1 - { .TLBI_ALLE1, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_ALLE1IS - { .TLBI_ALLE1IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_ALLE2 - { .TLBI_ALLE2, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50C871F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_ALLE2IS - { .TLBI_ALLE2IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50C831F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_ALLE3 - { .TLBI_ALLE3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50E871F, 0xFFFFFFFF, .BASE, {} }, - // .TLBI_ALLE3IS - { .TLBI_ALLE3IS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0xD50E831F, 0xFFFFFFFF, .BASE, {} }, - // .PRFM - { .PRFM, {.IMM_5,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE}, 0xF9800000, 0xFFC00000, .BASE, {is_64=true} }, - // .PRFUM - { .PRFUM, {.IMM_5,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true} }, - // .PRFM_LIT - { .PRFM_LIT, {.IMM_5,.REL_19,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE}, 0xD8000000, 0xFF000000, .BASE, {is_64=true} }, - // .MOV_REG - { .MOV_REG, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {} }, - { .MOV_REG, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - // .MOV_BITMASK - { .MOV_BITMASK, {.W_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE}, 0x320003E0, 0xFFC003E0, .BASE, {} }, - { .MOV_BITMASK, {.X_REG,.BITMASK_IMM,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true} }, + { .CMTST, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .CMTST, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, // .MVN - { .MVN, {.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {} }, - { .MVN, {.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true} }, - // .NEG_SR - { .NEG_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {} }, - { .NEG_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true} }, + { .MVN, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MVN, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MVN, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {explicit_count=2} }, + { .MVN, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true, explicit_count=2} }, + // .BIT + { .BIT, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .BIF + { .BIF, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .BSL + { .BSL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .BSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04203C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + // .SHL + { .SHL, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SHL, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F405400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SQSHL + { .SQSHL, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F207400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHL, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F407400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SQSHLU + { .SQSHLU, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F206400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SQSHLU, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F406400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SRSHL + { .SRSHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .URSHL + { .URSHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SSHR + { .SSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F400400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .USHR + { .USHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F100400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F200400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F400400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SSRA + { .SSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F401400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .USRA + { .USRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F201400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F401400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SRSHR + { .SRSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F402400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .URSHR + { .URSHR, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F082400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F102400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F202400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSHR, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F402400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SRSRA + { .SRSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F403400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .URSRA + { .URSRA, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F083400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F203400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .URSRA, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F403400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SSHL + { .SSHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SSHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .USHL + { .USHL, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .USHL, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SLI + { .SLI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F205400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SLI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F405400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SRI + { .SRI, {.V_8B,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_16B,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_4H,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_8H,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_2S,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_4S,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F204400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .SRI, {.V_2D,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F404400, 0xFFC0FC00, .NEON, {explicit_count=3} }, + // .SSHLL + { .SSHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x0F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SSHLL2 + { .SSHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SSHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SSHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x4F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .USHLL + { .USHLL, {.V_8H,.V_8B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHLL, {.V_4S,.V_4H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHLL, {.V_2D,.V_2S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x2F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .USHLL2 + { .USHLL2, {.V_8H,.V_16B,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F08A400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .USHLL2, {.V_4S,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F10A400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .USHLL2, {.V_2D,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHL_IMM,.NONE,.NONE}, 0x6F20A400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SXTL + { .SXTL, {.V_8H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL, {.V_4S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL, {.V_2D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .SXTL2 + { .SXTL2, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL2, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .SXTL2, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .UXTL + { .UXTL, {.V_8H,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL, {.V_4S,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL, {.V_2D,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .UXTL2 + { .UXTL2, {.V_8H,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL2, {.V_4S,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .UXTL2, {.V_2D,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .SHRN + { .SHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SHRN2 + { .SHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .RSHRN + { .RSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .RSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .RSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .RSHRN2 + { .RSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .RSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .RSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQSHRN + { .SQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQSHRN2 + { .SQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .UQSHRN + { .UQSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .UQSHRN2 + { .UQSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F089400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F109400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F209400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQRSHRN + { .SQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x0F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQRSHRN2 + { .SQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x4F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .UQRSHRN + { .UQRSHRN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .UQRSHRN2 + { .UQRSHRN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F089C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F109C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .UQRSHRN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F209C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQSHRUN + { .SQSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQSHRUN2 + { .SQSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F088400, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F208400, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQRSHRUN + { .SQRSHRUN, {.V_8B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN, {.V_4H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN, {.V_2S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x2F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .SQRSHRUN2 + { .SQRSHRUN2, {.V_16B,.V_8H,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F088C00, 0xFFF8FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN2, {.V_8H,.V_4S,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {explicit_count=3} }, + { .SQRSHRUN2, {.V_4S,.V_2D,.VEC_SHIFT,.NONE,.NONE}, {.VD,.VN,.NEON_SHR_IMM,.NONE,.NONE}, 0x6F208C00, 0xFFE0FC00, .NEON, {explicit_count=3} }, + // .DUP + { .DUP, {.V_8B,.V_ELEM_B,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_16B,.V_ELEM_B,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_4H,.V_ELEM_H,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_8H,.V_ELEM_H,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_2S,.V_ELEM_S,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x0E040400, 0xFFE7FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_4S,.V_ELEM_S,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E040400, 0xFFE7FC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_2D,.V_ELEM_D,.VEC_INDEX,.NONE,.NONE}, {.VD,.VN,.NEON_IDX5,.NONE,.NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {explicit_count=3} }, + { .DUP, {.V_8B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_16B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_4H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_8H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_2S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_4S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.V_2D,.X_REG,.NONE,.NONE,.NONE}, {.VD,.RN,.NONE,.NONE,.NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .DUP, {.Z_REG_B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05203800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .DUP, {.Z_REG_H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05603800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .DUP, {.Z_REG_S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .DUP, {.Z_REG_D,.X_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true, explicit_count=2} }, + // .INS + { .INS, {.V_ELEM_B,.VEC_INDEX,.V_ELEM_B,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E010400, 0xFFE18400, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_H,.VEC_INDEX,.V_ELEM_H,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E020400, 0xFFE38C00, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_S,.VEC_INDEX,.V_ELEM_S,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E040400, 0xFFE79C00, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_D,.VEC_INDEX,.V_ELEM_D,.VEC_INDEX,.NONE}, {.VD,.NEON_IDX5,.VN,.NEON_IDX4,.NONE}, 0x6E080400, 0xFFEFBC00, .NEON, {explicit_count=4} }, + { .INS, {.V_ELEM_B,.VEC_INDEX,.W_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_H,.VEC_INDEX,.W_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_S,.VEC_INDEX,.W_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E041C00, 0xFFE7FC00, .NEON, {explicit_count=3} }, + { .INS, {.V_ELEM_D,.VEC_INDEX,.X_REG,.NONE,.NONE}, {.VD,.NEON_IDX5,.RN,.NONE,.NONE}, 0x4E081C00, 0xFFEFFC00, .NEON, {explicit_count=3} }, + // .MOV + { .MOV, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE,.NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN_VM_DUP,.NONE,.NONE,.NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {explicit_count=2} }, + { .MOV, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x0520C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .MOV, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x0560C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .MOV, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .MOV, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.ZD_ZM_DUP,.PG,.VN,.NONE,.NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .MOV, {.P_REG_B,.P_REG_ZERO,.P_REG,.NONE,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE,.NONE}, 0x25004000, 0xFFE0C210, .SVE, {explicit_count=3} }, + { .MOV, {.P_REG_B,.P_REG,.NONE,.NONE,.NONE}, {.PD,.PN_PG_PM_DUP,.NONE,.NONE,.NONE}, 0x25804000, 0xFFE0C210, .SVE, {explicit_count=2} }, + { .MOV, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {explicit_count=2} }, + { .MOV, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true, explicit_count=2} }, + { .MOV, {.W_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0x320003E0, 0xFFC003E0, .BASE, {explicit_count=2} }, + { .MOV, {.X_REG,.BITMASK_IMM,.NONE,.NONE,.NONE}, {.RD,.BITMASK_FIELD,.NONE,.NONE,.NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true, explicit_count=2} }, + { .MOV, {.B_REG,.V_ELEM_B,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E010400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.H_REG,.V_ELEM_H,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E020400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.S_REG,.V_ELEM_S,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E040400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.D_REG,.V_ELEM_D,.NONE,.NONE,.NONE}, {.VD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x5E080400, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_B,.W_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E011C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_H,.W_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E021C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_S,.W_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E041C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_D,.X_REG,.NONE,.NONE,.NONE}, {.NEON_IDX5,.RN,.NONE,.NONE,.NONE}, 0x4E081C00, 0xFFFFFC00, .NEON, {is_64=true, explicit_count=2} }, + { .MOV, {.V_ELEM_B,.V_ELEM_B,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E010400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_H,.V_ELEM_H,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E020400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_S,.V_ELEM_S,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E040400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.V_ELEM_D,.V_ELEM_D,.NONE,.NONE,.NONE}, {.NEON_IDX5,.NEON_IDX4,.NONE,.NONE,.NONE}, 0x6E080400, 0xFFFF8400, .NEON, {explicit_count=2} }, + { .MOV, {.W_REG,.V_ELEM_B,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x0E013C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.W_REG,.V_ELEM_H,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x0E023C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.W_REG,.V_ELEM_S,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x0E043C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .MOV, {.X_REG,.V_ELEM_D,.NONE,.NONE,.NONE}, {.RD,.NEON_IDX5,.NONE,.NONE,.NONE}, 0x4E083C00, 0xFFFFFC00, .NEON, {is_64=true, explicit_count=2} }, + // .EXT + { .EXT, {.V_8B,.V_8B,.V_8B,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_EXT_IDX,.NONE}, 0x2E000000, 0xFFE0C400, .NEON, {explicit_count=4} }, + { .EXT, {.V_16B,.V_16B,.V_16B,.VEC_INDEX,.NONE}, {.VD,.VN,.VM,.NEON_EXT_IDX,.NONE}, 0x6E000000, 0xFFE08400, .NEON, {explicit_count=4} }, + { .EXT, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT,.NONE}, {.VD,.VD,.VN,.SVE_EXT_IMM,.NONE}, 0x05200000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .EXT, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.VEC_SHIFT,.NONE}, {.VD,.VD,.VN,.SVE_EXT_IMM,.NONE}, 0x05200000, 0xFFE0E000, .SVE, {explicit_count=4} }, + // .TBL + { .TBL, {.V_8B,.V_16B,.V_8B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x0E000000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBL, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x4E000000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBL, {.Z_REG_B,.Z_LIST1_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05203000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TBL, {.Z_REG_H,.Z_LIST1_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05603000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TBL, {.Z_REG_S,.Z_LIST1_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TBL, {.Z_REG_D,.Z_LIST1_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .TBL, {.Z_REG_B,.Z_LIST2_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN_LIST2,.VM,.NONE,.NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .TBX + { .TBX, {.V_8B,.V_16B,.V_8B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x0E001000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBX, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN_LIST1,.VM,.NONE,.NONE}, 0x4E001000, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TBX, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05202C00, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .ZIP1 + { .ZIP1, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E003800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E003800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E403800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E403800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E803800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E803800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC03800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP1, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP1, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP1, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP1, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .ZIP1, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204000, 0xFFE0FE10, .SVE, {explicit_count=3} }, + // .ZIP2 + { .ZIP2, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E007800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E007800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E407800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E407800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E807800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E807800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC07800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .ZIP2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP2, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP2, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .ZIP2, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .ZIP2, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204400, 0xFFE0FE10, .SVE, {explicit_count=3} }, + // .UZP1 + { .UZP1, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E001800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E001800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E401800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E401800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E801800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E801800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC01800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP1, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP1, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP1, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP1, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UZP1, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204800, 0xFFE0FE10, .SVE, {explicit_count=3} }, + // .UZP2 + { .UZP2, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E005800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E005800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E405800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E405800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E805800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E805800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC05800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .UZP2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP2, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP2, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .UZP2, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UZP2, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {explicit_count=3} }, + // .TRN1 + { .TRN1, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E002800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E002800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E402800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E402800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E802800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E802800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC02800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN1, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05207000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN1, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05607000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN1, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN1, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .TRN1, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05205000, 0xFFE0FE10, .SVE, {explicit_count=3} }, + // .TRN2 + { .TRN2, {.V_8B,.V_8B,.V_8B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E006800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_16B,.V_16B,.V_16B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E006800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_4H,.V_4H,.V_4H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E406800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_8H,.V_8H,.V_8H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E406800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_2S,.V_2S,.V_2S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x0E806800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_4S,.V_4S,.V_4S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4E806800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.V_2D,.V_2D,.V_2D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4EC06800, 0xFFE0FC00, .NEON, {explicit_count=3} }, + { .TRN2, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05207400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN2, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05607400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN2, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .TRN2, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .TRN2, {.P_REG_B,.P_REG_B,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PM,.NONE,.NONE}, 0x05205400, 0xFFE0FE10, .SVE, {explicit_count=3} }, + // .NOT + { .NOT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NOT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .NOT, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.NONE,.NONE}, {.PD,.PG4_PM_DUP,.PN,.NONE,.NONE}, 0x25004200, 0xFFE0C210, .SVE, {explicit_count=3} }, + // .REV64 + { .REV64, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_4H,.V_4H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_8H,.V_8H,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .REV64, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .CNT + { .CNT, {.V_8B,.V_8B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CNT, {.V_16B,.V_16B,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .CNT, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x041AA000, 0xFFFAE000, .SVE, {explicit_count=3} }, + { .CNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x045AA000, 0xFFFAE000, .SVE, {explicit_count=3} }, + { .CNT, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x049AA000, 0xFFFAE000, .SVE, {explicit_count=3} }, + { .CNT, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x04DAA000, 0xFFFAE000, .SVE, {is_64=true, explicit_count=3} }, + // .URECPE + { .URECPE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .URECPE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .URSQRTE + { .URSQRTE, {.V_2S,.V_2S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .URSQRTE, {.V_4S,.V_4S,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .MOVI + { .MOVI, {.V_8B,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_16B,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_4H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_8H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_2S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_4S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MOVI, {.V_2D,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + // .MVNI + { .MVNI, {.V_4H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_8H,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_2S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + { .MVNI, {.V_4S,.IMM_8,.NONE,.NONE,.NONE}, {.VD,.NEON_IMM8_FMOV,.NONE,.NONE,.NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {explicit_count=2} }, + // .LD1 + { .LD1, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407000, 0xFFFFF000, .NEON, {explicit_count=2} }, + { .LD1, {.V_8H,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407400, 0xFFFFF400, .NEON, {explicit_count=2} }, + { .LD1, {.V_4S,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407800, 0xFFFFF800, .NEON, {explicit_count=2} }, + { .LD1, {.V_2D,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C407C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD1, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D400000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD1, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D404000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD1, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD1, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .LD2 + { .LD2, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST2,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C408000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD2, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D600000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D604000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD2, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .LD3 + { .LD3, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST3,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C404000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD3, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D402000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D406000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD3, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .LD4 + { .LD4, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST4,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C400000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .LD4, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D602000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D606000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .LD4, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .ST1 + { .ST1, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007000, 0xFFFFF000, .NEON, {explicit_count=2} }, + { .ST1, {.V_8H,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007400, 0xFFFFF400, .NEON, {explicit_count=2} }, + { .ST1, {.V_4S,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007800, 0xFFFFF800, .NEON, {explicit_count=2} }, + { .ST1, {.V_2D,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST1, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D000000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST1, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D004000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST1, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST1, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST1,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .ST2 + { .ST2, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST2,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C008000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST2, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D200000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D204000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST2, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST2,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .ST3 + { .ST3, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST3,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C004000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST3, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D002000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D006000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST3, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST3,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .ST4 + { .ST4, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST4,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4C000000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + { .ST4, {.V_ELEM_B,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_B,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D202000, 0xBFFFE000, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_H,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_H,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D206000, 0xBFFFE400, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_S,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_S,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {explicit_count=3} }, + { .ST4, {.V_ELEM_D,.VEC_INDEX,.MEM_OFFSET,.NONE,.NONE}, {.VD_LIST4,.NEON_LANE_D,.OFFSET_BASE_A,.NONE,.NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {explicit_count=3} }, + // .LD1R + { .LD1R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST1,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D40C000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .LD2R + { .LD2R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST2,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .LD3R + { .LD3R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST3,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .LD4R + { .LD4R, {.V_16B,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.VD_LIST4,.OFFSET_BASE_A,.NONE,.NONE,.NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {explicit_count=2} }, + // .SUBR + { .SUBR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04030000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUBR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04430000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUBR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04830000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .SUBR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04C30000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .ASRR + { .ASRR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04148000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASRR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04548000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASRR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04948000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .ASRR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .LSLR + { .LSLR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04178000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSLR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04578000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSLR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04978000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSLR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .LSRR + { .LSRR, {.Z_REG_B,.P_REG_MERGE,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04158000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSRR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04558000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSRR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04958000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .LSRR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .FTSMUL + { .FTSMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FTSMUL, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .FTSMUL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .FSUBR + { .FSUBR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65438000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUBR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65838000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FSUBR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .FDIVR + { .FDIVR, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x654C8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIVR, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x658C8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .FDIVR, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=4} }, + // .FNMLA + { .FNMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65604000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLA, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A04000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLA, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + // .FNMLS + { .FNMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65606000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLS, {.Z_REG_S,.P_REG_MERGE,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65A06000, 0xFFE0E000, .SVE, {explicit_count=4} }, + { .FNMLS, {.Z_REG_D,.P_REG_MERGE,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=4} }, + // .NAND + { .NAND, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804210, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .NOR + { .NOR, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25804200, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .SEL + { .SEL, {.P_REG_B,.P_REG,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25004210, 0xFFE0C210, .SVE, {explicit_count=4} }, + // .ORRS + { .ORRS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04000, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .EORS + { .EORS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .NANDS + { .NANDS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04210, 0xFFF0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .NORS + { .NORS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04200, 0xFFF0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .ORNS + { .ORNS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x25C04010, 0xFFF0C210, .SVE, {sets_flags=true, explicit_count=4} }, + // .MOVS + { .MOVS, {.P_REG_B,.P_REG_ZERO,.P_REG,.NONE,.NONE}, {.PD,.PG4,.PN_PM_DUP,.NONE,.NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true, explicit_count=3} }, + // .PTRUE + { .PTRUE, {.P_REG_B,.SVE_PATTERN,.NONE,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE,.NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {explicit_count=2} }, + // .PTRUES + { .PTRUES, {.P_REG_B,.SVE_PATTERN,.NONE,.NONE,.NONE}, {.PD,.SVE_PATTERN,.NONE,.NONE,.NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true, explicit_count=2} }, + // .PFALSE + { .PFALSE, {.P_REG_B,.NONE,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE,.NONE}, 0x2518E400, 0xFFFFFFF0, .SVE, {explicit_count=1} }, + // .PFIRST + { .PFIRST, {.P_REG_B,.P_REG,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PD,.NONE,.NONE}, 0x2558C000, 0xFFFFFE10, .SVE, {explicit_count=3} }, + // .PNEXT + { .PNEXT, {.P_REG_B,.P_REG,.P_REG_B,.NONE,.NONE}, {.PD,.PN,.PD,.NONE,.NONE}, 0x2519C400, 0xFFFFFE10, .SVE, {explicit_count=3} }, + // .BRKA + { .BRKA, {.P_REG_B,.P_REG_MERGE,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25104010, 0xFFFFC210, .SVE, {explicit_count=3} }, + // .BRKB + { .BRKB, {.P_REG_B,.P_REG_MERGE,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25904010, 0xFFFFC210, .SVE, {explicit_count=3} }, + // .BRKAS + { .BRKAS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true, explicit_count=3} }, + // .BRKBS + { .BRKBS, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.NONE,.NONE}, {.PD,.PG4,.PN,.NONE,.NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true, explicit_count=3} }, + // .BRKPA + { .BRKPA, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x2500C000, 0xFFF0C210, .SVE, {explicit_count=4} }, + // .BRKPB + { .BRKPB, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PM,.NONE}, 0x2500C010, 0xFFF0C210, .SVE, {explicit_count=4} }, + // .BRKN + { .BRKN, {.P_REG_B,.P_REG_ZERO,.P_REG_B,.P_REG_B,.NONE}, {.PD,.PG4,.PN,.PD,.NONE}, 0x25184000, 0xFFFFC210, .SVE, {explicit_count=4} }, + // .RDFFR + { .RDFFR, {.P_REG_B,.NONE,.NONE,.NONE,.NONE}, {.PD,.NONE,.NONE,.NONE,.NONE}, 0x2519F000, 0xFFFFFFF0, .SVE, {explicit_count=1} }, + // .WRFFR + { .WRFFR, {.P_REG_B,.NONE,.NONE,.NONE,.NONE}, {.PN,.NONE,.NONE,.NONE,.NONE}, 0x25289000, 0xFFFFFE1F, .SVE, {explicit_count=1} }, + // .SETFFR + { .SETFFR, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0x252C9000, 0xFFFFFFFF, .SVE, {} }, + // .CMPEQ + { .CMPEQ, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPEQ, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPNE + { .CMPNE, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPNE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPNE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPNE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPGE + { .CMPGE, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPGT + { .CMPGT, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPGT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPLE + { .CMPLE, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPLT + { .CMPLT, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLT, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLT, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLT, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPHI + { .CMPHI, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHI, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHI, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHI, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPHS + { .CMPHS, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHS, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHS, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPHS, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPLO + { .CMPLO, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLO, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLO, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLO, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .CMPLS + { .CMPLS, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLS, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLS, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true, explicit_count=4} }, + { .CMPLS, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VM,.VN,.NONE}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true, explicit_count=4} }, + // .FCMNE + { .FCMNE, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65406010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMNE, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65806010, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMNE, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + // .FCMUO + { .FCMUO, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x6540C000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMUO, {.P_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x6580C000, 0xFFE0E010, .SVE, {explicit_count=4} }, + { .FCMUO, {.P_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x65C0C000, 0xFFE0E010, .SVE, {is_64=true, explicit_count=4} }, + // .INSR + { .INSR, {.Z_REG_B,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05243800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .INSR, {.Z_REG_H,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05643800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .INSR, {.Z_REG_S,.W_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {explicit_count=2} }, + { .INSR, {.Z_REG_D,.X_REG,.NONE,.NONE,.NONE}, {.VD,.VN,.NONE,.NONE,.NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true, explicit_count=2} }, + // .CPY + { .CPY, {.Z_REG_B,.P_REG_MERGE,.W_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0528A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .CPY, {.Z_REG_H,.P_REG_MERGE,.W_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x0568A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .CPY, {.Z_REG_S,.P_REG_MERGE,.W_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .CPY, {.Z_REG_D,.P_REG_MERGE,.X_REG,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + // .COMPACT + { .COMPACT, {.Z_REG_S,.P_REG_GOV,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05A18000, 0xFFFFE000, .SVE, {explicit_count=3} }, + { .COMPACT, {.Z_REG_D,.P_REG_GOV,.Z_REG_D,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true, explicit_count=3} }, + // .LD1B + { .LD1B, {.Z_REG_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA4004000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1B, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84004000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1B, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4004000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1B, {.SME_SLICE_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE0000000, 0xFFE00010, .SME, {explicit_count=3} }, + { .LD1B, {.Z_PAIR_B,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0000000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1B, {.Z_QUAD_B,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0008000, 0xFFE0E000, .SME, {explicit_count=3} }, + // .LD1H + { .LD1H, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1H, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84804000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1H, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4804000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1H, {.SME_SLICE_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE0400000, 0xFFE00010, .SME, {explicit_count=3} }, + { .LD1H, {.Z_PAIR_H,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA0002000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1H, {.Z_QUAD_H,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA000A000, 0xFFE0E000, .SME, {explicit_count=3} }, + // .LD1W + { .LD1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA5404000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x85004000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1W, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC5004000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1W, {.SME_SLICE_W,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE0800000, 0xFFE00010, .SME, {explicit_count=3} }, + { .LD1W, {.Z_PAIR_S,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA0004000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .LD1W, {.Z_QUAD_S,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA000C000, 0xFFE0E000, .SME, {explicit_count=3} }, + // .LD1D + { .LD1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA5E04000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC5804000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1D, {.SME_SLICE_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE0C00000, 0xFFE00010, .SME, {is_64=true, explicit_count=3} }, + { .LD1D, {.Z_PAIR_D,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA0006000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + { .LD1D, {.Z_QUAD_D,.PN_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA000E000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + // .LD1SB + { .LD1SB, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA5C04000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1SB, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84000000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1SB, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4000000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + // .LD1SH + { .LD1SH, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA5004000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1SH, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA5204000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .LD1SH, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_S,.NONE,.NONE}, 0x84800000, 0xFFA0E000, .SVE, {explicit_count=3} }, + { .LD1SH, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC4800000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + // .LD1SW + { .LD1SW, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA4804000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .LD1SW, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VEC_D,.NONE,.NONE}, 0xC5000000, 0xFFA0E000, .SVE, {is_64=true, explicit_count=3} }, + // .ST1B + { .ST1B, {.Z_REG_B,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE4004000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .ST1B, {.Z_REG_S,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_S,.NONE,.NONE}, 0xE4408000, 0xFFE0A000, .SVE, {explicit_count=3} }, + { .ST1B, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE4008000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1B, {.SME_SLICE_B,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_B,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE0200000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1B, {.Z_PAIR_B,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0200000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1B, {.Z_QUAD_B,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA0208000, 0xFFE0E000, .SME, {explicit_count=3} }, + // .ST1H + { .ST1H, {.Z_REG_H,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE4A04000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .ST1H, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE4808000, 0xFFE0A000, .SVE, {explicit_count=3} }, + { .ST1H, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE4808000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1H, {.SME_SLICE_H,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_H,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE0600000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1H, {.Z_PAIR_H,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA0202000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1H, {.Z_QUAD_H,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA020A000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1H, {.Z_REG_S,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_S,.NONE,.NONE}, 0xE4C08000, 0xFFE0A000, .SME, {explicit_count=3} }, + // .ST1W + { .ST1W, {.Z_REG_S,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE5404000, 0xFFE0E000, .SVE, {explicit_count=3} }, + { .ST1W, {.Z_REG_S,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_S,.NONE,.NONE}, 0xE5408000, 0xFFE0A000, .SVE, {explicit_count=3} }, + { .ST1W, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE5008000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1W, {.SME_SLICE_W,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_W,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE0A00000, 0xFFE00010, .SME, {explicit_count=3} }, + { .ST1W, {.Z_PAIR_S,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA0204000, 0xFFE0E000, .SME, {explicit_count=3} }, + { .ST1W, {.Z_QUAD_S,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA020C000, 0xFFE0E000, .SME, {explicit_count=3} }, + // .ST1D + { .ST1D, {.Z_REG_D,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE5E04000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1D, {.Z_REG_D,.P_REG,.MEM_SVE_VEC,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_VECST_D,.NONE,.NONE}, 0xE5808000, 0xFFE0A000, .SVE, {is_64=true, explicit_count=3} }, + { .ST1D, {.SME_SLICE_D,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_D,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE0E00000, 0xFFE00010, .SME, {is_64=true, explicit_count=3} }, + { .ST1D, {.Z_PAIR_D,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA0206000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + { .ST1D, {.Z_QUAD_D,.PN_REG,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.PNG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA020E000, 0xFFE0E000, .SME, {is_64=true, explicit_count=3} }, + // .LDFF1B + { .LDFF1B, {.Z_REG_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA4006000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDFF1H + { .LDFF1H, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA4A06000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDFF1W + { .LDFF1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA5406000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDFF1D + { .LDFF1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA5E06000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + // .WHILEGE + { .WHILEGE, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGE, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILEGT + { .WHILEGT, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEGT, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILELE + { .WHILELE, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELE, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILELT + { .WHILELT, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELT, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILEHI + { .WHILEHI, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHI, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILEHS + { .WHILEHS, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILEHS, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILELO + { .WHILELO, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELO, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .WHILELS + { .WHILELS, {.P_REG_B,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25201C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_H,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25601C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_S,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25A01C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + { .WHILELS, {.P_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.PD,.RN,.RM,.NONE,.NONE}, 0x25E01C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true, explicit_count=3} }, + // .SQRDMLAH + { .SQRDMLAH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLAH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .SQRDMLSH + { .SQRDMLSH, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SQRDMLSH, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .ADCLB + { .ADCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .ADCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .ADCLT + { .ADCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .ADCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .SBCLB + { .SBCLB, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SBCLB, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .SBCLT + { .SBCLT, {.Z_REG_S,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + { .SBCLT, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .MATCH + { .MATCH, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + { .MATCH, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + // .NMATCH + { .NMATCH, {.P_REG_B,.P_REG_ZERO,.Z_REG_B,.Z_REG_B,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + { .NMATCH, {.P_REG_H,.P_REG_ZERO,.Z_REG_H,.Z_REG_H,.NONE}, {.PD,.PG,.VN,.VM,.NONE}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true, explicit_count=4} }, + // .HISTCNT + { .HISTCNT, {.Z_REG_S,.P_REG_ZERO,.Z_REG_S,.Z_REG_S,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x45A0C000, 0xFFE0E000, .SVE2, {explicit_count=4} }, + { .HISTCNT, {.Z_REG_D,.P_REG_ZERO,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x45E0C000, 0xFFE0E000, .SVE2, {is_64=true, explicit_count=4} }, + // .HISTSEG + { .HISTSEG, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x4520A000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .SMSTART + { .SMSTART, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503477F, 0xFFFFFFFF, .SME, {} }, + // .SMSTOP + { .SMSTOP, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503467F, 0xFFFFFFFF, .SME, {} }, + // .RDSVL + { .RDSVL, {.X_REG,.IMM_6,.NONE,.NONE,.NONE}, {.RD,.ENC_IMM6_LO,.NONE,.NONE,.NONE}, 0x04BF5800, 0xFFFFF800, .SME, {is_64=true, explicit_count=2} }, + // .ADDHA + { .ADDHA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZA_TILE_LOW,.PG,.PM3,.VN,.NONE}, 0xC0900000, 0xFFFF001C, .SME, {explicit_count=4} }, + // .ADDVA + { .ADDVA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.NONE}, {.ZA_TILE_LOW,.PG,.PM3,.VN,.NONE}, 0xC0910000, 0xFFFF001C, .SME, {explicit_count=4} }, + // .ZERO + { .ZERO, {.SME_PATTERN,.NONE,.NONE,.NONE,.NONE}, {.SME_ZA_MASK,.NONE,.NONE,.NONE,.NONE}, 0xC0080000, 0xFFFFFF00, .SME, {explicit_count=1} }, + // .FMOPA + { .FMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x80800000, 0xFFE08010, .SME, {explicit_count=5} }, + // .FMOPS + { .FMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_S,.Z_REG_S}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x80800010, 0xFFE08010, .SME, {explicit_count=5} }, + // .BFMOPA + { .BFMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x81800000, 0xFFE08010, .SME, {explicit_count=5} }, + // .BFMOPS + { .BFMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0x81800010, 0xFFE08010, .SME, {explicit_count=5} }, + // .SMOPA + { .SMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA0800000, 0xFFE08010, .SME, {explicit_count=5} }, + { .SMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + // .SMOPS + { .SMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA0800010, 0xFFE08010, .SME, {explicit_count=5} }, + { .SMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + // .UMOPA + { .UMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA1A00000, 0xFFE08010, .SME, {explicit_count=5} }, + { .UMOPA, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + // .UMOPS + { .UMOPS, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA1A00010, 0xFFE08010, .SME, {explicit_count=5} }, + { .UMOPS, {.ZA_TILE_D,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_H,.Z_REG_H}, {.ZA_TILE_NUM_D,.PG,.PM3,.VN,.VM}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true, explicit_count=5} }, + // .USMOPA + { .USMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA1800000, 0xFFE08010, .SME, {explicit_count=5} }, + // .SUMOPA + { .SUMOPA, {.ZA_TILE_S,.P_REG_MERGE,.P_REG_MERGE,.Z_REG_B,.Z_REG_B}, {.ZA_TILE_NUM_S,.PG,.PM3,.VN,.VM}, 0xA0A00000, 0xFFE08010, .SME, {explicit_count=5} }, + // .CNTB + { .CNTB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0420E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .CNTH + { .CNTH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .CNTW + { .CNTW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .CNTD + { .CNTD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .INCB + { .INCB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .INCH + { .INCH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .INCW + { .INCW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .INCD + { .INCD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0E000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .INCD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .DECB + { .DECB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + // .DECH + { .DECH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .DECW + { .DECW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .DECD + { .DECD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0E400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .DECD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .SQINCB + { .SQINCB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCB, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0420F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + // .SQINCH + { .SQINCH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCH, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0460F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .SQINCW + { .SQINCW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCW, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04A0F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .SQINCD + { .SQINCD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0F000, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQINCD, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04E0F000, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQINCD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0C000, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .SQDECB + { .SQDECB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECB, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0420F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + // .SQDECH + { .SQDECH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECH, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x0460F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460C800, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .SQDECW + { .SQDECW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECW, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04A0F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0C800, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .SQDECD + { .SQDECD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0F800, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .SQDECD, {.X_REG,.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE}, {.RD,.RD,.SVE_PATTERN,.IMM_MUL4,.NONE}, 0x04E0F800, 0xFFF0FC00, .SVE, {explicit_count=4} }, + { .SQDECD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0C800, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQINCB + { .UQINCB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCB, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0420F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQINCH + { .UQINCH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCH, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQINCW + { .UQINCW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCW, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQINCD + { .UQINCD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0F400, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQINCD, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0F400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQINCD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0C400, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQDECB + { .UQDECB, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0430FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECB, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0420FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQDECH + { .UQDECH, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0470FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECH, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECH, {.Z_REG_H,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x0460CC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQDECW + { .UQDECW, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04B0FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECW, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECW, {.Z_REG_S,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04A0CC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .UQDECD + { .UQDECD, {.X_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04F0FC00, 0xFFF0FC00, .SVE, {is_64=true, explicit_count=3} }, + { .UQDECD, {.W_REG,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.RD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0FC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + { .UQDECD, {.Z_REG_D,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, {.VD,.SVE_PATTERN,.IMM_MUL4,.NONE,.NONE}, 0x04E0CC00, 0xFFF0FC00, .SVE, {explicit_count=3} }, + // .CNTP + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_B,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25208020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_H,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25608020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_S,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25A08020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + { .CNTP, {.X_REG,.P_REG_GOV,.P_REG_D,.NONE,.NONE}, {.RD,.PG,.PN,.NONE,.NONE}, 0x25E08020, 0xFFFFE220, .SVE, {is_64=true, explicit_count=3} }, + // .INCP + { .INCP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252C8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256C8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AC8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EC8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .INCP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256C8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .INCP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AC8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .INCP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25EC8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + // .DECP + { .DECP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252D8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256D8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AD8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25ED8800, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .DECP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256D8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .DECP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AD8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .DECP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25ED8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + // .SQINCP + { .SQINCP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25288C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25688C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25A88C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25E88C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQINCP, {.X_REG,.P_REG_B,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25288800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.X_REG,.P_REG_H,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25688800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.X_REG,.P_REG_S,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25A88800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.X_REG,.P_REG_D,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25E88800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQINCP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25688000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQINCP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25A88000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQINCP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25E88000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + // .SQDECP + { .SQDECP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252A8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256A8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AA8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EA8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .SQDECP, {.X_REG,.P_REG_B,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x252A8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.X_REG,.P_REG_H,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x256A8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.X_REG,.P_REG_S,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25AA8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.X_REG,.P_REG_D,.W_REG,.NONE,.NONE}, {.RD,.PN,.RD,.NONE,.NONE}, 0x25EA8800, 0xFFFFFE00, .SVE, {explicit_count=3} }, + { .SQDECP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256A8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQDECP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AA8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .SQDECP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25EA8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + // .UQINCP + { .UQINCP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25298C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25698C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25A98C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25E98C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25298800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25698800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25A98800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.W_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25E98800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25698000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25A98000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQINCP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25E98000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + // .UQDECP + { .UQDECP, {.X_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252B8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256B8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AB8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.X_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EB8C00, 0xFFFFFE00, .SVE, {is_64=true, explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_B,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x252B8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_H,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x256B8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_S,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25AB8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.W_REG,.P_REG_D,.NONE,.NONE,.NONE}, {.RD,.PN,.NONE,.NONE,.NONE}, 0x25EB8800, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.Z_REG_H,.P_REG_H,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x256B8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.Z_REG_S,.P_REG_S,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25AB8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + { .UQDECP, {.Z_REG_D,.P_REG_D,.NONE,.NONE,.NONE}, {.VD,.PN,.NONE,.NONE,.NONE}, 0x25EB8000, 0xFFFFFE00, .SVE, {explicit_count=2} }, + // .LD1Q + { .LD1Q, {.SME_SLICE_Q,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS4,.NONE,.NONE}, 0xE1C00000, 0xFFE00010, .SME, {explicit_count=3} }, + // .ST1Q + { .ST1Q, {.SME_SLICE_Q,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.SME_SLICE_Q,.PG,.SVE_OFFSET_BASE_SS4,.NONE,.NONE}, 0xE1E00000, 0xFFE00010, .SME, {explicit_count=3} }, + // .MOVA + { .MOVA, {.Z_REG_B,.P_REG_MERGE,.SME_SLICE_B,.NONE,.NONE}, {.VD,.PG,.SME_SLICE_B,.NONE,.NONE}, 0xC0020000, 0xFFE28010, .SME, {explicit_count=3} }, + { .MOVA, {.SME_SLICE_B,.P_REG_MERGE,.Z_REG_B,.NONE,.NONE}, {.SME_SLICE_B,.PG,.VN,.NONE,.NONE}, 0xC0000000, 0xFFE08010, .SME, {explicit_count=3} }, + // .FCMLA + { .FCMLA, {.V_4H,.V_4H,.V_4H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x2E40C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCMLA, {.V_8H,.V_8H,.V_8H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x6E40C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCMLA, {.V_4S,.V_4S,.V_4S,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x6E80C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + { .FCMLA, {.V_2D,.V_2D,.V_2D,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCMLA_ROT,.NONE}, 0x6EC0C400, 0xFFE0CC00, .NEON, {explicit_count=4} }, + // .FCADD + { .FCADD, {.V_4H,.V_4H,.V_4H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x2E40E400, 0xFFE0EC00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_8H,.V_8H,.V_8H,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x6E40E400, 0xFFE0EC00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_4S,.V_4S,.V_4S,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x6E80E400, 0xFFA0EC00, .NEON, {explicit_count=4} }, + { .FCADD, {.V_2D,.V_2D,.V_2D,.IMM_2,.NONE}, {.VD,.VN,.VM,.ENC_FCADD_ROT,.NONE}, 0x6EC0E400, 0xFFE0EC00, .NEON, {explicit_count=4} }, + // .PRFB + { .PRFB, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0x8400C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .PRFH + { .PRFH, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0x8480C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .PRFW + { .PRFW, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0x8500C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .PRFD + { .PRFD, {.IMM_4,.P_REG_GOV,.MEM_SVE_SS,.NONE,.NONE}, {.ENC_SVE_PRFOP,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0x8580C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDNT1B + { .LDNT1B, {.Z_REG_B,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xA400C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDNT1H + { .LDNT1H, {.Z_REG_H,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xA480C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDNT1W + { .LDNT1W, {.Z_REG_S,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xA500C000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .LDNT1D + { .LDNT1D, {.Z_REG_D,.P_REG_ZERO,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xA580C000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + // .STNT1B + { .STNT1B, {.Z_REG_B,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS,.NONE,.NONE}, 0xE4006000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .STNT1H + { .STNT1H, {.Z_REG_H,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS1,.NONE,.NONE}, 0xE4806000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .STNT1W + { .STNT1W, {.Z_REG_S,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS2,.NONE,.NONE}, 0xE5006000, 0xFFE0E000, .SVE, {explicit_count=3} }, + // .STNT1D + { .STNT1D, {.Z_REG_D,.P_REG,.MEM_SVE_SS,.NONE,.NONE}, {.VD_LIST1,.PG,.SVE_OFFSET_BASE_SS3,.NONE,.NONE}, 0xE5806000, 0xFFE0E000, .SVE, {is_64=true, explicit_count=3} }, + // .SPLICE + { .SPLICE, {.Z_REG_B,.P_REG_GOV,.Z_REG_B,.Z_REG_B,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x052C8000, 0xFFFFE000, .SVE, {explicit_count=4} }, + // .INDEX + { .INDEX, {.Z_REG_B,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04204000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.IMM_5,.W_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04204800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.W_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04204400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_B,.W_REG,.W_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04204C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04604000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.IMM_5,.W_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04604800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.W_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04604400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_H,.W_REG,.W_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04604C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04A04000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.IMM_5,.W_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04A04800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.W_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04A04400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_S,.W_REG,.W_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04A04C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.IMM_5,.IMM_5,.NONE,.NONE}, {.VD,.SVE_IMM5A,.SVE_IMM5,.NONE,.NONE}, 0x04E04000, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.IMM_5,.X_REG,.NONE,.NONE}, {.VD,.SVE_IMM5A,.RM,.NONE,.NONE}, 0x04E04800, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.X_REG,.IMM_5,.NONE,.NONE}, {.VD,.RN,.SVE_IMM5,.NONE,.NONE}, 0x04E04400, 0xFFE0FC00, .SVE, {explicit_count=3} }, + { .INDEX, {.Z_REG_D,.X_REG,.X_REG,.NONE,.NONE}, {.VD,.RN,.RM,.NONE,.NONE}, 0x04E04C00, 0xFFE0FC00, .SVE, {explicit_count=3} }, + // .BSL1N + { .BSL1N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04603C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + // .BSL2N + { .BSL2N, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04A03C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + // .NBSL + { .NBSL, {.Z_REG_D,.Z_REG_D,.Z_REG_D,.Z_REG_D,.NONE}, {.VD,.VD,.VM,.VN,.NONE}, 0x04E03C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=4} }, + // .PMUL + { .PMUL, {.Z_REG_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x04206400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .PMULLB + { .PMULLB, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C06800, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .PMULLT + { .PMULLT, {.Z_REG_D,.Z_REG_S,.Z_REG_S,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x45C06C00, 0xFFE0FC00, .SVE2, {is_64=true, explicit_count=3} }, + // .BFCVTNT + { .BFCVTNT, {.Z_REG_H,.P_REG_MERGE,.Z_REG_S,.NONE,.NONE}, {.VD,.PG,.VN,.NONE,.NONE}, 0x648AA000, 0xFFFFE000, .SVE, {explicit_count=3} }, + // .LDRAA + { .LDRAA, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + { .LDRAA, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8200C00, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + // .LDRAB + { .LDRAB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF8A00400, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + { .LDRAB, {.X_REG,.MEM_PRE,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_PRE,.NONE,.NONE,.NONE}, 0xF8A00C00, 0xFFA00C00, .PAC, {is_64=true, explicit_count=2} }, + // .TSTART + { .TSTART, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5233060, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TCOMMIT + { .TCOMMIT, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503307F, 0xFFFFFFFF, .BASE, {} }, + // .TCANCEL + { .TCANCEL, {.IMM_16,.NONE,.NONE,.NONE,.NONE}, {.IMM16,.NONE,.NONE,.NONE,.NONE}, 0xD4600000, 0xFFE0001F, .BASE, {explicit_count=1} }, + // .TTEST + { .TTEST, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5233160, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .WFET + { .WFET, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5031000, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .WFIT + { .WFIT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5031020, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .BC_EQ + { .BC_EQ, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000010, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_NE + { .BC_NE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000011, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_CS + { .BC_CS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000012, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_CC + { .BC_CC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000013, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_MI + { .BC_MI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000014, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_PL + { .BC_PL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000015, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_VS + { .BC_VS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000016, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_VC + { .BC_VC, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000017, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_HI + { .BC_HI, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000018, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_LS + { .BC_LS, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x54000019, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_GE + { .BC_GE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001A, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_LT + { .BC_LT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001B, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_GT + { .BC_GT, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001C, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_LE + { .BC_LE, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001D, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_AL + { .BC_AL, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001E, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .BC_NV + { .BC_NV, {.REL_19,.NONE,.NONE,.NONE,.NONE}, {.BRANCH_19,.NONE,.NONE,.NONE,.NONE}, 0x5400001F, 0xFF00001F, .BASE, {cond_branch=true, explicit_count=1} }, + // .UXTB + { .UXTB, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x53001C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + // .UXTH + { .UXTH, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x53003C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + // .UXTW + { .UXTW, {.X_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0xD3407C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + // .SXTB + { .SXTB, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + // .SXTH + { .SXTH, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {explicit_count=2} }, + // .SXTW + { .SXTW, {.X_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RN,.NONE,.NONE,.NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true, explicit_count=2} }, + // .ADC + { .ADC, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .ADC, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + // .ADCS + { .ADCS, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true, explicit_count=3} }, + { .ADCS, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + // .SBC + { .SBC, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {explicit_count=3} }, + { .SBC, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true, explicit_count=3} }, + // .SBCS + { .SBCS, {.W_REG,.W_REG,.W_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true, explicit_count=3} }, + { .SBCS, {.X_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true, explicit_count=3} }, + // .NGC + { .NGC, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {explicit_count=2} }, + { .NGC, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true, explicit_count=2} }, + // .NGCS + { .NGCS, {.W_REG,.W_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, explicit_count=2} }, + { .NGCS, {.X_REG,.X_REG,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + // .LDAPUR + { .LDAPUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x99400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .LDAPUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + // .STLUR + { .STLUR, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x99000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + { .STLUR, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + // .LDAPURB + { .LDAPURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + // .STLURB + { .STLURB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + // .LDAPURH + { .LDAPURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59400000, 0xFFE00C00, .BASE, {explicit_count=2} }, + // .STLURH + { .STLURH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59000000, 0xFFE00C00, .BASE, {explicit_count=2} }, + // .LDAPURSB + { .LDAPURSB, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDAPURSB, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x19C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, + // .LDAPURSH + { .LDAPURSH, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + { .LDAPURSH, {.W_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x59C00000, 0xFFE00C00, .BASE, {explicit_count=2} }, + // .LDAPURSW + { .LDAPURSW, {.X_REG,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, + // .BFADD + { .BFADD, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65008000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFADD, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65000000, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .BFSUB + { .BFSUB, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65018000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFSUB, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65000400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .BFMUL + { .BFMUL, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65028000, 0xFFFFE000, .SVE, {explicit_count=4} }, + { .BFMUL, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x65000800, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .BFMLA + { .BFMLA, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65200000, 0xFFE0E000, .SVE, {explicit_count=4} }, + // .BFMLS + { .BFMLS, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VN,.VM,.NONE}, 0x65202000, 0xFFE0E000, .SVE, {explicit_count=4} }, + // .SB + { .SB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50330FF, 0xFFFFFFFF, .BASE, {} }, + // .CSDB + { .CSDB, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503229F, 0xFFFFFFFF, .BASE, {} }, + // .DGH + { .DGH, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50320DF, 0xFFFFFFFF, .BASE, {} }, + // .PSB_CSYNC + { .PSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503223F, 0xFFFFFFFF, .BASE, {} }, + // .TSB_CSYNC + { .TSB_CSYNC, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503225F, 0xFFFFFFFF, .BASE, {} }, + // .BTI_J + { .BTI_J, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503249F, 0xFFFFFFFF, .BTI, {} }, + // .BTI_C + { .BTI_C, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD503245F, 0xFFFFFFFF, .BTI, {} }, + // .BTI_JC + { .BTI_JC, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50324DF, 0xFFFFFFFF, .BTI, {} }, + // .BFCLAMP + { .BFCLAMP, {.Z_REG_H,.Z_REG_H,.Z_REG_H,.NONE,.NONE}, {.VD,.VN,.VM,.NONE,.NONE}, 0x64202400, 0xFFE0FC00, .SVE2, {explicit_count=3} }, + // .BFMAXNM + { .BFMAXNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65048000, 0xFFFFE000, .SVE2, {explicit_count=4} }, + // .BFMINNM + { .BFMINNM, {.Z_REG_H,.P_REG_MERGE,.Z_REG_H,.Z_REG_H,.NONE}, {.VD,.PG,.VD,.VN,.NONE}, 0x65058000, 0xFFFFE000, .SVE2, {explicit_count=4} }, + // .LUTI2 + { .LUTI2, {.Z_PAIR_B,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08C4000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI2, {.Z_PAIR_H,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08C5000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI2, {.Z_PAIR_S,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08C6000, 0xFFFE7C00, .SME, {explicit_count=4} }, + // .LUTI4 + { .LUTI4, {.Z_PAIR_B,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08A4000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI4, {.Z_PAIR_H,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08A5000, 0xFFFE7C00, .SME, {explicit_count=4} }, + { .LUTI4, {.Z_PAIR_S,.ZT_REG,.Z_REG_ANY,.VEC_INDEX,.NONE}, {.ENC_Z_PAIR_VD,.ENC_ZT0,.VN,.LUTI_IDX,.NONE}, 0xC08A6000, 0xFFFE7C00, .SME, {explicit_count=4} }, + // .ZIP + { .ZIP, {.Z_PAIR_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE,.NONE}, 0xC120D000, 0xFFE0FC00, .SME, {explicit_count=3} }, + { .ZIP, {.Z_QUAD_B,.Z_QUAD_B,.NONE,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE,.NONE}, 0xC136E000, 0xFFFFFC00, .SME, {explicit_count=2} }, + // .UZP + { .UZP, {.Z_PAIR_B,.Z_REG_B,.Z_REG_B,.NONE,.NONE}, {.ENC_Z_PAIR_VD,.VN,.VM,.NONE,.NONE}, 0xC120D001, 0xFFE0FC01, .SME, {explicit_count=3} }, + { .UZP, {.Z_QUAD_B,.Z_QUAD_B,.NONE,.NONE,.NONE}, {.ENC_Z_QUAD_VD,.ENC_Z_QUAD_VN,.NONE,.NONE,.NONE}, 0xC136E002, 0xFFFFFC02, .SME, {explicit_count=2} }, + // .TLBI_RPALOS + { .TLBI_RPALOS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5084EE0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_RPAOS + { .TLBI_RPAOS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5084EA0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E1A + { .AT_S1E1A, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5079140, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CIPAPA + { .DC_CIPAPA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7CE0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CIGDPAPA + { .DC_CIGDPAPA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7DE0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_PAALL + { .TLBI_PAALL, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E879F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_PAALLOS + { .TLBI_PAALLOS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E819F, 0xFFFFFFFF, .BASE, {} }, + // .AMX_LDX + { .AMX_LDX, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_LDY + { .AMX_LDY, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201020, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_STX + { .AMX_STX, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201040, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_STY + { .AMX_STY, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201060, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_LDZ + { .AMX_LDZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201080, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_STZ + { .AMX_STZ, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002010A0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_LDZI + { .AMX_LDZI, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002010C0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_STZI + { .AMX_STZI, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002010E0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_EXTRX + { .AMX_EXTRX, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201100, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_EXTRY + { .AMX_EXTRY, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201120, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_FMA64 + { .AMX_FMA64, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201140, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_FMS64 + { .AMX_FMS64, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201160, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_FMA32 + { .AMX_FMA32, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201180, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_FMS32 + { .AMX_FMS32, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002011A0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_MAC16 + { .AMX_MAC16, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002011C0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_FMA16 + { .AMX_FMA16, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002011E0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_FMS16 + { .AMX_FMS16, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201200, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_SET + { .AMX_SET, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {} }, + // .AMX_CLR + { .AMX_CLR, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {} }, + // .AMX_VECINT + { .AMX_VECINT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201260, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_VECFP + { .AMX_VECFP, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x00201280, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_MATINT + { .AMX_MATINT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002012A0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_MATFP + { .AMX_MATFP, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002012C0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .AMX_GENLUT + { .AMX_GENLUT, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0x002012E0, 0xFFFFFFE0, .AMX, {is_64=true, explicit_count=1} }, + // .CPYP + { .CPYP, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .CPYM + { .CPYM, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .CPYE + { .CPYE, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .CPYFP + { .CPYFP, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19000400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .CPYFM + { .CPYFM, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19400400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .CPYFE + { .CPYFE, {.XSP_REG,.XSP_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19800400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .SETP + { .SETP, {.XSP_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19C00400, 0xFFE03C00, .BASE, {is_64=true, explicit_count=3} }, + // .SETM + { .SETM, {.XSP_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19C04400, 0xFFE07C00, .BASE, {is_64=true, explicit_count=3} }, + // .SETE + { .SETE, {.XSP_REG,.X_REG,.X_REG,.NONE,.NONE}, {.RD,.RN,.RM,.NONE,.NONE}, 0x19C08400, 0xFFE0BC00, .BASE, {is_64=true, explicit_count=3} }, + // .DC_IVAC + { .DC_IVAC, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087620, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_ISW + { .DC_ISW, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087640, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CSW + { .DC_CSW, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087A40, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CISW + { .DC_CISW, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087E40, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_ZVA + { .DC_ZVA, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7420, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CVAC + { .DC_CVAC, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7A20, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CVAU + { .DC_CVAU, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7B20, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .DC_CIVAC + { .DC_CIVAC, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7E20, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .IC_IALLUIS + { .IC_IALLUIS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508711F, 0xFFFFFFFF, .BASE, {} }, + // .IC_IALLU + { .IC_IALLU, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508751F, 0xFFFFFFFF, .BASE, {} }, + // .IC_IVAU + { .IC_IVAU, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50B7520, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E1R + { .AT_S1E1R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087800, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E1W + { .AT_S1E1W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087820, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E0R + { .AT_S1E0R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087840, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E0W + { .AT_S1E0W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5087860, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E2R + { .AT_S1E2R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C7800, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E2W + { .AT_S1E2W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C7820, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E3R + { .AT_S1E3R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7800, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S1E3W + { .AT_S1E3W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50E7820, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S12E1R + { .AT_S12E1R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C7880, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S12E1W + { .AT_S12E1W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C78A0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S12E0R + { .AT_S12E0R, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C78C0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .AT_S12E0W + { .AT_S12E0W, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50C78E0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VMALLE1 + { .TLBI_VMALLE1, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_VMALLE1IS + { .TLBI_VMALLE1IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_VAE1 + { .TLBI_VAE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088720, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VAE1IS + { .TLBI_VAE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088320, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_ASIDE1 + { .TLBI_ASIDE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088740, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_ASIDE1IS + { .TLBI_ASIDE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088340, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VAAE1 + { .TLBI_VAAE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088760, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VAAE1IS + { .TLBI_VAAE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD5088360, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VALE1 + { .TLBI_VALE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50887A0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VALE1IS + { .TLBI_VALE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50883A0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VAALE1 + { .TLBI_VAALE1, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50887E0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_VAALE1IS + { .TLBI_VAALE1IS, {.X_REG,.NONE,.NONE,.NONE,.NONE}, {.RT,.NONE,.NONE,.NONE,.NONE}, 0xD50883E0, 0xFFFFFFE0, .BASE, {is_64=true, explicit_count=1} }, + // .TLBI_ALLE1 + { .TLBI_ALLE1, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_ALLE1IS + { .TLBI_ALLE1IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_ALLE2 + { .TLBI_ALLE2, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50C871F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_ALLE2IS + { .TLBI_ALLE2IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50C831F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_ALLE3 + { .TLBI_ALLE3, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E871F, 0xFFFFFFFF, .BASE, {} }, + // .TLBI_ALLE3IS + { .TLBI_ALLE3IS, {.NONE,.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE,.NONE}, 0xD50E831F, 0xFFFFFFFF, .BASE, {} }, + // .PRFM + { .PRFM, {.IMM_5,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_U12,.NONE,.NONE,.NONE}, 0xF9800000, 0xFFC00000, .BASE, {is_64=true, explicit_count=2} }, + { .PRFM, {.IMM_5,.REL_19,.NONE,.NONE,.NONE}, {.RT,.BRANCH_19,.NONE,.NONE,.NONE}, 0xD8000000, 0xFF000000, .BASE, {is_64=true, explicit_count=2} }, + // .PRFUM + { .PRFUM, {.IMM_5,.MEM_OFFSET,.NONE,.NONE,.NONE}, {.RT,.OFFSET_BASE_S9,.NONE,.NONE,.NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true, explicit_count=2} }, // .NEGS - { .NEGS, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true} }, - { .NEGS, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true} }, - // .CMP_SR - { .CMP_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .CMP_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, - // .CMP_ER - { .CMP_ER, {.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true} }, - { .CMP_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, - // .CMP_IMM - { .CMP_IMM, {.WSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true} }, - { .CMP_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, - // .CMN_SR - { .CMN_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .CMN_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, - // .CMN_ER - { .CMN_ER, {.WSP_REG,.W_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true} }, - { .CMN_ER, {.XSP_REG,.X_EXTENDED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true} }, - // .CMN_IMM - { .CMN_IMM, {.WSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true} }, - { .CMN_IMM, {.XSP_REG,.IMM_12,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true} }, - // .TST_SR - { .TST_SR, {.W_REG,.W_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true} }, - { .TST_SR, {.X_REG,.X_SHIFTED,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true} }, + { .NEGS, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true, explicit_count=2} }, + { .NEGS, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RD,.RM,.NONE,.NONE,.NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + // .CMP + { .CMP, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMP, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMP, {.WSP_REG,.W_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMP, {.XSP_REG,.X_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMP, {.WSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMP, {.XSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + // .CMN + { .CMN, {.W_REG,.W_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMN, {.X_REG,.X_SHIFTED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMN, {.WSP_REG,.W_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMN, {.XSP_REG,.X_EXTENDED,.NONE,.NONE,.NONE}, {.RN,.RM,.NONE,.NONE,.NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, + { .CMN, {.WSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true, explicit_count=2} }, + { .CMN, {.XSP_REG,.IMM_12,.NONE,.NONE,.NONE}, {.RN,.IMM12,.NONE,.NONE,.NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true, explicit_count=2} }, +} + +@(rodata) +CLOBBER_FORMS := [2722]lib.Clobber{ + // .ADD + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .ADDS + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .SUB + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .SUBS + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .MOVZ + {written={0}}, + {written={0}}, + // .MOVN + {written={0}}, + {written={0}}, + // .MOVK + {written={0}}, + {written={0}}, + // .ADR + {written={0}}, + // .ADRP + {written={0}}, + // .AND + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .ANDS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .ORR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .EOR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .BIC + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .BICS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .ORN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + // .EON + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .LSL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .LSR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .ASR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .ROR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UDIV + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .SDIV + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .MADD + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .MSUB + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .SMADDL + {written={0}, read={1, 2, 3}}, + // .SMSUBL + {written={0}, read={1, 2, 3}}, + // .UMADDL + {written={0}, read={1, 2, 3}}, + // .UMSUBL + {written={0}, read={1, 2, 3}}, + // .SMULH + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .UMULH + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .CLZ + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .CLS + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .RBIT + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .REV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .REV16 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .REV32 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .CSEL + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + // .CSINC + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + // .CSINV + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + // .CSNEG + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + // .CCMP + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + // .CCMN + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}, + // .CSET + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + // .CSETM + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, nzcv_rd={.N, .Z, .C, .V}}, + // .CINC + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + // .CINV + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + // .CNEG + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}, + // .EXTR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .B + {side_effects={.CONTROL}}, + // .BL + {implicit_wr={.LR}, side_effects={.CONTROL}}, + // .BR + {read={0}, side_effects={.CONTROL}}, + // .BLR + {read={0}, implicit_wr={.LR}, side_effects={.CONTROL}}, + // .RET + {read={0}, side_effects={.CONTROL}}, + {implicit_rd={.LR}, side_effects={.CONTROL}}, + // .B_EQ + {nzcv_rd={.Z}, side_effects={.CONTROL}}, + // .B_NE + {nzcv_rd={.Z}, side_effects={.CONTROL}}, + // .B_CS + {nzcv_rd={.C}, side_effects={.CONTROL}}, + // .B_CC + {nzcv_rd={.C}, side_effects={.CONTROL}}, + // .B_MI + {nzcv_rd={.N}, side_effects={.CONTROL}}, + // .B_PL + {nzcv_rd={.N}, side_effects={.CONTROL}}, + // .B_VS + {nzcv_rd={.V}, side_effects={.CONTROL}}, + // .B_VC + {nzcv_rd={.V}, side_effects={.CONTROL}}, + // .B_HI + {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}, + // .B_LS + {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}, + // .B_GE + {nzcv_rd={.N, .V}, side_effects={.CONTROL}}, + // .B_LT + {nzcv_rd={.N, .V}, side_effects={.CONTROL}}, + // .B_GT + {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}, + // .B_LE + {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}, + // .B_AL + {side_effects={.CONTROL}}, + // .B_NV + {side_effects={.CONTROL}}, + // .CBZ + {read={0}, side_effects={.CONTROL}}, + {read={0}, side_effects={.CONTROL}}, + // .CBNZ + {read={0}, side_effects={.CONTROL}}, + {read={0}, side_effects={.CONTROL}}, + // .TBZ + {read={0}, side_effects={.CONTROL}}, + // .TBNZ + {read={0}, side_effects={.CONTROL}}, + // .LDR + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}}, + {written={0}}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {read={1}, reads_mem=true}, + // .STR + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={1}, writes_mem=true}, + // .LDRB + {written={0}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .STRB + {read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + // .LDRSB + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .LDRH + {written={0}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .STRH + {read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {written={1}, read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + // .LDRSH + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .LDRSW + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .LDP + {written={0, 1}, read={2}, reads_mem=true}, + {written={0, 1}, read={2}, reads_mem=true}, + {written={0, 1, 2}, read={2}, reads_mem=true}, + {written={0, 1, 2}, read={2}, reads_mem=true}, + {written={0, 1, 2}, read={2}, reads_mem=true}, + {written={0, 1, 2}, read={2}, reads_mem=true}, + {written={0, 1}, read={2}, reads_mem=true}, + {written={0, 1}, read={2}, reads_mem=true}, + {written={0, 1}, read={2}, reads_mem=true}, + // .STP + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {written={2}, read={0, 1, 2}, writes_mem=true}, + {written={2}, read={0, 1, 2}, writes_mem=true}, + {written={2}, read={0, 1, 2}, writes_mem=true}, + {written={2}, read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + // .LDPSW + {written={0, 1}, read={2}, reads_mem=true}, + {written={0, 1, 2}, read={2}, reads_mem=true}, + {written={0, 1, 2}, read={2}, reads_mem=true}, + // .LDAR + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .STLR + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + // .LDARB + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .STLRB + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + // .LDARH + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .STLRH + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + // .LDXR + {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .STXR + {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .LDAXR + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .STLXR + {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .NOP + {side_effects={.HINT}}, + // .YIELD + {side_effects={.HINT}}, + // .WFE + {side_effects={.WAIT}}, + // .WFI + {side_effects={.WAIT}}, + // .SEV + {side_effects={.HINT}}, + // .SEVL + {side_effects={.HINT}}, + // .HINT + {side_effects={.HINT}}, + // .MRS + {written={0}, read={1}, side_effects={.PRIVILEGED}}, + // .MSR + {side_effects={.PRIVILEGED}}, + {written={0}, read={1}, side_effects={.PRIVILEGED}}, + // .ISB + {side_effects={.ISYNC}}, + // .DSB + {side_effects={.FENCE}}, + // .DMB + {side_effects={.FENCE}}, + // .SVC + {side_effects={.CONTROL, .EXCEPTION}}, + // .HVC + {side_effects={.CONTROL, .EXCEPTION, .PRIVILEGED}}, + // .SMC + {side_effects={.CONTROL, .EXCEPTION, .PRIVILEGED}}, + // .BRK + {side_effects={.CONTROL, .TRAP}}, + // .HLT + {side_effects={.CONTROL, .TRAP}}, + // .ERET + {side_effects={.CONTROL, .PRIVILEGED}}, + // .FMOV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .FABS + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .FNEG + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .FSQRT + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}, + // .FADD + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FSUB + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMUL + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FDIV + {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FNMUL + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMADD + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMSUB + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FNMADD + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FNMSUB + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCMP + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}, + // .FCMPE + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}, + // .FCSEL + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}, + // .FMAX + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMIN + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMAXNM + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMINNM + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FCVT + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .SCVTF + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + // .UCVTF + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}, + // .FCVTZS + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTZU + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTAS + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTAU + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTNS + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTNU + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTPS + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTPU + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTMS + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTMU + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FRINTA + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FRINTI + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}, reads_fpcr=true}, + // .FRINTM + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FRINTN + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FRINTP + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FRINTX + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}, + // .FRINTZ + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .TST + {read={0}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + // .LDUR + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .STUR + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + // .LDURB + {written={0}, read={1}, reads_mem=true}, + // .STURB + {read={0, 1}, writes_mem=true}, + // .LDURSB + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .LDURH + {written={0}, read={1}, reads_mem=true}, + // .STURH + {read={0, 1}, writes_mem=true}, + // .LDURSH + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + // .LDURSW + {written={0}, read={1}, reads_mem=true}, + // .LDNP + {written={0, 1}, read={2}, reads_mem=true}, + {written={0, 1}, read={2}, reads_mem=true}, + // .STNP + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + // .LDXP + {written={0, 1}, read={2}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + {written={0, 1}, read={2}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .STXP + {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .LDAXP + {written={0, 1}, read={2}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + {written={0, 1}, read={2}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .STLXP + {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .LDXRB + {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .STXRB + {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .LDAXRB + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .STLXRB + {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .LDXRH + {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .STXRH + {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}, + // .LDAXRH + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .STLXRH + {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}, + // .LDAPR + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .LDAPRB + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .LDAPRH + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .LDADD + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDADDA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDADDL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDADDAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDCLR + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDCLRA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDCLRL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDCLRAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDEOR + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDEORA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDEORL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDEORAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSET + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDSETA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSETL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSETAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSMAX + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDSMAXA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSMAXL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSMAXAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSMIN + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDSMINA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSMINL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDSMINAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDUMAX + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDUMAXA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDUMAXL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDUMAXAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDUMIN + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .LDUMINA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDUMINL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .LDUMINAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .SWP + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .SWPA + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .SWPL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .SWPAL + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CAS + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .CASA + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASL + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASAL + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASB + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .CASAB + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASLB + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASALB + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASH + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .CASAH + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASLH + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASALH + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASP + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}, + // .CASPA + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASPL + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .CASPAL + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}, + // .PACIA + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .PACIB + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .PACDA + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .PACDB + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .PACIZA + {written={0}, read={0}, side_effects={.PAC}}, + // .PACIZB + {written={0}, read={0}, side_effects={.PAC}}, + // .PACDZA + {written={0}, read={0}, side_effects={.PAC}}, + // .PACDZB + {written={0}, read={0}, side_effects={.PAC}}, + // .AUTIA + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .AUTIB + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .AUTDA + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .AUTDB + {written={0}, read={0, 1}, side_effects={.PAC}}, + // .AUTIZA + {written={0}, read={0}, side_effects={.PAC}}, + // .AUTIZB + {written={0}, read={0}, side_effects={.PAC}}, + // .AUTDZA + {written={0}, read={0}, side_effects={.PAC}}, + // .AUTDZB + {written={0}, read={0}, side_effects={.PAC}}, + // .PACIASP + {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}, + // .PACIBSP + {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}, + // .AUTIASP + {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}, + // .AUTIBSP + {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}, + // .PACIA1716 + {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}, + // .PACIB1716 + {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}, + // .AUTIA1716 + {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}, + // .AUTIB1716 + {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}, + // .PACGA + {written={0}, read={0, 1, 2}, side_effects={.PAC}}, + // .XPACI + {written={0}, read={0}, side_effects={.PAC}}, + // .XPACD + {written={0}, read={0}, side_effects={.PAC}}, + // .XPACLRI + {implicit_wr={.LR}, implicit_rd={.LR}, side_effects={.PAC}}, + // .RETAA + {implicit_rd={.LR, .SP}, side_effects={.CONTROL, .PAC}}, + // .RETAB + {implicit_rd={.LR, .SP}, side_effects={.CONTROL, .PAC}}, + // .BRAA + {read={0, 1}, side_effects={.CONTROL, .PAC}}, + // .BRAB + {read={0, 1}, side_effects={.CONTROL, .PAC}}, + // .BRAAZ + {read={0}, side_effects={.CONTROL, .PAC}}, + // .BRABZ + {read={0}, side_effects={.CONTROL, .PAC}}, + // .BLRAA + {read={0, 1}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}, + // .BLRAB + {read={0, 1}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}, + // .BLRAAZ + {read={0}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}, + // .BLRABZ + {read={0}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}, + // .ERETAA + {side_effects={.CONTROL, .PAC, .PRIVILEGED}}, + // .ERETAB + {side_effects={.CONTROL, .PAC, .PRIVILEGED}}, + // .BTI + {side_effects={.BTI}}, + // .IRG + {written={0}, read={1, 2}}, + // .ADDG + {written={0}, read={1}}, + // .SUBG + {written={0}, read={1}}, + // .GMI + {written={0}, read={1, 2}}, + // .SUBP + {written={0}, read={1, 2}}, + // .SUBPS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .LDG + {written={0}, read={1}, reads_mem=true}, + // .STG + {read={0, 1}, writes_mem=true}, + // .ST2G + {read={0, 1}, writes_mem=true}, + // .STZG + {read={0, 1}, writes_mem=true}, + // .STZ2G + {read={0, 1}, writes_mem=true}, + // .STGP + {read={0, 1, 2}, writes_mem=true}, + // .LDGM + {written={0}, read={1}, reads_mem=true}, + // .STGM + {read={0, 1}, writes_mem=true}, + // .STZGM + {read={0, 1}, writes_mem=true}, + // .CRC32B + {written={0}, read={1, 2}}, + // .CRC32H + {written={0}, read={1, 2}}, + // .CRC32W + {written={0}, read={1, 2}}, + // .CRC32X + {written={0}, read={1, 2}}, + // .CRC32CB + {written={0}, read={1, 2}}, + // .CRC32CH + {written={0}, read={1, 2}}, + // .CRC32CW + {written={0}, read={1, 2}}, + // .CRC32CX + {written={0}, read={1, 2}}, + // .AESE + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .AESD + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .AESMC + {written={0}, read={0, 1}}, + {written={0}, read={0}}, + // .AESIMC + {written={0}, read={0, 1}}, + {written={0}, read={0}}, + // .SHA1H + {written={0}, read={1}}, + // .SHA1C + {written={0}, read={0, 1, 2}}, + // .SHA1P + {written={0}, read={0, 1, 2}}, + // .SHA1M + {written={0}, read={0, 1, 2}}, + // .SHA1SU0 + {written={0}, read={0, 1, 2}}, + // .SHA1SU1 + {written={0}, read={0, 1}}, + // .SHA256H + {written={0}, read={0, 1, 2}}, + // .SHA256H2 + {written={0}, read={0, 1, 2}}, + // .SHA256SU0 + {written={0}, read={0, 1}}, + // .SHA256SU1 + {written={0}, read={0, 1, 2}}, + // .SHA512H + {written={0}, read={0, 1, 2}}, + // .SHA512H2 + {written={0}, read={0, 1, 2}}, + // .SHA512SU0 + {written={0}, read={0, 1}}, + // .SHA512SU1 + {written={0}, read={0, 1, 2}}, + // .EOR3 + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .BCAX + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .RAX1 + {written={0}, read={1, 2}}, + // .XAR + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SM3PARTW1 + {written={0}, read={0, 1, 2}}, + // .SM3PARTW2 + {written={0}, read={0, 1, 2}}, + // .SM3SS1 + {written={0}, read={1, 2, 3}}, + // .SM3TT1A + {written={0}, read={0, 1, 2}}, + // .SM3TT1B + {written={0}, read={0, 1, 2}}, + // .SM3TT2A + {written={0}, read={0, 1, 2}}, + // .SM3TT2B + {written={0}, read={0, 1, 2}}, + // .SM4E + {written={0}, read={0, 1}}, + // .SM4EKEY + {written={0}, read={1, 2}}, + // .PMULL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .PMULL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .BFCVT + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFDOT + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMMLA + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMLALB + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMLALT + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFCVTN + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFCVTN2 + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .MUL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .MLA + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .MLS + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .NEG + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .ABS + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SHADD + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UHADD + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SHSUB + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UHSUB + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SRHADD + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .URHADD + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SQADD + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .UQADD + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .SQSUB + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .UQSUB + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .SMAX + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .UMAX + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .SMIN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .UMIN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .SABD + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .UABD + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .SABA + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .UABA + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .ADDP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .ADDV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SADDLP + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UADDLP + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SADALP + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .UADALP + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .SADDLV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UADDLV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SMAXV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UMAXV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SMINV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UMINV + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SMAXP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UMAXP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SMINP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UMINP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SADDL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SADDL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UADDL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UADDL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SSUBL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SSUBL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .USUBL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .USUBL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SADDW + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SADDW2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UADDW + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UADDW2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SSUBW + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SSUBW2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .USUBW + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .USUBW2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .RADDHN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .RADDHN2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .RSUBHN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .RSUBHN2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .ADDHN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .ADDHN2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SUBHN + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SUBHN2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .XTN + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .XTN2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SQXTN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQXTN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .UQXTN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .UQXTN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQXTUN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQXTUN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SMULL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SMULL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UMULL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UMULL2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SMLAL + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .SMLAL2 + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .UMLAL + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .UMLAL2 + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .SMLSL + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .SMLSL2 + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .UMLSL + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .UMLSL2 + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .SQDMULL + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .SQDMULL2 + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .SQDMLAL + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + // .SQDMLAL2 + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + // .SQDMLSL + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + // .SQDMLSL2 + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + // .SQDMULH + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .SQRDMULH + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + {written={0}, read={1, 2}, fpsr_wr={.QC}}, + // .SDOT + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .UDOT + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .USDOT + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .FMLA + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMLS + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMULX + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMAXP + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMINP + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMAXNMP + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMINNMP + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMAXV + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMINV + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMAXNMV + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FMINNMV + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}, + // .FRECPE + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + // .FRSQRTE + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + // .FRECPS + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FRSQRTS + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FRECPX + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1}, reads_fpcr=true}, + {written={0}, read={1, 2}, reads_fpcr=true}, + {written={0}, read={1, 2}, reads_fpcr=true}, + {written={0}, read={1, 2}, reads_fpcr=true}, + // .FADDP + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCVTL + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCVTL2 + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCVTN + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCVTN2 + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCVTXN + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCVTXN2 + {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}, + // .FCMEQ + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + // .FCMGE + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + // .FCMGT + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + // .FCMLE + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FCMLT + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FACGE + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .FACGT + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2}, fpsr_wr={.IOC}}, + // .CMEQ + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .CMGE + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .CMGT + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .CMHI + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .CMHS + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .CMLE + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .CMLT + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .CMTST + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .MVN + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .BIT + {written={0}, read={0, 1, 2}}, + // .BIF + {written={0}, read={0, 1, 2}}, + // .BSL + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2, 3}}, + // .SHL + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SQSHL + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQSHLU + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SRSHL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .URSHL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SSHR + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .USHR + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SSRA + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .USRA + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .SRSHR + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .URSHR + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SRSRA + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .URSRA + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .SSHL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .USHL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SLI + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .SRI + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .SSHLL + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SSHLL2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .USHLL + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .USHLL2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SXTL + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SXTL2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UXTL + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .UXTL2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SHRN + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SHRN2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .RSHRN + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .RSHRN2 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .SQSHRN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQSHRN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .UQSHRN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .UQSHRN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQRSHRN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQRSHRN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .UQRSHRN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .UQRSHRN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQSHRUN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQSHRUN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQRSHRUN + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .SQRSHRUN2 + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + {written={0}, read={1}, fpsr_wr={.QC}}, + // .DUP + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .INS + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + {written={0}, read={0, 2}}, + // .MOV + {written={0}, read={1}}, + {written={0}, read={1}}, + {read={0, 1, 2}}, + {read={0, 1, 2}}, + {read={0, 1, 2}}, + {read={0, 1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}}, + {written={0}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .EXT + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .TBL + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .TBX + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + {written={0}, read={0, 1, 2}}, + // .ZIP1 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .ZIP2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UZP1 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UZP2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .TRN1 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .TRN2 + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .NOT + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + // .REV64 + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .CNT + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .URECPE + {written={0}, read={1}}, + {written={0}, read={1}}, + // .URSQRTE + {written={0}, read={1}}, + {written={0}, read={1}}, + // .MOVI + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + // .MVNI + {written={0}}, + {written={0}}, + {written={0}}, + {written={0}}, + // .LD1 + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + // .LD2 + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + // .LD3 + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + // .LD4 + {written={0}, read={1}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + {written={0}, read={2}, reads_mem=true}, + // .ST1 + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 1}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + // .ST2 + {read={0, 1}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + // .ST3 + {read={0, 1}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + // .ST4 + {read={0, 1}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + {read={0, 2}, writes_mem=true}, + // .LD1R + {written={0}, read={1}, reads_mem=true}, + // .LD2R + {written={0}, read={1}, reads_mem=true}, + // .LD3R + {written={0}, read={1}, reads_mem=true}, + // .LD4R + {written={0}, read={1}, reads_mem=true}, + // .SUBR + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .ASRR + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .LSLR + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .LSRR + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .FTSMUL + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FSUBR + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FDIVR + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FNMLA + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + // .FNMLS + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + // .NAND + {written={0}, read={1, 2, 3}}, + // .NOR + {written={0}, read={1, 2, 3}}, + // .SEL + {written={0}, read={1, 2, 3}}, + // .ORRS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .EORS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .NANDS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .NORS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .ORNS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .MOVS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .PTRUE + {written={0}}, + // .PTRUES + {written={0}, nzcv_wr={.N, .Z, .C, .V}}, + // .PFALSE + {written={0}}, + // .PFIRST + {written={0}, read={1, 2}}, + // .PNEXT + {written={0}, read={1, 2}}, + // .BRKA + {written={0}, read={1, 2}}, + // .BRKB + {written={0}, read={1, 2}}, + // .BRKAS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .BRKBS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .BRKPA + {written={0}, read={1, 2, 3}}, + // .BRKPB + {written={0}, read={1, 2, 3}}, + // .BRKN + {written={0}, read={1, 2, 3}}, + // .RDFFR + {written={0}, side_effects={.FFR}}, + // .WRFFR + {read={0}, side_effects={.FFR}}, + // .SETFFR + {side_effects={.FFR}}, + // .CMPEQ + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPNE + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPGE + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPGT + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPLE + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPLT + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPHI + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPHS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPLO + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMPLS + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .FCMNE + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + // .FCMUO + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}, + // .INSR + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + {written={0}, read={1}}, + // .CPY + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .COMPACT + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .LD1B + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .LD1H + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .LD1W + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .LD1D + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .LD1SB + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .LD1SH + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .LD1SW + {written={0}, read={1, 2}, reads_mem=true}, + {written={0}, read={1, 2}, reads_mem=true}, + // .ST1B + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + // .ST1H + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + // .ST1W + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + // .ST1D + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + {read={0, 1, 2}, writes_mem=true}, + // .LDFF1B + {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}, + // .LDFF1H + {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}, + // .LDFF1W + {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}, + // .LDFF1D + {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}, + // .WHILEGE + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILEGT + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILELE + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILELT + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILEHI + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILEHS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILELO + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .WHILELS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}, + // .SQRDMLAH + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + // .SQRDMLSH + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}, + // .ADCLB + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .ADCLT + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SBCLB + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .SBCLT + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .MATCH + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .NMATCH + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}, + // .HISTCNT + {written={0}, read={1, 2, 3}}, + {written={0}, read={1, 2, 3}}, + // .HISTSEG + {written={0}, read={1, 2}}, + // .SMSTART + {}, + // .SMSTOP + {}, + // .RDSVL + {written={0}}, + // .ADDHA + {written={0}, read={0, 1, 2, 3}}, + // .ADDVA + {written={0}, read={0, 1, 2, 3}}, + // .ZERO + {}, + // .FMOPA + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FMOPS + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMOPA + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMOPS + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .SMOPA + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + // .SMOPS + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + // .UMOPA + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + // .UMOPS + {written={0}, read={0, 1, 2, 3}}, + {written={0}, read={0, 1, 2, 3}}, + // .USMOPA + {written={0}, read={0, 1, 2, 3}}, + // .SUMOPA + {written={0}, read={0, 1, 2, 3}}, + // .CNTB + {written={0}}, + // .CNTH + {written={0}}, + // .CNTW + {written={0}}, + // .CNTD + {written={0}}, + // .INCB + {written={0}, read={0}}, + // .INCH + {written={0}, read={0}}, + {written={0}, read={0}}, + // .INCW + {written={0}, read={0}}, + {written={0}, read={0}}, + // .INCD + {written={0}, read={0}}, + {written={0}, read={0}}, + // .DECB + {written={0}, read={0}}, + // .DECH + {written={0}, read={0}}, + {written={0}, read={0}}, + // .DECW + {written={0}, read={0}}, + {written={0}, read={0}}, + // .DECD + {written={0}, read={0}}, + {written={0}, read={0}}, + // .SQINCB + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQINCH + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQINCW + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQINCD + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQDECB + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQDECH + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQDECW + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .SQDECD + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQINCB + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQINCH + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQINCW + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQINCD + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQDECB + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQDECH + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQDECW + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .UQDECD + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + {written={0}, read={0}, fpsr_wr={.QC}}, + // .CNTP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .INCP + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .DECP + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + {written={0}, read={0, 1}}, + // .SQINCP + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + // .SQDECP + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + // .UQINCP + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + // .UQDECP + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + {written={0}, read={0, 1}, fpsr_wr={.QC}}, + // .LD1Q + {written={0}, read={1, 2}, reads_mem=true}, + // .ST1Q + {read={0, 1, 2}, writes_mem=true}, + // .MOVA + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .FCMLA + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .FCADD + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .PRFB + {read={1, 2}, side_effects={.HINT}}, + // .PRFH + {read={1, 2}, side_effects={.HINT}}, + // .PRFW + {read={1, 2}, side_effects={.HINT}}, + // .PRFD + {read={1, 2}, side_effects={.HINT}}, + // .LDNT1B + {written={0}, read={1, 2}, reads_mem=true}, + // .LDNT1H + {written={0}, read={1, 2}, reads_mem=true}, + // .LDNT1W + {written={0}, read={1, 2}, reads_mem=true}, + // .LDNT1D + {written={0}, read={1, 2}, reads_mem=true}, + // .STNT1B + {read={0, 1, 2}, writes_mem=true}, + // .STNT1H + {read={0, 1, 2}, writes_mem=true}, + // .STNT1W + {read={0, 1, 2}, writes_mem=true}, + // .STNT1D + {read={0, 1, 2}, writes_mem=true}, + // .SPLICE + {written={0}, read={1, 2, 3}}, + // .INDEX + {written={0}}, + {written={0}, read={2}}, + {written={0}, read={1}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .BSL1N + {written={0}, read={1, 2, 3}}, + // .BSL2N + {written={0}, read={1, 2, 3}}, + // .NBSL + {written={0}, read={1, 2, 3}}, + // .PMUL + {written={0}, read={1, 2}}, + // .PMULLB + {written={0}, read={1, 2}}, + // .PMULLT + {written={0}, read={1, 2}}, + // .BFCVTNT + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .LDRAA + {written={0}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + // .LDRAB + {written={0}, read={1}, reads_mem=true}, + {written={0, 1}, read={1}, reads_mem=true}, + // .TSTART + {written={0}, side_effects={.NONDETERMINISTIC}}, + // .TCOMMIT + {}, + // .TCANCEL + {side_effects={.CONTROL}}, + // .TTEST + {written={0}}, + // .WFET + {read={0}, side_effects={.WAIT}}, + // .WFIT + {read={0}, side_effects={.WAIT}}, + // .BC_EQ + {nzcv_rd={.Z}, side_effects={.CONTROL}}, + // .BC_NE + {nzcv_rd={.Z}, side_effects={.CONTROL}}, + // .BC_CS + {nzcv_rd={.C}, side_effects={.CONTROL}}, + // .BC_CC + {nzcv_rd={.C}, side_effects={.CONTROL}}, + // .BC_MI + {nzcv_rd={.N}, side_effects={.CONTROL}}, + // .BC_PL + {nzcv_rd={.N}, side_effects={.CONTROL}}, + // .BC_VS + {nzcv_rd={.V}, side_effects={.CONTROL}}, + // .BC_VC + {nzcv_rd={.V}, side_effects={.CONTROL}}, + // .BC_HI + {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}, + // .BC_LS + {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}, + // .BC_GE + {nzcv_rd={.N, .V}, side_effects={.CONTROL}}, + // .BC_LT + {nzcv_rd={.N, .V}, side_effects={.CONTROL}}, + // .BC_GT + {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}, + // .BC_LE + {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}, + // .BC_AL + {side_effects={.CONTROL}}, + // .BC_NV + {side_effects={.CONTROL}}, + // .UXTB + {written={0}, read={1}}, + // .UXTH + {written={0}, read={1}}, + // .UXTW + {written={0}, read={1}}, + // .SXTB + {written={0}, read={1}}, + // .SXTH + {written={0}, read={1}}, + // .SXTW + {written={0}, read={1}}, + // .ADC + {written={0}, read={1, 2}, nzcv_rd={.C}}, + {written={0}, read={1, 2}, nzcv_rd={.C}}, + // .ADCS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}, + // .SBC + {written={0}, read={1, 2}, nzcv_rd={.C}}, + {written={0}, read={1, 2}, nzcv_rd={.C}}, + // .SBCS + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}, + {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}, + // .NGC + {written={0}, read={1}, nzcv_rd={.C}}, + {written={0}, read={1}, nzcv_rd={.C}}, + // .NGCS + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}, + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}, + // .LDAPUR + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .STLUR + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + // .LDAPURB + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .STLURB + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + // .LDAPURH + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .STLURH + {read={0, 1}, writes_mem=true, side_effects={.FENCE}}, + // .LDAPURSB + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .LDAPURSH + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .LDAPURSW + {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}, + // .BFADD + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFSUB + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMUL + {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMLA + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .BFMLS + {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}, + // .SB + {side_effects={.FENCE}}, + // .CSDB + {side_effects={.FENCE}}, + // .DGH + {side_effects={.HINT}}, + // .PSB_CSYNC + {side_effects={.HINT}}, + // .TSB_CSYNC + {side_effects={.HINT}}, + // .BTI_J + {side_effects={.BTI}}, + // .BTI_C + {side_effects={.BTI}}, + // .BTI_JC + {side_effects={.BTI}}, + // .BFCLAMP + {written={0}, read={1, 2}}, + // .BFMAXNM + {written={0}, read={1, 2, 3}}, + // .BFMINNM + {written={0}, read={1, 2, 3}}, + // .LUTI2 + {written={0}, read={2}}, + {written={0}, read={2}}, + {written={0}, read={2}}, + // .LUTI4 + {written={0}, read={2}}, + {written={0}, read={2}}, + {written={0}, read={2}}, + // .ZIP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .UZP + {written={0}, read={1, 2}}, + {written={0}, read={1, 2}}, + // .TLBI_RPALOS + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_RPAOS + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E1A + {read={0}, side_effects={.PRIVILEGED}}, + // .DC_CIPAPA + {read={0}, side_effects={.CACHE}}, + // .DC_CIGDPAPA + {read={0}, side_effects={.CACHE}}, + // .TLBI_PAALL + {side_effects={.PRIVILEGED}}, + // .TLBI_PAALLOS + {side_effects={.PRIVILEGED}}, + // .AMX_LDX + {read={0}}, + // .AMX_LDY + {read={0}}, + // .AMX_STX + {read={0}}, + // .AMX_STY + {read={0}}, + // .AMX_LDZ + {read={0}}, + // .AMX_STZ + {read={0}}, + // .AMX_LDZI + {read={0}}, + // .AMX_STZI + {read={0}}, + // .AMX_EXTRX + {read={0}}, + // .AMX_EXTRY + {read={0}}, + // .AMX_FMA64 + {read={0}}, + // .AMX_FMS64 + {read={0}}, + // .AMX_FMA32 + {read={0}}, + // .AMX_FMS32 + {read={0}}, + // .AMX_MAC16 + {read={0}}, + // .AMX_FMA16 + {read={0}}, + // .AMX_FMS16 + {read={0}}, + // .AMX_SET + {}, + // .AMX_CLR + {}, + // .AMX_VECINT + {read={0}}, + // .AMX_VECFP + {read={0}}, + // .AMX_MATINT + {read={0}}, + // .AMX_MATFP + {read={0}}, + // .AMX_GENLUT + {read={0}}, + // .CPYP + {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}, + // .CPYM + {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}, + // .CPYE + {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}, + // .CPYFP + {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}, + // .CPYFM + {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}, + // .CPYFE + {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}, + // .SETP + {written={0, 1}, read={0, 1, 2}, writes_mem=true}, + // .SETM + {written={0, 1}, read={0, 1, 2}, writes_mem=true}, + // .SETE + {written={0, 1}, read={0, 1, 2}, writes_mem=true}, + // .DC_IVAC + {read={0}, side_effects={.CACHE, .PRIVILEGED}}, + // .DC_ISW + {read={0}, side_effects={.CACHE, .PRIVILEGED}}, + // .DC_CSW + {read={0}, side_effects={.CACHE, .PRIVILEGED}}, + // .DC_CISW + {read={0}, side_effects={.CACHE, .PRIVILEGED}}, + // .DC_ZVA + {read={0}, writes_mem=true, side_effects={.CACHE}}, + // .DC_CVAC + {read={0}, side_effects={.CACHE}}, + // .DC_CVAU + {read={0}, side_effects={.CACHE}}, + // .DC_CIVAC + {read={0}, side_effects={.CACHE}}, + // .IC_IALLUIS + {side_effects={.CACHE, .PRIVILEGED}}, + // .IC_IALLU + {side_effects={.CACHE, .PRIVILEGED}}, + // .IC_IVAU + {read={0}, side_effects={.CACHE}}, + // .AT_S1E1R + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E1W + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E0R + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E0W + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E2R + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E2W + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E3R + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S1E3W + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S12E1R + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S12E1W + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S12E0R + {read={0}, side_effects={.PRIVILEGED}}, + // .AT_S12E0W + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VMALLE1 + {side_effects={.PRIVILEGED}}, + // .TLBI_VMALLE1IS + {side_effects={.PRIVILEGED}}, + // .TLBI_VAE1 + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VAE1IS + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_ASIDE1 + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_ASIDE1IS + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VAAE1 + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VAAE1IS + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VALE1 + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VALE1IS + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VAALE1 + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_VAALE1IS + {read={0}, side_effects={.PRIVILEGED}}, + // .TLBI_ALLE1 + {side_effects={.PRIVILEGED}}, + // .TLBI_ALLE1IS + {side_effects={.PRIVILEGED}}, + // .TLBI_ALLE2 + {side_effects={.PRIVILEGED}}, + // .TLBI_ALLE2IS + {side_effects={.PRIVILEGED}}, + // .TLBI_ALLE3 + {side_effects={.PRIVILEGED}}, + // .TLBI_ALLE3IS + {side_effects={.PRIVILEGED}}, + // .PRFM + {read={1}, side_effects={.HINT}}, + {side_effects={.HINT}}, + // .PRFUM + {read={1}, side_effects={.HINT}}, + // .NEGS + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMP + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}}, + // .CMN + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}}, + {read={0}, nzcv_wr={.N, .Z, .C, .V}}, } @(rodata) ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ - .INVALID = { 0, 0}, - .ADD_IMM = { 0, 2}, - .ADDS_IMM = { 2, 2}, - .SUB_IMM = { 4, 2}, - .SUBS_IMM = { 6, 2}, - .MOVZ = { 8, 2}, - .MOVN = { 10, 2}, - .MOVK = { 12, 2}, - .ADR = { 14, 1}, - .ADRP = { 15, 1}, - .ADD_SR = { 16, 2}, - .ADDS_SR = { 18, 2}, - .SUB_SR = { 20, 2}, - .SUBS_SR = { 22, 2}, - .AND_SR = { 24, 2}, - .ANDS_SR = { 26, 2}, - .ORR_SR = { 28, 2}, - .EOR_SR = { 30, 2}, - .BIC_SR = { 32, 2}, - .BICS_SR = { 34, 2}, - .ORN_SR = { 36, 2}, - .EON_SR = { 38, 2}, - .ADD_ER = { 40, 2}, - .ADDS_ER = { 42, 2}, - .SUB_ER = { 44, 2}, - .SUBS_ER = { 46, 2}, - .LSLV = { 48, 2}, - .LSRV = { 50, 2}, - .ASRV = { 52, 2}, - .RORV = { 54, 2}, - .UDIV = { 56, 2}, - .SDIV = { 58, 2}, - .MADD = { 60, 2}, - .MSUB = { 62, 2}, - .SMADDL = { 64, 1}, - .SMSUBL = { 65, 1}, - .UMADDL = { 66, 1}, - .UMSUBL = { 67, 1}, - .SMULH = { 68, 1}, - .UMULH = { 69, 1}, - .CLZ = { 70, 2}, - .CLS = { 72, 2}, - .RBIT = { 74, 2}, - .REV = { 76, 2}, - .REV16 = { 78, 2}, - .REV32 = { 80, 1}, - .CSEL = { 81, 2}, - .CSINC = { 83, 2}, - .CSINV = { 85, 2}, - .CSNEG = { 87, 2}, - .CCMP_REG = { 89, 2}, - .CCMP_IMM = { 91, 2}, - .CCMN_REG = { 93, 2}, - .CCMN_IMM = { 95, 2}, - .EXTR = { 97, 2}, - .B = { 99, 1}, - .BL = { 100, 1}, - .BR = { 101, 1}, - .BLR = { 102, 1}, - .RET = { 103, 2}, - .B_COND = { 105, 1}, - .CBZ = { 106, 2}, - .CBNZ = { 108, 2}, - .TBZ = { 110, 1}, - .TBNZ = { 111, 1}, - .LDR = { 112, 2}, - .STR = { 114, 2}, - .LDRB = { 116, 1}, - .STRB = { 117, 1}, - .LDRSB = { 118, 2}, - .LDRH = { 120, 1}, - .STRH = { 121, 1}, - .LDRSH = { 122, 2}, - .LDRSW = { 124, 1}, - .LDP = { 125, 2}, - .STP = { 127, 2}, - .LDPSW = { 129, 1}, - .LDR_LIT = { 130, 2}, - .LDAR = { 132, 2}, - .STLR = { 134, 2}, - .LDARB = { 136, 1}, - .STLRB = { 137, 1}, - .LDARH = { 138, 1}, - .STLRH = { 139, 1}, - .LDXR = { 140, 2}, - .STXR = { 142, 2}, - .LDAXR = { 144, 2}, - .STLXR = { 146, 2}, - .NOP = { 148, 1}, - .YIELD = { 149, 1}, - .WFE = { 150, 1}, - .WFI = { 151, 1}, - .SEV = { 152, 1}, - .SEVL = { 153, 1}, - .HINT = { 154, 1}, - .MRS = { 155, 1}, - .MSR_IMM = { 156, 1}, - .MSR_REG = { 157, 1}, - .ISB = { 158, 1}, - .DSB = { 159, 1}, - .DMB = { 160, 1}, - .SVC = { 161, 1}, - .HVC = { 162, 1}, - .SMC = { 163, 1}, - .BRK = { 164, 1}, - .HLT = { 165, 1}, - .ERET = { 166, 1}, - .FMOV_REG = { 167, 2}, - .FMOV_IMM = { 169, 3}, - .FMOV_GEN = { 172, 4}, - .FABS = { 176, 2}, - .FNEG = { 178, 2}, - .FSQRT = { 180, 2}, - .FADD = { 182, 2}, - .FSUB = { 184, 2}, - .FMUL = { 186, 2}, - .FDIV = { 188, 2}, - .FNMUL = { 190, 2}, - .FMADD = { 192, 2}, - .FMSUB = { 194, 2}, - .FNMADD = { 196, 2}, - .FNMSUB = { 198, 2}, - .FCMP = { 200, 2}, - .FCMPE = { 202, 2}, - .FCSEL = { 204, 2}, - .FMAX = { 206, 2}, - .FMIN = { 208, 2}, - .FMAXNM = { 210, 2}, - .FMINNM = { 212, 2}, - .FCVT = { 214, 2}, - .SCVTF = { 216, 4}, - .UCVTF = { 220, 4}, - .FCVTZS = { 224, 4}, - .FCVTZU = { 228, 4}, - .FCVTAS = { 232, 6}, - .FCVTAU = { 238, 6}, - .FCVTNS = { 244, 6}, - .FCVTNU = { 250, 6}, - .FCVTPS = { 256, 6}, - .FCVTPU = { 262, 6}, - .FCVTMS = { 268, 6}, - .FCVTMU = { 274, 6}, - .FRINTA = { 280, 3}, - .FRINTI = { 283, 3}, - .FRINTM = { 286, 3}, - .FRINTN = { 289, 3}, - .FRINTP = { 292, 3}, - .FRINTX = { 295, 3}, - .FRINTZ = { 298, 3}, - .AND_IMM = { 301, 2}, - .ANDS_IMM = { 303, 2}, - .ORR_IMM = { 305, 2}, - .EOR_IMM = { 307, 2}, - .TST_IMM = { 309, 2}, - .LDUR = { 311, 2}, - .STUR = { 313, 2}, - .LDURB = { 315, 1}, - .STURB = { 316, 1}, - .LDURSB = { 317, 2}, - .LDURH = { 319, 1}, - .STURH = { 320, 1}, - .LDURSH = { 321, 2}, - .LDURSW = { 323, 1}, - .LDR_PRE = { 324, 2}, - .STR_PRE = { 326, 2}, - .LDR_POST = { 328, 2}, - .STR_POST = { 330, 2}, - .LDRB_PRE = { 332, 1}, - .STRB_PRE = { 333, 1}, - .LDRB_POST = { 334, 1}, - .STRB_POST = { 335, 1}, - .LDRH_PRE = { 336, 1}, - .STRH_PRE = { 337, 1}, - .LDRH_POST = { 338, 1}, - .STRH_POST = { 339, 1}, - .LDR_REG = { 340, 2}, - .STR_REG = { 342, 2}, - .LDRB_REG = { 344, 1}, - .STRB_REG = { 345, 1}, - .LDRH_REG = { 346, 1}, - .STRH_REG = { 347, 1}, - .LDRSB_REG = { 348, 2}, - .LDRSH_REG = { 350, 2}, - .LDRSW_REG = { 352, 1}, - .LDP_PRE = { 353, 2}, - .STP_PRE = { 355, 2}, - .LDP_POST = { 357, 2}, - .STP_POST = { 359, 2}, - .LDPSW_PRE = { 361, 1}, - .LDPSW_POST = { 362, 1}, - .LDNP = { 363, 2}, - .STNP = { 365, 2}, - .LDXP = { 367, 2}, - .STXP = { 369, 2}, - .LDAXP = { 371, 2}, - .STLXP = { 373, 2}, - .LDXRB = { 375, 1}, - .STXRB = { 376, 1}, - .LDAXRB = { 377, 1}, - .STLXRB = { 378, 1}, - .LDXRH = { 379, 1}, - .STXRH = { 380, 1}, - .LDAXRH = { 381, 1}, - .STLXRH = { 382, 1}, - .LDAPR = { 383, 2}, - .LDAPRB = { 385, 1}, - .LDAPRH = { 386, 1}, - .LDADD = { 387, 2}, - .LDADDA = { 389, 2}, - .LDADDL = { 391, 2}, - .LDADDAL = { 393, 2}, - .LDCLR = { 395, 2}, - .LDCLRA = { 397, 2}, - .LDCLRL = { 399, 2}, - .LDCLRAL = { 401, 2}, - .LDEOR = { 403, 2}, - .LDEORA = { 405, 2}, - .LDEORL = { 407, 2}, - .LDEORAL = { 409, 2}, - .LDSET = { 411, 2}, - .LDSETA = { 413, 2}, - .LDSETL = { 415, 2}, - .LDSETAL = { 417, 2}, - .LDSMAX = { 419, 2}, - .LDSMAXA = { 421, 2}, - .LDSMAXL = { 423, 2}, - .LDSMAXAL = { 425, 2}, - .LDSMIN = { 427, 2}, - .LDSMINA = { 429, 2}, - .LDSMINL = { 431, 2}, - .LDSMINAL = { 433, 2}, - .LDUMAX = { 435, 2}, - .LDUMAXA = { 437, 2}, - .LDUMAXL = { 439, 2}, - .LDUMAXAL = { 441, 2}, - .LDUMIN = { 443, 2}, - .LDUMINA = { 445, 2}, - .LDUMINL = { 447, 2}, - .LDUMINAL = { 449, 2}, - .SWP = { 451, 2}, - .SWPA = { 453, 2}, - .SWPL = { 455, 2}, - .SWPAL = { 457, 2}, - .CAS = { 459, 2}, - .CASA = { 461, 2}, - .CASL = { 463, 2}, - .CASAL = { 465, 2}, - .CASB = { 467, 1}, - .CASAB = { 468, 1}, - .CASLB = { 469, 1}, - .CASALB = { 470, 1}, - .CASH = { 471, 1}, - .CASAH = { 472, 1}, - .CASLH = { 473, 1}, - .CASALH = { 474, 1}, - .CASP = { 475, 2}, - .CASPA = { 477, 2}, - .CASPL = { 479, 2}, - .CASPAL = { 481, 2}, - .PACIA = { 483, 1}, - .PACIB = { 484, 1}, - .PACDA = { 485, 1}, - .PACDB = { 486, 1}, - .PACIZA = { 487, 1}, - .PACIZB = { 488, 1}, - .PACDZA = { 489, 1}, - .PACDZB = { 490, 1}, - .AUTIA = { 491, 1}, - .AUTIB = { 492, 1}, - .AUTDA = { 493, 1}, - .AUTDB = { 494, 1}, - .AUTIZA = { 495, 1}, - .AUTIZB = { 496, 1}, - .AUTDZA = { 497, 1}, - .AUTDZB = { 498, 1}, - .PACIASP = { 499, 1}, - .PACIBSP = { 500, 1}, - .AUTIASP = { 501, 1}, - .AUTIBSP = { 502, 1}, - .PACIA1716 = { 503, 1}, - .PACIB1716 = { 504, 1}, - .AUTIA1716 = { 505, 1}, - .AUTIB1716 = { 506, 1}, - .PACGA = { 507, 1}, - .XPACI = { 508, 1}, - .XPACD = { 509, 1}, - .XPACLRI = { 510, 1}, - .RETAA = { 511, 1}, - .RETAB = { 512, 1}, - .BRAA = { 513, 1}, - .BRAB = { 514, 1}, - .BRAAZ = { 515, 1}, - .BRABZ = { 516, 1}, - .BLRAA = { 517, 1}, - .BLRAB = { 518, 1}, - .BLRAAZ = { 519, 1}, - .BLRABZ = { 520, 1}, - .ERETAA = { 521, 1}, - .ERETAB = { 522, 1}, - .BTI = { 523, 1}, - .IRG = { 524, 1}, - .ADDG = { 525, 1}, - .SUBG = { 526, 1}, - .GMI = { 527, 1}, - .SUBP = { 528, 1}, - .SUBPS = { 529, 1}, - .LDG = { 530, 1}, - .STG = { 531, 1}, - .ST2G = { 532, 1}, - .STZG = { 533, 1}, - .STZ2G = { 534, 1}, - .STGP = { 535, 1}, - .LDGM = { 536, 1}, - .STGM = { 537, 1}, - .STZGM = { 538, 1}, - .CRC32B = { 539, 1}, - .CRC32H = { 540, 1}, - .CRC32W = { 541, 1}, - .CRC32X = { 542, 1}, - .CRC32CB = { 543, 1}, - .CRC32CH = { 544, 1}, - .CRC32CW = { 545, 1}, - .CRC32CX = { 546, 1}, - .AESE = { 547, 1}, - .AESD = { 548, 1}, - .AESMC = { 549, 1}, - .AESIMC = { 550, 1}, - .SHA1H = { 551, 1}, - .SHA1C = { 552, 1}, - .SHA1P = { 553, 1}, - .SHA1M = { 554, 1}, - .SHA1SU0 = { 555, 1}, - .SHA1SU1 = { 556, 1}, - .SHA256H = { 557, 1}, - .SHA256H2 = { 558, 1}, - .SHA256SU0 = { 559, 1}, - .SHA256SU1 = { 560, 1}, - .SHA512H = { 561, 1}, - .SHA512H2 = { 562, 1}, - .SHA512SU0 = { 563, 1}, - .SHA512SU1 = { 564, 1}, - .EOR3 = { 565, 1}, - .BCAX = { 566, 1}, - .RAX1 = { 567, 1}, - .XAR = { 568, 1}, - .SM3PARTW1 = { 569, 1}, - .SM3PARTW2 = { 570, 1}, - .SM3SS1 = { 571, 1}, - .SM3TT1A = { 572, 1}, - .SM3TT1B = { 573, 1}, - .SM3TT2A = { 574, 1}, - .SM3TT2B = { 575, 1}, - .SM4E = { 576, 1}, - .SM4EKEY = { 577, 1}, - .PMULL = { 578, 2}, - .PMULL2 = { 580, 2}, - .FABS_H = { 582, 1}, - .FNEG_H = { 583, 1}, - .FSQRT_H = { 584, 1}, - .FADD_H = { 585, 1}, - .FSUB_H = { 586, 1}, - .FMUL_H = { 587, 1}, - .FDIV_H = { 588, 1}, - .FNMUL_H = { 589, 1}, - .FMADD_H = { 590, 1}, - .FMSUB_H = { 591, 1}, - .FNMADD_H = { 592, 1}, - .FNMSUB_H = { 593, 1}, - .FCMP_H = { 594, 1}, - .FCMPE_H = { 595, 1}, - .FCSEL_H = { 596, 1}, - .FMAX_H = { 597, 1}, - .FMIN_H = { 598, 1}, - .FMAXNM_H = { 599, 1}, - .FMINNM_H = { 600, 1}, - .FCVT_H_S = { 601, 1}, - .FCVT_H_D = { 602, 1}, - .FCVT_S_H = { 603, 1}, - .FCVT_D_H = { 604, 1}, - .FMOV_H = { 605, 1}, - .SCVTF_H = { 606, 1}, - .UCVTF_H = { 607, 1}, - .FCVTZS_H = { 608, 1}, - .FCVTZU_H = { 609, 1}, - .BFCVT = { 610, 1}, - .BFDOT = { 611, 1}, - .BFMMLA = { 612, 1}, - .BFMLALB = { 613, 1}, - .BFMLALT = { 614, 1}, - .BFCVTN = { 615, 1}, - .BFCVTN2 = { 616, 1}, - .ADD_V = { 617, 7}, - .SUB_V = { 624, 4}, - .MUL_V = { 628, 3}, - .MLA_V = { 631, 6}, - .MLS_V = { 637, 6}, - .NEG_V = { 643, 7}, - .ABS_V = { 650, 7}, - .SHADD = { 657, 6}, - .UHADD = { 663, 6}, - .SHSUB = { 669, 6}, - .UHSUB = { 675, 6}, - .SRHADD = { 681, 6}, - .URHADD = { 687, 6}, - .SQADD = { 693, 7}, - .UQADD = { 700, 7}, - .SQSUB = { 707, 7}, - .UQSUB = { 714, 7}, - .SMAX = { 721, 6}, - .UMAX = { 727, 6}, - .SMIN = { 733, 6}, - .UMIN = { 739, 6}, - .SABD = { 745, 6}, - .UABD = { 751, 6}, - .SABA = { 757, 6}, - .UABA = { 763, 6}, - .ADDP_V = { 769, 7}, - .ADDV = { 776, 5}, - .SADDLP = { 781, 6}, - .UADDLP = { 787, 6}, - .SADALP = { 793, 6}, - .UADALP = { 799, 6}, - .SADDLV = { 805, 5}, - .UADDLV = { 810, 5}, - .SMAXV = { 815, 5}, - .UMAXV = { 820, 5}, - .SMINV = { 825, 5}, - .UMINV = { 830, 5}, - .SMAXP = { 835, 6}, - .UMAXP = { 841, 6}, - .SMINP = { 847, 6}, - .UMINP = { 853, 6}, - .SADDL = { 859, 3}, - .SADDL2 = { 862, 3}, - .UADDL = { 865, 3}, - .UADDL2 = { 868, 3}, - .SSUBL = { 871, 3}, - .SSUBL2 = { 874, 3}, - .USUBL = { 877, 3}, - .USUBL2 = { 880, 3}, - .SADDW = { 883, 3}, - .SADDW2 = { 886, 3}, - .UADDW = { 889, 3}, - .UADDW2 = { 892, 3}, - .SSUBW = { 895, 3}, - .SSUBW2 = { 898, 3}, - .USUBW = { 901, 3}, - .USUBW2 = { 904, 3}, - .RADDHN = { 907, 3}, - .RADDHN2 = { 910, 3}, - .RSUBHN = { 913, 3}, - .RSUBHN2 = { 916, 3}, - .ADDHN = { 919, 3}, - .ADDHN2 = { 922, 3}, - .SUBHN = { 925, 3}, - .SUBHN2 = { 928, 3}, - .XTN = { 931, 3}, - .XTN2 = { 934, 3}, - .SQXTN = { 937, 3}, - .SQXTN2 = { 940, 3}, - .UQXTN = { 943, 3}, - .UQXTN2 = { 946, 3}, - .SQXTUN = { 949, 3}, - .SQXTUN2 = { 952, 3}, - .SMULL_V = { 955, 3}, - .SMULL2_V = { 958, 3}, - .UMULL_V = { 961, 3}, - .UMULL2_V = { 964, 3}, - .SMLAL = { 967, 3}, - .SMLAL2 = { 970, 3}, - .UMLAL = { 973, 3}, - .UMLAL2 = { 976, 3}, - .SMLSL = { 979, 3}, - .SMLSL2 = { 982, 3}, - .UMLSL = { 985, 3}, - .UMLSL2 = { 988, 3}, - .SQDMULL = { 991, 2}, - .SQDMULL2 = { 993, 2}, - .SQDMLAL = { 995, 2}, - .SQDMLAL2 = { 997, 2}, - .SQDMLSL = { 999, 2}, - .SQDMLSL2 = { 1001, 2}, - .SQDMULH = { 1003, 4}, - .SQRDMULH = { 1007, 4}, - .SDOT = { 1011, 2}, - .UDOT = { 1013, 2}, - .USDOT = { 1015, 2}, - .FADD_V = { 1017, 3}, - .FSUB_V = { 1020, 3}, - .FMUL_V = { 1023, 3}, - .FDIV_V = { 1026, 3}, - .FNEG_V = { 1029, 5}, - .FABS_V = { 1034, 5}, - .FSQRT_V = { 1039, 5}, - .FMLA_V = { 1044, 2}, - .FMLS_V = { 1046, 2}, - .FMULX = { 1048, 5}, - .FMAX_V = { 1053, 5}, - .FMIN_V = { 1058, 5}, - .FMAXNM_V = { 1063, 5}, - .FMINNM_V = { 1068, 5}, - .FMAXP_V = { 1073, 5}, - .FMINP_V = { 1078, 5}, - .FMAXNMP = { 1083, 5}, - .FMINNMP = { 1088, 5}, - .FMAXV_V = { 1093, 3}, - .FMINV_V = { 1096, 3}, - .FMAXNMV = { 1099, 3}, - .FMINNMV = { 1102, 3}, - .FRECPE = { 1105, 5}, - .FRSQRTE = { 1110, 5}, - .FRECPS = { 1115, 5}, - .FRSQRTS = { 1120, 5}, - .FRECPX = { 1125, 3}, - .FADDP_V = { 1128, 5}, - .FRINTA_V = { 1133, 5}, - .FRINTI_V = { 1138, 5}, - .FRINTM_V = { 1143, 5}, - .FRINTN_V = { 1148, 5}, - .FRINTP_V = { 1153, 5}, - .FRINTX_V = { 1158, 5}, - .FRINTZ_V = { 1163, 5}, - .SCVTF_V = { 1168, 5}, - .UCVTF_V = { 1173, 5}, - .FCVTAS_V = { 1178, 5}, - .FCVTAU_V = { 1183, 5}, - .FCVTMS_V = { 1188, 5}, - .FCVTMU_V = { 1193, 5}, - .FCVTNS_V = { 1198, 5}, - .FCVTNU_V = { 1203, 5}, - .FCVTPS_V = { 1208, 5}, - .FCVTPU_V = { 1213, 5}, - .FCVTZS_V = { 1218, 5}, - .FCVTZU_V = { 1223, 5}, - .FCVTL = { 1228, 2}, - .FCVTL2 = { 1230, 2}, - .FCVTN = { 1232, 2}, - .FCVTN2 = { 1234, 2}, - .FCVTXN = { 1236, 1}, - .FCVTXN2 = { 1237, 1}, - .FCMEQ = { 1238, 5}, - .FCMGE = { 1243, 5}, - .FCMGT = { 1248, 5}, - .FCMLE = { 1253, 5}, - .FCMLT = { 1258, 5}, - .FACGE = { 1263, 5}, - .FACGT = { 1268, 5}, - .CMEQ = { 1273, 4}, - .CMGE = { 1277, 7}, - .CMGT = { 1284, 2}, - .CMHI = { 1286, 2}, - .CMHS = { 1288, 7}, - .CMLE = { 1295, 7}, - .CMLT = { 1302, 7}, - .CMTST = { 1309, 7}, - .AND_V = { 1316, 1}, - .ORR_V = { 1317, 1}, - .EOR_V = { 1318, 1}, - .BIC_V = { 1319, 1}, - .ORN_V = { 1320, 1}, - .MVN_V = { 1321, 2}, - .BIT = { 1323, 1}, - .BIF = { 1324, 1}, - .BSL = { 1325, 1}, - .SHL_V = { 1326, 7}, - .SQSHL_V = { 1333, 7}, - .SQSHLU = { 1340, 7}, - .SRSHL = { 1347, 7}, - .URSHL = { 1354, 7}, - .SSHR = { 1361, 7}, - .USHR = { 1368, 7}, - .SSRA = { 1375, 7}, - .USRA = { 1382, 7}, - .SRSHR = { 1389, 7}, - .URSHR = { 1396, 7}, - .SRSRA = { 1403, 7}, - .URSRA = { 1410, 7}, - .SSHL = { 1417, 7}, - .USHL = { 1424, 7}, - .SLI = { 1431, 7}, - .SRI = { 1438, 7}, - .SSHLL = { 1445, 3}, - .SSHLL2 = { 1448, 3}, - .USHLL = { 1451, 3}, - .USHLL2 = { 1454, 3}, - .SXTL = { 1457, 3}, - .SXTL2 = { 1460, 3}, - .UXTL = { 1463, 3}, - .UXTL2 = { 1466, 3}, - .SHRN = { 1469, 3}, - .SHRN2 = { 1472, 3}, - .RSHRN = { 1475, 3}, - .RSHRN2 = { 1478, 3}, - .SQSHRN = { 1481, 3}, - .SQSHRN2 = { 1484, 3}, - .UQSHRN = { 1487, 3}, - .UQSHRN2 = { 1490, 3}, - .SQRSHRN = { 1493, 3}, - .SQRSHRN2 = { 1496, 3}, - .UQRSHRN = { 1499, 3}, - .UQRSHRN2 = { 1502, 3}, - .SQSHRUN = { 1505, 3}, - .SQSHRUN2 = { 1508, 3}, - .SQRSHRUN = { 1511, 3}, - .SQRSHRUN2 = { 1514, 3}, - .DUP_V = { 1517, 14}, - .INS = { 1531, 8}, - .MOV_V = { 1539, 2}, - .EXT_V = { 1541, 2}, - .TBL = { 1543, 2}, - .TBX = { 1545, 2}, - .ZIP1 = { 1547, 7}, - .ZIP2 = { 1554, 7}, - .UZP1 = { 1561, 7}, - .UZP2 = { 1568, 7}, - .TRN1 = { 1575, 7}, - .TRN2 = { 1582, 7}, - .NOT_V = { 1589, 2}, - .RBIT_V = { 1591, 2}, - .REV16_V = { 1593, 2}, - .REV32_V = { 1595, 4}, - .REV64 = { 1599, 6}, - .CLS_V = { 1605, 6}, - .CLZ_V = { 1611, 6}, - .CNT = { 1617, 2}, - .URECPE_V = { 1619, 2}, - .URSQRTE_V = { 1621, 2}, - .MOVI = { 1623, 7}, - .MVNI = { 1630, 4}, - .FMOV_V_IMM = { 1634, 5}, - .LD1 = { 1639, 4}, - .LD2 = { 1643, 1}, - .LD3 = { 1644, 1}, - .LD4 = { 1645, 1}, - .ST1 = { 1646, 4}, - .ST2 = { 1650, 1}, - .ST3 = { 1651, 1}, - .ST4 = { 1652, 1}, - .LD1R = { 1653, 1}, - .LD2R = { 1654, 1}, - .LD3R = { 1655, 1}, - .LD4R = { 1656, 1}, - .LD1_LANE = { 1657, 4}, - .LD2_LANE = { 1661, 4}, - .LD3_LANE = { 1665, 4}, - .LD4_LANE = { 1669, 4}, - .ST1_LANE = { 1673, 4}, - .ST2_LANE = { 1677, 4}, - .ST3_LANE = { 1681, 4}, - .ST4_LANE = { 1685, 4}, - .LDR_V = { 1689, 5}, - .STR_V = { 1694, 5}, - .LDP_V = { 1699, 3}, - .STP_V = { 1702, 3}, - .LDUR_V = { 1705, 3}, - .STUR_V = { 1708, 3}, - .SVE_ADD_Z = { 1711, 4}, - .SVE_SUB_Z = { 1715, 4}, - .SVE_SQADD_Z = { 1719, 4}, - .SVE_UQADD_Z = { 1723, 4}, - .SVE_SQSUB_Z = { 1727, 4}, - .SVE_UQSUB_Z = { 1731, 4}, - .SVE_ADD_PRED = { 1735, 4}, - .SVE_SUB_PRED = { 1739, 4}, - .SVE_SUBR_PRED = { 1743, 4}, - .SVE_MUL_PRED = { 1747, 4}, - .SVE_SMULH_PRED = { 1751, 4}, - .SVE_UMULH_PRED = { 1755, 4}, - .SVE_SDIV_PRED = { 1759, 2}, - .SVE_UDIV_PRED = { 1761, 2}, - .SVE_SMAX_PRED = { 1763, 4}, - .SVE_UMAX_PRED = { 1767, 4}, - .SVE_SMIN_PRED = { 1771, 4}, - .SVE_UMIN_PRED = { 1775, 4}, - .SVE_SABD_PRED = { 1779, 4}, - .SVE_UABD_PRED = { 1783, 4}, - .SVE_AND_PRED = { 1787, 1}, - .SVE_ORR_PRED = { 1788, 1}, - .SVE_EOR_PRED = { 1789, 1}, - .SVE_BIC_PRED = { 1790, 1}, - .SVE_ASR_PRED = { 1791, 4}, - .SVE_LSL_PRED = { 1795, 4}, - .SVE_LSR_PRED = { 1799, 4}, - .SVE_ASRR_PRED = { 1803, 4}, - .SVE_LSLR_PRED = { 1807, 4}, - .SVE_LSRR_PRED = { 1811, 4}, - .SVE_ABS_PRED = { 1815, 4}, - .SVE_NEG_PRED = { 1819, 4}, - .SVE_CLS_PRED = { 1823, 4}, - .SVE_CLZ_PRED = { 1827, 4}, - .SVE_CNT_PRED = { 1831, 4}, - .SVE_MOV_PRED = { 1835, 4}, - .SVE_FADD_Z = { 1839, 3}, - .SVE_FSUB_Z = { 1842, 3}, - .SVE_FMUL_Z = { 1845, 3}, - .SVE_FRECPS = { 1848, 3}, - .SVE_FRSQRTS = { 1851, 3}, - .SVE_FTSMUL = { 1854, 3}, - .SVE_FADD_PRED = { 1857, 3}, - .SVE_FSUB_PRED = { 1860, 3}, - .SVE_FSUBR_PRED = { 1863, 3}, - .SVE_FMUL_PRED = { 1866, 3}, - .SVE_FDIV_PRED = { 1869, 3}, - .SVE_FDIVR_PRED = { 1872, 3}, - .SVE_FMAX_PRED = { 1875, 3}, - .SVE_FMIN_PRED = { 1878, 3}, - .SVE_FMAXNM_PRED = { 1881, 3}, - .SVE_FMINNM_PRED = { 1884, 3}, - .SVE_FABS_Z = { 1887, 3}, - .SVE_FNEG_Z = { 1890, 3}, - .SVE_FSQRT_Z = { 1893, 3}, - .SVE_FRECPX_Z = { 1896, 3}, - .SVE_FRINTN = { 1899, 3}, - .SVE_FRINTP = { 1902, 3}, - .SVE_FRINTM = { 1905, 3}, - .SVE_FRINTZ = { 1908, 3}, - .SVE_FRINTA = { 1911, 3}, - .SVE_FRINTX = { 1914, 3}, - .SVE_FRINTI = { 1917, 3}, - .SVE_FMLA = { 1920, 3}, - .SVE_FMLS = { 1923, 3}, - .SVE_FNMLA = { 1926, 3}, - .SVE_FNMLS = { 1929, 3}, - .SVE_AND_P = { 1932, 1}, - .SVE_BIC_P = { 1933, 1}, - .SVE_ORR_P = { 1934, 1}, - .SVE_EOR_P = { 1935, 1}, - .SVE_NAND_P = { 1936, 1}, - .SVE_NOR_P = { 1937, 1}, - .SVE_ORN_P = { 1938, 1}, - .SVE_SEL_P = { 1939, 1}, - .SVE_ANDS_P = { 1940, 1}, - .SVE_BICS_P = { 1941, 1}, - .SVE_ORRS_P = { 1942, 1}, - .SVE_EORS_P = { 1943, 1}, - .SVE_NANDS_P = { 1944, 1}, - .SVE_NORS_P = { 1945, 1}, - .SVE_ORNS_P = { 1946, 1}, - .SVE_NOT_P = { 1947, 1}, - .SVE_MOV_P = { 1948, 2}, - .SVE_MOVS_P = { 1950, 1}, - .SVE_PTRUE = { 1951, 1}, - .SVE_PTRUES = { 1952, 1}, - .SVE_PFALSE = { 1953, 1}, - .SVE_PFIRST = { 1954, 1}, - .SVE_PNEXT = { 1955, 1}, - .SVE_BRKA = { 1956, 1}, - .SVE_BRKB = { 1957, 1}, - .SVE_BRKAS = { 1958, 1}, - .SVE_BRKBS = { 1959, 1}, - .SVE_BRKPA = { 1960, 1}, - .SVE_BRKPB = { 1961, 1}, - .SVE_BRKN = { 1962, 1}, - .SVE_RDFFR = { 1963, 1}, - .SVE_WRFFR = { 1964, 1}, - .SVE_SETFFR = { 1965, 1}, - .SVE_CMPEQ = { 1966, 4}, - .SVE_CMPNE = { 1970, 4}, - .SVE_CMPGE = { 1974, 4}, - .SVE_CMPGT = { 1978, 4}, - .SVE_CMPLE = { 1982, 4}, - .SVE_CMPLT = { 1986, 4}, - .SVE_CMPHI = { 1990, 4}, - .SVE_CMPHS = { 1994, 4}, - .SVE_CMPLO = { 1998, 4}, - .SVE_CMPLS = { 2002, 4}, - .SVE_FCMEQ = { 2006, 3}, - .SVE_FCMNE = { 2009, 3}, - .SVE_FCMGE = { 2012, 3}, - .SVE_FCMGT = { 2015, 3}, - .SVE_FCMLE = { 2018, 3}, - .SVE_FCMLT = { 2021, 3}, - .SVE_FCMUO = { 2024, 3}, - .SVE_DUP_Z = { 2027, 4}, - .SVE_INSR = { 2031, 4}, - .SVE_REV_Z = { 2035, 4}, - .SVE_REV_P = { 2039, 1}, - .SVE_TBL = { 2040, 4}, - .SVE_ZIP1_Z = { 2044, 4}, - .SVE_ZIP2_Z = { 2048, 4}, - .SVE_UZP1_Z = { 2052, 4}, - .SVE_UZP2_Z = { 2056, 4}, - .SVE_TRN1_Z = { 2060, 4}, - .SVE_TRN2_Z = { 2064, 4}, - .SVE_ZIP1_P = { 2068, 1}, - .SVE_ZIP2_P = { 2069, 1}, - .SVE_UZP1_P = { 2070, 1}, - .SVE_UZP2_P = { 2071, 1}, - .SVE_TRN1_P = { 2072, 1}, - .SVE_TRN2_P = { 2073, 1}, - .SVE_CPY_Z = { 2074, 4}, - .SVE_COMPACT = { 2078, 2}, - .SVE_EXT_Z = { 2080, 1}, - .SVE_LD1B = { 2081, 1}, - .SVE_LD1H = { 2082, 1}, - .SVE_LD1W = { 2083, 1}, - .SVE_LD1D = { 2084, 1}, - .SVE_LD1SB = { 2085, 1}, - .SVE_LD1SH = { 2086, 1}, - .SVE_LD1SW = { 2087, 1}, - .SVE_ST1B = { 2088, 1}, - .SVE_ST1H = { 2089, 1}, - .SVE_ST1W = { 2090, 1}, - .SVE_ST1D = { 2091, 1}, - .SVE_LDR_Z = { 2092, 1}, - .SVE_STR_Z = { 2093, 1}, - .SVE_LDR_P = { 2094, 1}, - .SVE_STR_P = { 2095, 1}, - .SVE_LDFF1B = { 2096, 1}, - .SVE_LDFF1H = { 2097, 1}, - .SVE_LDFF1W = { 2098, 1}, - .SVE_LDFF1D = { 2099, 1}, - .SVE_WHILEGE = { 2100, 1}, - .SVE_WHILEGT = { 2101, 1}, - .SVE_WHILELE = { 2102, 1}, - .SVE_WHILELT = { 2103, 1}, - .SVE_WHILEHI = { 2104, 1}, - .SVE_WHILEHS = { 2105, 1}, - .SVE_WHILELO = { 2106, 1}, - .SVE_WHILELS = { 2107, 1}, - .SVE_SQRDMLAH = { 2108, 4}, - .SVE_SQRDMLSH = { 2112, 4}, - .SVE_ADCLB = { 2116, 2}, - .SVE_ADCLT = { 2118, 2}, - .SVE_SBCLB = { 2120, 2}, - .SVE_SBCLT = { 2122, 2}, - .SVE_TBL2 = { 2124, 1}, - .SVE_TBX = { 2125, 1}, - .SVE_AESE = { 2126, 1}, - .SVE_AESD = { 2127, 1}, - .SVE_AESMC = { 2128, 1}, - .SVE_AESIMC = { 2129, 1}, - .SVE_BCAX_Z = { 2130, 1}, - .SVE_XAR_Z = { 2131, 4}, - .SVE_EOR3_Z = { 2135, 1}, - .SVE_MATCH = { 2136, 2}, - .SVE_NMATCH = { 2138, 2}, - .SVE_HISTCNT = { 2140, 2}, - .SVE_HISTSEG = { 2142, 1}, - .SME_SMSTART = { 2143, 1}, - .SME_SMSTOP = { 2144, 1}, - .SME_RDSVL = { 2145, 1}, - .SME_ADDHA = { 2146, 1}, - .SME_ADDVA = { 2147, 1}, - .SME_ZERO = { 2148, 1}, - .SME_FMOPA = { 2149, 1}, - .SME_FMOPS = { 2150, 1}, - .SME_BFMOPA = { 2151, 1}, - .SME_BFMOPS = { 2152, 1}, - .SME_SMOPA = { 2153, 2}, - .SME_SMOPS = { 2155, 2}, - .SME_UMOPA = { 2157, 2}, - .SME_UMOPS = { 2159, 2}, - .SME_USMOPA = { 2161, 1}, - .SME_SUMOPA = { 2162, 1}, - .SME_LDR_ZA = { 2163, 1}, - .SME_STR_ZA = { 2164, 1}, - .SVE_FMLA_IDX_H = { 2165, 1}, - .SVE_FMLA_IDX_S = { 2166, 1}, - .SVE_FMLA_IDX_D = { 2167, 1}, - .SVE_FMLS_IDX_H = { 2168, 1}, - .SVE_FMLS_IDX_S = { 2169, 1}, - .SVE_FMLS_IDX_D = { 2170, 1}, - .SVE_LD1B_GATHER_S = { 2171, 1}, - .SVE_LD1B_GATHER_D = { 2172, 1}, - .SVE_LD1H_GATHER_S = { 2173, 1}, - .SVE_LD1H_GATHER_D = { 2174, 1}, - .SVE_LD1W_GATHER_S = { 2175, 1}, - .SVE_LD1W_GATHER_D = { 2176, 1}, - .SVE_LD1D_GATHER_D = { 2177, 1}, - .SVE_LD1SB_GATHER_S = { 2178, 1}, - .SVE_LD1SB_GATHER_D = { 2179, 1}, - .SVE_LD1SH_GATHER_S = { 2180, 1}, - .SVE_LD1SH_GATHER_D = { 2181, 1}, - .SVE_LD1SW_GATHER_D = { 2182, 1}, - .SVE_ST1B_SCATTER_S = { 2183, 1}, - .SVE_ST1B_SCATTER_D = { 2184, 1}, - .SVE_ST1H_SCATTER_S = { 2185, 1}, - .SVE_ST1H_SCATTER_D = { 2186, 1}, - .SVE_ST1W_SCATTER_S = { 2187, 1}, - .SVE_ST1W_SCATTER_D = { 2188, 1}, - .SVE_ST1D_SCATTER_D = { 2189, 1}, - .SME_LD1B_TILE = { 2190, 1}, - .SME_LD1H_TILE = { 2191, 1}, - .SME_LD1W_TILE = { 2192, 1}, - .SME_LD1D_TILE = { 2193, 1}, - .SME_LD1Q_TILE = { 2194, 1}, - .SME_ST1B_TILE = { 2195, 1}, - .SME_ST1H_TILE = { 2196, 1}, - .SME_ST1W_TILE = { 2197, 1}, - .SME_ST1D_TILE = { 2198, 1}, - .SME_ST1Q_TILE = { 2199, 1}, - .SME_MOVA_Z_FROM_TILE = { 2200, 1}, - .SME_MOVA_TILE_FROM_Z = { 2201, 1}, - .FCMLA_4H = { 2202, 1}, - .FCMLA_8H = { 2203, 1}, - .FCMLA_4S = { 2204, 1}, - .FCMLA_2D = { 2205, 1}, - .FCADD_4H = { 2206, 1}, - .FCADD_8H = { 2207, 1}, - .FCADD_4S = { 2208, 1}, - .FCADD_2D = { 2209, 1}, - .SVE_PRFB = { 2210, 1}, - .SVE_PRFH = { 2211, 1}, - .SVE_PRFW = { 2212, 1}, - .SVE_PRFD = { 2213, 1}, - .SVE_LDNT1B = { 2214, 1}, - .SVE_LDNT1H = { 2215, 1}, - .SVE_LDNT1W = { 2216, 1}, - .SVE_LDNT1D = { 2217, 1}, - .SVE_STNT1B = { 2218, 1}, - .SVE_STNT1H = { 2219, 1}, - .SVE_STNT1W = { 2220, 1}, - .SVE_STNT1D = { 2221, 1}, - .SVE_EXT = { 2222, 1}, - .SVE_SPLICE = { 2223, 1}, - .SVE_INDEX_II = { 2224, 1}, - .SVE_INDEX_IR = { 2225, 1}, - .SVE_INDEX_RI = { 2226, 1}, - .SVE_INDEX_RR = { 2227, 1}, - .SVE_BSL = { 2228, 1}, - .SVE_BSL1N = { 2229, 1}, - .SVE_BSL2N = { 2230, 1}, - .SVE_NBSL = { 2231, 1}, - .SVE_PMUL_VEC = { 2232, 1}, - .SVE_PMULLB = { 2233, 1}, - .SVE_PMULLT = { 2234, 1}, - .SVE_BFCVT = { 2235, 1}, - .SVE_BFCVTNT = { 2236, 1}, - .LDRAA = { 2237, 1}, - .LDRAB = { 2238, 1}, - .LDRAA_PRE = { 2239, 1}, - .LDRAB_PRE = { 2240, 1}, - .TSTART = { 2241, 1}, - .TCOMMIT = { 2242, 1}, - .TCANCEL = { 2243, 1}, - .TTEST = { 2244, 1}, - .WFET = { 2245, 1}, - .WFIT = { 2246, 1}, - .BC_COND = { 2247, 1}, - .UXTB = { 2248, 1}, - .UXTH = { 2249, 1}, - .UXTW = { 2250, 1}, - .SXTB = { 2251, 1}, - .SXTH = { 2252, 1}, - .SXTW = { 2253, 1}, - .ADC = { 2254, 2}, - .ADCS = { 2256, 2}, - .SBC = { 2258, 2}, - .SBCS = { 2260, 2}, - .NGC = { 2262, 2}, - .NGCS = { 2264, 2}, - .LDAPUR = { 2266, 2}, - .STLUR = { 2268, 2}, - .LDAPURB = { 2270, 1}, - .STLURB = { 2271, 1}, - .LDAPURH = { 2272, 1}, - .STLURH = { 2273, 1}, - .LDAPURSB = { 2274, 2}, - .LDAPURSH = { 2276, 2}, - .LDAPURSW = { 2278, 1}, - .SVE_BFADD = { 2279, 1}, - .SVE_BFSUB = { 2280, 1}, - .SVE_BFMUL = { 2281, 1}, - .SVE_BFMLA = { 2282, 1}, - .SVE_BFMLS = { 2283, 1}, - .SB = { 2284, 1}, - .CSDB = { 2285, 1}, - .DGH = { 2286, 1}, - .PSB_CSYNC = { 2287, 1}, - .TSB_CSYNC = { 2288, 1}, - .BTI_J = { 2289, 1}, - .BTI_C = { 2290, 1}, - .BTI_JC = { 2291, 1}, - .MOV_V_ALIAS = { 2292, 2}, - .NOT_V_ALIAS = { 2294, 2}, - .LSL_IMM = { 2296, 2}, - .LSR_IMM = { 2298, 2}, - .ASR_IMM = { 2300, 2}, - .ROR_IMM = { 2302, 2}, - .SVE_BFADD_UNPRED = { 2304, 1}, - .SVE_BFSUB_UNPRED = { 2305, 1}, - .SVE_BFMUL_UNPRED = { 2306, 1}, - .SVE_BFCLAMP = { 2307, 1}, - .SVE_BFMAXNM = { 2308, 1}, - .SVE_BFMINNM = { 2309, 1}, - .SME2_LUTI2_B = { 2310, 1}, - .SME2_LUTI4_B = { 2311, 1}, - .SME2_LD1B_X2 = { 2312, 1}, - .SME2_LD1H_X2 = { 2313, 1}, - .SME2_LD1W_X2 = { 2314, 1}, - .SME2_LD1D_X2 = { 2315, 1}, - .SME2_LD1B_X4 = { 2316, 1}, - .SME2_LD1H_X4 = { 2317, 1}, - .SME2_LD1W_X4 = { 2318, 1}, - .SME2_LD1D_X4 = { 2319, 1}, - .SME2_ST1B_X2 = { 2320, 1}, - .SME2_ST1H_X2 = { 2321, 1}, - .SME2_ST1W_X2 = { 2322, 1}, - .SME2_ST1D_X2 = { 2323, 1}, - .SME2_ST1B_X4 = { 2324, 1}, - .SME2_ST1H_X4 = { 2325, 1}, - .SME2_ST1W_X4 = { 2326, 1}, - .SME2_ST1D_X4 = { 2327, 1}, - .SME2_ZIP_3 = { 2328, 1}, - .SME2_ZIP_4 = { 2329, 1}, - .SME2_UZP_3 = { 2330, 1}, - .SME2_UZP_4 = { 2331, 1}, - .TLBI_RPALOS = { 2332, 1}, - .TLBI_RPAOS = { 2333, 1}, - .AT_S1E1A = { 2334, 1}, - .DC_CIPAPA = { 2335, 1}, - .DC_CIGDPAPA = { 2336, 1}, - .TLBI_PAALL = { 2337, 1}, - .TLBI_PAALLOS = { 2338, 1}, - .AMX_LDX = { 2339, 1}, - .AMX_LDY = { 2340, 1}, - .AMX_STX = { 2341, 1}, - .AMX_STY = { 2342, 1}, - .AMX_LDZ = { 2343, 1}, - .AMX_STZ = { 2344, 1}, - .AMX_LDZI = { 2345, 1}, - .AMX_STZI = { 2346, 1}, - .AMX_EXTRX = { 2347, 1}, - .AMX_EXTRY = { 2348, 1}, - .AMX_FMA64 = { 2349, 1}, - .AMX_FMS64 = { 2350, 1}, - .AMX_FMA32 = { 2351, 1}, - .AMX_FMS32 = { 2352, 1}, - .AMX_MAC16 = { 2353, 1}, - .AMX_FMA16 = { 2354, 1}, - .AMX_FMS16 = { 2355, 1}, - .AMX_SET = { 2356, 1}, - .AMX_CLR = { 2357, 1}, - .AMX_VECINT = { 2358, 1}, - .AMX_VECFP = { 2359, 1}, - .AMX_MATINT = { 2360, 1}, - .AMX_MATFP = { 2361, 1}, - .AMX_GENLUT = { 2362, 1}, - .CPYP = { 2363, 1}, - .CPYM = { 2364, 1}, - .CPYE = { 2365, 1}, - .CPYFP = { 2366, 1}, - .CPYFM = { 2367, 1}, - .CPYFE = { 2368, 1}, - .SETP = { 2369, 1}, - .SETM = { 2370, 1}, - .SETE = { 2371, 1}, - .DC_IVAC = { 2372, 1}, - .DC_ISW = { 2373, 1}, - .DC_CSW = { 2374, 1}, - .DC_CISW = { 2375, 1}, - .DC_ZVA = { 2376, 1}, - .DC_CVAC = { 2377, 1}, - .DC_CVAU = { 2378, 1}, - .DC_CIVAC = { 2379, 1}, - .IC_IALLUIS = { 2380, 1}, - .IC_IALLU = { 2381, 1}, - .IC_IVAU = { 2382, 1}, - .AT_S1E1R = { 2383, 1}, - .AT_S1E1W = { 2384, 1}, - .AT_S1E0R = { 2385, 1}, - .AT_S1E0W = { 2386, 1}, - .AT_S1E2R = { 2387, 1}, - .AT_S1E2W = { 2388, 1}, - .AT_S1E3R = { 2389, 1}, - .AT_S1E3W = { 2390, 1}, - .AT_S12E1R = { 2391, 1}, - .AT_S12E1W = { 2392, 1}, - .AT_S12E0R = { 2393, 1}, - .AT_S12E0W = { 2394, 1}, - .TLBI_VMALLE1 = { 2395, 1}, - .TLBI_VMALLE1IS = { 2396, 1}, - .TLBI_VAE1 = { 2397, 1}, - .TLBI_VAE1IS = { 2398, 1}, - .TLBI_ASIDE1 = { 2399, 1}, - .TLBI_ASIDE1IS = { 2400, 1}, - .TLBI_VAAE1 = { 2401, 1}, - .TLBI_VAAE1IS = { 2402, 1}, - .TLBI_VALE1 = { 2403, 1}, - .TLBI_VALE1IS = { 2404, 1}, - .TLBI_VAALE1 = { 2405, 1}, - .TLBI_VAALE1IS = { 2406, 1}, - .TLBI_ALLE1 = { 2407, 1}, - .TLBI_ALLE1IS = { 2408, 1}, - .TLBI_ALLE2 = { 2409, 1}, - .TLBI_ALLE2IS = { 2410, 1}, - .TLBI_ALLE3 = { 2411, 1}, - .TLBI_ALLE3IS = { 2412, 1}, - .PRFM = { 2413, 1}, - .PRFUM = { 2414, 1}, - .PRFM_LIT = { 2415, 1}, - .MOV_REG = { 2416, 2}, - .MOV_BITMASK = { 2418, 2}, - .MVN = { 2420, 2}, - .NEG_SR = { 2422, 2}, - .NEGS = { 2424, 2}, - .CMP_SR = { 2426, 2}, - .CMP_ER = { 2428, 2}, - .CMP_IMM = { 2430, 2}, - .CMN_SR = { 2432, 2}, - .CMN_ER = { 2434, 2}, - .CMN_IMM = { 2436, 2}, - .TST_SR = { 2438, 2}, + .INVALID = { 0, 0}, + .ADD = { 0, 21}, + .ADDS = { 21, 6}, + .SUB = { 27, 18}, + .SUBS = { 45, 6}, + .MOVZ = { 51, 2}, + .MOVN = { 53, 2}, + .MOVK = { 55, 2}, + .ADR = { 57, 1}, + .ADRP = { 58, 1}, + .AND = { 59, 10}, + .ANDS = { 69, 5}, + .ORR = { 74, 10}, + .EOR = { 84, 10}, + .BIC = { 94, 8}, + .BICS = { 102, 3}, + .ORN = { 105, 4}, + .EON = { 109, 2}, + .LSL = { 111, 8}, + .LSR = { 119, 8}, + .ASR = { 127, 8}, + .ROR = { 135, 4}, + .UDIV = { 139, 4}, + .SDIV = { 143, 4}, + .MADD = { 147, 2}, + .MSUB = { 149, 2}, + .SMADDL = { 151, 1}, + .SMSUBL = { 152, 1}, + .UMADDL = { 153, 1}, + .UMSUBL = { 154, 1}, + .SMULH = { 155, 5}, + .UMULH = { 160, 5}, + .CLZ = { 165, 12}, + .CLS = { 177, 12}, + .RBIT = { 189, 4}, + .REV = { 193, 7}, + .REV16 = { 200, 4}, + .REV32 = { 204, 5}, + .CSEL = { 209, 2}, + .CSINC = { 211, 2}, + .CSINV = { 213, 2}, + .CSNEG = { 215, 2}, + .CCMP = { 217, 4}, + .CCMN = { 221, 4}, + .CSET = { 225, 6}, + .CSETM = { 231, 6}, + .CINC = { 237, 6}, + .CINV = { 243, 6}, + .CNEG = { 249, 6}, + .EXTR = { 255, 2}, + .B = { 257, 1}, + .BL = { 258, 1}, + .BR = { 259, 1}, + .BLR = { 260, 1}, + .RET = { 261, 2}, + .B_EQ = { 263, 1}, + .B_NE = { 264, 1}, + .B_CS = { 265, 1}, + .B_CC = { 266, 1}, + .B_MI = { 267, 1}, + .B_PL = { 268, 1}, + .B_VS = { 269, 1}, + .B_VC = { 270, 1}, + .B_HI = { 271, 1}, + .B_LS = { 272, 1}, + .B_GE = { 273, 1}, + .B_LT = { 274, 1}, + .B_GT = { 275, 1}, + .B_LE = { 276, 1}, + .B_AL = { 277, 1}, + .B_NV = { 278, 1}, + .CBZ = { 279, 2}, + .CBNZ = { 281, 2}, + .TBZ = { 283, 1}, + .TBNZ = { 284, 1}, + .LDR = { 285, 33}, + .STR = { 318, 31}, + .LDRB = { 349, 4}, + .STRB = { 353, 4}, + .LDRSB = { 357, 4}, + .LDRH = { 361, 4}, + .STRH = { 365, 4}, + .LDRSH = { 369, 4}, + .LDRSW = { 373, 2}, + .LDP = { 375, 9}, + .STP = { 384, 9}, + .LDPSW = { 393, 3}, + .LDAR = { 396, 2}, + .STLR = { 398, 2}, + .LDARB = { 400, 1}, + .STLRB = { 401, 1}, + .LDARH = { 402, 1}, + .STLRH = { 403, 1}, + .LDXR = { 404, 2}, + .STXR = { 406, 2}, + .LDAXR = { 408, 2}, + .STLXR = { 410, 2}, + .NOP = { 412, 1}, + .YIELD = { 413, 1}, + .WFE = { 414, 1}, + .WFI = { 415, 1}, + .SEV = { 416, 1}, + .SEVL = { 417, 1}, + .HINT = { 418, 1}, + .MRS = { 419, 1}, + .MSR = { 420, 2}, + .ISB = { 422, 1}, + .DSB = { 423, 1}, + .DMB = { 424, 1}, + .SVC = { 425, 1}, + .HVC = { 426, 1}, + .SMC = { 427, 1}, + .BRK = { 428, 1}, + .HLT = { 429, 1}, + .ERET = { 430, 1}, + .FMOV = { 431, 17}, + .FABS = { 448, 11}, + .FNEG = { 459, 11}, + .FSQRT = { 470, 11}, + .FADD = { 481, 12}, + .FSUB = { 493, 12}, + .FMUL = { 505, 12}, + .FDIV = { 517, 9}, + .FNMUL = { 526, 3}, + .FMADD = { 529, 3}, + .FMSUB = { 532, 3}, + .FNMADD = { 535, 3}, + .FNMSUB = { 538, 3}, + .FCMP = { 541, 3}, + .FCMPE = { 544, 3}, + .FCSEL = { 547, 3}, + .FMAX = { 550, 11}, + .FMIN = { 561, 11}, + .FMAXNM = { 572, 11}, + .FMINNM = { 583, 11}, + .FCVT = { 594, 6}, + .SCVTF = { 600, 10}, + .UCVTF = { 610, 10}, + .FCVTZS = { 620, 10}, + .FCVTZU = { 630, 10}, + .FCVTAS = { 640, 11}, + .FCVTAU = { 651, 11}, + .FCVTNS = { 662, 11}, + .FCVTNU = { 673, 11}, + .FCVTPS = { 684, 11}, + .FCVTPU = { 695, 11}, + .FCVTMS = { 706, 11}, + .FCVTMU = { 717, 11}, + .FRINTA = { 728, 11}, + .FRINTI = { 739, 11}, + .FRINTM = { 750, 11}, + .FRINTN = { 761, 11}, + .FRINTP = { 772, 11}, + .FRINTX = { 783, 11}, + .FRINTZ = { 794, 11}, + .TST = { 805, 4}, + .LDUR = { 809, 5}, + .STUR = { 814, 5}, + .LDURB = { 819, 1}, + .STURB = { 820, 1}, + .LDURSB = { 821, 2}, + .LDURH = { 823, 1}, + .STURH = { 824, 1}, + .LDURSH = { 825, 2}, + .LDURSW = { 827, 1}, + .LDNP = { 828, 2}, + .STNP = { 830, 2}, + .LDXP = { 832, 2}, + .STXP = { 834, 2}, + .LDAXP = { 836, 2}, + .STLXP = { 838, 2}, + .LDXRB = { 840, 1}, + .STXRB = { 841, 1}, + .LDAXRB = { 842, 1}, + .STLXRB = { 843, 1}, + .LDXRH = { 844, 1}, + .STXRH = { 845, 1}, + .LDAXRH = { 846, 1}, + .STLXRH = { 847, 1}, + .LDAPR = { 848, 2}, + .LDAPRB = { 850, 1}, + .LDAPRH = { 851, 1}, + .LDADD = { 852, 2}, + .LDADDA = { 854, 2}, + .LDADDL = { 856, 2}, + .LDADDAL = { 858, 2}, + .LDCLR = { 860, 2}, + .LDCLRA = { 862, 2}, + .LDCLRL = { 864, 2}, + .LDCLRAL = { 866, 2}, + .LDEOR = { 868, 2}, + .LDEORA = { 870, 2}, + .LDEORL = { 872, 2}, + .LDEORAL = { 874, 2}, + .LDSET = { 876, 2}, + .LDSETA = { 878, 2}, + .LDSETL = { 880, 2}, + .LDSETAL = { 882, 2}, + .LDSMAX = { 884, 2}, + .LDSMAXA = { 886, 2}, + .LDSMAXL = { 888, 2}, + .LDSMAXAL = { 890, 2}, + .LDSMIN = { 892, 2}, + .LDSMINA = { 894, 2}, + .LDSMINL = { 896, 2}, + .LDSMINAL = { 898, 2}, + .LDUMAX = { 900, 2}, + .LDUMAXA = { 902, 2}, + .LDUMAXL = { 904, 2}, + .LDUMAXAL = { 906, 2}, + .LDUMIN = { 908, 2}, + .LDUMINA = { 910, 2}, + .LDUMINL = { 912, 2}, + .LDUMINAL = { 914, 2}, + .SWP = { 916, 2}, + .SWPA = { 918, 2}, + .SWPL = { 920, 2}, + .SWPAL = { 922, 2}, + .CAS = { 924, 2}, + .CASA = { 926, 2}, + .CASL = { 928, 2}, + .CASAL = { 930, 2}, + .CASB = { 932, 1}, + .CASAB = { 933, 1}, + .CASLB = { 934, 1}, + .CASALB = { 935, 1}, + .CASH = { 936, 1}, + .CASAH = { 937, 1}, + .CASLH = { 938, 1}, + .CASALH = { 939, 1}, + .CASP = { 940, 2}, + .CASPA = { 942, 2}, + .CASPL = { 944, 2}, + .CASPAL = { 946, 2}, + .PACIA = { 948, 1}, + .PACIB = { 949, 1}, + .PACDA = { 950, 1}, + .PACDB = { 951, 1}, + .PACIZA = { 952, 1}, + .PACIZB = { 953, 1}, + .PACDZA = { 954, 1}, + .PACDZB = { 955, 1}, + .AUTIA = { 956, 1}, + .AUTIB = { 957, 1}, + .AUTDA = { 958, 1}, + .AUTDB = { 959, 1}, + .AUTIZA = { 960, 1}, + .AUTIZB = { 961, 1}, + .AUTDZA = { 962, 1}, + .AUTDZB = { 963, 1}, + .PACIASP = { 964, 1}, + .PACIBSP = { 965, 1}, + .AUTIASP = { 966, 1}, + .AUTIBSP = { 967, 1}, + .PACIA1716 = { 968, 1}, + .PACIB1716 = { 969, 1}, + .AUTIA1716 = { 970, 1}, + .AUTIB1716 = { 971, 1}, + .PACGA = { 972, 1}, + .XPACI = { 973, 1}, + .XPACD = { 974, 1}, + .XPACLRI = { 975, 1}, + .RETAA = { 976, 1}, + .RETAB = { 977, 1}, + .BRAA = { 978, 1}, + .BRAB = { 979, 1}, + .BRAAZ = { 980, 1}, + .BRABZ = { 981, 1}, + .BLRAA = { 982, 1}, + .BLRAB = { 983, 1}, + .BLRAAZ = { 984, 1}, + .BLRABZ = { 985, 1}, + .ERETAA = { 986, 1}, + .ERETAB = { 987, 1}, + .BTI = { 988, 1}, + .IRG = { 989, 1}, + .ADDG = { 990, 1}, + .SUBG = { 991, 1}, + .GMI = { 992, 1}, + .SUBP = { 993, 1}, + .SUBPS = { 994, 1}, + .LDG = { 995, 1}, + .STG = { 996, 1}, + .ST2G = { 997, 1}, + .STZG = { 998, 1}, + .STZ2G = { 999, 1}, + .STGP = { 1000, 1}, + .LDGM = { 1001, 1}, + .STGM = { 1002, 1}, + .STZGM = { 1003, 1}, + .CRC32B = { 1004, 1}, + .CRC32H = { 1005, 1}, + .CRC32W = { 1006, 1}, + .CRC32X = { 1007, 1}, + .CRC32CB = { 1008, 1}, + .CRC32CH = { 1009, 1}, + .CRC32CW = { 1010, 1}, + .CRC32CX = { 1011, 1}, + .AESE = { 1012, 2}, + .AESD = { 1014, 2}, + .AESMC = { 1016, 2}, + .AESIMC = { 1018, 2}, + .SHA1H = { 1020, 1}, + .SHA1C = { 1021, 1}, + .SHA1P = { 1022, 1}, + .SHA1M = { 1023, 1}, + .SHA1SU0 = { 1024, 1}, + .SHA1SU1 = { 1025, 1}, + .SHA256H = { 1026, 1}, + .SHA256H2 = { 1027, 1}, + .SHA256SU0 = { 1028, 1}, + .SHA256SU1 = { 1029, 1}, + .SHA512H = { 1030, 1}, + .SHA512H2 = { 1031, 1}, + .SHA512SU0 = { 1032, 1}, + .SHA512SU1 = { 1033, 1}, + .EOR3 = { 1034, 2}, + .BCAX = { 1036, 2}, + .RAX1 = { 1038, 1}, + .XAR = { 1039, 5}, + .SM3PARTW1 = { 1044, 1}, + .SM3PARTW2 = { 1045, 1}, + .SM3SS1 = { 1046, 1}, + .SM3TT1A = { 1047, 1}, + .SM3TT1B = { 1048, 1}, + .SM3TT2A = { 1049, 1}, + .SM3TT2B = { 1050, 1}, + .SM4E = { 1051, 1}, + .SM4EKEY = { 1052, 1}, + .PMULL = { 1053, 2}, + .PMULL2 = { 1055, 2}, + .BFCVT = { 1057, 2}, + .BFDOT = { 1059, 1}, + .BFMMLA = { 1060, 1}, + .BFMLALB = { 1061, 1}, + .BFMLALT = { 1062, 1}, + .BFCVTN = { 1063, 1}, + .BFCVTN2 = { 1064, 1}, + .MUL = { 1065, 7}, + .MLA = { 1072, 6}, + .MLS = { 1078, 6}, + .NEG = { 1084, 13}, + .ABS = { 1097, 11}, + .SHADD = { 1108, 6}, + .UHADD = { 1114, 6}, + .SHSUB = { 1120, 6}, + .UHSUB = { 1126, 6}, + .SRHADD = { 1132, 6}, + .URHADD = { 1138, 6}, + .SQADD = { 1144, 11}, + .UQADD = { 1155, 11}, + .SQSUB = { 1166, 11}, + .UQSUB = { 1177, 11}, + .SMAX = { 1188, 10}, + .UMAX = { 1198, 10}, + .SMIN = { 1208, 10}, + .UMIN = { 1218, 10}, + .SABD = { 1228, 10}, + .UABD = { 1238, 10}, + .SABA = { 1248, 6}, + .UABA = { 1254, 6}, + .ADDP = { 1260, 7}, + .ADDV = { 1267, 5}, + .SADDLP = { 1272, 6}, + .UADDLP = { 1278, 6}, + .SADALP = { 1284, 6}, + .UADALP = { 1290, 6}, + .SADDLV = { 1296, 5}, + .UADDLV = { 1301, 5}, + .SMAXV = { 1306, 5}, + .UMAXV = { 1311, 5}, + .SMINV = { 1316, 5}, + .UMINV = { 1321, 5}, + .SMAXP = { 1326, 6}, + .UMAXP = { 1332, 6}, + .SMINP = { 1338, 6}, + .UMINP = { 1344, 6}, + .SADDL = { 1350, 3}, + .SADDL2 = { 1353, 3}, + .UADDL = { 1356, 3}, + .UADDL2 = { 1359, 3}, + .SSUBL = { 1362, 3}, + .SSUBL2 = { 1365, 3}, + .USUBL = { 1368, 3}, + .USUBL2 = { 1371, 3}, + .SADDW = { 1374, 3}, + .SADDW2 = { 1377, 3}, + .UADDW = { 1380, 3}, + .UADDW2 = { 1383, 3}, + .SSUBW = { 1386, 3}, + .SSUBW2 = { 1389, 3}, + .USUBW = { 1392, 3}, + .USUBW2 = { 1395, 3}, + .RADDHN = { 1398, 3}, + .RADDHN2 = { 1401, 3}, + .RSUBHN = { 1404, 3}, + .RSUBHN2 = { 1407, 3}, + .ADDHN = { 1410, 3}, + .ADDHN2 = { 1413, 3}, + .SUBHN = { 1416, 3}, + .SUBHN2 = { 1419, 3}, + .XTN = { 1422, 3}, + .XTN2 = { 1425, 3}, + .SQXTN = { 1428, 3}, + .SQXTN2 = { 1431, 3}, + .UQXTN = { 1434, 3}, + .UQXTN2 = { 1437, 3}, + .SQXTUN = { 1440, 3}, + .SQXTUN2 = { 1443, 3}, + .SMULL = { 1446, 3}, + .SMULL2 = { 1449, 3}, + .UMULL = { 1452, 3}, + .UMULL2 = { 1455, 3}, + .SMLAL = { 1458, 3}, + .SMLAL2 = { 1461, 3}, + .UMLAL = { 1464, 3}, + .UMLAL2 = { 1467, 3}, + .SMLSL = { 1470, 3}, + .SMLSL2 = { 1473, 3}, + .UMLSL = { 1476, 3}, + .UMLSL2 = { 1479, 3}, + .SQDMULL = { 1482, 2}, + .SQDMULL2 = { 1484, 2}, + .SQDMLAL = { 1486, 2}, + .SQDMLAL2 = { 1488, 2}, + .SQDMLSL = { 1490, 2}, + .SQDMLSL2 = { 1492, 2}, + .SQDMULH = { 1494, 4}, + .SQRDMULH = { 1498, 4}, + .SDOT = { 1502, 2}, + .UDOT = { 1504, 2}, + .USDOT = { 1506, 2}, + .FMLA = { 1508, 8}, + .FMLS = { 1516, 8}, + .FMULX = { 1524, 5}, + .FMAXP = { 1529, 5}, + .FMINP = { 1534, 5}, + .FMAXNMP = { 1539, 5}, + .FMINNMP = { 1544, 5}, + .FMAXV = { 1549, 3}, + .FMINV = { 1552, 3}, + .FMAXNMV = { 1555, 3}, + .FMINNMV = { 1558, 3}, + .FRECPE = { 1561, 5}, + .FRSQRTE = { 1566, 5}, + .FRECPS = { 1571, 8}, + .FRSQRTS = { 1579, 8}, + .FRECPX = { 1587, 6}, + .FADDP = { 1593, 5}, + .FCVTL = { 1598, 2}, + .FCVTL2 = { 1600, 2}, + .FCVTN = { 1602, 2}, + .FCVTN2 = { 1604, 2}, + .FCVTXN = { 1606, 1}, + .FCVTXN2 = { 1607, 1}, + .FCMEQ = { 1608, 8}, + .FCMGE = { 1616, 8}, + .FCMGT = { 1624, 8}, + .FCMLE = { 1632, 8}, + .FCMLT = { 1640, 8}, + .FACGE = { 1648, 5}, + .FACGT = { 1653, 5}, + .CMEQ = { 1658, 4}, + .CMGE = { 1662, 7}, + .CMGT = { 1669, 2}, + .CMHI = { 1671, 2}, + .CMHS = { 1673, 7}, + .CMLE = { 1680, 7}, + .CMLT = { 1687, 7}, + .CMTST = { 1694, 7}, + .MVN = { 1701, 4}, + .BIT = { 1705, 1}, + .BIF = { 1706, 1}, + .BSL = { 1707, 2}, + .SHL = { 1709, 7}, + .SQSHL = { 1716, 7}, + .SQSHLU = { 1723, 7}, + .SRSHL = { 1730, 7}, + .URSHL = { 1737, 7}, + .SSHR = { 1744, 7}, + .USHR = { 1751, 7}, + .SSRA = { 1758, 7}, + .USRA = { 1765, 7}, + .SRSHR = { 1772, 7}, + .URSHR = { 1779, 7}, + .SRSRA = { 1786, 7}, + .URSRA = { 1793, 7}, + .SSHL = { 1800, 7}, + .USHL = { 1807, 7}, + .SLI = { 1814, 7}, + .SRI = { 1821, 7}, + .SSHLL = { 1828, 3}, + .SSHLL2 = { 1831, 3}, + .USHLL = { 1834, 3}, + .USHLL2 = { 1837, 3}, + .SXTL = { 1840, 3}, + .SXTL2 = { 1843, 3}, + .UXTL = { 1846, 3}, + .UXTL2 = { 1849, 3}, + .SHRN = { 1852, 3}, + .SHRN2 = { 1855, 3}, + .RSHRN = { 1858, 3}, + .RSHRN2 = { 1861, 3}, + .SQSHRN = { 1864, 3}, + .SQSHRN2 = { 1867, 3}, + .UQSHRN = { 1870, 3}, + .UQSHRN2 = { 1873, 3}, + .SQRSHRN = { 1876, 3}, + .SQRSHRN2 = { 1879, 3}, + .UQRSHRN = { 1882, 3}, + .UQRSHRN2 = { 1885, 3}, + .SQSHRUN = { 1888, 3}, + .SQSHRUN2 = { 1891, 3}, + .SQRSHRUN = { 1894, 3}, + .SQRSHRUN2 = { 1897, 3}, + .DUP = { 1900, 18}, + .INS = { 1918, 8}, + .MOV = { 1926, 28}, + .EXT = { 1954, 4}, + .TBL = { 1958, 7}, + .TBX = { 1965, 3}, + .ZIP1 = { 1968, 12}, + .ZIP2 = { 1980, 12}, + .UZP1 = { 1992, 12}, + .UZP2 = { 2004, 12}, + .TRN1 = { 2016, 12}, + .TRN2 = { 2028, 12}, + .NOT = { 2040, 3}, + .REV64 = { 2043, 6}, + .CNT = { 2049, 6}, + .URECPE = { 2055, 2}, + .URSQRTE = { 2057, 2}, + .MOVI = { 2059, 7}, + .MVNI = { 2066, 4}, + .LD1 = { 2070, 8}, + .LD2 = { 2078, 5}, + .LD3 = { 2083, 5}, + .LD4 = { 2088, 5}, + .ST1 = { 2093, 8}, + .ST2 = { 2101, 5}, + .ST3 = { 2106, 5}, + .ST4 = { 2111, 5}, + .LD1R = { 2116, 1}, + .LD2R = { 2117, 1}, + .LD3R = { 2118, 1}, + .LD4R = { 2119, 1}, + .SUBR = { 2120, 4}, + .ASRR = { 2124, 4}, + .LSLR = { 2128, 4}, + .LSRR = { 2132, 4}, + .FTSMUL = { 2136, 3}, + .FSUBR = { 2139, 3}, + .FDIVR = { 2142, 3}, + .FNMLA = { 2145, 3}, + .FNMLS = { 2148, 3}, + .NAND = { 2151, 1}, + .NOR = { 2152, 1}, + .SEL = { 2153, 1}, + .ORRS = { 2154, 1}, + .EORS = { 2155, 1}, + .NANDS = { 2156, 1}, + .NORS = { 2157, 1}, + .ORNS = { 2158, 1}, + .MOVS = { 2159, 1}, + .PTRUE = { 2160, 1}, + .PTRUES = { 2161, 1}, + .PFALSE = { 2162, 1}, + .PFIRST = { 2163, 1}, + .PNEXT = { 2164, 1}, + .BRKA = { 2165, 1}, + .BRKB = { 2166, 1}, + .BRKAS = { 2167, 1}, + .BRKBS = { 2168, 1}, + .BRKPA = { 2169, 1}, + .BRKPB = { 2170, 1}, + .BRKN = { 2171, 1}, + .RDFFR = { 2172, 1}, + .WRFFR = { 2173, 1}, + .SETFFR = { 2174, 1}, + .CMPEQ = { 2175, 4}, + .CMPNE = { 2179, 4}, + .CMPGE = { 2183, 4}, + .CMPGT = { 2187, 4}, + .CMPLE = { 2191, 4}, + .CMPLT = { 2195, 4}, + .CMPHI = { 2199, 4}, + .CMPHS = { 2203, 4}, + .CMPLO = { 2207, 4}, + .CMPLS = { 2211, 4}, + .FCMNE = { 2215, 3}, + .FCMUO = { 2218, 3}, + .INSR = { 2221, 4}, + .CPY = { 2225, 4}, + .COMPACT = { 2229, 2}, + .LD1B = { 2231, 6}, + .LD1H = { 2237, 6}, + .LD1W = { 2243, 6}, + .LD1D = { 2249, 5}, + .LD1SB = { 2254, 3}, + .LD1SH = { 2257, 4}, + .LD1SW = { 2261, 2}, + .ST1B = { 2263, 6}, + .ST1H = { 2269, 7}, + .ST1W = { 2276, 6}, + .ST1D = { 2282, 5}, + .LDFF1B = { 2287, 1}, + .LDFF1H = { 2288, 1}, + .LDFF1W = { 2289, 1}, + .LDFF1D = { 2290, 1}, + .WHILEGE = { 2291, 4}, + .WHILEGT = { 2295, 4}, + .WHILELE = { 2299, 4}, + .WHILELT = { 2303, 4}, + .WHILEHI = { 2307, 4}, + .WHILEHS = { 2311, 4}, + .WHILELO = { 2315, 4}, + .WHILELS = { 2319, 4}, + .SQRDMLAH = { 2323, 4}, + .SQRDMLSH = { 2327, 4}, + .ADCLB = { 2331, 2}, + .ADCLT = { 2333, 2}, + .SBCLB = { 2335, 2}, + .SBCLT = { 2337, 2}, + .MATCH = { 2339, 2}, + .NMATCH = { 2341, 2}, + .HISTCNT = { 2343, 2}, + .HISTSEG = { 2345, 1}, + .SMSTART = { 2346, 1}, + .SMSTOP = { 2347, 1}, + .RDSVL = { 2348, 1}, + .ADDHA = { 2349, 1}, + .ADDVA = { 2350, 1}, + .ZERO = { 2351, 1}, + .FMOPA = { 2352, 1}, + .FMOPS = { 2353, 1}, + .BFMOPA = { 2354, 1}, + .BFMOPS = { 2355, 1}, + .SMOPA = { 2356, 2}, + .SMOPS = { 2358, 2}, + .UMOPA = { 2360, 2}, + .UMOPS = { 2362, 2}, + .USMOPA = { 2364, 1}, + .SUMOPA = { 2365, 1}, + .CNTB = { 2366, 1}, + .CNTH = { 2367, 1}, + .CNTW = { 2368, 1}, + .CNTD = { 2369, 1}, + .INCB = { 2370, 1}, + .INCH = { 2371, 2}, + .INCW = { 2373, 2}, + .INCD = { 2375, 2}, + .DECB = { 2377, 1}, + .DECH = { 2378, 2}, + .DECW = { 2380, 2}, + .DECD = { 2382, 2}, + .SQINCB = { 2384, 2}, + .SQINCH = { 2386, 3}, + .SQINCW = { 2389, 3}, + .SQINCD = { 2392, 3}, + .SQDECB = { 2395, 2}, + .SQDECH = { 2397, 3}, + .SQDECW = { 2400, 3}, + .SQDECD = { 2403, 3}, + .UQINCB = { 2406, 2}, + .UQINCH = { 2408, 3}, + .UQINCW = { 2411, 3}, + .UQINCD = { 2414, 3}, + .UQDECB = { 2417, 2}, + .UQDECH = { 2419, 3}, + .UQDECW = { 2422, 3}, + .UQDECD = { 2425, 3}, + .CNTP = { 2428, 4}, + .INCP = { 2432, 7}, + .DECP = { 2439, 7}, + .SQINCP = { 2446, 11}, + .SQDECP = { 2457, 11}, + .UQINCP = { 2468, 11}, + .UQDECP = { 2479, 11}, + .LD1Q = { 2490, 1}, + .ST1Q = { 2491, 1}, + .MOVA = { 2492, 2}, + .FCMLA = { 2494, 4}, + .FCADD = { 2498, 4}, + .PRFB = { 2502, 1}, + .PRFH = { 2503, 1}, + .PRFW = { 2504, 1}, + .PRFD = { 2505, 1}, + .LDNT1B = { 2506, 1}, + .LDNT1H = { 2507, 1}, + .LDNT1W = { 2508, 1}, + .LDNT1D = { 2509, 1}, + .STNT1B = { 2510, 1}, + .STNT1H = { 2511, 1}, + .STNT1W = { 2512, 1}, + .STNT1D = { 2513, 1}, + .SPLICE = { 2514, 1}, + .INDEX = { 2515, 16}, + .BSL1N = { 2531, 1}, + .BSL2N = { 2532, 1}, + .NBSL = { 2533, 1}, + .PMUL = { 2534, 1}, + .PMULLB = { 2535, 1}, + .PMULLT = { 2536, 1}, + .BFCVTNT = { 2537, 1}, + .LDRAA = { 2538, 2}, + .LDRAB = { 2540, 2}, + .TSTART = { 2542, 1}, + .TCOMMIT = { 2543, 1}, + .TCANCEL = { 2544, 1}, + .TTEST = { 2545, 1}, + .WFET = { 2546, 1}, + .WFIT = { 2547, 1}, + .BC_EQ = { 2548, 1}, + .BC_NE = { 2549, 1}, + .BC_CS = { 2550, 1}, + .BC_CC = { 2551, 1}, + .BC_MI = { 2552, 1}, + .BC_PL = { 2553, 1}, + .BC_VS = { 2554, 1}, + .BC_VC = { 2555, 1}, + .BC_HI = { 2556, 1}, + .BC_LS = { 2557, 1}, + .BC_GE = { 2558, 1}, + .BC_LT = { 2559, 1}, + .BC_GT = { 2560, 1}, + .BC_LE = { 2561, 1}, + .BC_AL = { 2562, 1}, + .BC_NV = { 2563, 1}, + .UXTB = { 2564, 1}, + .UXTH = { 2565, 1}, + .UXTW = { 2566, 1}, + .SXTB = { 2567, 1}, + .SXTH = { 2568, 1}, + .SXTW = { 2569, 1}, + .ADC = { 2570, 2}, + .ADCS = { 2572, 2}, + .SBC = { 2574, 2}, + .SBCS = { 2576, 2}, + .NGC = { 2578, 2}, + .NGCS = { 2580, 2}, + .LDAPUR = { 2582, 2}, + .STLUR = { 2584, 2}, + .LDAPURB = { 2586, 1}, + .STLURB = { 2587, 1}, + .LDAPURH = { 2588, 1}, + .STLURH = { 2589, 1}, + .LDAPURSB = { 2590, 2}, + .LDAPURSH = { 2592, 2}, + .LDAPURSW = { 2594, 1}, + .BFADD = { 2595, 2}, + .BFSUB = { 2597, 2}, + .BFMUL = { 2599, 2}, + .BFMLA = { 2601, 1}, + .BFMLS = { 2602, 1}, + .SB = { 2603, 1}, + .CSDB = { 2604, 1}, + .DGH = { 2605, 1}, + .PSB_CSYNC = { 2606, 1}, + .TSB_CSYNC = { 2607, 1}, + .BTI_J = { 2608, 1}, + .BTI_C = { 2609, 1}, + .BTI_JC = { 2610, 1}, + .BFCLAMP = { 2611, 1}, + .BFMAXNM = { 2612, 1}, + .BFMINNM = { 2613, 1}, + .LUTI2 = { 2614, 3}, + .LUTI4 = { 2617, 3}, + .ZIP = { 2620, 2}, + .UZP = { 2622, 2}, + .TLBI_RPALOS = { 2624, 1}, + .TLBI_RPAOS = { 2625, 1}, + .AT_S1E1A = { 2626, 1}, + .DC_CIPAPA = { 2627, 1}, + .DC_CIGDPAPA = { 2628, 1}, + .TLBI_PAALL = { 2629, 1}, + .TLBI_PAALLOS = { 2630, 1}, + .AMX_LDX = { 2631, 1}, + .AMX_LDY = { 2632, 1}, + .AMX_STX = { 2633, 1}, + .AMX_STY = { 2634, 1}, + .AMX_LDZ = { 2635, 1}, + .AMX_STZ = { 2636, 1}, + .AMX_LDZI = { 2637, 1}, + .AMX_STZI = { 2638, 1}, + .AMX_EXTRX = { 2639, 1}, + .AMX_EXTRY = { 2640, 1}, + .AMX_FMA64 = { 2641, 1}, + .AMX_FMS64 = { 2642, 1}, + .AMX_FMA32 = { 2643, 1}, + .AMX_FMS32 = { 2644, 1}, + .AMX_MAC16 = { 2645, 1}, + .AMX_FMA16 = { 2646, 1}, + .AMX_FMS16 = { 2647, 1}, + .AMX_SET = { 2648, 1}, + .AMX_CLR = { 2649, 1}, + .AMX_VECINT = { 2650, 1}, + .AMX_VECFP = { 2651, 1}, + .AMX_MATINT = { 2652, 1}, + .AMX_MATFP = { 2653, 1}, + .AMX_GENLUT = { 2654, 1}, + .CPYP = { 2655, 1}, + .CPYM = { 2656, 1}, + .CPYE = { 2657, 1}, + .CPYFP = { 2658, 1}, + .CPYFM = { 2659, 1}, + .CPYFE = { 2660, 1}, + .SETP = { 2661, 1}, + .SETM = { 2662, 1}, + .SETE = { 2663, 1}, + .DC_IVAC = { 2664, 1}, + .DC_ISW = { 2665, 1}, + .DC_CSW = { 2666, 1}, + .DC_CISW = { 2667, 1}, + .DC_ZVA = { 2668, 1}, + .DC_CVAC = { 2669, 1}, + .DC_CVAU = { 2670, 1}, + .DC_CIVAC = { 2671, 1}, + .IC_IALLUIS = { 2672, 1}, + .IC_IALLU = { 2673, 1}, + .IC_IVAU = { 2674, 1}, + .AT_S1E1R = { 2675, 1}, + .AT_S1E1W = { 2676, 1}, + .AT_S1E0R = { 2677, 1}, + .AT_S1E0W = { 2678, 1}, + .AT_S1E2R = { 2679, 1}, + .AT_S1E2W = { 2680, 1}, + .AT_S1E3R = { 2681, 1}, + .AT_S1E3W = { 2682, 1}, + .AT_S12E1R = { 2683, 1}, + .AT_S12E1W = { 2684, 1}, + .AT_S12E0R = { 2685, 1}, + .AT_S12E0W = { 2686, 1}, + .TLBI_VMALLE1 = { 2687, 1}, + .TLBI_VMALLE1IS = { 2688, 1}, + .TLBI_VAE1 = { 2689, 1}, + .TLBI_VAE1IS = { 2690, 1}, + .TLBI_ASIDE1 = { 2691, 1}, + .TLBI_ASIDE1IS = { 2692, 1}, + .TLBI_VAAE1 = { 2693, 1}, + .TLBI_VAAE1IS = { 2694, 1}, + .TLBI_VALE1 = { 2695, 1}, + .TLBI_VALE1IS = { 2696, 1}, + .TLBI_VAALE1 = { 2697, 1}, + .TLBI_VAALE1IS = { 2698, 1}, + .TLBI_ALLE1 = { 2699, 1}, + .TLBI_ALLE1IS = { 2700, 1}, + .TLBI_ALLE2 = { 2701, 1}, + .TLBI_ALLE2IS = { 2702, 1}, + .TLBI_ALLE3 = { 2703, 1}, + .TLBI_ALLE3IS = { 2704, 1}, + .PRFM = { 2705, 2}, + .PRFUM = { 2707, 1}, + .NEGS = { 2708, 2}, + .CMP = { 2710, 6}, + .CMN = { 2716, 6}, } diff --git a/core/rexcode/isa/arm64/tablegen/generated/writer.odin b/core/rexcode/isa/arm64/tablegen/generated/writer.odin index d47ce43ad..da79253fd 100644 --- a/core/rexcode/isa/arm64/tablegen/generated/writer.odin +++ b/core/rexcode/isa/arm64/tablegen/generated/writer.odin @@ -23,6 +23,7 @@ w :: proc(file: string, data: []u8) { main :: proc() { w(TABLES + "arm64.encode_forms.bin", raw(&ENCODE_FORMS, size_of(ENCODE_FORMS))) + w(TABLES + "arm64.clobber_forms.bin", raw(&CLOBBER_FORMS, size_of(CLOBBER_FORMS))) w(TABLES + "arm64.encode_runs.bin", raw(&ENCODE_RUNS, size_of(ENCODE_RUNS))) w(TABLES + "arm64.entries.bin", raw(&DECODE_ENTRIES, size_of(DECODE_ENTRIES))) w(TABLES + "arm64.idx_op0.bin", raw(&DECODE_INDEX_OP0, size_of(DECODE_INDEX_OP0))) diff --git a/core/rexcode/isa/arm64/tablegen/instruction_table.odin b/core/rexcode/isa/arm64/tablegen/instruction_table.odin new file mode 100644 index 000000000..01e006cc2 --- /dev/null +++ b/core/rexcode/isa/arm64/tablegen/instruction_table.odin @@ -0,0 +1,4537 @@ +package rexcode_arm64_tablegen + +// ============================================================================= +// rexcode · AArch64 INSTRUCTION_TABLE +// ============================================================================= +// +// One []Form per Mnemonic, where a Mnemonic is an ASSEMBLER mnemonic -- so a +// run holds every form that spells that name: ADD carries the immediate, +// shifted-register, extended-register, NEON and SVE forms, LDR carries all +// six addressing modes. The encoder scans the run and takes the first form +// whose operand TYPES match, so order is precedence: list forms in the order +// an assembler resolves them (immediate, then shifted-register, then +// extended-register -- `add w0,w1,w2` is the shifted form, and only the +// extended form can encode SP). +// +// A Form fuses an instruction form's Encoding with its +// Clobber, so INSTRUCTION_TABLE[m][i] carries both the bit pattern and the +// read/write + side-effect summary for form i of mnemonic m. This replaces the +// old pair of index-aligned tables (ENCODING_TABLE[m][i] / CLOBBER_TABLE[m][i]); +// co-locating the two in one struct removes the alignment invariant, so a form's +// encoding and clobber can no longer drift out of sync. +// +// +// --- Encoding: (bits, mask) model -------------------------------------------- +// +// Same shape as MIPS/RISC-V. `bits` carries the static opcode pattern; `mask` +// covers exactly the bits that are fixed by the form. Operand-driven fields +// (Rd/Rn/Rm/imm*/sh/cond/...) land in zero positions of `bits` and are ORed in +// by the encoder. +// +// Sections (each follows the ARM ARM "C4.1.x Data-processing /" division): +// §1 Data-processing -- immediate (Add/Sub imm, Mov-wide, PC-rel) +// §2 Data-processing -- shifted reg (Add/Sub/AND/ORR/EOR/BIC/ORN/EON) +// §3 Data-processing -- extended reg (Add/Sub extended) +// §4 Data-processing -- 2-source (LSLV/LSRV/ASRV/RORV, UDIV/SDIV) +// §5 Data-processing -- 3-source (MADD/MSUB/SMADDL/.../UMULH) +// §6 Data-processing -- 1-source (CLZ/CLS/RBIT/REV/REV16/REV32) +// §7 Conditional (CSEL/CSINC/CSINV/CSNEG) +// §8 Branches (B/BL/BR/BLR/RET, B.cond, CBZ, TBZ) +// §9 Loads / stores (LDR/STR families, LDP/STP, LDUR) +// §10 System (NOP/HINT/ISB/MSR/MRS/SVC/...) +// §11 FP scalar (FMOV/FADD/FCVT/FCMP/FCSEL/...) +// +// Logical-immediate forms (AND/ORR/EOR/ANDS imm) use the bitmask-immediate +// encoding (N:imms:immr); they're deferred to a follow-up turn that adds the +// bitmask encoder helper. +// +// +// --- Clobber: read/write + side-effect summary ------------------------------- +// +// One Clobber per Form -- a read/write + side-effect summary for every form of +// every mnemonic. Derivation (from each form's operand TYPES, operand ROLES, +// and Encoding_Flags): +// +// written / read -- operand slots (0..3) whose register / memory base is a +// def / use. A slot counts only if its TYPE is register- +// or memory-like; immediate slots never appear. Direction +// comes from the ROLE, refined by instruction class: +// * RD/VD/PD/RT/RT2/ZA_TILE* are destinations, EXCEPT +// the data operand of a store (RT/VD on ST*), which is +// a source; and the status result of STXR/STXP (RD), +// which stays a def while RT/RT2 become sources. +// * A pre/post-index base (OFFSET_BASE_PRE/POST) is both +// read and written (address write-back). +// * A destination register re-listed as a later source +// slot (SVE destructive Zdn, accumulate) is read. +// * Branches define no GPR operand; targets/modifiers +// are reads. +// implicit_wr/rd -- LR on BL/BLR/RET, LR+SP on PAC*SP / RETAA, X16/X17 on +// PAC*1716, etc. +// nzcv_wr -- set for sets_flags forms (ADDS/SUBS/ANDS/CMP/CCMP/FCMP, +// SVE compares, WHILE*, PTRUES, ...). +// nzcv_rd -- any COND operand (CSEL/FCSEL/B.cond/CCMP), plus the +// carry readers ADC/ADCS/SBC/SBCS/NGC/NGCS; CCMP/CCMN both. +// fpsr_wr/reads_fpcr -- per FP-op family (see notes); saturating integer ops +// (SQ*/UQ*/SUQ*/USQ*/SQRDML*) set QC. +// reads_mem/writes_mem -- loads / stores / RMW atomics / MOPS. +// side_effects -- control flow, barriers, atomics, cache/TLB, PAC, BTI, +// wait, privileged system access, FFR, etc. +// +// Heuristic / best-effort fields (structurally faithful, semantically approximate): +// * FPSR exception-bit sets and reads_fpcr are assigned per mnemonic family, +// not per-corner-case; treat them as "flags this class may raise". +// * Accumulate detection (destination is read-modified) is name-driven for +// the families that fold the accumulator into the destination (MLA/MLS/DOT/ +// FMLA/FCMLA/SQRDML*/MOPA, shift-accumulate, bit-insert, AES/SHA/SM3/SM4, +// PAC in-place). Multiply-adds with a separate Ra/Va operand (MADD/FMADD/...) +// are correctly NOT dest-reads. +// * LD1-4/ST1-4 register lists occupy a single operand slot, so max operand +// count stays at 4 (matches Operand_Set / the encoder's model). +// * Acquire/release accesses carry the FENCE side effect to model their +// one-way ordering (distinct from the register/memory read/write sets). +// * Requires the companion clobber_types.odin (adds X16/X17 to Clobber_Reg +// and FFR to Side_Effect). +// ============================================================================= + + +Form :: struct { + using encoding: Encoding, + clobber: Clobber, +} + +@(rodata) +INSTRUCTION_TABLE := [Mnemonic][]Form{ + .INVALID = { + }, + .ADD = { + {{.ADD, {.WSP_REG, .WSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0x11000000, 0xFF800000, .BASE, {}}, {written={0}, read={1}}}, + {{.ADD, {.XSP_REG, .XSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0x91000000, 0xFF800000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.ADD, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x0B000000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x8B000000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ADD, {.WSP_REG, .WSP_REG, .W_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x0B200000, 0xFFE00000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.XSP_REG, .XSP_REG, .X_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x8B200000, 0xFFE00000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E608400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA08400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE08400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E608400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA08400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04200000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04600000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04A00000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ADD, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04E00000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ADD, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04000000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ADD, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04400000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ADD, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04800000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ADD, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04C00000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .ADDS = { + {{.ADDS, {.W_REG, .WSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0x31000000, 0xFF800000, .BASE, {sets_flags=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ADDS, {.X_REG, .XSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0xB1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ADDS, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x2B000000, 0xFF200000, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ADDS, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xAB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ADDS, {.W_REG, .WSP_REG, .W_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x2B200000, 0xFFE00000, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ADDS, {.X_REG, .XSP_REG, .X_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xAB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .SUB = { + {{.SUB, {.WSP_REG, .WSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0x51000000, 0xFF800000, .BASE, {}}, {written={0}, read={1}}}, + {{.SUB, {.XSP_REG, .XSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0xD1000000, 0xFF800000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.SUB, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x4B000000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xCB000000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.SUB, {.WSP_REG, .WSP_REG, .W_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x4B200000, 0xFFE00000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.XSP_REG, .XSP_REG, .X_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xCB200000, 0xFFE00000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.SUB, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E608400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA08400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE08400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04200400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04600400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04A00400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.SUB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04E00400, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.SUB, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04010000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SUB, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04410000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SUB, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04810000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SUB, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04C10000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SUBS = { + {{.SUBS, {.W_REG, .WSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0x71000000, 0xFF800000, .BASE, {sets_flags=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.SUBS, {.X_REG, .XSP_REG, .IMM_12, .NONE, .NONE}, {.RD, .RN, .IMM12, .NONE, .NONE}, 0xF1000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.SUBS, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x6B000000, 0xFF200000, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.SUBS, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xEB000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.SUBS, {.W_REG, .WSP_REG, .W_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x6B200000, 0xFFE00000, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.SUBS, {.X_REG, .XSP_REG, .X_EXTENDED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xEB200000, 0xFFE00000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .MOVZ = { + {{.MOVZ, {.W_REG, .IMM_16, .HW_SHIFT, .NONE, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE, .NONE}, 0x52800000, 0xFF800000, .BASE, {}}, {written={0}}}, + {{.MOVZ, {.X_REG, .IMM_16, .HW_SHIFT, .NONE, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE, .NONE}, 0xD2800000, 0xFF800000, .BASE, {is_64=true}}, {written={0}}}, + }, + .MOVN = { + {{.MOVN, {.W_REG, .IMM_16, .HW_SHIFT, .NONE, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE, .NONE}, 0x12800000, 0xFF800000, .BASE, {}}, {written={0}}}, + {{.MOVN, {.X_REG, .IMM_16, .HW_SHIFT, .NONE, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE, .NONE}, 0x92800000, 0xFF800000, .BASE, {is_64=true}}, {written={0}}}, + }, + .MOVK = { + {{.MOVK, {.W_REG, .IMM_16, .HW_SHIFT, .NONE, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE, .NONE}, 0x72800000, 0xFF800000, .BASE, {}}, {written={0}}}, + {{.MOVK, {.X_REG, .IMM_16, .HW_SHIFT, .NONE, .NONE}, {.RD, .IMM16, .IMM_HW, .NONE, .NONE}, 0xF2800000, 0xFF800000, .BASE, {is_64=true}}, {written={0}}}, + }, + .ADR = { + {{.ADR, {.X_REG, .REL_PG21, .NONE, .NONE, .NONE}, {.RD, .BRANCH_PG21, .NONE, .NONE, .NONE}, 0x10000000, 0x9F000000, .BASE, {}}, {written={0}}}, + }, + .ADRP = { + {{.ADRP, {.X_REG, .REL_PG21, .NONE, .NONE, .NONE}, {.RD, .BRANCH_PG21, .NONE, .NONE, .NONE}, 0x90000000, 0x9F000000, .BASE, {}}, {written={0}}}, + }, + .AND = { + {{.AND, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x0A000000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.AND, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x8A000000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.AND, {.WSP_REG, .W_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0x12000000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}}}, + {{.AND, {.XSP_REG, .X_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0x92000000, 0xFF800000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.AND, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E201C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.AND, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x041A0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.AND, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x045A0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.AND, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x049A0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.AND, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04DA0000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.AND, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25004000, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .ANDS = { + {{.ANDS, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x6A000000, 0xFF200000, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ANDS, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xEA000000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ANDS, {.W_REG, .W_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0x72000000, 0xFFC00000, .BASE, {sets_flags=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ANDS, {.X_REG, .X_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0xF2000000, 0xFF800000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.ANDS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .ORR = { + {{.ORR, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x2A000000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.ORR, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xAA000000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ORR, {.WSP_REG, .W_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0x32000000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}}}, + {{.ORR, {.XSP_REG, .X_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0xB2000000, 0xFF800000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.ORR, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ORR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04180000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ORR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04580000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ORR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04980000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ORR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D80000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.ORR, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25804000, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .EOR = { + {{.EOR, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x4A000000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.EOR, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xCA000000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.EOR, {.WSP_REG, .W_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0x52000000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}}}, + {{.EOR, {.XSP_REG, .X_REG, .BITMASK_IMM, .NONE, .NONE}, {.RD, .RN, .BITMASK_FIELD, .NONE, .NONE}, 0xD2000000, 0xFF800000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.EOR, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E201C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.EOR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04190000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.EOR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04590000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.EOR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04990000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.EOR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D90000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.EOR, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25004200, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .BIC = { + {{.BIC, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x0A200000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.BIC, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x8A200000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.BIC, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E601C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.BIC, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x041B0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.BIC, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x045B0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.BIC, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x049B0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.BIC, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04DB0000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.BIC, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25004010, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .BICS = { + {{.BICS, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x6A200000, 0xFF200000, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.BICS, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xEA200000, 0xFF200000, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.BICS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25404010, 0xFFE0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .ORN = { + {{.ORN, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x2A200000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.ORN, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xAA200000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ORN, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE01C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ORN, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25804010, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .EON = { + {{.EON, {.W_REG, .W_REG, .W_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x4A200000, 0xFF200000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.EON, {.X_REG, .X_REG, .X_SHIFTED, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xCA200000, 0xFF200000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .LSL = { + {{.LSL, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC02000, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.LSL, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC02000, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.LSL, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04138000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSL, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04538000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSL, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04938000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSL, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D38000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.LSL, {.W_REG, .W_REG, .IMM_5, .NONE, .NONE}, {.RD, .RN, .ENC_LSL_IMM_W, .NONE, .NONE}, 0x53000000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}}}, + {{.LSL, {.X_REG, .X_REG, .IMM_6, .NONE, .NONE}, {.RD, .RN, .ENC_LSL_IMM_X, .NONE, .NONE}, 0xD3400000, 0xFFC00000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .LSR = { + {{.LSR, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC02400, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.LSR, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC02400, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.LSR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04118000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04518000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04918000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D18000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.LSR, {.W_REG, .W_REG, .IMM_5, .NONE, .NONE}, {.RD, .RN, .ENC_SHIFT_IMMR, .NONE, .NONE}, 0x53007C00, 0xFFC0FC00, .BASE, {}}, {written={0}, read={1}}}, + {{.LSR, {.X_REG, .X_REG, .IMM_6, .NONE, .NONE}, {.RD, .RN, .ENC_SHIFT_IMMR, .NONE, .NONE}, 0xD340FC00, 0xFFC0FC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .ASR = { + {{.ASR, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC02800, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.ASR, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC02800, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ASR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04108000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ASR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04508000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ASR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04908000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ASR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D08000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + {{.ASR, {.W_REG, .W_REG, .IMM_5, .NONE, .NONE}, {.RD, .RN, .ENC_SHIFT_IMMR, .NONE, .NONE}, 0x13007C00, 0xFFC0FC00, .BASE, {}}, {written={0}, read={1}}}, + {{.ASR, {.X_REG, .X_REG, .IMM_6, .NONE, .NONE}, {.RD, .RN, .ENC_SHIFT_IMMR, .NONE, .NONE}, 0x9340FC00, 0xFFC0FC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .ROR = { + {{.ROR, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC02C00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.ROR, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC02C00, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ROR, {.W_REG, .W_REG, .IMM_5, .NONE, .NONE}, {.RD, .ENC_DUAL_RN_RM, .ENC_ROR_SHIFT, .NONE, .NONE}, 0x13800000, 0xFFE00000, .BASE, {}}, {written={0}, read={1}}}, + {{.ROR, {.X_REG, .X_REG, .IMM_6, .NONE, .NONE}, {.RD, .ENC_DUAL_RN_RM, .ENC_ROR_SHIFT, .NONE, .NONE}, 0x93C00000, 0xFFE00000, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .UDIV = { + {{.UDIV, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC00800, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.UDIV, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC00800, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.UDIV, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04950000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UDIV, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D50000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SDIV = { + {{.SDIV, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC00C00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.SDIV, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC00C00, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.SDIV, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04940000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SDIV, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D40000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .MADD = { + {{.MADD, {.W_REG, .W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1B000000, 0xFFE08000, .BASE, {}}, {written={0}, read={1, 2, 3}}}, + {{.MADD, {.X_REG, .X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x9B000000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .MSUB = { + {{.MSUB, {.W_REG, .W_REG, .W_REG, .W_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1B008000, 0xFFE08000, .BASE, {}}, {written={0}, read={1, 2, 3}}}, + {{.MSUB, {.X_REG, .X_REG, .X_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x9B008000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SMADDL = { + {{.SMADDL, {.X_REG, .W_REG, .W_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x9B200000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SMSUBL = { + {{.SMSUBL, {.X_REG, .W_REG, .W_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x9B208000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .UMADDL = { + {{.UMADDL, {.X_REG, .W_REG, .W_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x9BA00000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .UMSUBL = { + {{.UMSUBL, {.X_REG, .W_REG, .W_REG, .X_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x9BA08000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SMULH = { + {{.SMULH, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9B407C00, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.SMULH, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04120000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMULH, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04520000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMULH, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04920000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMULH, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D20000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .UMULH = { + {{.UMULH, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9BC07C00, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.UMULH, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04130000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMULH, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04530000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMULH, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04930000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMULH, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D30000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .CLZ = { + {{.CLZ, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5AC01000, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + {{.CLZ, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC01000, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.CLZ, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E204800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLZ, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E204800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLZ, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E604800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLZ, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E604800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLZ, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA04800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLZ, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA04800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLZ, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0419A000, 0xFFF9E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CLZ, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0459A000, 0xFFF9E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CLZ, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0499A000, 0xFFF9E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CLZ, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04D9A000, 0xFFF9E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .CLS = { + {{.CLS, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5AC01400, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + {{.CLS, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC01400, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.CLS, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E204800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLS, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E204800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLS, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E604800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLS, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E604800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA04800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA04800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CLS, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0418A000, 0xFFF8E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0458A000, 0xFFF8E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CLS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0498A000, 0xFFF8E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CLS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04D8A000, 0xFFF8E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .RBIT = { + {{.RBIT, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5AC00000, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + {{.RBIT, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC00000, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.RBIT, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E605800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.RBIT, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E605800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .REV = { + {{.REV, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5AC00800, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + {{.REV, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC00C00, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.REV, {.Z_REG_B, .Z_REG_B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05383800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.REV, {.Z_REG_H, .Z_REG_H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05783800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.REV, {.Z_REG_S, .Z_REG_S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05B83800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.REV, {.Z_REG_D, .Z_REG_D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05F83800, 0xFFFFFC00, .SVE, {is_64=true}}, {written={0}, read={1}}}, + {{.REV, {.P_REG_B, .P_REG_B, .NONE, .NONE, .NONE}, {.PD, .PN, .NONE, .NONE, .NONE}, 0x05344000, 0xFFFFFE10, .SVE, {}}, {written={0}, read={1}}}, + }, + .REV16 = { + {{.REV16, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5AC00400, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + {{.REV16, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC00400, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.REV16, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E201800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV16, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E201800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .REV32 = { + {{.REV32, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC00800, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.REV32, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E200800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV32, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E200800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV32, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E600800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV32, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E600800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .CSEL = { + {{.CSEL, {.W_REG, .W_REG, .W_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x1A800000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSEL, {.X_REG, .X_REG, .X_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x9A800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CSINC = { + {{.CSINC, {.W_REG, .W_REG, .W_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x1A800400, 0xFFE00C00, .BASE, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSINC, {.X_REG, .X_REG, .X_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x9A800400, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CSINV = { + {{.CSINV, {.W_REG, .W_REG, .W_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x5A800000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSINV, {.X_REG, .X_REG, .X_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0xDA800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CSNEG = { + {{.CSNEG, {.W_REG, .W_REG, .W_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x5A800400, 0xFFE00C00, .BASE, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSNEG, {.X_REG, .X_REG, .X_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0xDA800400, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CCMP = { + {{.CCMP, {.W_REG, .W_REG, .NZCV_IMM, .COND, .NONE}, {.RN, .RM, .NZCV_FIELD, .COND_HI, .NONE}, 0x7A400000, 0xFFE00C10, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CCMP, {.X_REG, .X_REG, .NZCV_IMM, .COND, .NONE}, {.RN, .RM, .NZCV_FIELD, .COND_HI, .NONE}, 0xFA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CCMP, {.W_REG, .IMM_5, .NZCV_IMM, .COND, .NONE}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI, .NONE}, 0x7A400800, 0xFFE00C10, .BASE, {sets_flags=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CCMP, {.X_REG, .IMM_5, .NZCV_IMM, .COND, .NONE}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI, .NONE}, 0xFA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CCMN = { + {{.CCMN, {.W_REG, .W_REG, .NZCV_IMM, .COND, .NONE}, {.RN, .RM, .NZCV_FIELD, .COND_HI, .NONE}, 0x3A400000, 0xFFE00C10, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CCMN, {.X_REG, .X_REG, .NZCV_IMM, .COND, .NONE}, {.RN, .RM, .NZCV_FIELD, .COND_HI, .NONE}, 0xBA400000, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CCMN, {.W_REG, .IMM_5, .NZCV_IMM, .COND, .NONE}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI, .NONE}, 0x3A400800, 0xFFE00C10, .BASE, {sets_flags=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CCMN, {.X_REG, .IMM_5, .NZCV_IMM, .COND, .NONE}, {.RN, .IMM5_HI, .NZCV_FIELD, .COND_HI, .NONE}, 0xBA400800, 0xFFE00C10, .BASE, {sets_flags=true, is_64=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CSET = { + {{.CSET, {.W_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x1A9F07E0, 0xFFFF8FE0, .BASE, {}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSET, {.W_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x1A9F87E0, 0xFFFFCFE0, .BASE, {}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSET, {.W_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x1A9FC7E0, 0xFFFFEFE0, .BASE, {}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSET, {.X_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x9A9F07E0, 0xFFFF8FE0, .BASE, {is_64=true}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSET, {.X_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x9A9F87E0, 0xFFFFCFE0, .BASE, {is_64=true}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSET, {.X_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x9A9FC7E0, 0xFFFFEFE0, .BASE, {is_64=true}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CSETM = { + {{.CSETM, {.W_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x5A9F03E0, 0xFFFF8FE0, .BASE, {}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSETM, {.W_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x5A9F83E0, 0xFFFFCFE0, .BASE, {}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSETM, {.W_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0x5A9FC3E0, 0xFFFFEFE0, .BASE, {}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSETM, {.X_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0xDA9F03E0, 0xFFFF8FE0, .BASE, {is_64=true}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSETM, {.X_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0xDA9F83E0, 0xFFFFCFE0, .BASE, {is_64=true}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CSETM, {.X_REG, .COND_NOT_AL, .NONE, .NONE, .NONE}, {.RD, .COND_HI_INV, .NONE, .NONE, .NONE}, 0xDA9FC3E0, 0xFFFFEFE0, .BASE, {is_64=true}}, {written={0}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CINC = { + {{.CINC, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x1A800400, 0xFFE08C00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINC, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x1A808400, 0xFFE0CC00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINC, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x1A80C400, 0xFFE0EC00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINC, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x9A800400, 0xFFE08C00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINC, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x9A808400, 0xFFE0CC00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINC, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x9A80C400, 0xFFE0EC00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CINV = { + {{.CINV, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x5A800000, 0xFFE08C00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINV, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x5A808000, 0xFFE0CC00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINV, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x5A80C000, 0xFFE0EC00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINV, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0xDA800000, 0xFFE08C00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINV, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0xDA808000, 0xFFE0CC00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CINV, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0xDA80C000, 0xFFE0EC00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .CNEG = { + {{.CNEG, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x5A800400, 0xFFE08C00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CNEG, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x5A808400, 0xFFE0CC00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CNEG, {.W_REG, .W_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0x5A80C400, 0xFFE0EC00, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CNEG, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0xDA800400, 0xFFE08C00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CNEG, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0xDA808400, 0xFFE0CC00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.CNEG, {.X_REG, .X_REG, .COND_NOT_AL, .NONE, .NONE}, {.RD, .RN_RM, .COND_HI_INV, .NONE, .NONE}, 0xDA80C400, 0xFFE0EC00, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .EXTR = { + {{.EXTR, {.W_REG, .W_REG, .W_REG, .IMM_6, .NONE}, {.RD, .RN, .RM, .IMM6, .NONE}, 0x13800000, 0xFFE08000, .BASE, {}}, {written={0}, read={1, 2}}}, + {{.EXTR, {.X_REG, .X_REG, .X_REG, .IMM_6, .NONE}, {.RD, .RN, .RM, .IMM6, .NONE}, 0x93C00000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .B = { + {{.B, {.REL_26, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_26, .NONE, .NONE, .NONE, .NONE}, 0x14000000, 0xFC000000, .BASE, {branch=true}}, {side_effects={.CONTROL}}}, + }, + .BL = { + {{.BL, {.REL_26, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_26, .NONE, .NONE, .NONE, .NONE}, 0x94000000, 0xFC000000, .BASE, {branch=true}}, {implicit_wr={.LR}, side_effects={.CONTROL}}}, + }, + .BR = { + {{.BR, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD61F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true}}, {read={0}, side_effects={.CONTROL}}}, + }, + .BLR = { + {{.BLR, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD63F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true}}, {read={0}, implicit_wr={.LR}, side_effects={.CONTROL}}}, + }, + .RET = { + {{.RET, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD65F0000, 0xFFFFFC1F, .BASE, {branch=true, writes_pc=true}}, {read={0}, side_effects={.CONTROL}}}, + {{.RET, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD65F03C0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true}}, {implicit_rd={.LR}, side_effects={.CONTROL}}}, + }, + .B_EQ = { + {{.B_EQ, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000000, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z}, side_effects={.CONTROL}}}, + }, + .B_NE = { + {{.B_NE, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000001, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z}, side_effects={.CONTROL}}}, + }, + .B_CS = { + {{.B_CS, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000002, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.C}, side_effects={.CONTROL}}}, + }, + .B_CC = { + {{.B_CC, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000003, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.C}, side_effects={.CONTROL}}}, + }, + .B_MI = { + {{.B_MI, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000004, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N}, side_effects={.CONTROL}}}, + }, + .B_PL = { + {{.B_PL, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000005, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N}, side_effects={.CONTROL}}}, + }, + .B_VS = { + {{.B_VS, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000006, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.V}, side_effects={.CONTROL}}}, + }, + .B_VC = { + {{.B_VC, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000007, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.V}, side_effects={.CONTROL}}}, + }, + .B_HI = { + {{.B_HI, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000008, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}}, + }, + .B_LS = { + {{.B_LS, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000009, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}}, + }, + .B_GE = { + {{.B_GE, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400000A, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .V}, side_effects={.CONTROL}}}, + }, + .B_LT = { + {{.B_LT, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400000B, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .V}, side_effects={.CONTROL}}}, + }, + .B_GT = { + {{.B_GT, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400000C, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}}, + }, + .B_LE = { + {{.B_LE, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400000D, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}}, + }, + .B_AL = { + {{.B_AL, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400000E, 0xFF00001F, .BASE, {cond_branch=true}}, {side_effects={.CONTROL}}}, + }, + .B_NV = { + {{.B_NV, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400000F, 0xFF00001F, .BASE, {cond_branch=true}}, {side_effects={.CONTROL}}}, + }, + .CBZ = { + {{.CBZ, {.W_REG, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0x34000000, 0xFF000000, .BASE, {cond_branch=true}}, {read={0}, side_effects={.CONTROL}}}, + {{.CBZ, {.X_REG, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0xB4000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true}}, {read={0}, side_effects={.CONTROL}}}, + }, + .CBNZ = { + {{.CBNZ, {.W_REG, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0x35000000, 0xFF000000, .BASE, {cond_branch=true}}, {read={0}, side_effects={.CONTROL}}}, + {{.CBNZ, {.X_REG, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0xB5000000, 0xFF000000, .BASE, {cond_branch=true, is_64=true}}, {read={0}, side_effects={.CONTROL}}}, + }, + .TBZ = { + {{.TBZ, {.X_REG, .IMM_5, .REL_14, .NONE, .NONE}, {.RT, .TBZ_BIT, .BRANCH_14, .NONE, .NONE}, 0x36000000, 0x7F000000, .BASE, {cond_branch=true}}, {read={0}, side_effects={.CONTROL}}}, + }, + .TBNZ = { + {{.TBNZ, {.X_REG, .IMM_5, .REL_14, .NONE, .NONE}, {.RT, .TBZ_BIT, .BRANCH_14, .NONE, .NONE}, 0x37000000, 0x7F000000, .BASE, {cond_branch=true}}, {read={0}, side_effects={.CONTROL}}}, + }, + .LDR = { + {{.LDR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xB9400000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xF9400000, 0xFFC00000, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.W_REG, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0x18000000, 0xFF000000, .BASE, {}}, {written={0}}}, + {{.LDR, {.X_REG, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0x58000000, 0xFF000000, .BASE, {is_64=true}}, {written={0}}}, + {{.LDR, {.W_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xB8400C00, 0xFFE00C00, .BASE, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.X_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xF8400C00, 0xFFE00C00, .BASE, {is_64=true}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.W_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xB8400400, 0xFFE00C00, .BASE, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.X_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xF8400400, 0xFFE00C00, .BASE, {is_64=true}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xB8600800, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.X_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xF8600800, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.B_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x3D400000, 0xFFC00000, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.H_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x7D400000, 0xFFC00000, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.S_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xBD400000, 0xFFC00000, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.D_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xFD400000, 0xFFC00000, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.Q_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x3DC00000, 0xFFC00000, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.B_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x3C600800, 0xFFE00C00, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.H_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x7C600800, 0xFFE00C00, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.S_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xBC600800, 0xFFE00C00, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.D_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xFC600800, 0xFFE00C00, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.Q_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x3CE00800, 0xFFE00C00, .FP, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.B_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x3C400C00, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.H_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x7C400C00, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.S_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xBC400C00, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.D_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xFC400C00, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.Q_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x3CC00C00, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.B_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x3C400400, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.H_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x7C400400, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.S_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xBC400400, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.D_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xFC400400, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.Q_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x3CC00400, 0xFFE00C00, .FP, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDR, {.Z_REG_ANY, .MEM_SVE_SI, .NONE, .NONE, .NONE}, {.VD, .SVE_OFFSET_BASE_SI, .NONE, .NONE, .NONE}, 0x85804000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.P_REG, .MEM_SVE_SI, .NONE, .NONE, .NONE}, {.PD, .SVE_OFFSET_BASE_SI, .NONE, .NONE, .NONE}, 0x85800000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDR, {.ZA_ARRAY, .MEM_SVE_SI, .NONE, .NONE, .NONE}, {.SME_ZA_ARRAY, .SVE_OFFSET_BASE_SI, .NONE, .NONE, .NONE}, 0xE1000000, 0xFFE08000, .SME, {}}, {read={1}, reads_mem=true}}, + }, + .STR = { + {{.STR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xB9000000, 0xFFC00000, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xF9000000, 0xFFC00000, .BASE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.W_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xB8000C00, 0xFFE00C00, .BASE, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.X_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xF8000C00, 0xFFE00C00, .BASE, {is_64=true}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.W_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xB8000400, 0xFFE00C00, .BASE, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.X_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xF8000400, 0xFFE00C00, .BASE, {is_64=true}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xB8200800, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.X_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xF8200800, 0xFFE00C00, .BASE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.B_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x3D000000, 0xFFC00000, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.H_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x7D000000, 0xFFC00000, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.S_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xBD000000, 0xFFC00000, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.D_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xFD000000, 0xFFC00000, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.Q_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x3D800000, 0xFFC00000, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.B_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x3C200800, 0xFFE00C00, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.H_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x7C200800, 0xFFE00C00, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.S_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xBC200800, 0xFFE00C00, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.D_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xFC200800, 0xFFE00C00, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.Q_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x3CA00800, 0xFFE00C00, .FP, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.B_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x3C000C00, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.H_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x7C000C00, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.S_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xBC000C00, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.D_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xFC000C00, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.Q_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x3C800C00, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.B_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x3C000400, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.H_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x7C000400, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.S_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xBC000400, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.D_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0xFC000400, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.Q_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x3C800400, 0xFFE00C00, .FP, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STR, {.Z_REG_ANY, .MEM_SVE_SI, .NONE, .NONE, .NONE}, {.VD, .SVE_OFFSET_BASE_SI, .NONE, .NONE, .NONE}, 0xE5804000, 0xFFE0E000, .SVE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.P_REG, .MEM_SVE_SI, .NONE, .NONE, .NONE}, {.PD, .SVE_OFFSET_BASE_SI, .NONE, .NONE, .NONE}, 0xE5800000, 0xFFE0E010, .SVE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STR, {.ZA_ARRAY, .MEM_SVE_SI, .NONE, .NONE, .NONE}, {.SME_ZA_ARRAY, .SVE_OFFSET_BASE_SI, .NONE, .NONE, .NONE}, 0xE1200000, 0xFFE08000, .SME, {}}, {read={1}, writes_mem=true}}, + }, + .LDRB = { + {{.LDRB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x39400000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRB, {.W_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x38400C00, 0xFFE00C00, .BASE, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDRB, {.W_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x38400400, 0xFFE00C00, .BASE, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDRB, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x38600800, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STRB = { + {{.STRB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x39000000, 0xFFC00000, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STRB, {.W_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x38000C00, 0xFFE00C00, .BASE, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STRB, {.W_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x38000400, 0xFFE00C00, .BASE, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STRB, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x38200800, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + }, + .LDRSB = { + {{.LDRSB, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x39800000, 0xFFC00000, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x39C00000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSB, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x38E00800, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSB, {.X_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x38A00800, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LDRH = { + {{.LDRH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x79400000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRH, {.W_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x78400C00, 0xFFE00C00, .BASE, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDRH, {.W_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x78400400, 0xFFE00C00, .BASE, {}}, {written={0, 1}, read={1}, reads_mem=true}}, + {{.LDRH, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x78600800, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STRH = { + {{.STRH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x79000000, 0xFFC00000, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STRH, {.W_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0x78000C00, 0xFFE00C00, .BASE, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STRH, {.W_REG, .MEM_POST, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_POST, .NONE, .NONE, .NONE}, 0x78000400, 0xFFE00C00, .BASE, {}}, {written={1}, read={0, 1}, writes_mem=true}}, + {{.STRH, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x78200800, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + }, + .LDRSH = { + {{.LDRSH, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x79800000, 0xFFC00000, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0x79C00000, 0xFFC00000, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSH, {.W_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x78E00800, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSH, {.X_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0x78A00800, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LDRSW = { + {{.LDRSW, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xB9800000, 0xFFC00000, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRSW, {.X_REG, .MEM_REG, .NONE, .NONE, .NONE}, {.RT, .OFFSET_REG, .NONE, .NONE, .NONE}, 0xB8A00800, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LDP = { + {{.LDP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x29400000, 0xFFC00000, .BASE, {}}, {written={0, 1}, read={2}, reads_mem=true}}, + {{.LDP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA9400000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1}, read={2}, reads_mem=true}}, + {{.LDP, {.W_REG, .W_REG, .MEM_PRE, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x29C00000, 0xFFC00000, .BASE, {}}, {written={0, 1, 2}, read={2}, reads_mem=true}}, + {{.LDP, {.X_REG, .X_REG, .MEM_PRE, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA9C00000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1, 2}, read={2}, reads_mem=true}}, + {{.LDP, {.W_REG, .W_REG, .MEM_POST, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x28C00000, 0xFFC00000, .BASE, {}}, {written={0, 1, 2}, read={2}, reads_mem=true}}, + {{.LDP, {.X_REG, .X_REG, .MEM_POST, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA8C00000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1, 2}, read={2}, reads_mem=true}}, + {{.LDP, {.S_REG, .S_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x2D400000, 0xFFC00000, .NEON, {}}, {written={0, 1}, read={2}, reads_mem=true}}, + {{.LDP, {.D_REG, .D_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0x6D400000, 0xFFC00000, .NEON, {}}, {written={0, 1}, read={2}, reads_mem=true}}, + {{.LDP, {.Q_REG, .Q_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_16, .NONE, .NONE}, 0xAD400000, 0xFFC00000, .NEON, {}}, {written={0, 1}, read={2}, reads_mem=true}}, + }, + .STP = { + {{.STP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x29000000, 0xFFC00000, .BASE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA9000000, 0xFFC00000, .BASE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.W_REG, .W_REG, .MEM_PRE, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x29800000, 0xFFC00000, .BASE, {}}, {written={2}, read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.X_REG, .X_REG, .MEM_PRE, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA9800000, 0xFFC00000, .BASE, {is_64=true}}, {written={2}, read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.W_REG, .W_REG, .MEM_POST, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x28800000, 0xFFC00000, .BASE, {}}, {written={2}, read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.X_REG, .X_REG, .MEM_POST, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA8800000, 0xFFC00000, .BASE, {is_64=true}}, {written={2}, read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.S_REG, .S_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x2D000000, 0xFFC00000, .NEON, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.D_REG, .D_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0x6D000000, 0xFFC00000, .NEON, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.STP, {.Q_REG, .Q_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_16, .NONE, .NONE}, 0xAD000000, 0xFFC00000, .NEON, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .LDPSW = { + {{.LDPSW, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x69400000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1}, read={2}, reads_mem=true}}, + {{.LDPSW, {.X_REG, .X_REG, .MEM_PRE, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x69C00000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1, 2}, read={2}, reads_mem=true}}, + {{.LDPSW, {.X_REG, .X_REG, .MEM_POST, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x68C00000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1, 2}, read={2}, reads_mem=true}}, + }, + .LDAR = { + {{.LDAR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x88DFFC00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + {{.LDAR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xC8DFFC00, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .STLR = { + {{.STLR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x889FFC00, 0xFFFFFC00, .BASE, {}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + {{.STLR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xC89FFC00, 0xFFFFFC00, .BASE, {is_64=true}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + }, + .LDARB = { + {{.LDARB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x08DFFC00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .STLRB = { + {{.STLRB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x089FFC00, 0xFFFFFC00, .BASE, {}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + }, + .LDARH = { + {{.LDARH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x48DFFC00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .STLRH = { + {{.STLRH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x489FFC00, 0xFFFFFC00, .BASE, {}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + }, + .LDXR = { + {{.LDXR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x885F7C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + {{.LDXR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xC85F7C00, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .STXR = { + {{.STXR, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x88007C00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + {{.STXR, {.W_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xC8007C00, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .LDAXR = { + {{.LDAXR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x885FFC00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + {{.LDAXR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xC85FFC00, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .STLXR = { + {{.STLXR, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x8800FC00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + {{.STLXR, {.W_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0xC800FC00, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .NOP = { + {{.NOP, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503201F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .YIELD = { + {{.YIELD, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503203F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .WFE = { + {{.WFE, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503205F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.WAIT}}}, + }, + .WFI = { + {{.WFI, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503207F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.WAIT}}}, + }, + .SEV = { + {{.SEV, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503209F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .SEVL = { + {{.SEVL, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50320BF, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .HINT = { + {{.HINT, {.IMM_8, .NONE, .NONE, .NONE, .NONE}, {.HINT_FIELD, .NONE, .NONE, .NONE, .NONE}, 0xD503201F, 0xFFFFF01F, .BASE, {}}, {side_effects={.HINT}}}, + }, + .MRS = { + {{.MRS, {.X_REG, .SYS_REG, .NONE, .NONE, .NONE}, {.RT, .SYS_FIELD, .NONE, .NONE, .NONE}, 0xD5300000, 0xFFF00000, .BASE, {}}, {written={0}, read={1}, side_effects={.PRIVILEGED}}}, + }, + .MSR = { + {{.MSR, {.PSTATE_FIELD, .IMM_4, .NONE, .NONE, .NONE}, {.MSR_PSTATE, .BARRIER_FIELD, .NONE, .NONE, .NONE}, 0xD500401F, 0xFFF8F01F, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + {{.MSR, {.SYS_REG, .X_REG, .NONE, .NONE, .NONE}, {.SYS_FIELD, .RT, .NONE, .NONE, .NONE}, 0xD5100000, 0xFFF00000, .BASE, {}}, {written={0}, read={1}, side_effects={.PRIVILEGED}}}, + }, + .ISB = { + {{.ISB, {.IMM_4, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_FIELD, .NONE, .NONE, .NONE, .NONE}, 0xD50330DF, 0xFFFFF0FF, .BASE, {}}, {side_effects={.ISYNC}}}, + }, + .DSB = { + {{.DSB, {.IMM_4, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_FIELD, .NONE, .NONE, .NONE, .NONE}, 0xD503309F, 0xFFFFF0FF, .BASE, {}}, {side_effects={.FENCE}}}, + }, + .DMB = { + {{.DMB, {.IMM_4, .NONE, .NONE, .NONE, .NONE}, {.BARRIER_FIELD, .NONE, .NONE, .NONE, .NONE}, 0xD50330BF, 0xFFFFF0FF, .BASE, {}}, {side_effects={.FENCE}}}, + }, + .SVC = { + {{.SVC, {.IMM_16, .NONE, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE, .NONE}, 0xD4000001, 0xFFE0001F, .BASE, {branch=true}}, {side_effects={.CONTROL, .EXCEPTION}}}, + }, + .HVC = { + {{.HVC, {.IMM_16, .NONE, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE, .NONE}, 0xD4000002, 0xFFE0001F, .BASE, {branch=true}}, {side_effects={.CONTROL, .EXCEPTION, .PRIVILEGED}}}, + }, + .SMC = { + {{.SMC, {.IMM_16, .NONE, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE, .NONE}, 0xD4000003, 0xFFE0001F, .BASE, {branch=true}}, {side_effects={.CONTROL, .EXCEPTION, .PRIVILEGED}}}, + }, + .BRK = { + {{.BRK, {.IMM_16, .NONE, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE, .NONE}, 0xD4200000, 0xFFE0001F, .BASE, {branch=true}}, {side_effects={.CONTROL, .TRAP}}}, + }, + .HLT = { + {{.HLT, {.IMM_16, .NONE, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE, .NONE}, 0xD4400000, 0xFFE0001F, .BASE, {branch=true}}, {side_effects={.CONTROL, .TRAP}}}, + }, + .ERET = { + {{.ERET, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD69F03E0, 0xFFFFFFFF, .BASE, {branch=true, writes_pc=true}}, {side_effects={.CONTROL, .PRIVILEGED}}}, + }, + .FMOV = { + {{.FMOV, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E204000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FMOV, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E604000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FMOV, {.S_REG, .IMM_8, .NONE, .NONE, .NONE}, {.RD, .FMOV_SCALAR_IMM, .NONE, .NONE, .NONE}, 0x1E201000, 0xFFE01FE0, .FP, {}}, {written={0}}}, + {{.FMOV, {.D_REG, .IMM_8, .NONE, .NONE, .NONE}, {.RD, .FMOV_SCALAR_IMM, .NONE, .NONE, .NONE}, 0x1E601000, 0xFFE01FE0, .FP, {}}, {written={0}}}, + {{.FMOV, {.H_REG, .IMM_8, .NONE, .NONE, .NONE}, {.RD, .FMOV_SCALAR_IMM, .NONE, .NONE, .NONE}, 0x1EE01000, 0xFFE01FE0, .FP16, {}}, {written={0}}}, + {{.FMOV, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E260000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FMOV, {.S_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E270000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FMOV, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E660000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}}}, + {{.FMOV, {.D_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E670000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}}}, + {{.FMOV, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE04000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FMOV, {.V_2S, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x0F00F400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.FMOV, {.V_4S, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x4F00F400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.FMOV, {.V_2D, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x6F00F400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.FMOV, {.V_4H_FP16, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x0F00FC00, 0xFFF8FC00, .FP16, {}}, {written={0}}}, + {{.FMOV, {.V_8H_FP16, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x4F00FC00, 0xFFF8FC00, .FP16, {}}, {written={0}}}, + {{.FMOV, {.X_REG, .V_ELEM_D, .NONE, .NONE, .NONE}, {.RD, .NEON_LANE_D, .NONE, .NONE, .NONE}, 0x9EAE0000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}}}, + {{.FMOV, {.V_ELEM_D, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EAF0000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}}}, + }, + .FABS = { + {{.FABS, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E20C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FABS, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E60C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FABS, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE0C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FABS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.FABS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.FABS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.FABS, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF8F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FABS, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF8F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FABS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x045CA000, 0xFFFCE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.FABS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x049CA000, 0xFFFCE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.FABS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04DCA000, 0xFFFCE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .FNEG = { + {{.FNEG, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E214000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FNEG, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E614000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}}}, + {{.FNEG, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE14000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FNEG, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.FNEG, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.FNEG, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.FNEG, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF8F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FNEG, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF8F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}}}, + {{.FNEG, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x045DA000, 0xFFFDE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.FNEG, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x049DA000, 0xFFFDE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.FNEG, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04DDA000, 0xFFFDE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .FSQRT = { + {{.FSQRT, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E21C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E61C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE1C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA1F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA1F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE1F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF9F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF9F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x654DA000, 0xFFEDE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x658DA000, 0xFFEDE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSQRT, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65CDA000, 0xFFEDE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FADD = { + {{.FADD, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E202800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E602800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE02800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65400000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65800000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65C00000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65408000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65808000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADD, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C08000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FSUB = { + {{.FSUB, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E203800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E603800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE03800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65400400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65800400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65C00400, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65418000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65818000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUB, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C18000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMUL = { + {{.FMUL, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E200800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E600800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE00800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20DC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20DC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60DC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65400800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65800800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65C00800, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65428000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65828000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMUL, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C28000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FDIV = { + {{.FDIV, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E201800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E601800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE01800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x654D8000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x658D8000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIV, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65CD8000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FNMUL = { + {{.FNMUL, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E208800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FNMUL, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E608800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FNMUL, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE08800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMADD = { + {{.FMADD, {.S_REG, .S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F000000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMADD, {.D_REG, .D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F400000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMADD, {.H_REG, .H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1FC00000, 0xFFE08000, .FP16, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMSUB = { + {{.FMSUB, {.S_REG, .S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F008000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMSUB, {.D_REG, .D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F408000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMSUB, {.H_REG, .H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1FC08000, 0xFFE08000, .FP16, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FNMADD = { + {{.FNMADD, {.S_REG, .S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F200000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FNMADD, {.D_REG, .D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F600000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FNMADD, {.H_REG, .H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1FE00000, 0xFFE08000, .FP16, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FNMSUB = { + {{.FNMSUB, {.S_REG, .S_REG, .S_REG, .S_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F208000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FNMSUB, {.D_REG, .D_REG, .D_REG, .D_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1F608000, 0xFFE08000, .FP, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FNMSUB, {.H_REG, .H_REG, .H_REG, .H_REG, .NONE}, {.RD, .RN, .RM, .RA, .NONE}, 0x1FE08000, 0xFFE08000, .FP16, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCMP = { + {{.FCMP, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x1E202000, 0xFFE0FC1F, .FP, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}}, + {{.FCMP, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x1E602000, 0xFFE0FC1F, .FP, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}}, + {{.FCMP, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x1EE02000, 0xFFE0FC1F, .FP16, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}}, + }, + .FCMPE = { + {{.FCMPE, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x1E202010, 0xFFE0FC1F, .FP, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}}, + {{.FCMPE, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x1E602010, 0xFFE0FC1F, .FP, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}}, + {{.FCMPE, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x1EE02010, 0xFFE0FC1F, .FP16, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}, fpsr_wr={.IOC}}}, + }, + .FCSEL = { + {{.FCSEL, {.S_REG, .S_REG, .S_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x1E200C00, 0xFFE00C00, .FP, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.FCSEL, {.D_REG, .D_REG, .D_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x1E600C00, 0xFFE00C00, .FP, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + {{.FCSEL, {.H_REG, .H_REG, .H_REG, .COND, .NONE}, {.RD, .RN, .RM, .COND_HI, .NONE}, 0x1EE00C00, 0xFFE00C00, .FP16, {}}, {written={0}, read={1, 2}, nzcv_rd={.N, .Z, .C, .V}}}, + }, + .FMAX = { + {{.FMAX, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E204800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E604800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE04800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E403400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E403400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65468000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65868000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAX, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C68000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMIN = { + {{.FMIN, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E205800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E605800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE05800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EC03400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC03400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65478000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65878000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMIN, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C78000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMAXNM = { + {{.FMAXNM, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E206800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E606800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE06800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E400400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E400400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65448000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65848000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNM, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C48000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMINNM = { + {{.FMINNM, {.S_REG, .S_REG, .S_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E207800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.D_REG, .D_REG, .D_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1E607800, 0xFFE0FC00, .FP, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.H_REG, .H_REG, .H_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1EE07800, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EC00400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC00400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65458000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65858000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNM, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C58000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FCVT = { + {{.FCVT, {.D_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E22C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVT, {.S_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E624000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVT, {.H_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E23C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVT, {.H_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E63C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVT, {.S_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE24000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVT, {.D_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE2C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .SCVTF = { + {{.SCVTF, {.S_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E220000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.D_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E620000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.S_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E220000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.D_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E620000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.H_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE20000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E21D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E21D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E61D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E79D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.SCVTF, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E79D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + }, + .UCVTF = { + {{.UCVTF, {.S_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E230000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.D_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E630000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.S_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E230000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.D_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E630000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.H_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE30000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E21D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E21D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E61D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E79D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + {{.UCVTF, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E79D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IXC}, reads_fpcr=true}}, + }, + .FCVTZS = { + {{.FCVTZS, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E380000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E780000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E380000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E780000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EF80000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF9B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZS, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF9B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTZU = { + {{.FCVTZU, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E390000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E790000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E390000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E790000, 0xFFFFFC00, .FP, {is_64=true}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EF90000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF9B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTZU, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF9B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTAS = { + {{.FCVTAS, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E240000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E640000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE40000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E240000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E640000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EE40000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E21C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E21C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E61C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E79C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAS, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E79C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTAU = { + {{.FCVTAU, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E250000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E650000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE50000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E250000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E650000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EE50000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E21C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E21C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E61C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E79C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTAU, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E79C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTNS = { + {{.FCVTNS, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E200000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E600000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE00000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E200000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E600000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EE00000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E21A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E21A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E61A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E79A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNS, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E79A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTNU = { + {{.FCVTNU, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E210000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E610000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE10000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E210000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E610000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EE10000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E21A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E21A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E61A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E79A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTNU, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E79A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTPS = { + {{.FCVTPS, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E280000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E680000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE80000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E280000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E680000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EE80000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF9A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPS, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF9A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTPU = { + {{.FCVTPU, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E290000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E690000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE90000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E290000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E690000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EE90000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF9A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTPU, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF9A800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTMS = { + {{.FCVTMS, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E300000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E700000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EF00000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E300000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E700000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EF00000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E21B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E21B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E61B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E79B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMS, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E79B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTMU = { + {{.FCVTMU, {.W_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E310000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.W_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E710000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.W_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EF10000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.X_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E310000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.X_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9E710000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.X_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x9EF10000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E21B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E21B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E61B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E79B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + {{.FCVTMU, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E79B800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FRINTA = { + {{.FRINTA, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E264000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E664000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE64000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E218800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E218800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E618800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E798800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E798800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6544A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6584A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTA, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C4A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FRINTI = { + {{.FRINTI, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E27C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E67C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE7C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA19800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA19800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE19800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF99800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF99800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6547A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6587A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}, reads_fpcr=true}}, + {{.FRINTI, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C7A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}, reads_fpcr=true}}, + }, + .FRINTM = { + {{.FRINTM, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E254000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E654000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE54000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E219800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E219800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E619800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E799800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E799800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6542A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6582A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTM, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C2A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FRINTN = { + {{.FRINTN, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E244000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E644000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE44000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E218800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E218800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E618800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E798800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E798800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6540A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6580A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTN, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C0A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FRINTP = { + {{.FRINTP, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E24C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E64C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE4C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA18800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA18800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE18800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF98800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF98800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6541A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6581A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTP, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C1A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FRINTX = { + {{.FRINTX, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E274000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E674000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE74000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E219800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E219800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E619800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E799800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E799800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6546A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6586A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + {{.FRINTX, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C6A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IXC}, reads_fpcr=true}}, + }, + .FRINTZ = { + {{.FRINTZ, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E25C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E65C000, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1EE5C000, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA19800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA19800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE19800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF99800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF99800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6543A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x6583A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FRINTZ, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65C3A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .TST = { + {{.TST, {.W_REG, .BITMASK_IMM, .NONE, .NONE, .NONE}, {.RN, .BITMASK_FIELD, .NONE, .NONE, .NONE}, 0x7200001F, 0xFFC0001F, .BASE, {sets_flags=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.TST, {.X_REG, .BITMASK_IMM, .NONE, .NONE, .NONE}, {.RN, .BITMASK_FIELD, .NONE, .NONE, .NONE}, 0xF200001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.TST, {.W_REG, .W_SHIFTED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x6A00001F, 0xFF20001F, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.TST, {.X_REG, .X_SHIFTED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0xEA00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .LDUR = { + {{.LDUR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xB8400000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDUR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xF8400000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDUR, {.S_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xBC400000, 0xFFE00C00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDUR, {.D_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xFC400000, 0xFFE00C00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDUR, {.Q_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x3CC00000, 0xFFE00C00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STUR = { + {{.STUR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xB8000000, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + {{.STUR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xF8000000, 0xFFE00C00, .BASE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + {{.STUR, {.S_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xBC000000, 0xFFE00C00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.STUR, {.D_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xFC000000, 0xFFE00C00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.STUR, {.Q_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x3C800000, 0xFFE00C00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + }, + .LDURB = { + {{.LDURB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x38400000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STURB = { + {{.STURB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x38000000, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + }, + .LDURSB = { + {{.LDURSB, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x38800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDURSB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x38C00000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LDURH = { + {{.LDURH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x78400000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STURH = { + {{.STURH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x78000000, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true}}, + }, + .LDURSH = { + {{.LDURSH, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x78800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDURSH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x78C00000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LDURSW = { + {{.LDURSW, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xB8800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LDNP = { + {{.LDNP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x28400000, 0xFFC00000, .BASE, {}}, {written={0, 1}, read={2}, reads_mem=true}}, + {{.LDNP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA8400000, 0xFFC00000, .BASE, {is_64=true}}, {written={0, 1}, read={2}, reads_mem=true}}, + }, + .STNP = { + {{.STNP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_4, .NONE, .NONE}, 0x28000000, 0xFFC00000, .BASE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.STNP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_8, .NONE, .NONE}, 0xA8000000, 0xFFC00000, .BASE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .LDXP = { + {{.LDXP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE, .NONE}, 0x887F0000, 0xFFFF8000, .BASE, {}}, {written={0, 1}, read={2}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + {{.LDXP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE, .NONE}, 0xC87F0000, 0xFFFF8000, .BASE, {is_64=true}}, {written={0, 1}, read={2}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .STXP = { + {{.STXP, {.W_REG, .W_REG, .W_REG, .MEM_OFFSET, .NONE}, {.RD, .RT, .RT2, .OFFSET_BASE_A, .NONE}, 0x88200000, 0xFFE08000, .BASE, {}}, {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + {{.STXP, {.W_REG, .X_REG, .X_REG, .MEM_OFFSET, .NONE}, {.RD, .RT, .RT2, .OFFSET_BASE_A, .NONE}, 0xC8200000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .LDAXP = { + {{.LDAXP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE, .NONE}, 0x887F8000, 0xFFFF8000, .BASE, {}}, {written={0, 1}, read={2}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + {{.LDAXP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_BASE_A, .NONE, .NONE}, 0xC87F8000, 0xFFFF8000, .BASE, {is_64=true}}, {written={0, 1}, read={2}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .STLXP = { + {{.STLXP, {.W_REG, .W_REG, .W_REG, .MEM_OFFSET, .NONE}, {.RD, .RT, .RT2, .OFFSET_BASE_A, .NONE}, 0x88208000, 0xFFE08000, .BASE, {}}, {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + {{.STLXP, {.W_REG, .X_REG, .X_REG, .MEM_OFFSET, .NONE}, {.RD, .RT, .RT2, .OFFSET_BASE_A, .NONE}, 0xC8208000, 0xFFE08000, .BASE, {is_64=true}}, {written={0}, read={1, 2, 3}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .LDXRB = { + {{.LDXRB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x085F7C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .STXRB = { + {{.STXRB, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x08007C00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .LDAXRB = { + {{.LDAXRB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x085FFC00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .STLXRB = { + {{.STLXRB, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x0800FC00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .LDXRH = { + {{.LDXRH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x485F7C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .STXRH = { + {{.STXRH, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x48007C00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.ATOMIC, .RESERVATION}}}, + }, + .LDAXRH = { + {{.LDAXRH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x485FFC00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .STLXRH = { + {{.STLXRH, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.RD, .RT, .OFFSET_BASE_A, .NONE, .NONE}, 0x4800FC00, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, writes_mem=true, side_effects={.FENCE, .ATOMIC, .RESERVATION}}}, + }, + .LDAPR = { + {{.LDAPR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xB8BFC000, 0xFFFFFC00, .LSE2, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + {{.LDAPR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xF8BFC000, 0xFFFFFC00, .LSE2, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .LDAPRB = { + {{.LDAPRB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x38BFC000, 0xFFFFFC00, .LSE2, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .LDAPRH = { + {{.LDAPRH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x78BFC000, 0xFFFFFC00, .LSE2, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .LDADD = { + {{.LDADD, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8200000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDADD, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8200000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDADDA = { + {{.LDADDA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A00000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDADDA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A00000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDADDL = { + {{.LDADDL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8600000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDADDL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8600000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDADDAL = { + {{.LDADDAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E00000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDADDAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E00000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDCLR = { + {{.LDCLR, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8201000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDCLR, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8201000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDCLRA = { + {{.LDCLRA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A01000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDCLRA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A01000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDCLRL = { + {{.LDCLRL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8601000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDCLRL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8601000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDCLRAL = { + {{.LDCLRAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E01000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDCLRAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E01000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDEOR = { + {{.LDEOR, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8202000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDEOR, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8202000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDEORA = { + {{.LDEORA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A02000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDEORA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A02000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDEORL = { + {{.LDEORL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8602000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDEORL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8602000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDEORAL = { + {{.LDEORAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E02000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDEORAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E02000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSET = { + {{.LDSET, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8203000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDSET, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8203000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDSETA = { + {{.LDSETA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A03000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSETA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A03000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSETL = { + {{.LDSETL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8603000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSETL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8603000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSETAL = { + {{.LDSETAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E03000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSETAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E03000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSMAX = { + {{.LDSMAX, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8204000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDSMAX, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8204000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDSMAXA = { + {{.LDSMAXA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A04000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSMAXA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A04000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSMAXL = { + {{.LDSMAXL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8604000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSMAXL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8604000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSMAXAL = { + {{.LDSMAXAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E04000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSMAXAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E04000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSMIN = { + {{.LDSMIN, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8205000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDSMIN, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8205000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDSMINA = { + {{.LDSMINA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A05000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSMINA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A05000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSMINL = { + {{.LDSMINL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8605000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSMINL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8605000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDSMINAL = { + {{.LDSMINAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E05000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDSMINAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E05000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDUMAX = { + {{.LDUMAX, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8206000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDUMAX, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8206000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDUMAXA = { + {{.LDUMAXA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A06000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDUMAXA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A06000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDUMAXL = { + {{.LDUMAXL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8606000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDUMAXL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8606000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDUMAXAL = { + {{.LDUMAXAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E06000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDUMAXAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E06000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDUMIN = { + {{.LDUMIN, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8207000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.LDUMIN, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8207000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .LDUMINA = { + {{.LDUMINA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A07000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDUMINA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A07000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDUMINL = { + {{.LDUMINL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8607000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDUMINL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8607000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .LDUMINAL = { + {{.LDUMINAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E07000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.LDUMINAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E07000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .SWP = { + {{.SWP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8208000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.SWP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8208000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .SWPA = { + {{.SWPA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8A08000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.SWPA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8A08000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .SWPL = { + {{.SWPL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8608000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.SWPL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8608000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .SWPAL = { + {{.SWPAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xB8E08000, 0xFFE0FC00, .LSE, {}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.SWPAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xF8E08000, 0xFFE0FC00, .LSE, {is_64=true}}, {written={1}, read={0, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CAS = { + {{.CAS, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x88A07C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.CAS, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xC8A07C00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .CASA = { + {{.CASA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x88E07C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.CASA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xC8E07C00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASL = { + {{.CASL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x88A0FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.CASL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xC8A0FC00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASAL = { + {{.CASAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x88E0FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.CASAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0xC8E0FC00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASB = { + {{.CASB, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x08A07C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .CASAB = { + {{.CASAB, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x08E07C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASLB = { + {{.CASLB, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x08A0FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASALB = { + {{.CASALB, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x08E0FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASH = { + {{.CASH, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x48A07C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .CASAH = { + {{.CASAH, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x48E07C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASLH = { + {{.CASLH, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x48A0FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASALH = { + {{.CASALH, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x48E0FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASP = { + {{.CASP, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x08207C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + {{.CASP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x48207C00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.ATOMIC}}}, + }, + .CASPA = { + {{.CASPA, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x08607C00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.CASPA, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x48607C00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASPL = { + {{.CASPL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x0820FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.CASPL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x4820FC00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .CASPAL = { + {{.CASPAL, {.W_REG, .W_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x0860FC00, 0xFFE0FC00, .LSE, {}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + {{.CASPAL, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.ATOMIC_RS, .ATOMIC_RT, .ATOMIC_RN, .NONE, .NONE}, 0x4860FC00, 0xFFE0FC00, .LSE, {is_64=true}}, {written={0}, read={0, 1, 2}, writes_mem=true, reads_mem=true, side_effects={.FENCE, .ATOMIC}}}, + }, + .PACIA = { + {{.PACIA, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC10000, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .PACIB = { + {{.PACIB, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC10400, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .PACDA = { + {{.PACDA, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC10800, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .PACDB = { + {{.PACDB, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC10C00, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .PACIZA = { + {{.PACIZA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC123E0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .PACIZB = { + {{.PACIZB, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC127E0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .PACDZA = { + {{.PACDZA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC12BE0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .PACDZB = { + {{.PACDZB, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC12FE0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .AUTIA = { + {{.AUTIA, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC11000, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .AUTIB = { + {{.AUTIB, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC11400, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .AUTDA = { + {{.AUTDA, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC11800, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .AUTDB = { + {{.AUTDB, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xDAC11C00, 0xFFFFFC00, .PAC, {is_64=true}}, {written={0}, read={0, 1}, side_effects={.PAC}}}, + }, + .AUTIZA = { + {{.AUTIZA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC133E0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .AUTIZB = { + {{.AUTIZB, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC137E0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .AUTDZA = { + {{.AUTDZA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC13BE0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .AUTDZB = { + {{.AUTDZB, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC13FE0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .PACIASP = { + {{.PACIASP, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503233F, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}}, + }, + .PACIBSP = { + {{.PACIBSP, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503237F, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}}, + }, + .AUTIASP = { + {{.AUTIASP, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50323BF, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}}, + }, + .AUTIBSP = { + {{.AUTIBSP, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50323FF, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.LR}, implicit_rd={.LR, .SP}, side_effects={.PAC}}}, + }, + .PACIA1716 = { + {{.PACIA1716, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503211F, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}}, + }, + .PACIB1716 = { + {{.PACIB1716, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503215F, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}}, + }, + .AUTIA1716 = { + {{.AUTIA1716, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503219F, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}}, + }, + .AUTIB1716 = { + {{.AUTIB1716, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50321DF, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.X17}, implicit_rd={.X16, .X17}, side_effects={.PAC}}}, + }, + .PACGA = { + {{.PACGA, {.X_REG, .X_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC03000, 0xFFE0FC00, .PAC, {is_64=true}}, {written={0}, read={0, 1, 2}, side_effects={.PAC}}}, + }, + .XPACI = { + {{.XPACI, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC143E0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .XPACD = { + {{.XPACD, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RD, .NONE, .NONE, .NONE, .NONE}, 0xDAC147E0, 0xFFFFFFE0, .PAC, {is_64=true}}, {written={0}, read={0}, side_effects={.PAC}}}, + }, + .XPACLRI = { + {{.XPACLRI, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50320FF, 0xFFFFFFFF, .PAC, {}}, {implicit_wr={.LR}, implicit_rd={.LR}, side_effects={.PAC}}}, + }, + .RETAA = { + {{.RETAA, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD65F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}}, {implicit_rd={.LR, .SP}, side_effects={.CONTROL, .PAC}}}, + }, + .RETAB = { + {{.RETAB, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD65F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}}, {implicit_rd={.LR, .SP}, side_effects={.CONTROL, .PAC}}}, + }, + .BRAA = { + {{.BRAA, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE, .NONE}, 0xD71F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}}, {read={0, 1}, side_effects={.CONTROL, .PAC}}}, + }, + .BRAB = { + {{.BRAB, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE, .NONE}, 0xD71F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}}, {read={0, 1}, side_effects={.CONTROL, .PAC}}}, + }, + .BRAAZ = { + {{.BRAAZ, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD61F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}}, {read={0}, side_effects={.CONTROL, .PAC}}}, + }, + .BRABZ = { + {{.BRABZ, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD61F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}}, {read={0}, side_effects={.CONTROL, .PAC}}}, + }, + .BLRAA = { + {{.BLRAA, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE, .NONE}, 0xD73F0800, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}}, {read={0, 1}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}}, + }, + .BLRAB = { + {{.BLRAB, {.X_REG, .XSP_REG, .NONE, .NONE, .NONE}, {.RN, .RD, .NONE, .NONE, .NONE}, 0xD73F0C00, 0xFFFFFC00, .PAC, {branch=true, writes_pc=true}}, {read={0, 1}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}}, + }, + .BLRAAZ = { + {{.BLRAAZ, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD63F081F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}}, {read={0}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}}, + }, + .BLRABZ = { + {{.BLRABZ, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RN, .NONE, .NONE, .NONE, .NONE}, 0xD63F0C1F, 0xFFFFFC1F, .PAC, {branch=true, writes_pc=true}}, {read={0}, implicit_wr={.LR}, side_effects={.CONTROL, .PAC}}}, + }, + .ERETAA = { + {{.ERETAA, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD69F0BFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}}, {side_effects={.CONTROL, .PAC, .PRIVILEGED}}}, + }, + .ERETAB = { + {{.ERETAB, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD69F0FFF, 0xFFFFFFFF, .PAC, {branch=true, writes_pc=true}}, {side_effects={.CONTROL, .PAC, .PRIVILEGED}}}, + }, + .BTI = { + {{.BTI, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503241F, 0xFFFFFFFF, .BTI, {}}, {side_effects={.BTI}}}, + }, + .IRG = { + {{.IRG, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC01000, 0xFFE0FC00, .MTE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .ADDG = { + {{.ADDG, {.XSP_REG, .XSP_REG, .IMM_6, .IMM_4, .NONE}, {.RD, .RN, .IMM6, .IMM_HW, .NONE}, 0x91800000, 0xFFC0C000, .MTE, {is_64=true}}, {written={0}, read={1}}}, + }, + .SUBG = { + {{.SUBG, {.XSP_REG, .XSP_REG, .IMM_6, .IMM_4, .NONE}, {.RD, .RN, .IMM6, .IMM_HW, .NONE}, 0xD1800000, 0xFFC0C000, .MTE, {is_64=true}}, {written={0}, read={1}}}, + }, + .GMI = { + {{.GMI, {.X_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC01400, 0xFFE0FC00, .MTE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .SUBP = { + {{.SUBP, {.X_REG, .XSP_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC00000, 0xFFE0FC00, .MTE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .SUBPS = { + {{.SUBPS, {.X_REG, .XSP_REG, .XSP_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xBAC00000, 0xFFE0FC00, .MTE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .LDG = { + {{.LDG, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9600000, 0xFFE00C00, .MTE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STG = { + {{.STG, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9200800, 0xFFE00C00, .MTE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + }, + .ST2G = { + {{.ST2G, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9A00800, 0xFFE00C00, .MTE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + }, + .STZG = { + {{.STZG, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9600800, 0xFFE00C00, .MTE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + }, + .STZ2G = { + {{.STZ2G, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9E00800, 0xFFE00C00, .MTE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + }, + .STGP = { + {{.STGP, {.X_REG, .X_REG, .MEM_OFFSET, .NONE, .NONE}, {.RT, .RT2, .OFFSET_PAIR_16, .NONE, .NONE}, 0x69000000, 0xFFC00000, .MTE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .LDGM = { + {{.LDGM, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xD9E00000, 0xFFE00C00, .MTE, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + }, + .STGM = { + {{.STGM, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xD9A00000, 0xFFE00C00, .MTE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + }, + .STZGM = { + {{.STZGM, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0xD9200000, 0xFFE00C00, .MTE, {is_64=true}}, {read={0, 1}, writes_mem=true}}, + }, + .CRC32B = { + {{.CRC32B, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC04000, 0xFFE0FC00, .CRC32, {}}, {written={0}, read={1, 2}}}, + }, + .CRC32H = { + {{.CRC32H, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC04400, 0xFFE0FC00, .CRC32, {}}, {written={0}, read={1, 2}}}, + }, + .CRC32W = { + {{.CRC32W, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC04800, 0xFFE0FC00, .CRC32, {}}, {written={0}, read={1, 2}}}, + }, + .CRC32X = { + {{.CRC32X, {.W_REG, .W_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC04C00, 0xFFE0FC00, .CRC32, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .CRC32CB = { + {{.CRC32CB, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC05000, 0xFFE0FC00, .CRC32, {}}, {written={0}, read={1, 2}}}, + }, + .CRC32CH = { + {{.CRC32CH, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC05400, 0xFFE0FC00, .CRC32, {}}, {written={0}, read={1, 2}}}, + }, + .CRC32CW = { + {{.CRC32CW, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1AC05800, 0xFFE0FC00, .CRC32, {}}, {written={0}, read={1, 2}}}, + }, + .CRC32CX = { + {{.CRC32CX, {.W_REG, .W_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9AC05C00, 0xFFE0FC00, .CRC32, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .AESE = { + {{.AESE, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E284800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + {{.AESE, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VD, .VN, .NONE, .NONE}, 0x4522E000, 0xFFFFFC00, .SVE2, {}}, {written={0}, read={0, 1}}}, + }, + .AESD = { + {{.AESD, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E285800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + {{.AESD, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VD, .VN, .NONE, .NONE}, 0x4522E400, 0xFFFFFC00, .SVE2, {}}, {written={0}, read={0, 1}}}, + }, + .AESMC = { + {{.AESMC, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E286800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + {{.AESMC, {.Z_REG_B, .Z_REG_B, .NONE, .NONE, .NONE}, {.VD, .VD, .NONE, .NONE, .NONE}, 0x4520E000, 0xFFFFFFE0, .SVE2, {}}, {written={0}, read={0}}}, + }, + .AESIMC = { + {{.AESIMC, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E287800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + {{.AESIMC, {.Z_REG_B, .Z_REG_B, .NONE, .NONE, .NONE}, {.VD, .VD, .NONE, .NONE, .NONE}, 0x4520E400, 0xFFFFFFE0, .SVE2, {}}, {written={0}, read={0}}}, + }, + .SHA1H = { + {{.SHA1H, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x5E280800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={1}}}, + }, + .SHA1C = { + {{.SHA1C, {.Q_REG, .S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E000000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA1P = { + {{.SHA1P, {.Q_REG, .S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E001000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA1M = { + {{.SHA1M, {.Q_REG, .S_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E002000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA1SU0 = { + {{.SHA1SU0, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E003000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA1SU1 = { + {{.SHA1SU1, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x5E281800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + }, + .SHA256H = { + {{.SHA256H, {.Q_REG, .Q_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E004000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA256H2 = { + {{.SHA256H2, {.Q_REG, .Q_REG, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E005000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA256SU0 = { + {{.SHA256SU0, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x5E282800, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + }, + .SHA256SU1 = { + {{.SHA256SU1, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x5E006000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA512H = { + {{.SHA512H, {.Q_REG, .Q_REG, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE608000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA512H2 = { + {{.SHA512H2, {.Q_REG, .Q_REG, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE608400, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SHA512SU0 = { + {{.SHA512SU0, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0xCEC08000, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + }, + .SHA512SU1 = { + {{.SHA512SU1, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE608800, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .EOR3 = { + {{.EOR3, {.V_16B, .V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .VA, .NONE}, 0xCE000000, 0xFFE08000, .CRYPTO, {}}, {written={0}, read={1, 2, 3}}}, + {{.EOR3, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VD, .VM, .VN, .NONE}, 0x04203800, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .BCAX = { + {{.BCAX, {.V_16B, .V_16B, .V_16B, .V_16B, .NONE}, {.VD, .VN, .VM, .VA, .NONE}, 0xCE200000, 0xFFE08000, .CRYPTO, {}}, {written={0}, read={1, 2, 3}}}, + {{.BCAX, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VD, .VM, .VN, .NONE}, 0x04603800, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .RAX1 = { + {{.RAX1, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE608C00, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + }, + .XAR = { + {{.XAR, {.V_2D, .V_2D, .V_2D, .IMM_6, .NONE}, {.VD, .VN, .VM, .IMM6, .NONE}, 0xCE800000, 0xFFE00000, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + {{.XAR, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .VEC_SHIFT, .NONE}, {.VD_TSZ, .VD_TSZ, .VN_TSZ, .SVE_XAR_SHIFT, .NONE}, 0x04A03400, 0xFFA0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.XAR, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .VEC_SHIFT, .NONE}, {.VD_TSZ, .VD_TSZ, .VN_TSZ, .SVE_XAR_SHIFT, .NONE}, 0x04603400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.XAR, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .VEC_SHIFT, .NONE}, {.VD_TSZ, .VD_TSZ, .VN_TSZ, .SVE_XAR_SHIFT, .NONE}, 0x04303400, 0xFFF0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.XAR, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .VEC_SHIFT, .NONE}, {.VD_TSZ, .VD_TSZ, .VN_TSZ, .SVE_XAR_SHIFT, .NONE}, 0x04283400, 0xFFF8FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + }, + .SM3PARTW1 = { + {{.SM3PARTW1, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE60C000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SM3PARTW2 = { + {{.SM3PARTW2, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE60C400, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SM3SS1 = { + {{.SM3SS1, {.V_4S, .V_4S, .V_4S, .V_4S, .NONE}, {.VD, .VN, .VM, .VA, .NONE}, 0xCE400000, 0xFFE08000, .CRYPTO, {}}, {written={0}, read={1, 2, 3}}}, + }, + .SM3TT1A = { + {{.SM3TT1A, {.V_4S, .V_4S, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .VN, .VM, .NEON_IDX2, .NONE}, 0xCE408000, 0xFFE0CC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SM3TT1B = { + {{.SM3TT1B, {.V_4S, .V_4S, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .VN, .VM, .NEON_IDX2, .NONE}, 0xCE408400, 0xFFE0CC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SM3TT2A = { + {{.SM3TT2A, {.V_4S, .V_4S, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .VN, .VM, .NEON_IDX2, .NONE}, 0xCE408800, 0xFFE0CC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SM3TT2B = { + {{.SM3TT2B, {.V_4S, .V_4S, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .VN, .VM, .NEON_IDX2, .NONE}, 0xCE408C00, 0xFFE0CC00, .CRYPTO, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SM4E = { + {{.SM4E, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0xCEC08400, 0xFFFFFC00, .CRYPTO, {}}, {written={0}, read={0, 1}}}, + }, + .SM4EKEY = { + {{.SM4EKEY, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0xCE60C800, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + }, + .PMULL = { + {{.PMULL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20E000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + {{.PMULL, {.V_1Q, .V_1D, .V_1D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EE0E000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + }, + .PMULL2 = { + {{.PMULL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20E000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + {{.PMULL2, {.V_1Q, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0E000, 0xFFE0FC00, .CRYPTO, {}}, {written={0}, read={1, 2}}}, + }, + .BFCVT = { + {{.BFCVT, {.H_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x1E634000, 0xFFFFFC00, .BF16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.BFCVT, {.Z_REG_H, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x658AA000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFDOT = { + {{.BFDOT, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E40FC00, 0xFFE0FC00, .BF16, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMMLA = { + {{.BFMMLA, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E40EC00, 0xFFE0FC00, .BF16, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMLALB = { + {{.BFMLALB, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EC0FC00, 0xFFE0FC00, .BF16, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMLALT = { + {{.BFMLALT, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EC0FC00, 0xFFE0FC00, .BF16, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFCVTN = { + {{.BFCVTN, {.V_4H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA16800, 0xFFFFFC00, .BF16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFCVTN2 = { + {{.BFCVTN2, {.V_8H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA16800, 0xFFFFFC00, .BF16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .MUL = { + {{.MUL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E209C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.MUL, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E609C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.MUL, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA09C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.MUL, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04100000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.MUL, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04500000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.MUL, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04900000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.MUL, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D00000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .MLA = { + {{.MLA, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLA, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLA, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E609400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLA, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E609400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLA, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA09400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLA, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA09400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .MLS = { + {{.MLS, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLS, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLS, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E609400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLS, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E609400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLS, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA09400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.MLS, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA09400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .NEG = { + {{.NEG, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E20B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E20B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E60B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E60B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA0B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA0B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE0B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NEG, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0417A000, 0xFFF7E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.NEG, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0457A000, 0xFFF7E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.NEG, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0497A000, 0xFFF7E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.NEG, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04D7A000, 0xFFF7E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.NEG, {.W_REG, .W_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0x4B0003E0, 0xFF2003E0, .BASE, {}}, {written={0}, read={1}}}, + {{.NEG, {.X_REG, .X_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0xCB0003E0, 0xFF2003E0, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .ABS = { + {{.ABS, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E20B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E20B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E60B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E60B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA0B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA0B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE0B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ABS, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0416A000, 0xFFF6E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ABS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0456A000, 0xFFF6E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ABS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0496A000, 0xFFF6E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ABS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04D6A000, 0xFFF6E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .SHADD = { + {{.SHADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E600400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E600400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA00400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA00400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UHADD = { + {{.UHADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E600400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E600400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA00400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA00400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SHSUB = { + {{.SHSUB, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHSUB, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHSUB, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E602400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHSUB, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E602400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHSUB, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA02400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SHSUB, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA02400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UHSUB = { + {{.UHSUB, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHSUB, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHSUB, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E602400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHSUB, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E602400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHSUB, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA02400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UHSUB, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA02400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SRHADD = { + {{.SRHADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRHADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRHADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E601400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRHADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E601400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRHADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA01400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRHADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA01400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .URHADD = { + {{.URHADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URHADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URHADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E601400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URHADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E601400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URHADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA01400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URHADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA01400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SQADD = { + {{.SQADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E200C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E200C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E600C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E600C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA00C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA00C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE00C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04201000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04601000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04A01000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQADD, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04E01000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .UQADD = { + {{.UQADD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E200C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E200C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E600C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E600C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA00C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA00C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE00C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04201400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04601400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04A01400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQADD, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04E01400, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .SQSUB = { + {{.SQSUB, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E202C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E202C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E602C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E602C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA02C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA02C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE02C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04201800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04601800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04A01800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQSUB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04E01800, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .UQSUB = { + {{.UQSUB, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E202C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E202C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E602C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E602C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA02C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA02C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE02C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04201C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04601C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04A01C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.UQSUB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04E01C00, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .SMAX = { + {{.SMAX, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E206400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAX, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E206400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAX, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E606400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAX, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E606400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAX, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA06400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAX, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA06400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAX, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04080000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMAX, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04480000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMAX, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04880000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMAX, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04C80000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .UMAX = { + {{.UMAX, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E206400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAX, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E206400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAX, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E606400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAX, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E606400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAX, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA06400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAX, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA06400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAX, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04090000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMAX, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04490000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMAX, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04890000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMAX, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04C90000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SMIN = { + {{.SMIN, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E206C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMIN, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E206C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMIN, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E606C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMIN, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E606C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMIN, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA06C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMIN, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA06C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMIN, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x040A0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMIN, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x044A0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMIN, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x048A0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SMIN, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04CA0000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .UMIN = { + {{.UMIN, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E206C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMIN, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E206C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMIN, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E606C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMIN, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E606C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMIN, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA06C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMIN, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA06C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMIN, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x040B0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMIN, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x044B0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMIN, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x048B0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UMIN, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04CB0000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SABD = { + {{.SABD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E207400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SABD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E207400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SABD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E607400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SABD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E607400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SABD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA07400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SABD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA07400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SABD, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x040C0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SABD, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x044C0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SABD, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x048C0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SABD, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04CC0000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .UABD = { + {{.UABD, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E207400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UABD, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E207400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UABD, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E607400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UABD, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E607400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UABD, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA07400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UABD, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA07400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UABD, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x040D0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UABD, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x044D0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UABD, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x048D0000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.UABD, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04CD0000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .SABA = { + {{.SABA, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E207C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SABA, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E207C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SABA, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E607C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SABA, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E607C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SABA, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA07C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SABA, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA07C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .UABA = { + {{.UABA, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E207C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UABA, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E207C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UABA, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E607C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UABA, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E607C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UABA, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA07C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UABA, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA07C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .ADDP = { + {{.ADDP, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDP, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDP, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDP, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDP, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0BC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .ADDV = { + {{.ADDV, {.B_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E31B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ADDV, {.B_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E31B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ADDV, {.H_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E71B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ADDV, {.H_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E71B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.ADDV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EB1B800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SADDLP = { + {{.SADDLP, {.V_4H, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E202800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLP, {.V_8H, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E202800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLP, {.V_2S, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E602800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLP, {.V_4S, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E602800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLP, {.V_1D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA02800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLP, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA02800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .UADDLP = { + {{.UADDLP, {.V_4H, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E202800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLP, {.V_8H, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E202800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLP, {.V_2S, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E602800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLP, {.V_4S, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E602800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLP, {.V_1D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA02800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLP, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA02800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SADALP = { + {{.SADALP, {.V_4H, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E206800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SADALP, {.V_8H, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E206800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SADALP, {.V_2S, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E606800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SADALP, {.V_4S, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E606800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SADALP, {.V_1D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA06800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SADALP, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA06800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .UADALP = { + {{.UADALP, {.V_4H, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E206800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.UADALP, {.V_8H, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E206800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.UADALP, {.V_2S, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E606800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.UADALP, {.V_4S, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E606800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.UADALP, {.V_1D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA06800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.UADALP, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA06800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .SADDLV = { + {{.SADDLV, {.H_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E303800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLV, {.H_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E303800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLV, {.S_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E703800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLV, {.S_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E703800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SADDLV, {.D_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EB03800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .UADDLV = { + {{.UADDLV, {.H_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E303800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLV, {.H_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E303800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLV, {.S_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E703800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLV, {.S_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E703800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UADDLV, {.D_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EB03800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SMAXV = { + {{.SMAXV, {.B_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E30A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMAXV, {.B_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E30A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMAXV, {.H_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E70A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMAXV, {.H_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E70A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMAXV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EB0A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .UMAXV = { + {{.UMAXV, {.B_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E30A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMAXV, {.B_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E30A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMAXV, {.H_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E70A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMAXV, {.H_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E70A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMAXV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EB0A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SMINV = { + {{.SMINV, {.B_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E31A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMINV, {.B_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E31A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMINV, {.H_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E71A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMINV, {.H_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E71A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SMINV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EB1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .UMINV = { + {{.UMINV, {.B_REG, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E31A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMINV, {.B_REG, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E31A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMINV, {.H_REG, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E71A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMINV, {.H_REG, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E71A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UMINV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EB1A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SMAXP = { + {{.SMAXP, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAXP, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAXP, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAXP, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAXP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMAXP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UMAXP = { + {{.UMAXP, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAXP, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAXP, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E60A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAXP, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAXP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMAXP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SMINP = { + {{.SMINP, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMINP, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMINP, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMINP, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMINP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMINP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UMINP = { + {{.UMINP, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMINP, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMINP, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E60AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMINP, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMINP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMINP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0AC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SADDL = { + {{.SADDL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E200000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E600000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA00000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SADDL2 = { + {{.SADDL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E200000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E600000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA00000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UADDL = { + {{.UADDL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E200000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E600000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA00000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UADDL2 = { + {{.UADDL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E200000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E600000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA00000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SSUBL = { + {{.SSUBL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E202000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E602000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA02000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SSUBL2 = { + {{.SSUBL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E202000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E602000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA02000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .USUBL = { + {{.USUBL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E202000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E602000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA02000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .USUBL2 = { + {{.USUBL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E202000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E602000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA02000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SADDW = { + {{.SADDW, {.V_8H, .V_8H, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E201000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDW, {.V_4S, .V_4S, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E601000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDW, {.V_2D, .V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA01000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SADDW2 = { + {{.SADDW2, {.V_8H, .V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E201000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDW2, {.V_4S, .V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E601000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SADDW2, {.V_2D, .V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA01000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UADDW = { + {{.UADDW, {.V_8H, .V_8H, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E201000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDW, {.V_4S, .V_4S, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E601000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDW, {.V_2D, .V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA01000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UADDW2 = { + {{.UADDW2, {.V_8H, .V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E201000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDW2, {.V_4S, .V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E601000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UADDW2, {.V_2D, .V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA01000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SSUBW = { + {{.SSUBW, {.V_8H, .V_8H, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E203000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBW, {.V_4S, .V_4S, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E603000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBW, {.V_2D, .V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA03000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SSUBW2 = { + {{.SSUBW2, {.V_8H, .V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E203000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBW2, {.V_4S, .V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E603000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSUBW2, {.V_2D, .V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA03000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .USUBW = { + {{.USUBW, {.V_8H, .V_8H, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E203000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBW, {.V_4S, .V_4S, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E603000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBW, {.V_2D, .V_2D, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA03000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .USUBW2 = { + {{.USUBW2, {.V_8H, .V_8H, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E203000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBW2, {.V_4S, .V_4S, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E603000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USUBW2, {.V_2D, .V_2D, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA03000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .RADDHN = { + {{.RADDHN, {.V_8B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E204000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RADDHN, {.V_4H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E604000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RADDHN, {.V_2S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA04000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .RADDHN2 = { + {{.RADDHN2, {.V_16B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E204000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RADDHN2, {.V_8H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E604000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RADDHN2, {.V_4S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA04000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .RSUBHN = { + {{.RSUBHN, {.V_8B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E206000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RSUBHN, {.V_4H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E606000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RSUBHN, {.V_2S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA06000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .RSUBHN2 = { + {{.RSUBHN2, {.V_16B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E206000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RSUBHN2, {.V_8H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E606000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.RSUBHN2, {.V_4S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA06000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .ADDHN = { + {{.ADDHN, {.V_8B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E204000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDHN, {.V_4H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E604000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDHN, {.V_2S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA04000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .ADDHN2 = { + {{.ADDHN2, {.V_16B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E204000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDHN2, {.V_8H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E604000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ADDHN2, {.V_4S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA04000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SUBHN = { + {{.SUBHN, {.V_8B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E206000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUBHN, {.V_4H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E606000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUBHN, {.V_2S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA06000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SUBHN2 = { + {{.SUBHN2, {.V_16B, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E206000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUBHN2, {.V_8H, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E606000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SUBHN2, {.V_4S, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA06000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .XTN = { + {{.XTN, {.V_8B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E212800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.XTN, {.V_4H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E612800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.XTN, {.V_2S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA12800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .XTN2 = { + {{.XTN2, {.V_16B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E212800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.XTN2, {.V_8H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E612800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.XTN2, {.V_4S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA12800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SQXTN = { + {{.SQXTN, {.V_8B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E214800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTN, {.V_4H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E614800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTN, {.V_2S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA14800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQXTN2 = { + {{.SQXTN2, {.V_16B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E214800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTN2, {.V_8H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E614800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTN2, {.V_4S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA14800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .UQXTN = { + {{.UQXTN, {.V_8B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E214800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQXTN, {.V_4H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E614800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQXTN, {.V_2S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA14800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .UQXTN2 = { + {{.UQXTN2, {.V_16B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E214800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQXTN2, {.V_8H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E614800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQXTN2, {.V_4S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA14800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQXTUN = { + {{.SQXTUN, {.V_8B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E212800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTUN, {.V_4H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E612800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTUN, {.V_2S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA12800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQXTUN2 = { + {{.SQXTUN2, {.V_16B, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E212800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTUN2, {.V_8H, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E612800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQXTUN2, {.V_4S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA12800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SMULL = { + {{.SMULL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMULL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMULL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SMULL2 = { + {{.SMULL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMULL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SMULL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UMULL = { + {{.UMULL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMULL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E60C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMULL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .UMULL2 = { + {{.UMULL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMULL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UMULL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0C000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SMLAL = { + {{.SMLAL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E208000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLAL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E608000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLAL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA08000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SMLAL2 = { + {{.SMLAL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E208000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLAL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E608000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLAL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA08000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .UMLAL = { + {{.UMLAL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E208000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLAL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E608000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLAL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA08000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .UMLAL2 = { + {{.UMLAL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E208000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLAL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E608000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLAL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA08000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SMLSL = { + {{.SMLSL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLSL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLSL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SMLSL2 = { + {{.SMLSL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLSL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.SMLSL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .UMLSL = { + {{.UMLSL, {.V_8H, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLSL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E60A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLSL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .UMLSL2 = { + {{.UMLSL2, {.V_8H, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLSL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.UMLSL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0A000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .SQDMULL = { + {{.SQDMULL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60D000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQDMULL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0D000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .SQDMULL2 = { + {{.SQDMULL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60D000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQDMULL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0D000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .SQDMLAL = { + {{.SQDMLAL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E609000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQDMLAL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA09000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + }, + .SQDMLAL2 = { + {{.SQDMLAL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E609000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQDMLAL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA09000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + }, + .SQDMLSL = { + {{.SQDMLSL, {.V_4S, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60B000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQDMLSL, {.V_2D, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0B000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + }, + .SQDMLSL2 = { + {{.SQDMLSL2, {.V_4S, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60B000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQDMLSL2, {.V_2D, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0B000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + }, + .SQDMULH = { + {{.SQDMULH, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E60B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQDMULH, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQDMULH, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQDMULH, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .SQRDMULH = { + {{.SQRDMULH, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E60B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMULH, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMULH, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMULH, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0B400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.QC}}}, + }, + .SDOT = { + {{.SDOT, {.V_2S, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E809400, 0xFFE0FC00, .DOT, {}}, {written={0}, read={0, 1, 2}}}, + {{.SDOT, {.V_4S, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E809400, 0xFFE0FC00, .DOT, {}}, {written={0}, read={0, 1, 2}}}, + }, + .UDOT = { + {{.UDOT, {.V_2S, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E809400, 0xFFE0FC00, .DOT, {}}, {written={0}, read={0, 1, 2}}}, + {{.UDOT, {.V_4S, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E809400, 0xFFE0FC00, .DOT, {}}, {written={0}, read={0, 1, 2}}}, + }, + .USDOT = { + {{.USDOT, {.V_2S, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E809C00, 0xFFE0FC00, .DOT, {}}, {written={0}, read={0, 1, 2}}}, + {{.USDOT, {.V_4S, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E809C00, 0xFFE0FC00, .DOT, {}}, {written={0}, read={0, 1, 2}}}, + }, + .FMLA = { + {{.FMLA, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20CC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60CC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65600000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65A00000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65E00000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .IMM_3, .NONE}, {.VD, .VN, .VM, .SVE_FMLA_IDX_H, .NONE}, 0x64200000, 0xFFA0FC00, .SVE, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .IMM_2, .NONE}, {.VD, .VN, .VM, .SVE_FMLA_IDX_S, .NONE}, 0x64A00000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLA, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .IMM_2, .NONE}, {.VD, .VN, .VM, .SVE_FMLA_IDX_D, .NONE}, 0x64E00000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMLS = { + {{.FMLS, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0CC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0CC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65602000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65A02000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65E02000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .IMM_3, .NONE}, {.VD, .VN, .VM, .SVE_FMLA_IDX_H, .NONE}, 0x64200400, 0xFFA0FC00, .SVE, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .IMM_2, .NONE}, {.VD, .VN, .VM, .SVE_FMLA_IDX_S, .NONE}, 0x64A00400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMLS, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .IMM_2, .NONE}, {.VD, .VN, .VM, .SVE_FMLA_IDX_D, .NONE}, 0x64E00400, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMULX = { + {{.FMULX, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20DC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMULX, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20DC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMULX, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60DC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMULX, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E401C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FMULX, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E401C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMAXP = { + {{.FMAXP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXP, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E403400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E403400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMINP = { + {{.FMINP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINP, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE0F400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EC03400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EC03400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMAXNMP = { + {{.FMAXNMP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNMP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNMP, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNMP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E400400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNMP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E400400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMINNMP = { + {{.FMINNMP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNMP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNMP, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE0C400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNMP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EC00400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNMP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EC00400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMAXV = { + {{.FMAXV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E30F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXV, {.H_REG, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E30F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXV, {.H_REG, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E30F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMINV = { + {{.FMINV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EB0F800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINV, {.H_REG, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EB0F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINV, {.H_REG, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EB0F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMAXNMV = { + {{.FMAXNMV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E30C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNMV, {.H_REG, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E30C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMAXNMV, {.H_REG, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E30C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FMINNMV = { + {{.FMINNMV, {.S_REG, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EB0C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNMV, {.H_REG, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EB0C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + {{.FMINNMV, {.H_REG, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EB0C800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IDC}, reads_fpcr=true}}, + }, + .FRECPE = { + {{.FRECPE, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA1D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPE, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA1D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPE, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE1D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPE, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF9D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF9D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, reads_fpcr=true}}, + }, + .FRSQRTE = { + {{.FRSQRTE, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA1D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRSQRTE, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA1D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRSQRTE, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE1D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRSQRTE, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF9D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRSQRTE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF9D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, reads_fpcr=true}}, + }, + .FRECPS = { + {{.FRECPS, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E403C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E403C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65401800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65801800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRECPS, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65C01800, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FRSQRTS = { + {{.FRSQRTS, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA0FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA0FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE0FC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EC03C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC03C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65401C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65801C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FRSQRTS, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65C01C00, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FRECPX = { + {{.FRECPX, {.S_REG, .S_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5EA1F800, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPX, {.D_REG, .D_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5EE1F800, 0xFFFFFC00, .FP, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPX, {.H_REG, .H_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x5EF9F800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, reads_fpcr=true}}, + {{.FRECPX, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x654CA000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, reads_fpcr=true}}, + {{.FRECPX, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x658CA000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, reads_fpcr=true}}, + {{.FRECPX, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x65CCA000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_fpcr=true}}, + }, + .FADDP = { + {{.FADDP, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADDP, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADDP, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60D400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADDP, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E401400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FADDP, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E401400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCVTL = { + {{.FCVTL, {.V_4S, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E217800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVTL, {.V_2D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E617800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCVTL2 = { + {{.FCVTL2, {.V_4S, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E217800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVTL2, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E617800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCVTN = { + {{.FCVTN, {.V_4H_FP16, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E216800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVTN, {.V_2S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E616800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCVTN2 = { + {{.FCVTN2, {.V_8H_FP16, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E216800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCVTN2, {.V_4S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E616800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCVTXN = { + {{.FCVTXN, {.V_2S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E616800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCVTXN2 = { + {{.FCVTXN2, {.V_4S, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E616800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC, .IXC}}}, + }, + .FCMEQ = { + {{.FCMEQ, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E20E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E20E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E60E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E402400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E402400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65406000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65806000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMEQ, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65C06000, 0xFFE0E010, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + }, + .FCMGE = { + {{.FCMGE, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E402400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E402400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65404000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65804000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMGE, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65C04000, 0xFFE0E010, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + }, + .FCMGT = { + {{.FCMGT, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE0E400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EC02400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EC02400, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65404010, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65804010, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMGT, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65C04010, 0xFFE0E010, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + }, + .FCMLE = { + {{.FCMLE, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA0D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA0D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE0D800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EF8D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EF8D800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .NONE, .NONE}, {.PD, .PG, .VN, .NONE, .NONE}, 0x65512010, 0xFFFFE010, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .NONE, .NONE}, {.PD, .PG, .VN, .NONE, .NONE}, 0x65912010, 0xFFFFE010, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMLE, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .NONE, .NONE}, {.PD, .PG, .VN, .NONE, .NONE}, 0x65D12010, 0xFFFFE010, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FCMLT = { + {{.FCMLT, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA0E800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA0E800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE0E800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.V_4H_FP16, .V_4H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EF8E800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.V_8H_FP16, .V_8H_FP16, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EF8E800, 0xFFFFFC00, .FP16, {}}, {written={0}, read={1}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .NONE, .NONE}, {.PD, .PG, .VN, .NONE, .NONE}, 0x65512000, 0xFFFFE010, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .NONE, .NONE}, {.PD, .PG, .VN, .NONE, .NONE}, 0x65912000, 0xFFFFE010, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FCMLT, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .NONE, .NONE}, {.PD, .PG, .VN, .NONE, .NONE}, 0x65D12000, 0xFFFFE010, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FACGE = { + {{.FACGE, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E20EC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGE, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E20EC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGE, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E60EC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGE, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E402C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGE, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E402C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .FACGT = { + {{.FACGT, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA0EC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGT, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA0EC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGT, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE0EC00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGT, {.V_4H_FP16, .V_4H_FP16, .V_4H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EC02C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + {{.FACGT, {.V_8H_FP16, .V_8H_FP16, .V_8H_FP16, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EC02C00, 0xFFE0FC00, .FP16, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC}}}, + }, + .CMEQ = { + {{.CMEQ, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMEQ, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E608C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMEQ, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA08C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMEQ, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE08C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .CMGE = { + {{.CMGE, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E203C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGE, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E203C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGE, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E603C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGE, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E603C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGE, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA03C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGE, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA03C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGE, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE03C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .CMGT = { + {{.CMGT, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E203400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMGT, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE03400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .CMHI = { + {{.CMHI, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E203400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHI, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE03400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .CMHS = { + {{.CMHS, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E203C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHS, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E203C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHS, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E603C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHS, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E603C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHS, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA03C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHS, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA03C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMHS, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE03C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .CMLE = { + {{.CMLE, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E209800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLE, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E209800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLE, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E609800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLE, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E609800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLE, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA09800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLE, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA09800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLE, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EE09800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .CMLT = { + {{.CMLT, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E20A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLT, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E20A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLT, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E60A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLT, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E60A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLT, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA0A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLT, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA0A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CMLT, {.V_2D, .V_2D, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EE0A800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .CMTST = { + {{.CMTST, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMTST, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMTST, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E608C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMTST, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E608C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMTST, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA08C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMTST, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA08C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.CMTST, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE08C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .MVN = { + {{.MVN, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MVN, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MVN, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0x2A2003E0, 0xFFE0FFE0, .BASE, {}}, {written={0}, read={1}}}, + {{.MVN, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0xAA2003E0, 0xFFE0FFE0, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .BIT = { + {{.BIT, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA01C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .BIF = { + {{.BIF, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE01C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + }, + .BSL = { + {{.BSL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E601C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.BSL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VD, .VM, .VN, .NONE}, 0x04203C00, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .SHL = { + {{.SHL, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F085400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHL, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F085400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHL, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F105400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHL, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F105400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHL, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHL, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHL, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F405400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SQSHL = { + {{.SQSHL, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F087400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHL, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F087400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHL, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F107400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHL, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F107400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHL, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F207400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHL, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F207400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHL, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F407400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQSHLU = { + {{.SQSHLU, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F086400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHLU, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F086400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHLU, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F106400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHLU, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F106400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHLU, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F206400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHLU, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F206400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHLU, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F406400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SRSHL = { + {{.SRSHL, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRSHL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRSHL, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E605400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRSHL, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E605400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRSHL, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA05400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRSHL, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA05400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SRSHL, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE05400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .URSHL = { + {{.URSHL, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URSHL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URSHL, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E605400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URSHL, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E605400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URSHL, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA05400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URSHL, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA05400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.URSHL, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE05400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SSHR = { + {{.SSHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F080400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F080400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F100400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F100400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F400400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .USHR = { + {{.USHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F080400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F080400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F100400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F100400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F200400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F400400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SSRA = { + {{.SSRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F081400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SSRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F081400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SSRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F101400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SSRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F101400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SSRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SSRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SSRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F401400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .USRA = { + {{.USRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F081400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.USRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F081400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.USRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F101400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.USRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F101400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.USRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.USRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F201400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.USRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F401400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .SRSHR = { + {{.SRSHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F082400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SRSHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F082400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SRSHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F102400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SRSHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F102400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SRSHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SRSHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SRSHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F402400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .URSHR = { + {{.URSHR, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F082400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSHR, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F082400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSHR, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F102400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSHR, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F102400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSHR, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSHR, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F202400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSHR, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F402400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SRSRA = { + {{.SRSRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F083400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRSRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F083400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRSRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F103400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRSRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F103400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRSRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F203400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRSRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F203400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRSRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F403400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .URSRA = { + {{.URSRA, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F083400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.URSRA, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F083400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.URSRA, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F103400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.URSRA, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F103400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.URSRA, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F203400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.URSRA, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F203400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.URSRA, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F403400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .SSHL = { + {{.SSHL, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E204400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSHL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E204400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSHL, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E604400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSHL, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E604400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSHL, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0EA04400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSHL, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EA04400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.SSHL, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EE04400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .USHL = { + {{.USHL, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E204400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USHL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E204400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USHL, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2E604400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USHL, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6E604400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USHL, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x2EA04400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USHL, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EA04400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.USHL, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x6EE04400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + }, + .SLI = { + {{.SLI, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F085400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SLI, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F085400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SLI, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F105400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SLI, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F105400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SLI, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SLI, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F205400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SLI, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F405400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .SRI = { + {{.SRI, {.V_8B, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F084400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRI, {.V_16B, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F084400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRI, {.V_4H, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F104400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRI, {.V_8H, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F104400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRI, {.V_2S, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F204400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRI, {.V_4S, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F204400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + {{.SRI, {.V_2D, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F404400, 0xFFC0FC00, .NEON, {}}, {written={0}, read={0, 1}}}, + }, + .SSHLL = { + {{.SSHLL, {.V_8H, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F08A400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHLL, {.V_4S, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F10A400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHLL, {.V_2D, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x0F20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SSHLL2 = { + {{.SSHLL2, {.V_8H, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F08A400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHLL2, {.V_4S, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F10A400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SSHLL2, {.V_2D, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x4F20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .USHLL = { + {{.USHLL, {.V_8H, .V_8B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F08A400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHLL, {.V_4S, .V_4H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F10A400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHLL, {.V_2D, .V_2S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x2F20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .USHLL2 = { + {{.USHLL2, {.V_8H, .V_16B, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F08A400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHLL2, {.V_4S, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F10A400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.USHLL2, {.V_2D, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHL_IMM, .NONE, .NONE}, 0x6F20A400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SXTL = { + {{.SXTL, {.V_8H, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0F08A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SXTL, {.V_4S, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0F10A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SXTL, {.V_2D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0F20A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SXTL2 = { + {{.SXTL2, {.V_8H, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4F08A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SXTL2, {.V_4S, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4F10A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SXTL2, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4F20A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .UXTL = { + {{.UXTL, {.V_8H, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2F08A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UXTL, {.V_4S, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2F10A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UXTL, {.V_2D, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2F20A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .UXTL2 = { + {{.UXTL2, {.V_8H, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6F08A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UXTL2, {.V_4S, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6F10A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.UXTL2, {.V_2D, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6F20A400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SHRN = { + {{.SHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F088400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F108400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SHRN2 = { + {{.SHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F088400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F108400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.SHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .RSHRN = { + {{.RSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F088C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.RSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F108C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.RSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .RSHRN2 = { + {{.RSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F088C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.RSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F108C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.RSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .SQSHRN = { + {{.SQSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F089400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F109400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQSHRN2 = { + {{.SQSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F089400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F109400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .UQSHRN = { + {{.UQSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F089400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F109400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .UQSHRN2 = { + {{.UQSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F089400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F109400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F209400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQRSHRN = { + {{.SQRSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F089C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F109C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x0F209C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQRSHRN2 = { + {{.SQRSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F089C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F109C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x4F209C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .UQRSHRN = { + {{.UQRSHRN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F089C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQRSHRN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F109C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQRSHRN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F209C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .UQRSHRN2 = { + {{.UQRSHRN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F089C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQRSHRN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F109C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.UQRSHRN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F209C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQSHRUN = { + {{.SQSHRUN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F088400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRUN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F108400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRUN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQSHRUN2 = { + {{.SQSHRUN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F088400, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRUN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F108400, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQSHRUN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F208400, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQRSHRUN = { + {{.SQRSHRUN, {.V_8B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F088C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRUN, {.V_4H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F108C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRUN, {.V_2S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x2F208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .SQRSHRUN2 = { + {{.SQRSHRUN2, {.V_16B, .V_8H, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F088C00, 0xFFF8FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRUN2, {.V_8H, .V_4S, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F108C00, 0xFFF0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + {{.SQRSHRUN2, {.V_4S, .V_2D, .VEC_SHIFT, .NONE, .NONE}, {.VD, .VN, .NEON_SHR_IMM, .NONE, .NONE}, 0x6F208C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}, fpsr_wr={.QC}}}, + }, + .DUP = { + {{.DUP, {.V_8B, .V_ELEM_B, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x0E010400, 0xFFE1FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_16B, .V_ELEM_B, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x4E010400, 0xFFE1FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_4H, .V_ELEM_H, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x0E020400, 0xFFE3FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_8H, .V_ELEM_H, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x4E020400, 0xFFE3FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_2S, .V_ELEM_S, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x0E040400, 0xFFE7FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_4S, .V_ELEM_S, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x4E040400, 0xFFE7FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_2D, .V_ELEM_D, .VEC_INDEX, .NONE, .NONE}, {.VD, .VN, .NEON_IDX5, .NONE, .NONE}, 0x4E080400, 0xFFEFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_8B, .W_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x0E010C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_16B, .W_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x4E010C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_4H, .W_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x0E020C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_8H, .W_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x4E020C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_2S, .W_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x0E040C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_4S, .W_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x4E040C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.V_2D, .X_REG, .NONE, .NONE, .NONE}, {.VD, .RN, .NONE, .NONE, .NONE}, 0x4E080C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.DUP, {.Z_REG_B, .W_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05203800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.DUP, {.Z_REG_H, .W_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05603800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.DUP, {.Z_REG_S, .W_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05A03800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.DUP, {.Z_REG_D, .X_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05E03800, 0xFFFFFC00, .SVE, {is_64=true}}, {written={0}, read={1}}}, + }, + .INS = { + {{.INS, {.V_ELEM_B, .VEC_INDEX, .V_ELEM_B, .VEC_INDEX, .NONE}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4, .NONE}, 0x6E010400, 0xFFE18400, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_H, .VEC_INDEX, .V_ELEM_H, .VEC_INDEX, .NONE}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4, .NONE}, 0x6E020400, 0xFFE38C00, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_S, .VEC_INDEX, .V_ELEM_S, .VEC_INDEX, .NONE}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4, .NONE}, 0x6E040400, 0xFFE79C00, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_D, .VEC_INDEX, .V_ELEM_D, .VEC_INDEX, .NONE}, {.VD, .NEON_IDX5, .VN, .NEON_IDX4, .NONE}, 0x6E080400, 0xFFEFBC00, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_B, .VEC_INDEX, .W_REG, .NONE, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE, .NONE}, 0x4E011C00, 0xFFE1FC00, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_H, .VEC_INDEX, .W_REG, .NONE, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE, .NONE}, 0x4E021C00, 0xFFE3FC00, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_S, .VEC_INDEX, .W_REG, .NONE, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE, .NONE}, 0x4E041C00, 0xFFE7FC00, .NEON, {}}, {written={0}, read={0, 2}}}, + {{.INS, {.V_ELEM_D, .VEC_INDEX, .X_REG, .NONE, .NONE}, {.VD, .NEON_IDX5, .RN, .NONE, .NONE}, 0x4E081C00, 0xFFEFFC00, .NEON, {}}, {written={0}, read={0, 2}}}, + }, + .MOV = { + {{.MOV, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN_VM_DUP, .NONE, .NONE, .NONE}, 0x0EA01C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN_VM_DUP, .NONE, .NONE, .NONE}, 0x4EA01C00, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE, .NONE}, 0x0520C000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}}}, + {{.MOV, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE, .NONE}, 0x0560C000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}}}, + {{.MOV, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE, .NONE}, 0x05A0C000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}}}, + {{.MOV, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.ZD_ZM_DUP, .PG, .VN, .NONE, .NONE}, 0x05E0C000, 0xFFE0E000, .SVE, {is_64=true}}, {read={0, 1, 2}}}, + {{.MOV, {.P_REG_B, .P_REG_ZERO, .P_REG, .NONE, .NONE}, {.PD, .PG4, .PN_PM_DUP, .NONE, .NONE}, 0x25004000, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.MOV, {.P_REG_B, .P_REG, .NONE, .NONE, .NONE}, {.PD, .PN_PG_PM_DUP, .NONE, .NONE, .NONE}, 0x25804000, 0xFFE0C210, .SVE, {}}, {written={0}, read={1}}}, + {{.MOV, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0x2A0003E0, 0xFFE0FFE0, .BASE, {}}, {written={0}, read={1}}}, + {{.MOV, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0xAA0003E0, 0xFFE0FFE0, .BASE, {is_64=true}}, {written={0}, read={1}}}, + {{.MOV, {.W_REG, .BITMASK_IMM, .NONE, .NONE, .NONE}, {.RD, .BITMASK_FIELD, .NONE, .NONE, .NONE}, 0x320003E0, 0xFFC003E0, .BASE, {}}, {written={0}}}, + {{.MOV, {.X_REG, .BITMASK_IMM, .NONE, .NONE, .NONE}, {.RD, .BITMASK_FIELD, .NONE, .NONE, .NONE}, 0xB20003E0, 0xFF8003E0, .BASE, {is_64=true}}, {written={0}}}, + {{.MOV, {.B_REG, .V_ELEM_B, .NONE, .NONE, .NONE}, {.VD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x5E010400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.H_REG, .V_ELEM_H, .NONE, .NONE, .NONE}, {.VD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x5E020400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.S_REG, .V_ELEM_S, .NONE, .NONE, .NONE}, {.VD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x5E040400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.D_REG, .V_ELEM_D, .NONE, .NONE, .NONE}, {.VD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x5E080400, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_B, .W_REG, .NONE, .NONE, .NONE}, {.NEON_IDX5, .RN, .NONE, .NONE, .NONE}, 0x4E011C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_H, .W_REG, .NONE, .NONE, .NONE}, {.NEON_IDX5, .RN, .NONE, .NONE, .NONE}, 0x4E021C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_S, .W_REG, .NONE, .NONE, .NONE}, {.NEON_IDX5, .RN, .NONE, .NONE, .NONE}, 0x4E041C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_D, .X_REG, .NONE, .NONE, .NONE}, {.NEON_IDX5, .RN, .NONE, .NONE, .NONE}, 0x4E081C00, 0xFFFFFC00, .NEON, {is_64=true}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_B, .V_ELEM_B, .NONE, .NONE, .NONE}, {.NEON_IDX5, .NEON_IDX4, .NONE, .NONE, .NONE}, 0x6E010400, 0xFFFF8400, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_H, .V_ELEM_H, .NONE, .NONE, .NONE}, {.NEON_IDX5, .NEON_IDX4, .NONE, .NONE, .NONE}, 0x6E020400, 0xFFFF8400, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_S, .V_ELEM_S, .NONE, .NONE, .NONE}, {.NEON_IDX5, .NEON_IDX4, .NONE, .NONE, .NONE}, 0x6E040400, 0xFFFF8400, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.V_ELEM_D, .V_ELEM_D, .NONE, .NONE, .NONE}, {.NEON_IDX5, .NEON_IDX4, .NONE, .NONE, .NONE}, 0x6E080400, 0xFFFF8400, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.W_REG, .V_ELEM_B, .NONE, .NONE, .NONE}, {.RD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x0E013C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.W_REG, .V_ELEM_H, .NONE, .NONE, .NONE}, {.RD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x0E023C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.W_REG, .V_ELEM_S, .NONE, .NONE, .NONE}, {.RD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x0E043C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.MOV, {.X_REG, .V_ELEM_D, .NONE, .NONE, .NONE}, {.RD, .NEON_IDX5, .NONE, .NONE, .NONE}, 0x4E083C00, 0xFFFFFC00, .NEON, {is_64=true}}, {written={0}, read={1}}}, + }, + .EXT = { + {{.EXT, {.V_8B, .V_8B, .V_8B, .VEC_INDEX, .NONE}, {.VD, .VN, .VM, .NEON_EXT_IDX, .NONE}, 0x2E000000, 0xFFE0C400, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.EXT, {.V_16B, .V_16B, .V_16B, .VEC_INDEX, .NONE}, {.VD, .VN, .VM, .NEON_EXT_IDX, .NONE}, 0x6E000000, 0xFFE08400, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.EXT, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .VEC_SHIFT, .NONE}, {.VD, .VD, .VN, .SVE_EXT_IMM, .NONE}, 0x05200000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.EXT, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .VEC_SHIFT, .NONE}, {.VD, .VD, .VN, .SVE_EXT_IMM, .NONE}, 0x05200000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .TBL = { + {{.TBL, {.V_8B, .V_16B, .V_8B, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x0E000000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TBL, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x4E000000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TBL, {.Z_REG_B, .Z_LIST1_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x05203000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TBL, {.Z_REG_H, .Z_LIST1_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x05603000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TBL, {.Z_REG_S, .Z_LIST1_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x05A03000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TBL, {.Z_REG_D, .Z_LIST1_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x05E03000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.TBL, {.Z_REG_B, .Z_LIST2_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN_LIST2, .VM, .NONE, .NONE}, 0x05202800, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + }, + .TBX = { + {{.TBX, {.V_8B, .V_16B, .V_8B, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x0E001000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.TBX, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN_LIST1, .VM, .NONE, .NONE}, 0x4E001000, 0xFFE0FC00, .NEON, {}}, {written={0}, read={0, 1, 2}}}, + {{.TBX, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05202C00, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}}}, + }, + .ZIP1 = { + {{.ZIP1, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E003800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E003800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E403800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E403800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E803800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E803800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC03800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05206000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05606000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05A06000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05E06000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ZIP1, {.P_REG_B, .P_REG_B, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PM, .NONE, .NONE}, 0x05204000, 0xFFE0FE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .ZIP2 = { + {{.ZIP2, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E007800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E007800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E407800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E407800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E807800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E807800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC07800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05206400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05606400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05A06400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05E06400, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.ZIP2, {.P_REG_B, .P_REG_B, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PM, .NONE, .NONE}, 0x05204400, 0xFFE0FE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .UZP1 = { + {{.UZP1, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E001800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E001800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E401800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E401800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E801800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E801800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC01800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05206800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05606800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05A06800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05E06800, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.UZP1, {.P_REG_B, .P_REG_B, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PM, .NONE, .NONE}, 0x05204800, 0xFFE0FE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .UZP2 = { + {{.UZP2, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E005800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E005800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E405800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E405800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E805800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E805800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC05800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05206C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05606C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05A06C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05E06C00, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.UZP2, {.P_REG_B, .P_REG_B, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PM, .NONE, .NONE}, 0x05204C00, 0xFFE0FE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .TRN1 = { + {{.TRN1, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E002800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E002800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E402800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E402800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E802800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E802800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC02800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05207000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05607000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05A07000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05E07000, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.TRN1, {.P_REG_B, .P_REG_B, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PM, .NONE, .NONE}, 0x05205000, 0xFFE0FE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .TRN2 = { + {{.TRN2, {.V_8B, .V_8B, .V_8B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E006800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.V_16B, .V_16B, .V_16B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E006800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.V_4H, .V_4H, .V_4H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E406800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.V_8H, .V_8H, .V_8H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E406800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.V_2S, .V_2S, .V_2S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x0E806800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.V_4S, .V_4S, .V_4S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4E806800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.V_2D, .V_2D, .V_2D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4EC06800, 0xFFE0FC00, .NEON, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05207400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05607400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05A07400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x05E07400, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.TRN2, {.P_REG_B, .P_REG_B, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PM, .NONE, .NONE}, 0x05205400, 0xFFE0FE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .NOT = { + {{.NOT, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2E205800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NOT, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6E205800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.NOT, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .NONE, .NONE}, {.PD, .PG4_PM_DUP, .PN, .NONE, .NONE}, 0x25004200, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .REV64 = { + {{.REV64, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E200800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV64, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E200800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV64, {.V_4H, .V_4H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E600800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV64, {.V_8H, .V_8H, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E600800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV64, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA00800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.REV64, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA00800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .CNT = { + {{.CNT, {.V_8B, .V_8B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0E205800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CNT, {.V_16B, .V_16B, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4E205800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.CNT, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x041AA000, 0xFFFAE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CNT, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x045AA000, 0xFFFAE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CNT, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x049AA000, 0xFFFAE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CNT, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x04DAA000, 0xFFFAE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .URECPE = { + {{.URECPE, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x0EA1C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URECPE, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x4EA1C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .URSQRTE = { + {{.URSQRTE, {.V_2S, .V_2S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x2EA1C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + {{.URSQRTE, {.V_4S, .V_4S, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x6EA1C800, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}}}, + }, + .MOVI = { + {{.MOVI, {.V_8B, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x0F00E400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MOVI, {.V_16B, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x4F00E400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MOVI, {.V_4H, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x0F008400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MOVI, {.V_8H, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x4F008400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MOVI, {.V_2S, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x0F000400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MOVI, {.V_4S, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x4F000400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MOVI, {.V_2D, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x6F00E400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + }, + .MVNI = { + {{.MVNI, {.V_4H, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x2F008400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MVNI, {.V_8H, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x6F008400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MVNI, {.V_2S, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x2F000400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + {{.MVNI, {.V_4S, .IMM_8, .NONE, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE, .NONE}, 0x6F000400, 0xFFF8FC00, .NEON, {}}, {written={0}}}, + }, + .LD1 = { + {{.LD1, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C407000, 0xFFFFF000, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD1, {.V_8H, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C407400, 0xFFFFF400, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD1, {.V_4S, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C407800, 0xFFFFF800, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD1, {.V_2D, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C407C00, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD1, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D400000, 0xBFFFE000, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD1, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D404000, 0xBFFFE400, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD1, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D408000, 0xBFFFEC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD1, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D408400, 0xBFFFFC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + }, + .LD2 = { + {{.LD2, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST2, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C408000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD2, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D600000, 0xBFFFE000, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD2, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D604000, 0xBFFFE400, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD2, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D608000, 0xBFFFEC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD2, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D608400, 0xBFFFFC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + }, + .LD3 = { + {{.LD3, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST3, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C404000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD3, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D402000, 0xBFFFE000, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD3, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D406000, 0xBFFFE400, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD3, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D40A000, 0xBFFFEC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD3, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D40A400, 0xBFFFFC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + }, + .LD4 = { + {{.LD4, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST4, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C400000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + {{.LD4, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D602000, 0xBFFFE000, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD4, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D606000, 0xBFFFE400, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD4, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D60A000, 0xBFFFEC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + {{.LD4, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D60A400, 0xBFFFFC00, .NEON, {}}, {written={0}, read={2}, reads_mem=true}}, + }, + .ST1 = { + {{.ST1, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C007000, 0xFFFFF000, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST1, {.V_8H, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C007400, 0xFFFFF400, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST1, {.V_4S, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C007800, 0xFFFFF800, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST1, {.V_2D, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C007C00, 0xFFFFFC00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST1, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D000000, 0xBFFFE000, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST1, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D004000, 0xBFFFE400, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST1, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D008000, 0xBFFFEC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST1, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST1, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D008400, 0xBFFFFC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + }, + .ST2 = { + {{.ST2, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST2, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C008000, 0xFFFFFC00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST2, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D200000, 0xBFFFE000, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST2, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D204000, 0xBFFFE400, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST2, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D208000, 0xBFFFEC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST2, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST2, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D208400, 0xBFFFFC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + }, + .ST3 = { + {{.ST3, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST3, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C004000, 0xFFFFFC00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST3, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D002000, 0xBFFFE000, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST3, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D006000, 0xBFFFE400, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST3, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D00A000, 0xBFFFEC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST3, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST3, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D00A400, 0xBFFFFC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + }, + .ST4 = { + {{.ST4, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST4, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4C000000, 0xFFFFFC00, .NEON, {}}, {read={0, 1}, writes_mem=true}}, + {{.ST4, {.V_ELEM_B, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_B, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D202000, 0xBFFFE000, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST4, {.V_ELEM_H, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_H, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D206000, 0xBFFFE400, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST4, {.V_ELEM_S, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_S, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D20A000, 0xBFFFEC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + {{.ST4, {.V_ELEM_D, .VEC_INDEX, .MEM_OFFSET, .NONE, .NONE}, {.VD_LIST4, .NEON_LANE_D, .OFFSET_BASE_A, .NONE, .NONE}, 0x0D20A400, 0xBFFFFC00, .NEON, {}}, {read={0, 2}, writes_mem=true}}, + }, + .LD1R = { + {{.LD1R, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST1, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4D40C000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LD2R = { + {{.LD2R, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST2, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4D60C000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LD3R = { + {{.LD3R, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST3, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4D40E000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .LD4R = { + {{.LD4R, {.V_16B, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.VD_LIST4, .OFFSET_BASE_A, .NONE, .NONE, .NONE}, 0x4D60E000, 0xFFFFFC00, .NEON, {}}, {written={0}, read={1}, reads_mem=true}}, + }, + .SUBR = { + {{.SUBR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04030000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SUBR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04430000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SUBR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04830000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.SUBR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04C30000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .ASRR = { + {{.ASRR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04148000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ASRR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04548000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ASRR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04948000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.ASRR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D48000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .LSLR = { + {{.LSLR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04178000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSLR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04578000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSLR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04978000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSLR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D78000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .LSRR = { + {{.LSRR, {.Z_REG_B, .P_REG_MERGE, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04158000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSRR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04558000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSRR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04958000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + {{.LSRR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x04D58000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .FTSMUL = { + {{.FTSMUL, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65400C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FTSMUL, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65800C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FTSMUL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65C00C00, 0xFFE0FC00, .SVE, {is_64=true}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FSUBR = { + {{.FSUBR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65438000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUBR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65838000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FSUBR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65C38000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FDIVR = { + {{.FDIVR, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x654C8000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIVR, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x658C8000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FDIVR, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65CC8000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .DZC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FNMLA = { + {{.FNMLA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65604000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.FNMLA, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65A04000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.FNMLA, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65E04000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .FNMLS = { + {{.FNMLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65606000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.FNMLS, {.Z_REG_S, .P_REG_MERGE, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65A06000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.FNMLS, {.Z_REG_D, .P_REG_MERGE, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65E06000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .NAND = { + {{.NAND, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25804210, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .NOR = { + {{.NOR, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25804200, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .SEL = { + {{.SEL, {.P_REG_B, .P_REG, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25004210, 0xFFE0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .ORRS = { + {{.ORRS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25C04000, 0xFFE0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .EORS = { + {{.EORS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25404200, 0xFFE0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .NANDS = { + {{.NANDS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25C04210, 0xFFF0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .NORS = { + {{.NORS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25C04200, 0xFFF0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .ORNS = { + {{.ORNS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x25C04010, 0xFFF0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .MOVS = { + {{.MOVS, {.P_REG_B, .P_REG_ZERO, .P_REG, .NONE, .NONE}, {.PD, .PG4, .PN_PM_DUP, .NONE, .NONE}, 0x25404000, 0xFFE0C210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .PTRUE = { + {{.PTRUE, {.P_REG_B, .SVE_PATTERN, .NONE, .NONE, .NONE}, {.PD, .SVE_PATTERN, .NONE, .NONE, .NONE}, 0x2518E000, 0xFFFFFC10, .SVE, {}}, {written={0}}}, + }, + .PTRUES = { + {{.PTRUES, {.P_REG_B, .SVE_PATTERN, .NONE, .NONE, .NONE}, {.PD, .SVE_PATTERN, .NONE, .NONE, .NONE}, 0x2519E000, 0xFFFFFC10, .SVE, {sets_flags=true}}, {written={0}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .PFALSE = { + {{.PFALSE, {.P_REG_B, .NONE, .NONE, .NONE, .NONE}, {.PD, .NONE, .NONE, .NONE, .NONE}, 0x2518E400, 0xFFFFFFF0, .SVE, {}}, {written={0}}}, + }, + .PFIRST = { + {{.PFIRST, {.P_REG_B, .P_REG, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PD, .NONE, .NONE}, 0x2558C000, 0xFFFFFE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .PNEXT = { + {{.PNEXT, {.P_REG_B, .P_REG, .P_REG_B, .NONE, .NONE}, {.PD, .PN, .PD, .NONE, .NONE}, 0x2519C400, 0xFFFFFE10, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .BRKA = { + {{.BRKA, {.P_REG_B, .P_REG_MERGE, .P_REG_B, .NONE, .NONE}, {.PD, .PG4, .PN, .NONE, .NONE}, 0x25104010, 0xFFFFC210, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .BRKB = { + {{.BRKB, {.P_REG_B, .P_REG_MERGE, .P_REG_B, .NONE, .NONE}, {.PD, .PG4, .PN, .NONE, .NONE}, 0x25904010, 0xFFFFC210, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .BRKAS = { + {{.BRKAS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .NONE, .NONE}, {.PD, .PG4, .PN, .NONE, .NONE}, 0x25504000, 0xFFFFC210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .BRKBS = { + {{.BRKBS, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .NONE, .NONE}, {.PD, .PG4, .PN, .NONE, .NONE}, 0x25D04000, 0xFFFFC210, .SVE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .BRKPA = { + {{.BRKPA, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x2500C000, 0xFFF0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .BRKPB = { + {{.BRKPB, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PM, .NONE}, 0x2500C010, 0xFFF0C210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .BRKN = { + {{.BRKN, {.P_REG_B, .P_REG_ZERO, .P_REG_B, .P_REG_B, .NONE}, {.PD, .PG4, .PN, .PD, .NONE}, 0x25184000, 0xFFFFC210, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .RDFFR = { + {{.RDFFR, {.P_REG_B, .NONE, .NONE, .NONE, .NONE}, {.PD, .NONE, .NONE, .NONE, .NONE}, 0x2519F000, 0xFFFFFFF0, .SVE, {}}, {written={0}, side_effects={.FFR}}}, + }, + .WRFFR = { + {{.WRFFR, {.P_REG_B, .NONE, .NONE, .NONE, .NONE}, {.PN, .NONE, .NONE, .NONE, .NONE}, 0x25289000, 0xFFFFFE1F, .SVE, {}}, {read={0}, side_effects={.FFR}}}, + }, + .SETFFR = { + {{.SETFFR, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0x252C9000, 0xFFFFFFFF, .SVE, {}}, {side_effects={.FFR}}}, + }, + .CMPEQ = { + {{.CMPEQ, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x2400A000, 0xFFE0E000, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPEQ, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x2440A000, 0xFFE0E000, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPEQ, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x2480A000, 0xFFE0E000, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPEQ, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24C0A000, 0xFFE0E000, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPNE = { + {{.CMPNE, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x2400A010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPNE, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x2440A010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPNE, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x2480A010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPNE, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24C0A010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPGE = { + {{.CMPGE, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPGE, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPGE, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPGE, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPGT = { + {{.CMPGT, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPGT, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPGT, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPGT, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPLE = { + {{.CMPLE, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24008000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLE, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24408000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLE, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24808000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLE, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24C08000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPLT = { + {{.CMPLT, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24008010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLT, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24408010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLT, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24808010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLT, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24C08010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPHI = { + {{.CMPHI, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPHI, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPHI, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPHI, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPHS = { + {{.CMPHS, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPHS, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPHS, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPHS, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPLO = { + {{.CMPLO, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24000010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLO, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24400010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLO, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24800010, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLO, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24C00010, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMPLS = { + {{.CMPLS, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24000000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLS, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24400000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLS, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24800000, 0xFFE0E010, .SVE, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMPLS, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VM, .VN, .NONE}, 0x24C00000, 0xFFE0E010, .SVE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .FCMNE = { + {{.FCMNE, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65406010, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMNE, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65806010, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMNE, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65C06010, 0xFFE0E010, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + }, + .FCMUO = { + {{.FCMUO, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x6540C000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMUO, {.P_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x6580C000, 0xFFE0E010, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + {{.FCMUO, {.P_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x65C0C000, 0xFFE0E010, .SVE, {is_64=true}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC}}}, + }, + .INSR = { + {{.INSR, {.Z_REG_B, .W_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05243800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.INSR, {.Z_REG_H, .W_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05643800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.INSR, {.Z_REG_S, .W_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05A43800, 0xFFFFFC00, .SVE, {}}, {written={0}, read={1}}}, + {{.INSR, {.Z_REG_D, .X_REG, .NONE, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE, .NONE}, 0x05E43800, 0xFFFFFC00, .SVE, {is_64=true}}, {written={0}, read={1}}}, + }, + .CPY = { + {{.CPY, {.Z_REG_B, .P_REG_MERGE, .W_REG, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0528A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CPY, {.Z_REG_H, .P_REG_MERGE, .W_REG, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x0568A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CPY, {.Z_REG_S, .P_REG_MERGE, .W_REG, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x05A8A000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.CPY, {.Z_REG_D, .P_REG_MERGE, .X_REG, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x05E8A000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .COMPACT = { + {{.COMPACT, {.Z_REG_S, .P_REG_GOV, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x05A18000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.COMPACT, {.Z_REG_D, .P_REG_GOV, .Z_REG_D, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x05E18000, 0xFFFFE000, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .LD1B = { + {{.LD1B, {.Z_REG_B, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA4004000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1B, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_S, .NONE, .NONE}, 0x84004000, 0xFFA0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1B, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC4004000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1B, {.SME_SLICE_B, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_B, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xE0000000, 0xFFE00010, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1B, {.Z_PAIR_B, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA0000000, 0xFFE0E000, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1B, {.Z_QUAD_B, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA0008000, 0xFFE0E000, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LD1H = { + {{.LD1H, {.Z_REG_H, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA4A04000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1H, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_S, .NONE, .NONE}, 0x84804000, 0xFFA0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1H, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC4804000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1H, {.SME_SLICE_H, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_H, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xE0400000, 0xFFE00010, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1H, {.Z_PAIR_H, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA0002000, 0xFFE0E000, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1H, {.Z_QUAD_H, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA000A000, 0xFFE0E000, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LD1W = { + {{.LD1W, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA5404000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1W, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_S, .NONE, .NONE}, 0x85004000, 0xFFA0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1W, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC5004000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1W, {.SME_SLICE_W, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_W, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xE0800000, 0xFFE00010, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1W, {.Z_PAIR_S, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA0004000, 0xFFE0E000, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1W, {.Z_QUAD_S, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA000C000, 0xFFE0E000, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LD1D = { + {{.LD1D, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA5E04000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1D, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC5804000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1D, {.SME_SLICE_D, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_D, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xE0C00000, 0xFFE00010, .SME, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1D, {.Z_PAIR_D, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA0006000, 0xFFE0E000, .SME, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1D, {.Z_QUAD_D, .PN_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA000E000, 0xFFE0E000, .SME, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LD1SB = { + {{.LD1SB, {.Z_REG_H, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA5C04000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1SB, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_S, .NONE, .NONE}, 0x84000000, 0xFFA0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1SB, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC4000000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LD1SH = { + {{.LD1SH, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA5004000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1SH, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA5204000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1SH, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_S, .NONE, .NONE}, 0x84800000, 0xFFA0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1SH, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC4800000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LD1SW = { + {{.LD1SW, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA4804000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + {{.LD1SW, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VEC_D, .NONE, .NONE}, 0xC5000000, 0xFFA0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .ST1B = { + {{.ST1B, {.Z_REG_B, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xE4004000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1B, {.Z_REG_S, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_S, .NONE, .NONE}, 0xE4408000, 0xFFE0A000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1B, {.Z_REG_D, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_D, .NONE, .NONE}, 0xE4008000, 0xFFE0A000, .SVE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1B, {.SME_SLICE_B, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_B, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xE0200000, 0xFFE00010, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1B, {.Z_PAIR_B, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA0200000, 0xFFE0E000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1B, {.Z_QUAD_B, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA0208000, 0xFFE0E000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .ST1H = { + {{.ST1H, {.Z_REG_H, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xE4A04000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1H, {.Z_REG_D, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_D, .NONE, .NONE}, 0xE4808000, 0xFFE0A000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1H, {.Z_REG_D, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_D, .NONE, .NONE}, 0xE4808000, 0xFFE0A000, .SVE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1H, {.SME_SLICE_H, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_H, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xE0600000, 0xFFE00010, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1H, {.Z_PAIR_H, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA0202000, 0xFFE0E000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1H, {.Z_QUAD_H, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA020A000, 0xFFE0E000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1H, {.Z_REG_S, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_S, .NONE, .NONE}, 0xE4C08000, 0xFFE0A000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .ST1W = { + {{.ST1W, {.Z_REG_S, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xE5404000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1W, {.Z_REG_S, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_S, .NONE, .NONE}, 0xE5408000, 0xFFE0A000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1W, {.Z_REG_D, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_D, .NONE, .NONE}, 0xE5008000, 0xFFE0A000, .SVE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1W, {.SME_SLICE_W, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_W, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xE0A00000, 0xFFE00010, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1W, {.Z_PAIR_S, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA0204000, 0xFFE0E000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1W, {.Z_QUAD_S, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA020C000, 0xFFE0E000, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .ST1D = { + {{.ST1D, {.Z_REG_D, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xE5E04000, 0xFFE0E000, .SVE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1D, {.Z_REG_D, .P_REG, .MEM_SVE_VEC, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_VECST_D, .NONE, .NONE}, 0xE5808000, 0xFFE0A000, .SVE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1D, {.SME_SLICE_D, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_D, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xE0E00000, 0xFFE00010, .SME, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1D, {.Z_PAIR_D, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .PNG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA0206000, 0xFFE0E000, .SME, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + {{.ST1D, {.Z_QUAD_D, .PN_REG, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .PNG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA020E000, 0xFFE0E000, .SME, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .LDFF1B = { + {{.LDFF1B, {.Z_REG_B, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA4006000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}}, + }, + .LDFF1H = { + {{.LDFF1H, {.Z_REG_H, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA4A06000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}}, + }, + .LDFF1W = { + {{.LDFF1W, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA5406000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}}, + }, + .LDFF1D = { + {{.LDFF1D, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA5E06000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true, side_effects={.FFR}}}, + }, + .WHILEGE = { + {{.WHILEGE, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEGE, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEGE, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEGE, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01000, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILEGT = { + {{.WHILEGT, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEGT, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEGT, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEGT, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01010, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILELE = { + {{.WHILELE, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELE, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELE, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELE, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01410, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILELT = { + {{.WHILELT, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELT, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELT, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELT, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01400, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILEHI = { + {{.WHILEHI, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEHI, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEHI, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEHI, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01810, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILEHS = { + {{.WHILEHS, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEHS, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEHS, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILEHS, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01800, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILELO = { + {{.WHILELO, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELO, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELO, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELO, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01C00, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .WHILELS = { + {{.WHILELS, {.P_REG_B, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25201C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELS, {.P_REG_H, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25601C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELS, {.P_REG_S, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25A01C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.WHILELS, {.P_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.PD, .RN, .RM, .NONE, .NONE}, 0x25E01C10, 0xFFE0FC10, .SVE2, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .SQRDMLAH = { + {{.SQRDMLAH, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44007000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMLAH, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44407000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMLAH, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44807000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMLAH, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44C07000, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + }, + .SQRDMLSH = { + {{.SQRDMLSH, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44007400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMLSH, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44407400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMLSH, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44807400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + {{.SQRDMLSH, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x44C07400, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={0, 1, 2}, fpsr_wr={.QC}}}, + }, + .ADCLB = { + {{.ADCLB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4500D000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.ADCLB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4540D000, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .ADCLT = { + {{.ADCLT, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4500D400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.ADCLT, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4540D400, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .SBCLB = { + {{.SBCLB, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4580D000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.SBCLB, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x45C0D000, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .SBCLT = { + {{.SBCLT, {.Z_REG_S, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4580D400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + {{.SBCLT, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x45C0D400, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .MATCH = { + {{.MATCH, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x45208000, 0xFFE0E010, .SVE2, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.MATCH, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x45608000, 0xFFE0E010, .SVE2, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .NMATCH = { + {{.NMATCH, {.P_REG_B, .P_REG_ZERO, .Z_REG_B, .Z_REG_B, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x45208010, 0xFFE0E010, .SVE2, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.NMATCH, {.P_REG_H, .P_REG_ZERO, .Z_REG_H, .Z_REG_H, .NONE}, {.PD, .PG, .VN, .VM, .NONE}, 0x45608010, 0xFFE0E010, .SVE2, {sets_flags=true}}, {written={0}, read={1, 2, 3}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .HISTCNT = { + {{.HISTCNT, {.Z_REG_S, .P_REG_ZERO, .Z_REG_S, .Z_REG_S, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x45A0C000, 0xFFE0E000, .SVE2, {}}, {written={0}, read={1, 2, 3}}}, + {{.HISTCNT, {.Z_REG_D, .P_REG_ZERO, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x45E0C000, 0xFFE0E000, .SVE2, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .HISTSEG = { + {{.HISTSEG, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x4520A000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + }, + .SMSTART = { + {{.SMSTART, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503477F, 0xFFFFFFFF, .SME, {}}, {}}, + }, + .SMSTOP = { + {{.SMSTOP, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503467F, 0xFFFFFFFF, .SME, {}}, {}}, + }, + .RDSVL = { + {{.RDSVL, {.X_REG, .IMM_6, .NONE, .NONE, .NONE}, {.RD, .ENC_IMM6_LO, .NONE, .NONE, .NONE}, 0x04BF5800, 0xFFFFF800, .SME, {is_64=true}}, {written={0}}}, + }, + .ADDHA = { + {{.ADDHA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S, .NONE}, {.ZA_TILE_LOW, .PG, .PM3, .VN, .NONE}, 0xC0900000, 0xFFFF001C, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .ADDVA = { + {{.ADDVA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S, .NONE}, {.ZA_TILE_LOW, .PG, .PM3, .VN, .NONE}, 0xC0910000, 0xFFFF001C, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .ZERO = { + {{.ZERO, {.SME_PATTERN, .NONE, .NONE, .NONE, .NONE}, {.SME_ZA_MASK, .NONE, .NONE, .NONE, .NONE}, 0xC0080000, 0xFFFFFF00, .SME, {}}, {}}, + }, + .FMOPA = { + {{.FMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0x80800000, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FMOPS = { + {{.FMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_S, .Z_REG_S}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0x80800010, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMOPA = { + {{.BFMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0x81800000, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMOPS = { + {{.BFMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0x81800010, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .SMOPA = { + {{.SMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0xA0800000, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.SMOPA, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN, .VM}, 0xA0C00000, 0xFFE08010, .SME, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .SMOPS = { + {{.SMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0xA0800010, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.SMOPS, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN, .VM}, 0xA0C00010, 0xFFE08010, .SME, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .UMOPA = { + {{.UMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0xA1A00000, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.UMOPA, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN, .VM}, 0xA1E00000, 0xFFE08010, .SME, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .UMOPS = { + {{.UMOPS, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0xA1A00010, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + {{.UMOPS, {.ZA_TILE_D, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_H, .Z_REG_H}, {.ZA_TILE_NUM_D, .PG, .PM3, .VN, .VM}, 0xA1E00010, 0xFFE08010, .SME, {is_64=true}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .USMOPA = { + {{.USMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0xA1800000, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .SUMOPA = { + {{.SUMOPA, {.ZA_TILE_S, .P_REG_MERGE, .P_REG_MERGE, .Z_REG_B, .Z_REG_B}, {.ZA_TILE_NUM_S, .PG, .PM3, .VN, .VM}, 0xA0A00000, 0xFFE08010, .SME, {}}, {written={0}, read={0, 1, 2, 3}}}, + }, + .CNTB = { + {{.CNTB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0420E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}}}, + }, + .CNTH = { + {{.CNTH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}}}, + }, + .CNTW = { + {{.CNTW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}}}, + }, + .CNTD = { + {{.CNTD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}}}, + }, + .INCB = { + {{.INCB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0430E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + }, + .INCH = { + {{.INCH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + {{.INCH, {.Z_REG_H, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470C000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}}}, + }, + .INCW = { + {{.INCW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + {{.INCW, {.Z_REG_S, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0C000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}}}, + }, + .INCD = { + {{.INCD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0E000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + {{.INCD, {.Z_REG_D, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0C000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}}}, + }, + .DECB = { + {{.DECB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0430E400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + }, + .DECH = { + {{.DECH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470E400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + {{.DECH, {.Z_REG_H, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470C400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}}}, + }, + .DECW = { + {{.DECW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0E400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + {{.DECW, {.Z_REG_S, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0C400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}}}, + }, + .DECD = { + {{.DECD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0E400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}}}, + {{.DECD, {.Z_REG_D, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0C400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}}}, + }, + .SQINCB = { + {{.SQINCB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0430F000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCB, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x0420F000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQINCH = { + {{.SQINCH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470F000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCH, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x0460F000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCH, {.Z_REG_H, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460C000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQINCW = { + {{.SQINCW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0F000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCW, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x04A0F000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCW, {.Z_REG_S, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0C000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQINCD = { + {{.SQINCD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0F000, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCD, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x04E0F000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQINCD, {.Z_REG_D, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0C000, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQDECB = { + {{.SQDECB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0430F800, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECB, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x0420F800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQDECH = { + {{.SQDECH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470F800, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECH, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x0460F800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECH, {.Z_REG_H, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460C800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQDECW = { + {{.SQDECW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0F800, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECW, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x04A0F800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECW, {.Z_REG_S, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0C800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .SQDECD = { + {{.SQDECD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0F800, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECD, {.X_REG, .W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE}, {.RD, .RD, .SVE_PATTERN, .IMM_MUL4, .NONE}, 0x04E0F800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.SQDECD, {.Z_REG_D, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0C800, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQINCB = { + {{.UQINCB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0430F400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCB, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0420F400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQINCH = { + {{.UQINCH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470F400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCH, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460F400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCH, {.Z_REG_H, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460C400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQINCW = { + {{.UQINCW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0F400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCW, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0F400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCW, {.Z_REG_S, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0C400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQINCD = { + {{.UQINCD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0F400, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCD, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0F400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQINCD, {.Z_REG_D, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0C400, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQDECB = { + {{.UQDECB, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0430FC00, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECB, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0420FC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQDECH = { + {{.UQDECH, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0470FC00, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECH, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460FC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECH, {.Z_REG_H, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x0460CC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQDECW = { + {{.UQDECW, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04B0FC00, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECW, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0FC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECW, {.Z_REG_S, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04A0CC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .UQDECD = { + {{.UQDECD, {.X_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04F0FC00, 0xFFF0FC00, .SVE, {is_64=true}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECD, {.W_REG, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.RD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0FC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + {{.UQDECD, {.Z_REG_D, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, {.VD, .SVE_PATTERN, .IMM_MUL4, .NONE, .NONE}, 0x04E0CC00, 0xFFF0FC00, .SVE, {}}, {written={0}, read={0}, fpsr_wr={.QC}}}, + }, + .CNTP = { + {{.CNTP, {.X_REG, .P_REG_GOV, .P_REG_B, .NONE, .NONE}, {.RD, .PG, .PN, .NONE, .NONE}, 0x25208020, 0xFFFFE220, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.CNTP, {.X_REG, .P_REG_GOV, .P_REG_H, .NONE, .NONE}, {.RD, .PG, .PN, .NONE, .NONE}, 0x25608020, 0xFFFFE220, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.CNTP, {.X_REG, .P_REG_GOV, .P_REG_S, .NONE, .NONE}, {.RD, .PG, .PN, .NONE, .NONE}, 0x25A08020, 0xFFFFE220, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + {{.CNTP, {.X_REG, .P_REG_GOV, .P_REG_D, .NONE, .NONE}, {.RD, .PG, .PN, .NONE, .NONE}, 0x25E08020, 0xFFFFE220, .SVE, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .INCP = { + {{.INCP, {.X_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x252C8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.INCP, {.X_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x256C8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.INCP, {.X_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25AC8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.INCP, {.X_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25EC8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.INCP, {.Z_REG_H, .P_REG_H, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x256C8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}}}, + {{.INCP, {.Z_REG_S, .P_REG_S, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25AC8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}}}, + {{.INCP, {.Z_REG_D, .P_REG_D, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25EC8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}}}, + }, + .DECP = { + {{.DECP, {.X_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x252D8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.DECP, {.X_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x256D8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.DECP, {.X_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25AD8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.DECP, {.X_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25ED8800, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}}}, + {{.DECP, {.Z_REG_H, .P_REG_H, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x256D8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}}}, + {{.DECP, {.Z_REG_S, .P_REG_S, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25AD8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}}}, + {{.DECP, {.Z_REG_D, .P_REG_D, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25ED8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}}}, + }, + .SQINCP = { + {{.SQINCP, {.X_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25288C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25688C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25A88C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25E88C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_B, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x25288800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_H, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x25688800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_S, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x25A88800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.X_REG, .P_REG_D, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x25E88800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.Z_REG_H, .P_REG_H, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25688000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.Z_REG_S, .P_REG_S, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25A88000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQINCP, {.Z_REG_D, .P_REG_D, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25E88000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + }, + .SQDECP = { + {{.SQDECP, {.X_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x252A8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x256A8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25AA8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25EA8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_B, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x252A8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_H, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x256A8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_S, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x25AA8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.X_REG, .P_REG_D, .W_REG, .NONE, .NONE}, {.RD, .PN, .RD, .NONE, .NONE}, 0x25EA8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.Z_REG_H, .P_REG_H, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x256A8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.Z_REG_S, .P_REG_S, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25AA8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.SQDECP, {.Z_REG_D, .P_REG_D, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25EA8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + }, + .UQINCP = { + {{.UQINCP, {.X_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25298C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.X_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25698C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.X_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25A98C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.X_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25E98C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.W_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25298800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.W_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25698800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.W_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25A98800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.W_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25E98800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.Z_REG_H, .P_REG_H, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25698000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.Z_REG_S, .P_REG_S, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25A98000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQINCP, {.Z_REG_D, .P_REG_D, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25E98000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + }, + .UQDECP = { + {{.UQDECP, {.X_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x252B8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.X_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x256B8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.X_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25AB8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.X_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25EB8C00, 0xFFFFFE00, .SVE, {is_64=true}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.W_REG, .P_REG_B, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x252B8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.W_REG, .P_REG_H, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x256B8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.W_REG, .P_REG_S, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25AB8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.W_REG, .P_REG_D, .NONE, .NONE, .NONE}, {.RD, .PN, .NONE, .NONE, .NONE}, 0x25EB8800, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.Z_REG_H, .P_REG_H, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x256B8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.Z_REG_S, .P_REG_S, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25AB8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + {{.UQDECP, {.Z_REG_D, .P_REG_D, .NONE, .NONE, .NONE}, {.VD, .PN, .NONE, .NONE, .NONE}, 0x25EB8000, 0xFFFFFE00, .SVE, {}}, {written={0}, read={0, 1}, fpsr_wr={.QC}}}, + }, + .LD1Q = { + {{.LD1Q, {.SME_SLICE_Q, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_Q, .PG, .SVE_OFFSET_BASE_SS4, .NONE, .NONE}, 0xE1C00000, 0xFFE00010, .SME, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .ST1Q = { + {{.ST1Q, {.SME_SLICE_Q, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.SME_SLICE_Q, .PG, .SVE_OFFSET_BASE_SS4, .NONE, .NONE}, 0xE1E00000, 0xFFE00010, .SME, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .MOVA = { + {{.MOVA, {.Z_REG_B, .P_REG_MERGE, .SME_SLICE_B, .NONE, .NONE}, {.VD, .PG, .SME_SLICE_B, .NONE, .NONE}, 0xC0020000, 0xFFE28010, .SME, {}}, {written={0}, read={1, 2}}}, + {{.MOVA, {.SME_SLICE_B, .P_REG_MERGE, .Z_REG_B, .NONE, .NONE}, {.SME_SLICE_B, .PG, .VN, .NONE, .NONE}, 0xC0000000, 0xFFE08010, .SME, {}}, {written={0}, read={1, 2}}}, + }, + .FCMLA = { + {{.FCMLA, {.V_4H, .V_4H, .V_4H, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCMLA_ROT, .NONE}, 0x2E40C400, 0xFFE0CC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCMLA, {.V_8H, .V_8H, .V_8H, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCMLA_ROT, .NONE}, 0x6E40C400, 0xFFE0CC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCMLA, {.V_4S, .V_4S, .V_4S, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCMLA_ROT, .NONE}, 0x6E80C400, 0xFFE0CC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCMLA, {.V_2D, .V_2D, .V_2D, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCMLA_ROT, .NONE}, 0x6EC0C400, 0xFFE0CC00, .NEON, {}}, {written={0}, read={0, 1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .FCADD = { + {{.FCADD, {.V_4H, .V_4H, .V_4H, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCADD_ROT, .NONE}, 0x2E40E400, 0xFFE0EC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCADD, {.V_8H, .V_8H, .V_8H, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCADD_ROT, .NONE}, 0x6E40E400, 0xFFE0EC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCADD, {.V_4S, .V_4S, .V_4S, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCADD_ROT, .NONE}, 0x6E80E400, 0xFFA0EC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.FCADD, {.V_2D, .V_2D, .V_2D, .IMM_2, .NONE}, {.VD, .VN, .VM, .ENC_FCADD_ROT, .NONE}, 0x6EC0E400, 0xFFE0EC00, .NEON, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .PRFB = { + {{.PRFB, {.IMM_4, .P_REG_GOV, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0x8400C000, 0xFFE0E000, .SVE, {}}, {read={1, 2}, side_effects={.HINT}}}, + }, + .PRFH = { + {{.PRFH, {.IMM_4, .P_REG_GOV, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0x8480C000, 0xFFE0E000, .SVE, {}}, {read={1, 2}, side_effects={.HINT}}}, + }, + .PRFW = { + {{.PRFW, {.IMM_4, .P_REG_GOV, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0x8500C000, 0xFFE0E000, .SVE, {}}, {read={1, 2}, side_effects={.HINT}}}, + }, + .PRFD = { + {{.PRFD, {.IMM_4, .P_REG_GOV, .MEM_SVE_SS, .NONE, .NONE}, {.ENC_SVE_PRFOP, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0x8580C000, 0xFFE0E000, .SVE, {}}, {read={1, 2}, side_effects={.HINT}}}, + }, + .LDNT1B = { + {{.LDNT1B, {.Z_REG_B, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xA400C000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LDNT1H = { + {{.LDNT1H, {.Z_REG_H, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xA480C000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LDNT1W = { + {{.LDNT1W, {.Z_REG_S, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xA500C000, 0xFFE0E000, .SVE, {}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .LDNT1D = { + {{.LDNT1D, {.Z_REG_D, .P_REG_ZERO, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xA580C000, 0xFFE0E000, .SVE, {is_64=true}}, {written={0}, read={1, 2}, reads_mem=true}}, + }, + .STNT1B = { + {{.STNT1B, {.Z_REG_B, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS, .NONE, .NONE}, 0xE4006000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .STNT1H = { + {{.STNT1H, {.Z_REG_H, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS1, .NONE, .NONE}, 0xE4806000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .STNT1W = { + {{.STNT1W, {.Z_REG_S, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS2, .NONE, .NONE}, 0xE5006000, 0xFFE0E000, .SVE, {}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .STNT1D = { + {{.STNT1D, {.Z_REG_D, .P_REG, .MEM_SVE_SS, .NONE, .NONE}, {.VD_LIST1, .PG, .SVE_OFFSET_BASE_SS3, .NONE, .NONE}, 0xE5806000, 0xFFE0E000, .SVE, {is_64=true}}, {read={0, 1, 2}, writes_mem=true}}, + }, + .SPLICE = { + {{.SPLICE, {.Z_REG_B, .P_REG_GOV, .Z_REG_B, .Z_REG_B, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x052C8000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}}}, + }, + .INDEX = { + {{.INDEX, {.Z_REG_B, .IMM_5, .IMM_5, .NONE, .NONE}, {.VD, .SVE_IMM5A, .SVE_IMM5, .NONE, .NONE}, 0x04204000, 0xFFE0FC00, .SVE, {}}, {written={0}}}, + {{.INDEX, {.Z_REG_B, .IMM_5, .W_REG, .NONE, .NONE}, {.VD, .SVE_IMM5A, .RM, .NONE, .NONE}, 0x04204800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={2}}}, + {{.INDEX, {.Z_REG_B, .W_REG, .IMM_5, .NONE, .NONE}, {.VD, .RN, .SVE_IMM5, .NONE, .NONE}, 0x04204400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1}}}, + {{.INDEX, {.Z_REG_B, .W_REG, .W_REG, .NONE, .NONE}, {.VD, .RN, .RM, .NONE, .NONE}, 0x04204C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_H, .IMM_5, .IMM_5, .NONE, .NONE}, {.VD, .SVE_IMM5A, .SVE_IMM5, .NONE, .NONE}, 0x04604000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_H, .IMM_5, .W_REG, .NONE, .NONE}, {.VD, .SVE_IMM5A, .RM, .NONE, .NONE}, 0x04604800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_H, .W_REG, .IMM_5, .NONE, .NONE}, {.VD, .RN, .SVE_IMM5, .NONE, .NONE}, 0x04604400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_H, .W_REG, .W_REG, .NONE, .NONE}, {.VD, .RN, .RM, .NONE, .NONE}, 0x04604C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_S, .IMM_5, .IMM_5, .NONE, .NONE}, {.VD, .SVE_IMM5A, .SVE_IMM5, .NONE, .NONE}, 0x04A04000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_S, .IMM_5, .W_REG, .NONE, .NONE}, {.VD, .SVE_IMM5A, .RM, .NONE, .NONE}, 0x04A04800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_S, .W_REG, .IMM_5, .NONE, .NONE}, {.VD, .RN, .SVE_IMM5, .NONE, .NONE}, 0x04A04400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_S, .W_REG, .W_REG, .NONE, .NONE}, {.VD, .RN, .RM, .NONE, .NONE}, 0x04A04C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_D, .IMM_5, .IMM_5, .NONE, .NONE}, {.VD, .SVE_IMM5A, .SVE_IMM5, .NONE, .NONE}, 0x04E04000, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_D, .IMM_5, .X_REG, .NONE, .NONE}, {.VD, .SVE_IMM5A, .RM, .NONE, .NONE}, 0x04E04800, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_D, .X_REG, .IMM_5, .NONE, .NONE}, {.VD, .RN, .SVE_IMM5, .NONE, .NONE}, 0x04E04400, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + {{.INDEX, {.Z_REG_D, .X_REG, .X_REG, .NONE, .NONE}, {.VD, .RN, .RM, .NONE, .NONE}, 0x04E04C00, 0xFFE0FC00, .SVE, {}}, {written={0}, read={1, 2}}}, + }, + .BSL1N = { + {{.BSL1N, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VD, .VM, .VN, .NONE}, 0x04603C00, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .BSL2N = { + {{.BSL2N, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VD, .VM, .VN, .NONE}, 0x04A03C00, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .NBSL = { + {{.NBSL, {.Z_REG_D, .Z_REG_D, .Z_REG_D, .Z_REG_D, .NONE}, {.VD, .VD, .VM, .VN, .NONE}, 0x04E03C00, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2, 3}}}, + }, + .PMUL = { + {{.PMUL, {.Z_REG_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x04206400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + }, + .PMULLB = { + {{.PMULLB, {.Z_REG_D, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x45C06800, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .PMULLT = { + {{.PMULLT, {.Z_REG_D, .Z_REG_S, .Z_REG_S, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x45C06C00, 0xFFE0FC00, .SVE2, {is_64=true}}, {written={0}, read={1, 2}}}, + }, + .BFCVTNT = { + {{.BFCVTNT, {.Z_REG_H, .P_REG_MERGE, .Z_REG_S, .NONE, .NONE}, {.VD, .PG, .VN, .NONE, .NONE}, 0x648AA000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .LDRAA = { + {{.LDRAA, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xF8200400, 0xFFA00C00, .PAC, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRAA, {.X_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xF8200C00, 0xFFA00C00, .PAC, {is_64=true}}, {written={0, 1}, read={1}, reads_mem=true}}, + }, + .LDRAB = { + {{.LDRAB, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xF8A00400, 0xFFA00C00, .PAC, {is_64=true}}, {written={0}, read={1}, reads_mem=true}}, + {{.LDRAB, {.X_REG, .MEM_PRE, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_PRE, .NONE, .NONE, .NONE}, 0xF8A00C00, 0xFFA00C00, .PAC, {is_64=true}}, {written={0, 1}, read={1}, reads_mem=true}}, + }, + .TSTART = { + {{.TSTART, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5233060, 0xFFFFFFE0, .BASE, {is_64=true}}, {written={0}, side_effects={.NONDETERMINISTIC}}}, + }, + .TCOMMIT = { + {{.TCOMMIT, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503307F, 0xFFFFFFFF, .BASE, {}}, {}}, + }, + .TCANCEL = { + {{.TCANCEL, {.IMM_16, .NONE, .NONE, .NONE, .NONE}, {.IMM16, .NONE, .NONE, .NONE, .NONE}, 0xD4600000, 0xFFE0001F, .BASE, {}}, {side_effects={.CONTROL}}}, + }, + .TTEST = { + {{.TTEST, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5233160, 0xFFFFFFE0, .BASE, {is_64=true}}, {written={0}}}, + }, + .WFET = { + {{.WFET, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5031000, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.WAIT}}}, + }, + .WFIT = { + {{.WFIT, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5031020, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.WAIT}}}, + }, + .BC_EQ = { + {{.BC_EQ, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000010, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z}, side_effects={.CONTROL}}}, + }, + .BC_NE = { + {{.BC_NE, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000011, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z}, side_effects={.CONTROL}}}, + }, + .BC_CS = { + {{.BC_CS, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000012, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.C}, side_effects={.CONTROL}}}, + }, + .BC_CC = { + {{.BC_CC, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000013, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.C}, side_effects={.CONTROL}}}, + }, + .BC_MI = { + {{.BC_MI, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000014, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N}, side_effects={.CONTROL}}}, + }, + .BC_PL = { + {{.BC_PL, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000015, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N}, side_effects={.CONTROL}}}, + }, + .BC_VS = { + {{.BC_VS, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000016, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.V}, side_effects={.CONTROL}}}, + }, + .BC_VC = { + {{.BC_VC, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000017, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.V}, side_effects={.CONTROL}}}, + }, + .BC_HI = { + {{.BC_HI, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000018, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}}, + }, + .BC_LS = { + {{.BC_LS, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x54000019, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.Z, .C}, side_effects={.CONTROL}}}, + }, + .BC_GE = { + {{.BC_GE, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400001A, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .V}, side_effects={.CONTROL}}}, + }, + .BC_LT = { + {{.BC_LT, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400001B, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .V}, side_effects={.CONTROL}}}, + }, + .BC_GT = { + {{.BC_GT, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400001C, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}}, + }, + .BC_LE = { + {{.BC_LE, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400001D, 0xFF00001F, .BASE, {cond_branch=true}}, {nzcv_rd={.N, .Z, .V}, side_effects={.CONTROL}}}, + }, + .BC_AL = { + {{.BC_AL, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400001E, 0xFF00001F, .BASE, {cond_branch=true}}, {side_effects={.CONTROL}}}, + }, + .BC_NV = { + {{.BC_NV, {.REL_19, .NONE, .NONE, .NONE, .NONE}, {.BRANCH_19, .NONE, .NONE, .NONE, .NONE}, 0x5400001F, 0xFF00001F, .BASE, {cond_branch=true}}, {side_effects={.CONTROL}}}, + }, + .UXTB = { + {{.UXTB, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x53001C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + }, + .UXTH = { + {{.UXTH, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x53003C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + }, + .UXTW = { + {{.UXTW, {.X_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0xD3407C00, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .SXTB = { + {{.SXTB, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x13001C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + }, + .SXTH = { + {{.SXTH, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x13003C00, 0xFFFFFC00, .BASE, {}}, {written={0}, read={1}}}, + }, + .SXTW = { + {{.SXTW, {.X_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE, .NONE}, 0x93407C00, 0xFFFFFC00, .BASE, {is_64=true}}, {written={0}, read={1}}}, + }, + .ADC = { + {{.ADC, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1A000000, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, nzcv_rd={.C}}}, + {{.ADC, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x9A000000, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, nzcv_rd={.C}}}, + }, + .ADCS = { + {{.ADCS, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x3A000000, 0xFFE0FC00, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}}, + {{.ADCS, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xBA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}}, + }, + .SBC = { + {{.SBC, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x5A000000, 0xFFE0FC00, .BASE, {}}, {written={0}, read={1, 2}, nzcv_rd={.C}}}, + {{.SBC, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xDA000000, 0xFFE0FC00, .BASE, {is_64=true}}, {written={0}, read={1, 2}, nzcv_rd={.C}}}, + }, + .SBCS = { + {{.SBCS, {.W_REG, .W_REG, .W_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x7A000000, 0xFFE0FC00, .BASE, {sets_flags=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}}, + {{.SBCS, {.X_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0xFA000000, 0xFFE0FC00, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1, 2}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}}, + }, + .NGC = { + {{.NGC, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0x5A0003E0, 0xFFE0FFE0, .BASE, {}}, {written={0}, read={1}, nzcv_rd={.C}}}, + {{.NGC, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0xDA0003E0, 0xFFE0FFE0, .BASE, {is_64=true}}, {written={0}, read={1}, nzcv_rd={.C}}}, + }, + .NGCS = { + {{.NGCS, {.W_REG, .W_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0x7A0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}}, + {{.NGCS, {.X_REG, .X_REG, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0xFA0003E0, 0xFFE0FFE0, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}, nzcv_rd={.C}}}, + }, + .LDAPUR = { + {{.LDAPUR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x99400000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + {{.LDAPUR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9400000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .STLUR = { + {{.STLUR, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x99000000, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + {{.STLUR, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xD9000000, 0xFFE00C00, .BASE, {is_64=true}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + }, + .LDAPURB = { + {{.LDAPURB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x19400000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .STLURB = { + {{.STLURB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x19000000, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + }, + .LDAPURH = { + {{.LDAPURH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x59400000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .STLURH = { + {{.STLURH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x59000000, 0xFFE00C00, .BASE, {}}, {read={0, 1}, writes_mem=true, side_effects={.FENCE}}}, + }, + .LDAPURSB = { + {{.LDAPURSB, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x19800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + {{.LDAPURSB, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x19C00000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .LDAPURSH = { + {{.LDAPURSH, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x59800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + {{.LDAPURSH, {.W_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x59C00000, 0xFFE00C00, .BASE, {}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .LDAPURSW = { + {{.LDAPURSW, {.X_REG, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0x99800000, 0xFFE00C00, .BASE, {is_64=true}}, {written={0}, read={1}, reads_mem=true, side_effects={.FENCE}}}, + }, + .BFADD = { + {{.BFADD, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65008000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.BFADD, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65000000, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFSUB = { + {{.BFSUB, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65018000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.BFSUB, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65000400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMUL = { + {{.BFMUL, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65028000, 0xFFFFE000, .SVE, {}}, {written={0}, read={1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + {{.BFMUL, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x65000800, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMLA = { + {{.BFMLA, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65200000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .BFMLS = { + {{.BFMLS, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VN, .VM, .NONE}, 0x65202000, 0xFFE0E000, .SVE, {}}, {written={0}, read={0, 1, 2, 3}, fpsr_wr={.IOC, .OFC, .UFC, .IXC, .IDC}, reads_fpcr=true}}, + }, + .SB = { + {{.SB, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50330FF, 0xFFFFFFFF, .BASE, {}}, {side_effects={.FENCE}}}, + }, + .CSDB = { + {{.CSDB, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503229F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.FENCE}}}, + }, + .DGH = { + {{.DGH, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50320DF, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .PSB_CSYNC = { + {{.PSB_CSYNC, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503223F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .TSB_CSYNC = { + {{.TSB_CSYNC, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503225F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.HINT}}}, + }, + .BTI_J = { + {{.BTI_J, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503249F, 0xFFFFFFFF, .BTI, {}}, {side_effects={.BTI}}}, + }, + .BTI_C = { + {{.BTI_C, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD503245F, 0xFFFFFFFF, .BTI, {}}, {side_effects={.BTI}}}, + }, + .BTI_JC = { + {{.BTI_JC, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50324DF, 0xFFFFFFFF, .BTI, {}}, {side_effects={.BTI}}}, + }, + .BFCLAMP = { + {{.BFCLAMP, {.Z_REG_H, .Z_REG_H, .Z_REG_H, .NONE, .NONE}, {.VD, .VN, .VM, .NONE, .NONE}, 0x64202400, 0xFFE0FC00, .SVE2, {}}, {written={0}, read={1, 2}}}, + }, + .BFMAXNM = { + {{.BFMAXNM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65048000, 0xFFFFE000, .SVE2, {}}, {written={0}, read={1, 2, 3}}}, + }, + .BFMINNM = { + {{.BFMINNM, {.Z_REG_H, .P_REG_MERGE, .Z_REG_H, .Z_REG_H, .NONE}, {.VD, .PG, .VD, .VN, .NONE}, 0x65058000, 0xFFFFE000, .SVE2, {}}, {written={0}, read={1, 2, 3}}}, + }, + .LUTI2 = { + {{.LUTI2, {.Z_PAIR_B, .ZT_REG, .Z_REG_ANY, .VEC_INDEX, .NONE}, {.ENC_Z_PAIR_VD, .ENC_ZT0, .VN, .LUTI_IDX, .NONE}, 0xC08C4000, 0xFFFE7C00, .SME, {}}, {written={0}, read={2}}}, + {{.LUTI2, {.Z_PAIR_H, .ZT_REG, .Z_REG_ANY, .VEC_INDEX, .NONE}, {.ENC_Z_PAIR_VD, .ENC_ZT0, .VN, .LUTI_IDX, .NONE}, 0xC08C5000, 0xFFFE7C00, .SME, {}}, {written={0}, read={2}}}, + {{.LUTI2, {.Z_PAIR_S, .ZT_REG, .Z_REG_ANY, .VEC_INDEX, .NONE}, {.ENC_Z_PAIR_VD, .ENC_ZT0, .VN, .LUTI_IDX, .NONE}, 0xC08C6000, 0xFFFE7C00, .SME, {}}, {written={0}, read={2}}}, + }, + .LUTI4 = { + {{.LUTI4, {.Z_PAIR_B, .ZT_REG, .Z_REG_ANY, .VEC_INDEX, .NONE}, {.ENC_Z_PAIR_VD, .ENC_ZT0, .VN, .LUTI_IDX, .NONE}, 0xC08A4000, 0xFFFE7C00, .SME, {}}, {written={0}, read={2}}}, + {{.LUTI4, {.Z_PAIR_H, .ZT_REG, .Z_REG_ANY, .VEC_INDEX, .NONE}, {.ENC_Z_PAIR_VD, .ENC_ZT0, .VN, .LUTI_IDX, .NONE}, 0xC08A5000, 0xFFFE7C00, .SME, {}}, {written={0}, read={2}}}, + {{.LUTI4, {.Z_PAIR_S, .ZT_REG, .Z_REG_ANY, .VEC_INDEX, .NONE}, {.ENC_Z_PAIR_VD, .ENC_ZT0, .VN, .LUTI_IDX, .NONE}, 0xC08A6000, 0xFFFE7C00, .SME, {}}, {written={0}, read={2}}}, + }, + .ZIP = { + {{.ZIP, {.Z_PAIR_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .VN, .VM, .NONE, .NONE}, 0xC120D000, 0xFFE0FC00, .SME, {}}, {written={0}, read={1, 2}}}, + {{.ZIP, {.Z_QUAD_B, .Z_QUAD_B, .NONE, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .ENC_Z_QUAD_VN, .NONE, .NONE, .NONE}, 0xC136E000, 0xFFFFFC00, .SME, {}}, {written={0}, read={1, 2}}}, + }, + .UZP = { + {{.UZP, {.Z_PAIR_B, .Z_REG_B, .Z_REG_B, .NONE, .NONE}, {.ENC_Z_PAIR_VD, .VN, .VM, .NONE, .NONE}, 0xC120D001, 0xFFE0FC01, .SME, {}}, {written={0}, read={1, 2}}}, + {{.UZP, {.Z_QUAD_B, .Z_QUAD_B, .NONE, .NONE, .NONE}, {.ENC_Z_QUAD_VD, .ENC_Z_QUAD_VN, .NONE, .NONE, .NONE}, 0xC136E002, 0xFFFFFC02, .SME, {}}, {written={0}, read={1, 2}}}, + }, + .TLBI_RPALOS = { + {{.TLBI_RPALOS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5084EE0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_RPAOS = { + {{.TLBI_RPAOS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5084EA0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E1A = { + {{.AT_S1E1A, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5079140, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .DC_CIPAPA = { + {{.DC_CIPAPA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50E7CE0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE}}}, + }, + .DC_CIGDPAPA = { + {{.DC_CIGDPAPA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50E7DE0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE}}}, + }, + .TLBI_PAALL = { + {{.TLBI_PAALL, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50E879F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_PAALLOS = { + {{.TLBI_PAALLOS, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50E819F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .AMX_LDX = { + {{.AMX_LDX, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201000, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_LDY = { + {{.AMX_LDY, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201020, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_STX = { + {{.AMX_STX, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201040, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_STY = { + {{.AMX_STY, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201060, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_LDZ = { + {{.AMX_LDZ, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201080, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_STZ = { + {{.AMX_STZ, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002010A0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_LDZI = { + {{.AMX_LDZI, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002010C0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_STZI = { + {{.AMX_STZI, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002010E0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_EXTRX = { + {{.AMX_EXTRX, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201100, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_EXTRY = { + {{.AMX_EXTRY, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201120, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_FMA64 = { + {{.AMX_FMA64, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201140, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_FMS64 = { + {{.AMX_FMS64, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201160, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_FMA32 = { + {{.AMX_FMA32, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201180, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_FMS32 = { + {{.AMX_FMS32, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002011A0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_MAC16 = { + {{.AMX_MAC16, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002011C0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_FMA16 = { + {{.AMX_FMA16, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002011E0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_FMS16 = { + {{.AMX_FMS16, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201200, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_SET = { + {{.AMX_SET, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0x00201220, 0xFFFFFFFF, .AMX, {}}, {}}, + }, + .AMX_CLR = { + {{.AMX_CLR, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0x00201240, 0xFFFFFFFF, .AMX, {}}, {}}, + }, + .AMX_VECINT = { + {{.AMX_VECINT, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201260, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_VECFP = { + {{.AMX_VECFP, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x00201280, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_MATINT = { + {{.AMX_MATINT, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002012A0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_MATFP = { + {{.AMX_MATFP, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002012C0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .AMX_GENLUT = { + {{.AMX_GENLUT, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0x002012E0, 0xFFFFFFE0, .AMX, {is_64=true}}, {read={0}}}, + }, + .CPYP = { + {{.CPYP, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1D000400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}}, + }, + .CPYM = { + {{.CPYM, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1D400400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}}, + }, + .CPYE = { + {{.CPYE, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x1D800400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}}, + }, + .CPYFP = { + {{.CPYFP, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x19000400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}}, + }, + .CPYFM = { + {{.CPYFM, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x19400400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}}, + }, + .CPYFE = { + {{.CPYFE, {.XSP_REG, .XSP_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x19800400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1, 2}, read={0, 1, 2}, writes_mem=true, reads_mem=true}}, + }, + .SETP = { + {{.SETP, {.XSP_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x19C00400, 0xFFE03C00, .BASE, {is_64=true}}, {written={0, 1}, read={0, 1, 2}, writes_mem=true}}, + }, + .SETM = { + {{.SETM, {.XSP_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x19C04400, 0xFFE07C00, .BASE, {is_64=true}}, {written={0, 1}, read={0, 1, 2}, writes_mem=true}}, + }, + .SETE = { + {{.SETE, {.XSP_REG, .X_REG, .X_REG, .NONE, .NONE}, {.RD, .RN, .RM, .NONE, .NONE}, 0x19C08400, 0xFFE0BC00, .BASE, {is_64=true}}, {written={0, 1}, read={0, 1, 2}, writes_mem=true}}, + }, + .DC_IVAC = { + {{.DC_IVAC, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087620, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE, .PRIVILEGED}}}, + }, + .DC_ISW = { + {{.DC_ISW, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087640, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE, .PRIVILEGED}}}, + }, + .DC_CSW = { + {{.DC_CSW, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087A40, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE, .PRIVILEGED}}}, + }, + .DC_CISW = { + {{.DC_CISW, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087E40, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE, .PRIVILEGED}}}, + }, + .DC_ZVA = { + {{.DC_ZVA, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50B7420, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, writes_mem=true, side_effects={.CACHE}}}, + }, + .DC_CVAC = { + {{.DC_CVAC, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50B7A20, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE}}}, + }, + .DC_CVAU = { + {{.DC_CVAU, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50B7B20, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE}}}, + }, + .DC_CIVAC = { + {{.DC_CIVAC, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50B7E20, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE}}}, + }, + .IC_IALLUIS = { + {{.IC_IALLUIS, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD508711F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.CACHE, .PRIVILEGED}}}, + }, + .IC_IALLU = { + {{.IC_IALLU, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD508751F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.CACHE, .PRIVILEGED}}}, + }, + .IC_IVAU = { + {{.IC_IVAU, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50B7520, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.CACHE}}}, + }, + .AT_S1E1R = { + {{.AT_S1E1R, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087800, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E1W = { + {{.AT_S1E1W, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087820, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E0R = { + {{.AT_S1E0R, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087840, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E0W = { + {{.AT_S1E0W, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5087860, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E2R = { + {{.AT_S1E2R, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50C7800, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E2W = { + {{.AT_S1E2W, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50C7820, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E3R = { + {{.AT_S1E3R, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50E7800, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S1E3W = { + {{.AT_S1E3W, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50E7820, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S12E1R = { + {{.AT_S12E1R, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50C7880, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S12E1W = { + {{.AT_S12E1W, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50C78A0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S12E0R = { + {{.AT_S12E0R, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50C78C0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .AT_S12E0W = { + {{.AT_S12E0W, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50C78E0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VMALLE1 = { + {{.TLBI_VMALLE1, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_VMALLE1IS = { + {{.TLBI_VMALLE1IS, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_VAE1 = { + {{.TLBI_VAE1, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5088720, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VAE1IS = { + {{.TLBI_VAE1IS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5088320, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_ASIDE1 = { + {{.TLBI_ASIDE1, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5088740, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_ASIDE1IS = { + {{.TLBI_ASIDE1IS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5088340, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VAAE1 = { + {{.TLBI_VAAE1, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5088760, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VAAE1IS = { + {{.TLBI_VAAE1IS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD5088360, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VALE1 = { + {{.TLBI_VALE1, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50887A0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VALE1IS = { + {{.TLBI_VALE1IS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50883A0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VAALE1 = { + {{.TLBI_VAALE1, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50887E0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_VAALE1IS = { + {{.TLBI_VAALE1IS, {.X_REG, .NONE, .NONE, .NONE, .NONE}, {.RT, .NONE, .NONE, .NONE, .NONE}, 0xD50883E0, 0xFFFFFFE0, .BASE, {is_64=true}}, {read={0}, side_effects={.PRIVILEGED}}}, + }, + .TLBI_ALLE1 = { + {{.TLBI_ALLE1, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD508871F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_ALLE1IS = { + {{.TLBI_ALLE1IS, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD508831F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_ALLE2 = { + {{.TLBI_ALLE2, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50C871F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_ALLE2IS = { + {{.TLBI_ALLE2IS, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50C831F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_ALLE3 = { + {{.TLBI_ALLE3, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50E871F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .TLBI_ALLE3IS = { + {{.TLBI_ALLE3IS, {.NONE, .NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE, .NONE}, 0xD50E831F, 0xFFFFFFFF, .BASE, {}}, {side_effects={.PRIVILEGED}}}, + }, + .PRFM = { + {{.PRFM, {.IMM_5, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_U12, .NONE, .NONE, .NONE}, 0xF9800000, 0xFFC00000, .BASE, {is_64=true}}, {read={1}, side_effects={.HINT}}}, + {{.PRFM, {.IMM_5, .REL_19, .NONE, .NONE, .NONE}, {.RT, .BRANCH_19, .NONE, .NONE, .NONE}, 0xD8000000, 0xFF000000, .BASE, {is_64=true}}, {side_effects={.HINT}}}, + }, + .PRFUM = { + {{.PRFUM, {.IMM_5, .MEM_OFFSET, .NONE, .NONE, .NONE}, {.RT, .OFFSET_BASE_S9, .NONE, .NONE, .NONE}, 0xF8800000, 0xFFE00C00, .BASE, {is_64=true}}, {read={1}, side_effects={.HINT}}}, + }, + .NEGS = { + {{.NEGS, {.W_REG, .W_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0x6B0003E0, 0xFF2003E0, .BASE, {sets_flags=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.NEGS, {.X_REG, .X_SHIFTED, .NONE, .NONE, .NONE}, {.RD, .RM, .NONE, .NONE, .NONE}, 0xEB0003E0, 0xFF2003E0, .BASE, {sets_flags=true, is_64=true}}, {written={0}, read={1}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMP = { + {{.CMP, {.W_REG, .W_SHIFTED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x6B00001F, 0xFF20001F, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMP, {.X_REG, .X_SHIFTED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0xEB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMP, {.WSP_REG, .W_EXTENDED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x6B20001F, 0xFFE0001F, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMP, {.XSP_REG, .X_EXTENDED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0xEB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMP, {.WSP_REG, .IMM_12, .NONE, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE, .NONE}, 0x7100001F, 0xFF80001F, .BASE, {sets_flags=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMP, {.XSP_REG, .IMM_12, .NONE, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE, .NONE}, 0xF100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}}}, + }, + .CMN = { + {{.CMN, {.W_REG, .W_SHIFTED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x2B00001F, 0xFF20001F, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMN, {.X_REG, .X_SHIFTED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0xAB00001F, 0xFF20001F, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMN, {.WSP_REG, .W_EXTENDED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0x2B20001F, 0xFFE0001F, .BASE, {sets_flags=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMN, {.XSP_REG, .X_EXTENDED, .NONE, .NONE, .NONE}, {.RN, .RM, .NONE, .NONE, .NONE}, 0xAB20001F, 0xFFE0001F, .BASE, {sets_flags=true, is_64=true}}, {read={0, 1}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMN, {.WSP_REG, .IMM_12, .NONE, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE, .NONE}, 0x3100001F, 0xFF80001F, .BASE, {sets_flags=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}}}, + {{.CMN, {.XSP_REG, .IMM_12, .NONE, .NONE, .NONE}, {.RN, .IMM12, .NONE, .NONE, .NONE}, 0xB100001F, 0xFF80001F, .BASE, {sets_flags=true, is_64=true}}, {read={0}, nzcv_wr={.N, .Z, .C, .V}}}, + }, +} diff --git a/core/rexcode/isa/arm64/tablegen/specgen.lua b/core/rexcode/isa/arm64/tablegen/specgen.lua index 5dbd1d4cf..8d90b11e8 100644 --- a/core/rexcode/isa/arm64/tablegen/specgen.lua +++ b/core/rexcode/isa/arm64/tablegen/specgen.lua @@ -7,9 +7,16 @@ -- the differing bits are operand-driven, so mask = ~(bits0 ^ bits31). Per-form -- assembly makes it robust: an arrangement llvm-mc rejects is reported, skipped. -- --- Output replaces the SPECGEN:BEGIN..SPECGEN:END region of encoding_table.odin --- in place; the hand-written core is untouched. Every bit pattern is therefore --- reproducible and llvm-mc-backed. +-- Output is MERGED into instruction_table.odin: a generated form is inserted +-- into its mnemonic's block only if no form with the same (mnemonic, bits, +-- mask) is there already. Existing rows are never rewritten -- their Clobber +-- data is hand-maintained and must not be clobbered (pun intended) by a +-- regeneration. So this is an "add the forms that are missing" tool, which is +-- what it is actually for. Every bit pattern is llvm-mc-backed. +-- +-- Merging (rather than owning a whole region) is required because a Mnemonic +-- is now an ASSEMBLER mnemonic: ADD holds the integer, NEON and SVE forms in +-- one block, so specgen cannot own `.ADD = { ... }` outright. -- -- Two spec kinds: -- * uniform — every operand shares one arrangement T (iterate ALL_ARR). @@ -21,7 +28,7 @@ local bit = require("bit") local LLVM = "llvm-mc --assemble --arch=aarch64 --mattr=+fullfp16 --show-encoding" local DIR = (arg[0]:match("^(.*)/[^/]*$")) or "." -local TABLE = DIR .. "/encoding_table.odin" +local TABLE = DIR .. "/instruction_table.odin" local ARR = { ["8B"]={vt="V_8B",asm="8b"}, ["16B"]={vt="V_16B",asm="16b"}, @@ -53,6 +60,81 @@ local function padded(tokens, n) return "{" .. table.concat(t, ", ") .. "}" end +-- The Mnemonic enum holds assembler mnemonics, so the ISA-namespace prefixes +-- and per-encoding suffixes these specs were written against are gone. +local CANON_PRE = {"SVE2_", "SVE_", "SME2_", "SME_"} +local CANON_SUF = { + "_GATHER_S","_GATHER_D","_SCATTER_S","_SCATTER_D","_FROM_TILE","_TILE_FROM", + "_UNPRED","_BITMASK","_SCALAR","_ALIAS","_PRED","_TILE","_LANE", + "_IDX","_GEN","_LIT","_IMM","_VEC","_PRE","_POST","_REG", + "_4H","_8H","_4S","_2D","_1D","_2S","_8B","_16B", + "_II","_IR","_RI","_RR","_X2","_X4","_SR","_ER","_ZA", + "_Z","_P","_V","_H","_S","_D","_B","_3","_4", +} +-- A conditional branch is one mnemonic per condition (B_LE -> `b.le`), so +-- nothing about those names should be canonicalized away. +local function is_cond_branch(name) return name:match("^BC?_%u%u$") ~= nil end +local CANON_KEEP = {} +local CANON_RENAME = { LSLV="LSL", LSRV="LSR", ASRV="ASR", RORV="ROR" } +local function canon(name) + if CANON_KEEP[name] or is_cond_branch(name) then return name end + for _, k in ipairs({"DC_","IC_","AT_","TLBI_","BTI_","PSB_","TSB_"}) do + if name:sub(1, #k) == k then return name end + end + local c = CANON_RENAME[name] or name + for _, pre in ipairs(CANON_PRE) do + if c:sub(1, #pre) == pre then c = c:sub(#pre + 1); break end + end + local changed = true + while changed do + changed = false + for _, suf in ipairs(CANON_SUF) do + if #c > #suf and c:sub(-#suf) == suf then + local stem = c:sub(1, #c - #suf) + if #stem > 0 and stem:sub(-1) ~= "_" then c = stem; changed = true; break end + end + end + end + return (#c > 0) and c or name +end + +-- A Form is an Encoding plus a Clobber. For the data-processing shapes this +-- tool emits, slot 0 is the destination and every later register-ish slot is a +-- source (a destination repeated in a later slot -- SVE destructive forms -- +-- is therefore correctly counted as a read too). +local REG_SLOT = { + VD=true, VN=true, VM=true, VA=true, RD=true, RN=true, RM=true, RA=true, + PD=true, PN=true, PM=true, PG=true, PG4=true, PM3=true, RT=true, RT2=true, +} +-- The table aligns the operand tuple at a fixed column; keep generated rows +-- looking like the hand-written ones around them. +local function mnem_field(name) + local s = "{{." .. name .. "," + return s .. string.rep(" ", math.max(1, 28 - #s)) +end + +-- The table also aligns the Clobber at a fixed column. Applied once at merge +-- time so every row formatter stays a plain string.format. +-- The table is not uniformly aligned (166..176 across sections); 169 is the +-- dominant column, so new rows land in the majority style. +local CLOBBER_COL = 169 +local function align_row(row) + local head, tail = row:match("^(.-%}%},) (%{.*)$") + if not head then return row end + return head .. string.rep(" ", math.max(1, CLOBBER_COL - #head)) .. tail +end + +local function clobber_of(enc_str) + local slots = {} + for tok in enc_str:gmatch("%.([%w_]+)") do slots[#slots+1] = tok end + local reads = {} + for i = 2, #slots do + if REG_SLOT[slots[i]] then reads[#reads+1] = tostring(i - 1) end + end + if #reads == 0 then return "{written={0}}" end + return string.format("{written={0}, read={%s}}", table.concat(reads, ", ")) +end + local sections, skips, n_forms, n_mnem = {}, {}, 0, 0 -- Emit one mnemonic's block from a list of arrangement tuples (operand order). @@ -72,8 +154,8 @@ local function emit(mnem, llvm, enc_str, feature, variants) for i, t in ipairs(tup) do ops[i] = "."..tok_vt(t) end local f = feature for _, tk in ipairs(tup) do if ARR[tk] and ARR[tk].feat then f = ARR[tk].feat end end - rows[#rows+1] = string.format("\t\t{.%s, %s, %s, 0x%s, 0x%s, .%s, {}},", - mnem, padded(ops, #tup), enc_str, bit.tohex(w0):upper(), bit.tohex(mask):upper(), f) + rows[#rows+1] = string.format("\t\t%s%s, %s, 0x%s, 0x%s, .%s, {}}, %s},", + mnem_field(canon(mnem)), padded(ops, #tup), enc_str, bit.tohex(w0):upper(), bit.tohex(mask):upper(), f, clobber_of(enc_str)) n_forms = n_forms + 1 else skips[#skips+1] = mnem.." "..table.concat(tup, "/") @@ -81,7 +163,7 @@ local function emit(mnem, llvm, enc_str, feature, variants) end if #rows == 0 then return nil end n_mnem = n_mnem + 1 - return string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(rows, "\n")) + return string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(rows, "\n")) end -- Compare-against-zero: a 2-register shape whose asm carries a literal #0 @@ -97,8 +179,8 @@ local function emit_cmp0(mnem, llvm, fp, arr) local mask = bit.band(bit.bnot(bit.bxor(w0, w31)), 0xFFFFFFFF) local f = ARR[a].feat or "NEON" rows[#rows+1] = string.format( - "\t\t{.%s, {.%s, .%s, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x%s, 0x%s, .%s, {}},", - mnem, ARR[a].vt, ARR[a].vt, bit.tohex(w0):upper(), bit.tohex(mask):upper(), f) + "\t\t{{.%s, {.%s, .%s, .NONE, .NONE}, {.VD, .VN, .NONE, .NONE}, 0x%s, 0x%s, .%s, {}}, {written={0}, read={1}}},", + canon(mnem), ARR[a].vt, ARR[a].vt, bit.tohex(w0):upper(), bit.tohex(mask):upper(), f) n_forms = n_forms + 1 else skips[#skips+1] = mnem.." "..a @@ -106,7 +188,7 @@ local function emit_cmp0(mnem, llvm, fp, arr) end if #rows == 0 then return nil end n_mnem = n_mnem + 1 - return string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(rows, "\n")) + return string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(rows, "\n")) end -- ---- Uniform shapes (all operands share one arrangement) ------------------- @@ -311,7 +393,7 @@ local function emit_shift(mnem, llvm, dir, variants) end if #rows == 0 then return nil end n_mnem = n_mnem + 1 - return string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(rows, "\n")) + return string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(rows, "\n")) end local SAME_SH = {} for _, a in ipairs({"8B","16B","4H","8H","2S","4S","2D"}) do SAME_SH[#SAME_SH+1] = {a, a} end @@ -366,12 +448,12 @@ local ELEM = { do local blk = {} local function emit_rows(mnem, rows) - if #rows > 0 then blk[#blk+1] = string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(rows, "\n")); n_mnem = n_mnem + 1 end + if #rows > 0 then blk[#blk+1] = string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(rows, "\n")); n_mnem = n_mnem + 1 end end local function mkrow(mnem, ops, enc, b0, variants) n_forms = n_forms + 1 - return string.format("\t\t{.%s, %s, %s, 0x%s, 0x%s, .NEON, {}},", - mnem, ops, enc, bit.tohex(b0):upper(), bit.tohex(mask_of(b0, variants)):upper()) + return string.format("\t\t%s%s, %s, 0x%s, 0x%s, .NEON, {}}, %s},", + mnem_field(canon(mnem)), ops, enc, bit.tohex(b0):upper(), bit.tohex(mask_of(b0, variants)):upper(), clobber_of(enc)) end -- MOV Vd.T, Vn.T (= ORR Vd,Vn,Vn): the single source feeds both Vn and Vm. @@ -467,7 +549,7 @@ end do local blk = {} local function block(mnem, rows) - if #rows > 0 then blk[#blk+1] = string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(rows, "\n")); n_mnem = n_mnem + 1 end + if #rows > 0 then blk[#blk+1] = string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(rows, "\n")); n_mnem = n_mnem + 1 end end -- scalar FP two-register (FRINTx, FRECPX): Sd, Sn. for _, it in ipairs({ @@ -479,8 +561,8 @@ do local function mk(r) return string.format("%s %s%d, %s%d", it[2], sc[1], r, sc[1], r) end local b0, b31 = word(mk(0)), word(mk(31)) if b0 and b31 then - rows[#rows+1] = string.format("\t\t{.%s, {.%s, .%s, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x%s, 0x%s, .%s, {}},", - it[1], sc[2], sc[2], bit.tohex(b0):upper(), bit.tohex(mask_of(b0,{b31})):upper(), sc[3]) + rows[#rows+1] = string.format("\t\t%s{.%s, .%s, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x%s, 0x%s, .%s, {}}, {written={0}, read={1}}},", + mnem_field(canon(it[1])), sc[2], sc[2], bit.tohex(b0):upper(), bit.tohex(mask_of(b0,{b31})):upper(), sc[3]) n_forms = n_forms + 1 end end @@ -499,8 +581,8 @@ do local bD = word(mk(gp[3], fp[1].."0")) -- Rd field (zero reg) local bN = word(mk(gp[1].."0", fp[1].."31")) -- Rn field if b0 and bD and bN then - rows[#rows+1] = string.format("\t\t{.%s, {.%s, .%s, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x%s, 0x%s, .%s, {}},", - it[1], gp[2], fp[2], bit.tohex(b0):upper(), bit.tohex(mask_of(b0,{bD,bN})):upper(), fp[3]) + rows[#rows+1] = string.format("\t\t%s{.%s, .%s, .NONE, .NONE}, {.RD, .RN, .NONE, .NONE}, 0x%s, 0x%s, .%s, {}}, {written={0}, read={1}}},", + mnem_field(canon(it[1])), gp[2], fp[2], bit.tohex(b0):upper(), bit.tohex(mask_of(b0,{bD,bN})):upper(), fp[3]) n_forms = n_forms + 1 end end @@ -526,12 +608,12 @@ do local function mk(r,v) return string.format("%s v%d.%s, #%s", llvm, r, ARR[a].asm, tostring(v)) end local b0, bR, bI = word(mk(0,"0")), word(mk(31,"0")), word(mk(0,vmax)) if b0 and bR and bI then - rows[#rows+1] = string.format("\t\t{.%s, {.%s, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x%s, 0x%s, .NEON, {}},", - mnem, ARR[a].vt, bit.tohex(b0):upper(), bit.tohex(mask_of(b0,{bR,bI})):upper()) + rows[#rows+1] = string.format("\t\t%s{.%s, .IMM_8, .NONE, .NONE}, {.VD, .NEON_IMM8_FMOV, .NONE, .NONE}, 0x%s, 0x%s, .NEON, {}}, {written={0}}},", + mnem_field(canon(mnem)), ARR[a].vt, bit.tohex(b0):upper(), bit.tohex(mask_of(b0,{bR,bI})):upper()) n_forms = n_forms + 1 else skips[#skips+1] = mnem.." "..a end end - if #rows > 0 then blk[#blk+1] = string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(rows, "\n")); n_mnem = n_mnem + 1 end + if #rows > 0 then blk[#blk+1] = string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(rows, "\n")); n_mnem = n_mnem + 1 end end imm8_block("MOVI", "movi", {"8B","16B","4H","8H","2S","4S","2D"}) imm8_block("MVNI", "mvni", {"4H","8H","2S","4S"}) @@ -565,12 +647,12 @@ do local w=sve_word(build(v)); if not w then skips[#skips+1]=mnem..":v"..i; return nil end; vs[#vs+1]=w end n_forms=n_forms+1 - return string.format("\t\t{.%s, %s, %s, 0x%s, 0x%s, .SVE, {%s}},", - mnem, ops, enc, bit.tohex(b0):upper(), bit.tohex(mask_of(b0,vs)):upper(), flags) + return string.format("\t\t%s%s, %s, 0x%s, 0x%s, .SVE, {%s}}, %s},", + mnem_field(canon(mnem)), ops, enc, bit.tohex(b0):upper(), bit.tohex(mask_of(b0,vs)):upper(), flags, clobber_of(enc)) end local function block(mnem, rows) local r={}; for _,x in ipairs(rows) do if x then r[#r+1]=x end end - if #r>0 then blk[#blk+1]=string.format("\t.%s = {\n%s\n\t},", mnem, table.concat(r,"\n")); n_mnem=n_mnem+1 end + if #r>0 then blk[#blk+1]=string.format("\t.%s = {\n%s\n\t},", canon(mnem), table.concat(r,"\n")); n_mnem=n_mnem+1 end end local function g(v, x) if v==0 then return x and "x0" or "w0" else return x and "xzr" or "wzr" end end @@ -690,17 +772,68 @@ do sections[#sections+1] = "\t// SVE predicated / compare / predicate-logical / SVE2.\n" .. table.concat(blk, "\n") end --- ---- splice into the SoT --------------------------------------------------- -local region = "\t// SPECGEN:BEGIN\n" .. table.concat(sections, "\n\n") .. "\n\t// SPECGEN:END" +-- ---- merge into the SoT ---------------------------------------------------- +-- +-- Every generated block is `\t.MNEM = {\n\n\t},`. Take it apart, and add +-- each row to that mnemonic's existing block ONLY when no form with the same +-- (mnemonic, bits, mask) is present. Existing rows are left byte-for-byte +-- alone so hand-maintained Clobber data survives a regeneration. local fh = assert(io.open(TABLE, "r")); local src = fh:read("*a"); fh:close() -local new, n = src:gsub("\t// SPECGEN:BEGIN.-\t// SPECGEN:END", (region:gsub("%%", "%%%%"))) -if n ~= 1 then - io.stderr:write("FATAL: expected exactly one SPECGEN:BEGIN..END region, found "..n.."\n") - os.exit(1) -end -local wh = assert(io.open(TABLE, "w")); wh:write(new); wh:close() -io.write(string.format("specgen: wrote %d mnemonics / %d forms into %s\n", n_mnem, n_forms, TABLE)) +local generated = {} -- ordered list of {mnem=, rows={}} +local by_mnem = {} +for _, sec in ipairs(sections) do + for mnem, body in sec:gmatch("\t%.([%w_]+) = {\n(.-)\n\t},") do + local g = by_mnem[mnem] + if not g then + g = {mnem = mnem, rows = {}} + by_mnem[mnem] = g + generated[#generated+1] = g + end + for row in body:gmatch("[^\n]+") do g.rows[#g.rows+1] = row end + end +end + +local added, present, created = 0, 0, 0 +for _, g in ipairs(generated) do + local head = "\t." .. g.mnem .. " = {\n" + local s, e = src:find(head, 1, true) + local fresh = {} + for _, row in ipairs(g.rows) do + -- (bits, mask) uniquely identify a form within one mnemonic's run. + local bits, mask = row:match("(0x%x+), (0x%x+)") + local dup = false + if s and bits then + local _, blk_end = src:find("\n\t},", e, true) + local block = src:sub(e, blk_end or #src) + dup = block:find(bits .. ", " .. mask, 1, true) ~= nil + end + if dup then present = present + 1 else fresh[#fresh+1] = align_row(row) end + end + if #fresh > 0 then + if s then + -- insert BEFORE the block terminator; splitting inside "\n\t}," would + -- leave its comma stranded after the appended rows. + local term = src:find("\n\t},", e, true) + src = src:sub(1, term - 1) .. "\n" .. table.concat(fresh, "\n") .. src:sub(term) + else + src = src:gsub("\n}%s*$", "\n" .. head .. table.concat(fresh, "\n") .. "\n\t},\n}\n", 1) + created = created + 1 + end + added = added + #fresh + end +end + +local wh = assert(io.open(TABLE, "w")); wh:write(src); wh:close() + +io.write(string.format("specgen: %d forms generated across %d mnemonics\n", n_forms, n_mnem)) +io.write(string.format(" already present: %d added: %d new mnemonic blocks: %d\n", present, added, created)) +io.write(" -> " .. TABLE .. "\n") +if added > 0 then + io.write(" NOTE: added rows carry a derived Clobber (dest = slot 0, later\n") + io.write(" register slots = reads). Review it for anything that also\n") + io.write(" touches NZCV/FPSR/memory before committing.\n") +end if #skips > 0 then io.write(" skipped "..#skips.." invalid arrangement(s)\n") end diff --git a/core/rexcode/isa/arm64/tables.odin b/core/rexcode/isa/arm64/tables.odin index b7bf2baff..a4ada97b1 100644 --- a/core/rexcode/isa/arm64/tables.odin +++ b/core/rexcode/isa/arm64/tables.odin @@ -25,14 +25,14 @@ Encode_Run :: struct { Decode_Entry :: struct #packed { mnemonic: Mnemonic, // 2 - ops: [4]Operand_Type, // 4 - enc: [4]Operand_Encoding, // 4 + ops: [5]Operand_Type, // 4 + enc: [5]Operand_Encoding, // 4 bits: u32, // 4 mask: u32, // 4 feature: Feature, // 1 flags: Encoding_Flags, // 1 } -#assert(size_of(Decode_Entry) == 20) +#assert(size_of(Decode_Entry) == 22) Decode_Index :: struct #packed { start: u16, @@ -44,10 +44,11 @@ Decode_Index :: struct #packed { // Loaded tables (rodata, embedded from tables/*.bin at compile time) // ----------------------------------------------------------------------------- -@(rodata) ENCODE_FORMS := #load("tables/arm64.encode_forms.bin", []Encoding) -@(rodata) ENCODE_RUNS := #load("tables/arm64.encode_runs.bin", []Encode_Run) -@(rodata) DECODE_ENTRIES := #load("tables/arm64.entries.bin", []Decode_Entry) -@(rodata) DECODE_INDEX_OP0 := #load("tables/arm64.idx_op0.bin", []Decode_Index) +@(rodata) ENCODE_FORMS := #load("tables/arm64.encode_forms.bin", []Encoding) +@(rodata) CLOBBER_FORMS := #load("tables/arm64.clobber_forms.bin", []Clobber) +@(rodata) ENCODE_RUNS := #load("tables/arm64.encode_runs.bin", []Encode_Run) +@(rodata) DECODE_ENTRIES := #load("tables/arm64.entries.bin", []Decode_Entry) +@(rodata) DECODE_INDEX_OP0 := #load("tables/arm64.idx_op0.bin", []Decode_Index) // ----------------------------------------------------------------------------- // Accessors diff --git a/core/rexcode/isa/arm64/tables/arm64.clobber_forms.bin b/core/rexcode/isa/arm64/tables/arm64.clobber_forms.bin new file mode 100644 index 000000000..fa2beb918 Binary files /dev/null and b/core/rexcode/isa/arm64/tables/arm64.clobber_forms.bin differ diff --git a/core/rexcode/isa/arm64/tables/arm64.encode_forms.bin b/core/rexcode/isa/arm64/tables/arm64.encode_forms.bin index 9892adce1..bda66033a 100644 Binary files a/core/rexcode/isa/arm64/tables/arm64.encode_forms.bin and b/core/rexcode/isa/arm64/tables/arm64.encode_forms.bin differ diff --git a/core/rexcode/isa/arm64/tables/arm64.encode_runs.bin b/core/rexcode/isa/arm64/tables/arm64.encode_runs.bin index 1972b56b3..8dcfe0ea5 100644 Binary files a/core/rexcode/isa/arm64/tables/arm64.encode_runs.bin and b/core/rexcode/isa/arm64/tables/arm64.encode_runs.bin differ diff --git a/core/rexcode/isa/arm64/tables/arm64.entries.bin b/core/rexcode/isa/arm64/tables/arm64.entries.bin index 41e62edba..81d535979 100644 Binary files a/core/rexcode/isa/arm64/tables/arm64.entries.bin and b/core/rexcode/isa/arm64/tables/arm64.entries.bin differ diff --git a/core/rexcode/isa/arm64/tables/arm64.idx_op0.bin b/core/rexcode/isa/arm64/tables/arm64.idx_op0.bin index 2d840bd71..b5a088486 100644 Binary files a/core/rexcode/isa/arm64/tables/arm64.idx_op0.bin and b/core/rexcode/isa/arm64/tables/arm64.idx_op0.bin differ diff --git a/core/rexcode/isa/arm64/tests/bench.odin b/core/rexcode/isa/arm64/tests/bench.odin new file mode 100644 index 000000000..29356a63e --- /dev/null +++ b/core/rexcode/isa/arm64/tests/bench.odin @@ -0,0 +1,204 @@ +// rexcode · Brendan Punsky (dotbmp@github), original author + +package rexcode_arm64_tests + +// Encode / decode / print throughput benchmarks, at three working-set sizes so +// the cache story is visible (Instruction is 64 bytes, so the instruction +// array is inst_count * 64B; the code buffer is inst_count * 4B on top). +// +// Run with: odin run arm64/tests -o:speed -- bench +// +// The instruction mix deliberately covers the operand kinds with distinct +// encoder paths: plain registers, immediates, shifted/extended registers, +// every common addressing mode, condition codes, FP/NEON registers, and the +// MRS/MSR system-register path. + +import "core:fmt" +import "core:strings" +import "core:time" +import a "../" + +@(private="file") +Working_Set :: struct { + name: string, + inst_count: int, +} + +@(private="file") +WORKING_SETS :: [3]Working_Set{ + {"32KB (L1)", 512}, + {"512KB (L2)", 8192}, + {"16MB (RAM)", 262144}, +} + +// Total instructions pushed through encode/decode per measurement, so every +// working set does the same amount of work and only residency differs. +@(private="file") ENCODE_DECODE_WORK :: 33_554_432 +// The printer is roughly an order of magnitude slower, so it gets less. +@(private="file") PRINT_WORK :: 4_194_304 + +// One block of the mix; repeated to fill each working set. Kept free of +// RELATIVE operands so no label plumbing is needed and every iteration is +// self-contained. The literal is local to this frame, so the block is only +// valid while `fill_instructions` runs -- it is copied out, never returned. +@(private="file") +fill_instructions :: proc(instructions: ^[dynamic]a.Instruction, inst_count: int) { + block := []a.Instruction{ + // Data-processing: immediates, plain / shifted / extended registers. + a.inst_r_r_i(.ADD, a.X0, a.X1, 100), + a.inst_r_r_i(.SUB, a.W2, a.W3, 257), + a.inst_mov_imm(.MOVZ, a.X4, 0x1234, 1), + a.inst_mov_imm(.MOVK, a.X4, 0x5678, 0), + {mnemonic = .ADD, operand_count = 3, length = 4, + ops = {a.op_reg(a.X5), a.op_reg(a.X6), a.op_shifted(a.X7, .LSL, 3), {}, {}}}, + {mnemonic = .SUB, operand_count = 3, length = 4, + ops = {a.op_reg(a.X8), a.op_reg(a.X9), a.op_extended(a.W10, .SXTW, 2), {}, {}}}, + a.inst_r_r_r(.LSL, a.X11, a.X12, a.X13), + a.inst_r_r_r(.UDIV, a.X14, a.X15, a.X16), + a.inst_r_r_r_r(.MADD, a.X17, a.X18, a.X19, a.X20), + a.inst_r_r(.CLZ, a.X21, a.X22), + {mnemonic = .CSEL, operand_count = 4, length = 4, + ops = {a.op_reg(a.X0), a.op_reg(a.X1), a.op_reg(a.X2), a.op_cond(.GT), {}}}, + + // Loads / stores: unsigned offset, pre/post-indexed, register offset, + // and a pair. + a.inst_ldst(.LDR, a.X0, a.mem_offset(a.X1, 64)), + a.inst_ldst(.STR, a.X2, a.mem_offset(a.SP, 16)), + a.inst_ldst(.LDR, a.X3, a.mem_pre(a.X4, -32)), + a.inst_ldst(.STR, a.X5, a.mem_post(a.X6, 48)), + a.inst_ldst(.LDR, a.X7, a.mem_reg(a.X8, a.X9, 3)), + a.inst_ldst(.LDRB, a.W10, a.mem_reg(a.X11, a.X12)), + a.inst_ldp_stp(.LDP, a.X13, a.X14, a.mem_offset(a.X15, 96)), + a.inst_ldp_stp(.STP, a.X16, a.X17, a.mem_pre(a.SP, -64)), + + // FP scalar and NEON vector. + a.inst_r_r_r(.FADD, a.d_reg(0), a.d_reg(1), a.d_reg(2)), + a.inst_r_r_r(.FMUL, a.s_reg(3), a.s_reg(4), a.s_reg(5)), + a.inst_r_r(.FABS, a.d_reg(6), a.d_reg(7)), + {mnemonic = .ADD, operand_count = 3, length = 4, + ops = {a.op_v_16b(a.V0), a.op_v_16b(a.V1), a.op_v_16b(a.V2), {}, {}}}, + {mnemonic = .FADD, operand_count = 3, length = 4, + ops = {a.op_v_4s(a.V3), a.op_v_4s(a.V4), a.op_v_4s(a.V5), {}, {}}}, + + // System registers -- the path the sysreg/register merge changes. + a.inst_mrs_r_s(a.X23, a.NZCV), + a.inst_msr_s_r(a.FPCR, a.X24), + a.inst_mrs_r_s(a.X25, a.ELR_EL1), + + a.inst_none(.NOP), + } + + clear(instructions) + for len(instructions) < inst_count { + remaining := inst_count - len(instructions) + if remaining >= len(block) { + append(instructions, ..block) + } else { + append(instructions, ..block[:remaining]) + } + } +} + +run_benchmarks :: proc() { + fmt.println("=== AArch64 encode/decode/print benchmarks ===") + fmt.printfln(" size_of(Register) = %d", size_of(a.Register)) + fmt.printfln(" size_of(Operand) = %d", size_of(a.Operand)) + fmt.printfln(" size_of(Memory) = %d", size_of(a.Memory)) + fmt.printfln(" size_of(Instruction) = %d", size_of(a.Instruction)) + fmt.println() + + instructions: [dynamic]a.Instruction + defer delete(instructions) + + relocs: [dynamic]a.Relocation + errors: [dynamic]a.Error + defer delete(relocs) + defer delete(errors) + + decoded: [dynamic]a.Instruction + inst_info: [dynamic]a.Instruction_Info + label_defs: [dynamic]a.Label_Definition + defer delete(decoded) + defer delete(inst_info) + defer delete(label_defs) + + builder := strings.builder_make() + defer strings.builder_destroy(&builder) + + working_sets := WORKING_SETS + for ws in working_sets { + fill_instructions(&instructions, ws.inst_count) + + code_buffer := make([]u8, ws.inst_count * 4) + defer delete(code_buffer) + + // Correctness gate: the whole mix must encode cleanly, and decode must + // give back one instruction per word, or the numbers mean nothing. + { + clear(&relocs) + clear(&errors) + byte_count, success := a.encode(instructions[:], nil, code_buffer, &relocs, &errors) + if !success || int(byte_count) != ws.inst_count * 4 { + fmt.printfln(" [FAIL] %s: bench mix does not encode (bytes=%d, errors=%d)", + ws.name, byte_count, len(errors)) + for e in errors { + fmt.printfln(" inst %d: %v", e.inst_idx, e.code) + } + return + } + clear(&decoded) + clear(&inst_info) + clear(&label_defs) + clear(&errors) + _, dec_success := a.decode(code_buffer, nil, &decoded, &inst_info, &label_defs, &errors) + if !dec_success || len(decoded) != ws.inst_count { + fmt.printfln(" [FAIL] %s: bench mix does not decode (insts=%d, errors=%d)", + ws.name, len(decoded), len(errors)) + return + } + } + + iterations := ENCODE_DECODE_WORK / ws.inst_count + + // ---- Encode -------------------------------------------------------- + encode_start := time.now() + for _ in 0.. (the word is fully + // determined by the 15-bit field, so the expected bytes derive from the + // table value), decode it back to the same register, and print it by + // name. Guards the field's placement in `Register` end to end. + { + mismatches := 0 + for entry in a.SYSREG_NAMES { + clear(&relocs) + clear(&errors) + sr := a.sysreg_from_bits(u32(entry.value)) + insts := []a.Instruction{ + a.Instruction{ + mnemonic = .MRS, operand_count = 2, length = 4, + ops = {a.op_reg(a.X0), a.op_sysreg(sr), {}, {}, {}}, + }, + } + _, success := a.encode(insts, nil, code[:], &relocs, &errors) + want := u32(0xD5300000) | u32(entry.value) << 5 + if !success || load_le(code[:], 0) != want { + fmt.printfln(" [FAIL] sysreg %s: encode got=%08x want=%08x", + entry.name, load_le(code[:], 0), want) + mismatches += 1 + continue + } + + d_insts: [dynamic]a.Instruction + d_info: [dynamic]a.Instruction_Info + d_labels: [dynamic]a.Label_Definition + defer delete(d_insts) + defer delete(d_info) + defer delete(d_labels) + clear(&errors) + _, d_success := a.decode(code[:4], nil, &d_insts, &d_info, &d_labels, &errors) + if !d_success || len(d_insts) != 1 || d_insts[0].ops[1].reg != sr { + fmt.printfln(" [FAIL] sysreg %s: decode", entry.name) + mismatches += 1 + continue + } + + text := a.aprint(d_insts[:], d_info[:], d_labels[:], + nil, nil, nil, context.temp_allocator) + want_text := fmt.tprintf(" mrs x0, %s\n", entry.name) + if text != want_text { + fmt.printfln(" [FAIL] sysreg %s: print got %q want %q", + entry.name, text, want_text) + mismatches += 1 + } + } + ok(fmt.tprintf("sysreg: all %d named registers round-trip", len(a.SYSREG_NAMES)), + mismatches == 0) + } + + // ---- 42. Extended-register addressing: [Xn, Wm|Xm, {#s}] ---- + // Register offset and extended-register offset are one instruction + // word (option at 15:13 selects LSL/UXTW/SXTW/SXTX), served by the one + // MEM_REG form. Golden words from llvm-mc --triple=aarch64. + { + clear(&relocs); clear(&errors) + for i in 0.. arm64 pipeline: %d passed, %d failed", rpasses, rfailures) if rfailures > 0 { os.exit(1) } diff --git a/core/rexcode/isa/arm64/tests/smoke.odin b/core/rexcode/isa/arm64/tests/smoke.odin index 56bddcb92..ec2f191f6 100644 --- a/core/rexcode/isa/arm64/tests/smoke.odin +++ b/core/rexcode/isa/arm64/tests/smoke.odin @@ -36,12 +36,19 @@ check :: proc(name: string, m: a.Mnemonic, idx: int, want_bits, want_mask: u32) } main :: proc() { + for arg in os.args[1:] { + if arg == "bench" { + run_benchmarks() + return + } + } + fmt.println("=== AArch64 encoding-table spot checks ===") // ---- Data-proc immediate ------------------------------------------------ - check("ADD imm 32", .ADD_IMM, 0, 0x11000000, 0xFF800000) - check("ADD imm 64", .ADD_IMM, 1, 0x91000000, 0xFF800000) - check("SUBS imm 64", .SUBS_IMM, 1, 0xF1000000, 0xFF800000) + check("ADD imm 32", .ADD, 0, 0x11000000, 0xFF800000) + check("ADD imm 64", .ADD, 1, 0x91000000, 0xFF800000) + check("SUBS imm 64", .SUBS, 1, 0xF1000000, 0xFF800000) check("MOVZ 32", .MOVZ, 0, 0x52800000, 0xFF800000) check("MOVZ 64", .MOVZ, 1, 0xD2800000, 0xFF800000) check("MOVN 64", .MOVN, 1, 0x92800000, 0xFF800000) @@ -50,27 +57,27 @@ main :: proc() { check("ADRP", .ADRP, 0, 0x90000000, 0x9F000000) // ---- Data-proc shifted register ----------------------------------------- - check("ADD SR 64", .ADD_SR, 1, 0x8B000000, 0xFF200000) - check("SUBS SR 64", .SUBS_SR, 1, 0xEB000000, 0xFF200000) - check("AND SR 32", .AND_SR, 0, 0x0A000000, 0xFF200000) - check("BIC SR 64", .BIC_SR, 1, 0x8A200000, 0xFF200000) - check("ORR SR 64", .ORR_SR, 1, 0xAA000000, 0xFF200000) - check("ORN SR 64", .ORN_SR, 1, 0xAA200000, 0xFF200000) - check("EOR SR 64", .EOR_SR, 1, 0xCA000000, 0xFF200000) - check("EON SR 64", .EON_SR, 1, 0xCA200000, 0xFF200000) - check("ANDS SR 64", .ANDS_SR, 1, 0xEA000000, 0xFF200000) + check("ADD SR 64", .ADD, 3, 0x8B000000, 0xFF200000) + check("SUBS SR 64", .SUBS, 3, 0xEB000000, 0xFF200000) + check("AND SR 32", .AND, 0, 0x0A000000, 0xFF200000) + check("BIC SR 64", .BIC, 1, 0x8A200000, 0xFF200000) + check("ORR SR 64", .ORR, 1, 0xAA000000, 0xFF200000) + check("ORN SR 64", .ORN, 1, 0xAA200000, 0xFF200000) + check("EOR SR 64", .EOR, 1, 0xCA000000, 0xFF200000) + check("EON SR 64", .EON, 1, 0xCA200000, 0xFF200000) + check("ANDS SR 64", .ANDS, 1, 0xEA000000, 0xFF200000) // ---- Data-proc extended register ---------------------------------------- - check("ADD ER 64", .ADD_ER, 1, 0x8B200000, 0xFFE00000) - check("SUBS ER 64", .SUBS_ER, 1, 0xEB200000, 0xFFE00000) + check("ADD ER 64", .ADD, 5, 0x8B200000, 0xFFE00000) + check("SUBS ER 64", .SUBS, 5, 0xEB200000, 0xFFE00000) // ---- Data-proc 2-source ------------------------------------------------- check("UDIV 64", .UDIV, 1, 0x9AC00800, 0xFFE0FC00) check("SDIV 64", .SDIV, 1, 0x9AC00C00, 0xFFE0FC00) - check("LSLV 64", .LSLV, 1, 0x9AC02000, 0xFFE0FC00) - check("LSRV 64", .LSRV, 1, 0x9AC02400, 0xFFE0FC00) - check("ASRV 64", .ASRV, 1, 0x9AC02800, 0xFFE0FC00) - check("RORV 64", .RORV, 1, 0x9AC02C00, 0xFFE0FC00) + check("LSL 64", .LSL, 1, 0x9AC02000, 0xFFE0FC00) + check("LSR 64", .LSR, 1, 0x9AC02400, 0xFFE0FC00) + check("ASR 64", .ASR, 1, 0x9AC02800, 0xFFE0FC00) + check("ROR 64", .ROR, 1, 0x9AC02C00, 0xFFE0FC00) // ---- Data-proc 3-source ------------------------------------------------- check("MADD 64", .MADD, 1, 0x9B000000, 0xFFE08000) @@ -97,7 +104,8 @@ main :: proc() { // ---- Branches ----------------------------------------------------------- check("B", .B, 0, 0x14000000, 0xFC000000) check("BL", .BL, 0, 0x94000000, 0xFC000000) - check("B.cond", .B_COND, 0, 0x54000000, 0xFF000010) + check("B.eq", .B_EQ, 0, 0x54000000, 0xFF00001F) + check("B.le", .B_LE, 0, 0x5400000D, 0xFF00001F) check("CBZ 64", .CBZ, 1, 0xB4000000, 0xFF000000) check("CBNZ 64", .CBNZ, 1, 0xB5000000, 0xFF000000) check("TBZ", .TBZ, 0, 0x36000000, 0x7F000000) @@ -118,7 +126,7 @@ main :: proc() { check("LDRSW", .LDRSW, 0, 0xB9800000, 0xFFC00000) check("LDP X", .LDP, 1, 0xA9400000, 0xFFC00000) check("STP X", .STP, 1, 0xA9000000, 0xFFC00000) - check("LDR literal X", .LDR_LIT, 1, 0x58000000, 0xFF000000) + check("LDR literal X", .LDR, 3, 0x58000000, 0xFF000000) // ---- System ------------------------------------------------------------- check("NOP", .NOP, 0, 0xD503201F, 0xFFFFFFFF) @@ -134,7 +142,7 @@ main :: proc() { check("HLT", .HLT, 0, 0xD4400000, 0xFFE0001F) check("ERET", .ERET, 0, 0xD69F03E0, 0xFFFFFFFF) check("MRS", .MRS, 0, 0xD5300000, 0xFFF00000) - check("MSR reg", .MSR_REG, 0, 0xD5100000, 0xFFF00000) + check("MSR reg", .MSR, 1, 0xD5100000, 0xFFF00000) // ---- FP scalar ---------------------------------------------------------- check("FABS S", .FABS, 0, 0x1E20C000, 0xFFFFFC00) @@ -164,81 +172,81 @@ main :: proc() { check("UCVTF D<-X", .UCVTF, 3, 0x9E630000, 0xFFFFFC00) check("FCVTZS X<-D", .FCVTZS, 3, 0x9E780000, 0xFFFFFC00) check("FCVTZU X<-D", .FCVTZU, 3, 0x9E790000, 0xFFFFFC00) - check("FMOV S<-S", .FMOV_REG, 0, 0x1E204000, 0xFFFFFC00) - check("FMOV W<-S", .FMOV_GEN, 0, 0x1E260000, 0xFFFFFC00) - check("FMOV S<-W", .FMOV_GEN, 1, 0x1E270000, 0xFFFFFC00) - check("FMOV X<-D", .FMOV_GEN, 2, 0x9E660000, 0xFFFFFC00) - check("FMOV D<-X", .FMOV_GEN, 3, 0x9E670000, 0xFFFFFC00) + check("FMOV S<-S", .FMOV, 0, 0x1E204000, 0xFFFFFC00) + check("FMOV W<-S", .FMOV, 5, 0x1E260000, 0xFFFFFC00) + check("FMOV S<-W", .FMOV, 6, 0x1E270000, 0xFFFFFC00) + check("FMOV X<-D", .FMOV, 7, 0x9E660000, 0xFFFFFC00) + check("FMOV D<-X", .FMOV, 8, 0x9E670000, 0xFFFFFC00) // ---- Bitmask logical immediate ------------------------------------------ - check("AND_IMM 32", .AND_IMM, 0, 0x12000000, 0xFFC00000) - check("AND_IMM 64", .AND_IMM, 1, 0x92000000, 0xFF800000) - check("ORR_IMM 64", .ORR_IMM, 1, 0xB2000000, 0xFF800000) - check("EOR_IMM 64", .EOR_IMM, 1, 0xD2000000, 0xFF800000) - check("ANDS_IMM 64", .ANDS_IMM, 1, 0xF2000000, 0xFF800000) - check("TST_IMM 64", .TST_IMM, 1, 0xF200001F, 0xFF80001F) + check("AND 32", .AND, 2, 0x12000000, 0xFFC00000) + check("AND 64", .AND, 3, 0x92000000, 0xFF800000) + check("ORR 64", .ORR, 3, 0xB2000000, 0xFF800000) + check("EOR 64", .EOR, 3, 0xD2000000, 0xFF800000) + check("ANDS 64", .ANDS, 3, 0xF2000000, 0xFF800000) + check("TST 64", .TST, 1, 0xF200001F, 0xFF80001F) // ---- SVE -- vectors unpredicated ---------------------------------------- - check("SVE_ADD_Z B", .SVE_ADD_Z, 0, 0x04200000, 0xFFE0FC00) - check("SVE_ADD_Z S", .SVE_ADD_Z, 2, 0x04A00000, 0xFFE0FC00) - check("SVE_SUB_Z D", .SVE_SUB_Z, 3, 0x04E00400, 0xFFE0FC00) - check("SVE_SQADD_Z H", .SVE_SQADD_Z,1, 0x04601000, 0xFFE0FC00) + check("ADD B", .ADD, 13, 0x04200000, 0xFFE0FC00) + check("ADD S", .ADD, 15, 0x04A00000, 0xFFE0FC00) + check("SUB D", .SUB, 13, 0x04E00400, 0xFFE0FC00) + check("SQADD H", .SQADD,8, 0x04601000, 0xFFE0FC00) // ---- SVE -- vectors predicated ------------------------------------------ - check("SVE_ADD_PRED B", .SVE_ADD_PRED, 0, 0x04000000, 0xFFE0E000) - check("SVE_MUL_PRED S", .SVE_MUL_PRED, 2, 0x04900000, 0xFFE0E000) - check("SVE_SDIV S", .SVE_SDIV_PRED, 0, 0x04940000, 0xFFE0E000) - check("SVE_ASR_PRED D", .SVE_ASR_PRED, 3, 0x04D08000, 0xFFE0E000) - check("SVE_NEG_PRED D", .SVE_NEG_PRED, 3, 0x04D7A000, 0xFFE0E000) + check("ADD B", .ADD, 17, 0x04000000, 0xFFFFE000) + check("MUL S", .MUL, 5, 0x04900000, 0xFFFFE000) + check("SVE_SDIV S", .SDIV, 2, 0x04940000, 0xFFFFE000) + check("ASR D", .ASR, 5, 0x04D08000, 0xFFFFE000) + check("NEG D", .NEG, 10, 0x04D7A000, 0xFFF7E000) // ---- SVE -- bitwise predicated ------------------------------------------ - check("SVE_AND_PRED D", .SVE_AND_PRED, 0, 0x041A0000, 0xFFFFE000) - check("SVE_EOR_PRED D", .SVE_EOR_PRED, 0, 0x04190000, 0xFFFFE000) + check("AND D", .AND, 5, 0x041A0000, 0xFFFFE000) + check("EOR D", .EOR, 5, 0x04190000, 0xFFFFE000) // ---- SVE -- FP unpredicated --------------------------------------------- - check("SVE_FADD_Z S", .SVE_FADD_Z, 1, 0x65800000, 0xFFE0FC00) - check("SVE_FMUL_Z D", .SVE_FMUL_Z, 2, 0x65C00800, 0xFFE0FC00) + check("FADD S", .FADD, 7, 0x65800000, 0xFFE0FC00) + check("FMUL D", .FMUL, 8, 0x65C00800, 0xFFE0FC00) // ---- SVE -- FP predicated ----------------------------------------------- - check("SVE_FADD_PRED S",.SVE_FADD_PRED, 1, 0x65808000, 0xFFE0E000) - check("SVE_FMLA S", .SVE_FMLA, 1, 0x65A00000, 0xFFE0E000) + check("FADD S",.FADD, 10, 0x65808000, 0xFFFFE000) + check("FMLA S", .FMLA, 3, 0x65A00000, 0xFFE0E000) // ---- SVE -- predicate logical ------------------------------------------- - check("SVE_AND_P", .SVE_AND_P, 0, 0x25004000, 0xFFE0C210) - check("SVE_ORR_P", .SVE_ORR_P, 0, 0x25804000, 0xFFE0C210) - check("SVE_SEL_P", .SVE_SEL_P, 0, 0x25004210, 0xFFE0C210) - check("SVE_PTRUE", .SVE_PTRUE, 0, 0x2518E000, 0xFFFFFC10) - check("SVE_PFALSE", .SVE_PFALSE, 0, 0x2518E400, 0xFFFFFFF0) + check("SVE_AND_P", .AND, 9, 0x25004000, 0xFFE0C210) + check("SVE_ORR_P", .ORR, 9, 0x25804000, 0xFFE0C210) + check("SVE_SEL_P", .SEL, 0, 0x25004210, 0xFFE0C210) + check("SVE_PTRUE", .PTRUE, 0, 0x2518E000, 0xFFFFFC10) + check("SVE_PFALSE", .PFALSE, 0, 0x2518E400, 0xFFFFFFF0) // ---- SVE -- compares ---------------------------------------------------- - check("SVE_CMPEQ B", .SVE_CMPEQ, 0, 0x2400A000, 0xFFE0E000) - check("SVE_CMPGT S", .SVE_CMPGT, 2, 0x24808010, 0xFFE0E010) - check("SVE_CMPHS D", .SVE_CMPHS, 3, 0x24C00000, 0xFFE0E010) + check("CMPEQ B", .CMPEQ, 0, 0x2400A000, 0xFFE0E000) + check("CMPGT S", .CMPGT, 2, 0x24808010, 0xFFE0E010) + check("CMPHS D", .CMPHS, 3, 0x24C00000, 0xFFE0E010) // ---- SVE -- loads/stores ----------------------------------------------- - check("SVE_LD1B", .SVE_LD1B, 0, 0xA4004000, 0xFFE0E000) - check("SVE_LD1D", .SVE_LD1D, 0, 0xA5E04000, 0xFFE0E000) - check("SVE_ST1W", .SVE_ST1W, 0, 0xE5404000, 0xFFE0E000) + check("SVE_LD1B", .LD1B, 0, 0xA4004000, 0xFFE0E000) + check("SVE_LD1D", .LD1D, 0, 0xA5E04000, 0xFFE0E000) + check("SVE_ST1W", .ST1W, 0, 0xE5404000, 0xFFE0E000) // ---- SVE permute ------------------------------------------------------- - check("SVE_ZIP1_Z B", .SVE_ZIP1_Z, 0, 0x05206000, 0xFFE0FC00) - check("SVE_UZP2_Z S", .SVE_UZP2_Z, 2, 0x05A06C00, 0xFFE0FC00) - check("SVE_TBL B", .SVE_TBL, 0, 0x05203000, 0xFFE0FC00) + check("ZIP1 B", .ZIP1, 7, 0x05206000, 0xFFE0FC00) + check("UZP2 S", .UZP2, 9, 0x05A06C00, 0xFFE0FC00) + check("TBL B", .TBL, 2, 0x05203000, 0xFFE0FC00) // ---- SVE2 --------------------------------------------------------------- - check("SVE_WHILELT 64", .SVE_WHILELT, 0, 0x25201400, 0xFF20FC10) - check("SVE_SQRDMLAH B", .SVE_SQRDMLAH, 0, 0x44007000, 0xFFE0FC00) - check("SVE_AESE", .SVE_AESE, 0, 0x4522E000, 0xFFFFFC00) - check("SVE_MATCH B", .SVE_MATCH, 0, 0x45208000, 0xFFE0E010) + check("WHILELT 64", .WHILELT, 0, 0x25201400, 0xFFE0FC10) + check("SQRDMLAH B", .SQRDMLAH, 0, 0x44007000, 0xFFE0FC00) + check("SVE_AESE", .AESE, 1, 0x4522E000, 0xFFFFFC00) + check("MATCH B", .MATCH, 0, 0x45208000, 0xFFE0E010) // ---- SME ---------------------------------------------------------------- - check("SME_SMSTART", .SME_SMSTART, 0, 0xD503477F, 0xFFFFFFFF) - check("SME_SMSTOP", .SME_SMSTOP, 0, 0xD503467F, 0xFFFFFFFF) - check("SME_RDSVL", .SME_RDSVL, 0, 0x04BF5800, 0xFFFFFC00) - check("SME_FMOPA S", .SME_FMOPA, 0, 0x80800000, 0xFFE08010) - check("SME_BFMOPA", .SME_BFMOPA, 0, 0x81800000, 0xFFE08010) - check("SME_SMOPA S", .SME_SMOPA, 0, 0xA0800000, 0xFFE08010) - check("SME_UMOPA D", .SME_UMOPA, 1, 0xA1E00000, 0xFFE08010) + check("SME_SMSTART", .SMSTART, 0, 0xD503477F, 0xFFFFFFFF) + check("SME_SMSTOP", .SMSTOP, 0, 0xD503467F, 0xFFFFFFFF) + check("SME_RDSVL", .RDSVL, 0, 0x04BF5800, 0xFFFFF800) + check("FMOPA S", .FMOPA, 0, 0x80800000, 0xFFE08010) + check("SME_BFMOPA", .BFMOPA, 0, 0x81800000, 0xFFE08010) + check("SMOPA S", .SMOPA, 0, 0xA0800000, 0xFFE08010) + check("UMOPA D", .UMOPA, 1, 0xA1E00000, 0xFFE08010) // ---- Apple AMX ---------------------------------------------------------- check("AMX_LDX", .AMX_LDX, 0, 0x00201000, 0xFFFFFFE0) @@ -260,8 +268,8 @@ main :: proc() { check("CPYFM", .CPYFM, 0, 0x19400400, 0xFFE03C00) check("CPYFE", .CPYFE, 0, 0x19800400, 0xFFE03C00) check("SETP", .SETP, 0, 0x19C00400, 0xFFE03C00) - check("SETM", .SETM, 0, 0x19C04400, 0xFFE03C00) - check("SETE", .SETE, 0, 0x19C08400, 0xFFE03C00) + check("SETM", .SETM, 0, 0x19C04400, 0xFFE07C00) + check("SETE", .SETE, 0, 0x19C08400, 0xFFE0BC00) // ---- Cache management --------------------------------------------------- check("DC IVAC", .DC_IVAC, 0, 0xD5087620, 0xFFFFFFE0) @@ -286,95 +294,95 @@ main :: proc() { // ---- PRFM --------------------------------------------------------------- check("PRFM", .PRFM, 0, 0xF9800000, 0xFFC00000) check("PRFUM", .PRFUM, 0, 0xF8800000, 0xFFE00C00) - check("PRFM_LIT", .PRFM_LIT, 0, 0xD8000000, 0xFF000000) + check("PRFM_LIT", .PRFM, 1, 0xD8000000, 0xFF000000) // ---- Aliases ------------------------------------------------------------ - check("MOV_REG 32", .MOV_REG, 0, 0x2A0003E0, 0xFFE0FFE0) - check("MOV_REG 64", .MOV_REG, 1, 0xAA0003E0, 0xFFE0FFE0) - check("MOV_BITMASK 64", .MOV_BITMASK, 1, 0xB20003E0, 0xFF8003E0) - check("MVN 64", .MVN, 1, 0xAA2003E0, 0xFFE0FFE0) - check("NEG_SR 64", .NEG_SR, 1, 0xCB0003E0, 0xFF2003E0) + check("MOV 32", .MOV, 8, 0x2A0003E0, 0xFFE0FFE0) + check("MOV 64", .MOV, 9, 0xAA0003E0, 0xFFE0FFE0) + check("MOV 64", .MOV, 11, 0xB20003E0, 0xFF8003E0) + check("MVN 64", .MVN, 3, 0xAA2003E0, 0xFFE0FFE0) + check("NEG 64", .NEG, 12, 0xCB0003E0, 0xFF2003E0) check("NEGS 64", .NEGS, 1, 0xEB0003E0, 0xFF2003E0) - check("CMP_SR 64", .CMP_SR, 1, 0xEB00001F, 0xFF20001F) - check("CMP_ER 64", .CMP_ER, 1, 0xEB20001F, 0xFFE0001F) - check("CMP_IMM 64", .CMP_IMM, 1, 0xF100001F, 0xFF80001F) - check("CMN_SR 64", .CMN_SR, 1, 0xAB00001F, 0xFF20001F) - check("CMN_IMM 64", .CMN_IMM, 1, 0xB100001F, 0xFF80001F) - check("TST_SR 64", .TST_SR, 1, 0xEA00001F, 0xFF20001F) + check("CMP 64", .CMP, 1, 0xEB00001F, 0xFF20001F) + check("CMP 64", .CMP, 3, 0xEB20001F, 0xFFE0001F) + check("CMP 64", .CMP, 5, 0xF100001F, 0xFF80001F) + check("CMN 64", .CMN, 1, 0xAB00001F, 0xFF20001F) + check("CMN 64", .CMN, 5, 0xB100001F, 0xFF80001F) + check("TST 64", .TST, 3, 0xEA00001F, 0xFF20001F) // ---- SVE indexed FMLA / FMLS --------------------------------------- - check("SVE_FMLA_IDX_H", .SVE_FMLA_IDX_H, 0, 0x64200000, 0xFFA0FC00) - check("SVE_FMLA_IDX_S", .SVE_FMLA_IDX_S, 0, 0x64A00000, 0xFFE0FC00) - check("SVE_FMLA_IDX_D", .SVE_FMLA_IDX_D, 0, 0x64E00000, 0xFFE0FC00) - check("SVE_FMLS_IDX_S", .SVE_FMLS_IDX_S, 0, 0x64A00400, 0xFFE0FC00) - check("SVE_FMLS_IDX_D", .SVE_FMLS_IDX_D, 0, 0x64E00400, 0xFFE0FC00) + check("SVE_FMLA_IDX_H", .FMLA, 5, 0x64200000, 0xFFA0FC00) + check("SVE_FMLA_IDX_S", .FMLA, 6, 0x64A00000, 0xFFE0FC00) + check("SVE_FMLA_IDX_D", .FMLA, 7, 0x64E00000, 0xFFE0FC00) + check("SVE_FMLS_IDX_S", .FMLS, 6, 0x64A00400, 0xFFE0FC00) + check("SVE_FMLS_IDX_D", .FMLS, 7, 0x64E00400, 0xFFE0FC00) // ---- SVE gather loads ---------------------------------------------- - check("SVE_LD1B_GATHER_S", .SVE_LD1B_GATHER_S, 0, 0x84004000, 0xFFA0E000) - check("SVE_LD1W_GATHER_D", .SVE_LD1W_GATHER_D, 0, 0xC5004000, 0xFFA0E000) - check("SVE_LD1D_GATHER_D", .SVE_LD1D_GATHER_D, 0, 0xC5804000, 0xFFA0E000) - check("SVE_LD1SB_GATHER_S",.SVE_LD1SB_GATHER_S,0, 0x84000000, 0xFFA0E000) - check("SVE_LD1SW_GATHER_D",.SVE_LD1SW_GATHER_D,0, 0xC5000000, 0xFFA0E000) + check("SVE_LD1B_GATHER_S", .LD1B, 1, 0x84004000, 0xFFA0E000) + check("SVE_LD1W_GATHER_D", .LD1W, 2, 0xC5004000, 0xFFA0E000) + check("SVE_LD1D_GATHER_D", .LD1D, 1, 0xC5804000, 0xFFA0E000) + check("SVE_LD1SB_GATHER_S",.LD1SB,1, 0x84000000, 0xFFA0E000) + check("SVE_LD1SW_GATHER_D",.LD1SW,1, 0xC5000000, 0xFFA0E000) // ---- SVE scatter stores -------------------------------------------- - check("SVE_ST1B_SCATTER_S",.SVE_ST1B_SCATTER_S,0, 0xE4008000, 0xFFA0E000) - check("SVE_ST1W_SCATTER_S",.SVE_ST1W_SCATTER_S,0, 0xE5008000, 0xFFA0E000) - check("SVE_ST1D_SCATTER_D",.SVE_ST1D_SCATTER_D,0, 0xE5808000, 0xFFA0E000) + check("SVE_ST1B_SCATTER_S",.ST1B,1, 0xE4408000, 0xFFE0A000) + check("SVE_ST1W_SCATTER_S",.ST1W,1, 0xE5408000, 0xFFE0A000) + check("SVE_ST1D_SCATTER_D",.ST1D,1, 0xE5808000, 0xFFE0A000) // ---- SME tile slice memory ----------------------------------------- - check("SME_LD1B_TILE", .SME_LD1B_TILE, 0, 0xE0000000, 0xFFE00010) - check("SME_LD1H_TILE", .SME_LD1H_TILE, 0, 0xE0400000, 0xFFE00010) - check("SME_LD1W_TILE", .SME_LD1W_TILE, 0, 0xE0800000, 0xFFE00010) - check("SME_LD1D_TILE", .SME_LD1D_TILE, 0, 0xE0C00000, 0xFFE00010) - check("SME_LD1Q_TILE", .SME_LD1Q_TILE, 0, 0xE1C00000, 0xFFE00010) - check("SME_ST1B_TILE", .SME_ST1B_TILE, 0, 0xE0200000, 0xFFE00010) - check("SME_ST1W_TILE", .SME_ST1W_TILE, 0, 0xE0A00000, 0xFFE00010) - check("SME_MOVA_Z_FROM_TILE", .SME_MOVA_Z_FROM_TILE, 0, 0xC0020000, 0xFFE08010) - check("SME_MOVA_TILE_FROM_Z", .SME_MOVA_TILE_FROM_Z, 0, 0xC0000000, 0xFFE08010) + check("SME_LD1B_TILE", .LD1B, 3, 0xE0000000, 0xFFE00010) + check("SME_LD1H_TILE", .LD1H, 3, 0xE0400000, 0xFFE00010) + check("SME_LD1W_TILE", .LD1W, 3, 0xE0800000, 0xFFE00010) + check("SME_LD1D_TILE", .LD1D, 2, 0xE0C00000, 0xFFE00010) + check("SME_LD1Q_TILE", .LD1Q, 0, 0xE1C00000, 0xFFE00010) + check("SME_ST1B_TILE", .ST1B, 3, 0xE0200000, 0xFFE00010) + check("SME_ST1W_TILE", .ST1W, 3, 0xE0A00000, 0xFFE00010) + check("SME_MOVA_Z_FROM_TILE", .MOVA, 0, 0xC0020000, 0xFFE28010) + check("SME_MOVA_TILE_FROM_Z", .MOVA, 1, 0xC0000000, 0xFFE08010) // ---- NEON FCMLA / FCADD (v8.3-A FCMA) -- verified vs LLVM golden ----- - check("FCMLA_4H", .FCMLA_4H, 0, 0x2E40C400, 0xFFA0CC00) - check("FCMLA_8H", .FCMLA_8H, 0, 0x6E40C400, 0xFFA0CC00) - check("FCMLA_4S", .FCMLA_4S, 0, 0x6E80C400, 0xFFA0CC00) - check("FCMLA_2D", .FCMLA_2D, 0, 0x6EC0C400, 0xFFA0CC00) - check("FCADD_4H", .FCADD_4H, 0, 0x2E40E400, 0xFFA0EC00) - check("FCADD_4S", .FCADD_4S, 0, 0x6E80E400, 0xFFA0EC00) + check("FCMLA_4H", .FCMLA, 0, 0x2E40C400, 0xFFE0CC00) + check("FCMLA_8H", .FCMLA, 1, 0x6E40C400, 0xFFE0CC00) + check("FCMLA_4S", .FCMLA, 2, 0x6E80C400, 0xFFE0CC00) + check("FCMLA_2D", .FCMLA, 3, 0x6EC0C400, 0xFFE0CC00) + check("FCADD_4H", .FCADD, 0, 0x2E40E400, 0xFFE0EC00) + check("FCADD_4S", .FCADD, 2, 0x6E80E400, 0xFFA0EC00) // ---- SVE prefetch ---------------------------------------------------- - check("SVE_PRFB", .SVE_PRFB, 0, 0x8400C000, 0xFFE0E000) - check("SVE_PRFH", .SVE_PRFH, 0, 0x8480C000, 0xFFE0E000) - check("SVE_PRFW", .SVE_PRFW, 0, 0x8500C000, 0xFFE0E000) - check("SVE_PRFD", .SVE_PRFD, 0, 0x8580C000, 0xFFE0E000) + check("SVE_PRFB", .PRFB, 0, 0x8400C000, 0xFFE0E000) + check("SVE_PRFH", .PRFH, 0, 0x8480C000, 0xFFE0E000) + check("SVE_PRFW", .PRFW, 0, 0x8500C000, 0xFFE0E000) + check("SVE_PRFD", .PRFD, 0, 0x8580C000, 0xFFE0E000) // ---- SVE LDNT / STNT (non-temporal) ---------------------------------- - check("SVE_LDNT1B", .SVE_LDNT1B, 0, 0xA400C000, 0xFFE0E000) - check("SVE_LDNT1D", .SVE_LDNT1D, 0, 0xA580C000, 0xFFE0E000) - check("SVE_STNT1B", .SVE_STNT1B, 0, 0xE4006000, 0xFFE0E000) - check("SVE_STNT1D", .SVE_STNT1D, 0, 0xE5806000, 0xFFE0E000) + check("SVE_LDNT1B", .LDNT1B, 0, 0xA400C000, 0xFFE0E000) + check("SVE_LDNT1D", .LDNT1D, 0, 0xA580C000, 0xFFE0E000) + check("SVE_STNT1B", .STNT1B, 0, 0xE4006000, 0xFFE0E000) + check("SVE_STNT1D", .STNT1D, 0, 0xE5806000, 0xFFE0E000) // ---- SVE permute / init --------------------------------------------- - check("SVE_EXT", .SVE_EXT, 0, 0x05200000, 0xFFE0E000) - check("SVE_SPLICE", .SVE_SPLICE, 0, 0x052C8000, 0xFFFFE000) - check("SVE_INDEX_II",.SVE_INDEX_II,0,0x04204000, 0xFFE0FC00) - check("SVE_INDEX_RR",.SVE_INDEX_RR,0,0x04204C00, 0xFFE0FC00) + check("SVE_EXT", .EXT, 3, 0x05200000, 0xFFE0E000) + check("SVE_SPLICE", .SPLICE, 0, 0x052C8000, 0xFFFFE000) + check("SVE_INDEX_II",.INDEX,0,0x04204000, 0xFFE0FC00) + check("SVE_INDEX_RR",.INDEX,3,0x04204C00, 0xFFE0FC00) // ---- SVE2 bit-select family + polynomial multiply ------------------- - check("SVE_BSL", .SVE_BSL, 0, 0x04203C00, 0xFFE0FC00) - check("SVE_BSL1N", .SVE_BSL1N, 0, 0x04603C00, 0xFFE0FC00) - check("SVE_NBSL", .SVE_NBSL, 0, 0x04E03C00, 0xFFE0FC00) - check("SVE_PMUL_VEC",.SVE_PMUL_VEC,0,0x04206400, 0xFFE0FC00) - check("SVE_PMULLB", .SVE_PMULLB, 0, 0x45006800, 0xFFE0FC00) - check("SVE_PMULLT", .SVE_PMULLT, 0, 0x45006C00, 0xFFE0FC00) + check("SVE_BSL", .BSL, 1, 0x04203C00, 0xFFE0FC00) + check("SVE_BSL1N", .BSL1N, 0, 0x04603C00, 0xFFE0FC00) + check("SVE_NBSL", .NBSL, 0, 0x04E03C00, 0xFFE0FC00) + check("SVE_PMUL_VEC",.PMUL,0,0x04206400, 0xFFE0FC00) + check("SVE_PMULLB", .PMULLB, 0, 0x45C06800, 0xFFE0FC00) + check("SVE_PMULLT", .PMULLT, 0, 0x45C06C00, 0xFFE0FC00) // ---- SVE BF16 conversions ------------------------------------------- - check("SVE_BFCVT", .SVE_BFCVT, 0, 0x658AA000, 0xFFFFE000) - check("SVE_BFCVTNT", .SVE_BFCVTNT, 0, 0x648AA000, 0xFFFFE000) + check("SVE_BFCVT", .BFCVT, 1, 0x658AA000, 0xFFFFE000) + check("SVE_BFCVTNT", .BFCVTNT, 0, 0x648AA000, 0xFFFFE000) // ---- PAC-authenticated loads ---------------------------------------- check("LDRAA", .LDRAA, 0, 0xF8200400, 0xFFA00C00) check("LDRAB", .LDRAB, 0, 0xF8A00400, 0xFFA00C00) - check("LDRAA_PRE", .LDRAA_PRE, 0, 0xF8200C00, 0xFFA00C00) - check("LDRAB_PRE", .LDRAB_PRE, 0, 0xF8A00C00, 0xFFA00C00) + check("LDRAA_PRE", .LDRAA, 1, 0xF8200C00, 0xFFA00C00) + check("LDRAB_PRE", .LDRAB, 1, 0xF8A00C00, 0xFFA00C00) // ---- TME ------------------------------------------------------------ check("TSTART", .TSTART, 0, 0xD5233060, 0xFFFFFFE0) @@ -387,7 +395,8 @@ main :: proc() { check("WFIT", .WFIT, 0, 0xD5031020, 0xFFFFFFE0) // ---- BC.cond (v8.8-A) ------------------------------------------------ - check("BC.cond", .BC_COND, 0, 0x54000010, 0xFF000010) + check("BC.eq", .BC_EQ, 0, 0x54000010, 0xFF00001F) + check("BC.le", .BC_LE, 0, 0x5400001D, 0xFF00001F) // ---- Sign/zero-extend aliases --------------------------------------- check("UXTB", .UXTB, 0, 0x53001C00, 0xFFFFFC00) @@ -416,9 +425,9 @@ main :: proc() { check("LDAPURSW", .LDAPURSW, 0, 0x99800000, 0xFFE00C00) // ---- SVE BF16 predicated arithmetic --------------------------------- - check("SVE_BFADD", .SVE_BFADD, 0, 0x65008000, 0xFFE0E000) - check("SVE_BFMUL", .SVE_BFMUL, 0, 0x65028000, 0xFFE0E000) - check("SVE_BFMLA", .SVE_BFMLA, 0, 0x65200000, 0xFFE0E000) + check("SVE_BFADD", .BFADD, 0, 0x65008000, 0xFFFFE000) + check("SVE_BFMUL", .BFMUL, 0, 0x65028000, 0xFFFFE000) + check("SVE_BFMLA", .BFMLA, 0, 0x65200000, 0xFFE0E000) // ---- Speculation / profiling barriers + BTI variants ---------------- check("SB", .SB, 0, 0xD50330FF, 0xFFFFFFFF) @@ -426,48 +435,48 @@ main :: proc() { check("DGH", .DGH, 0, 0xD50320DF, 0xFFFFFFFF) check("PSB CSYNC", .PSB_CSYNC, 0, 0xD503223F, 0xFFFFFFFF) check("TSB CSYNC", .TSB_CSYNC, 0, 0xD503225F, 0xFFFFFFFF) - check("BTI j", .BTI_J, 0, 0xD503245F, 0xFFFFFFFF) - check("BTI c", .BTI_C, 0, 0xD503249F, 0xFFFFFFFF) + check("BTI j", .BTI_J, 0, 0xD503249F, 0xFFFFFFFF) + check("BTI c", .BTI_C, 0, 0xD503245F, 0xFFFFFFFF) check("BTI jc", .BTI_JC, 0, 0xD50324DF, 0xFFFFFFFF) // ---- NEON aliases --------------------------------------------------- - check("MOV.16B", .MOV_V_ALIAS, 1, 0x4EA01C00, 0xFFE0FC00) - check("NOT.16B", .NOT_V_ALIAS, 1, 0x6E205800, 0xFFFFFC00) + check("MOV.16B", .MOV, 1, 0x4EA01C00, 0xFFE0FC00) + check("NOT.16B", .NOT, 1, 0x6E205800, 0xFFFFFC00) // ---- Shift-by-immediate aliases ------------------------------------- - check("LSR_IMM 32", .LSR_IMM, 0, 0x53007C00, 0xFFC0FC00) - check("LSR_IMM 64", .LSR_IMM, 1, 0xD340FC00, 0xFFC0FC00) - check("ASR_IMM 32", .ASR_IMM, 0, 0x13007C00, 0xFFC0FC00) - check("ASR_IMM 64", .ASR_IMM, 1, 0x9340FC00, 0xFFC0FC00) + check("LSR 32", .LSR, 6, 0x53007C00, 0xFFC0FC00) + check("LSR 64", .LSR, 7, 0xD340FC00, 0xFFC0FC00) + check("ASR 32", .ASR, 6, 0x13007C00, 0xFFC0FC00) + check("ASR 64", .ASR, 7, 0x9340FC00, 0xFFC0FC00) // ---- LSL_IMM / ROR_IMM (composite-packed aliases) -------------------- - check("LSL_IMM 32", .LSL_IMM, 0, 0x53000000, 0xFFC00000) - check("LSL_IMM 64", .LSL_IMM, 1, 0xD3400000, 0xFFC00000) - check("ROR_IMM 32", .ROR_IMM, 0, 0x13800000, 0xFFE00000) - check("ROR_IMM 64", .ROR_IMM, 1, 0x93C00000, 0xFFE00000) + check("LSL 32", .LSL, 6, 0x53000000, 0xFFC00000) + check("LSL 64", .LSL, 7, 0xD3400000, 0xFFC00000) + check("ROR 32", .ROR, 2, 0x13800000, 0xFFE00000) + check("ROR 64", .ROR, 3, 0x93C00000, 0xFFE00000) // ---- SVE2.1 / SVE BF16 unpredicated + clamp + max/min ---------------- - check("BFADD unpred", .SVE_BFADD_UNPRED, 0, 0x65000000, 0xFFE0FC00) - check("BFSUB unpred", .SVE_BFSUB_UNPRED, 0, 0x65000400, 0xFFE0FC00) - check("BFMUL unpred", .SVE_BFMUL_UNPRED, 0, 0x65000800, 0xFFE0FC00) - check("BFCLAMP", .SVE_BFCLAMP, 0, 0x64202400, 0xFFE0FC00) - check("BFMAXNM", .SVE_BFMAXNM, 0, 0x65048000, 0xFFE0E000) - check("BFMINNM", .SVE_BFMINNM, 0, 0x65058000, 0xFFE0E000) + check("BFADD unpred", .BFADD, 1, 0x65000000, 0xFFE0FC00) + check("BFSUB unpred", .BFSUB, 1, 0x65000400, 0xFFE0FC00) + check("BFMUL unpred", .BFMUL, 1, 0x65000800, 0xFFE0FC00) + check("BFCLAMP", .BFCLAMP, 0, 0x64202400, 0xFFE0FC00) + check("BFMAXNM", .BFMAXNM, 0, 0x65048000, 0xFFFFE000) + check("BFMINNM", .BFMINNM, 0, 0x65058000, 0xFFFFE000) // ---- SME2 multi-vector ---------------------------------------------- - check("SME2 LUTI2.B", .SME2_LUTI2_B, 0, 0xC08C4000, 0xFFE0F000) - check("SME2 LUTI4.B", .SME2_LUTI4_B, 0, 0xC08A4000, 0xFFE0F000) - check("SME2 LD1B x2", .SME2_LD1B_X2, 0, 0xA0000000, 0xFFE0E000) - check("SME2 LD1W x4", .SME2_LD1W_X4, 0, 0xA000C000, 0xFFE0E000) - check("SME2 ST1D x2", .SME2_ST1D_X2, 0, 0xA0206000, 0xFFE0E000) - check("SME2 ZIP_4", .SME2_ZIP_4, 0, 0xC136E000, 0xFFFFFC00) - check("SME2 UZP_3", .SME2_UZP_3, 0, 0xC120D001, 0xFFE0FC00) + check("SME2 LUTI2.B", .LUTI2, 0, 0xC08C4000, 0xFFFE7C00) + check("SME2 LUTI4.B", .LUTI4, 0, 0xC08A4000, 0xFFFE7C00) + check("SME2 LD1B x2", .LD1B, 4, 0xA0000000, 0xFFE0E000) + check("SME2 LD1W x4", .LD1W, 5, 0xA000C000, 0xFFE0E000) + check("SME2 ST1D x2", .ST1D, 3, 0xA0206000, 0xFFE0E000) + check("SME2 ZIP_4", .ZIP, 1, 0xC136E000, 0xFFFFFC00) + check("SME2 UZP_3", .UZP, 0, 0xC120D001, 0xFFE0FC01) // ---- RME (Realm Management Extension) ------------------------------- check("TLBI RPALOS", .TLBI_RPALOS, 0, 0xD5084EE0, 0xFFFFFFE0) check("TLBI RPAOS", .TLBI_RPAOS, 0, 0xD5084EA0, 0xFFFFFFE0) - check("TLBI PAALL", .TLBI_PAALL, 0, 0xD508E89F, 0xFFFFFFFF) - check("TLBI PAALLOS", .TLBI_PAALLOS, 0, 0xD508E81F, 0xFFFFFFFF) + check("TLBI PAALL", .TLBI_PAALL, 0, 0xD50E879F, 0xFFFFFFFF) + check("TLBI PAALLOS", .TLBI_PAALLOS, 0, 0xD50E819F, 0xFFFFFFFF) check("AT S1E1A", .AT_S1E1A, 0, 0xD5079140, 0xFFFFFFE0) check("DC CIPAPA", .DC_CIPAPA, 0, 0xD50E7CE0, 0xFFFFFFE0) check("DC CIGDPAPA", .DC_CIGDPAPA, 0, 0xD50E7DE0, 0xFFFFFFE0) diff --git a/core/rexcode/isa/arm64/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/arm64/tools/gen_mnemonic_builders.odin index a98ac0195..17943cd22 100644 --- a/core/rexcode/isa/arm64/tools/gen_mnemonic_builders.odin +++ b/core/rexcode/isa/arm64/tools/gen_mnemonic_builders.odin @@ -12,7 +12,7 @@ package main // with per-mnemonic overload groups. // // AArch64 has ~50 operand types, many exotic (SVE/SME/NEON-arrangement/ -// shifted/extended/bitmask/sysreg). EVERY operand type is now mapped to a +// shifted/extended/bitmask/system-register). EVERY operand type is mapped to a // concrete Odin parameter (or parameters) and a constructor expression, so // NO form is skipped: every mnemonic that has at least one encode form gets // an inst_ / emit_ overload group. @@ -26,7 +26,8 @@ package main // SVE Z register / Z pair / Z quad -> u8 / op_z_* (suffix z) // SVE predicate (P_REG / merge / zero / gov) -> u8 / Register(REG_P|..) (suffix p) // all immediates (incl ZA tile, SME slice, -> i64 / op_imm (suffix i) -// patterns, bitmask, sysreg, HW, NZCV, ...) +// patterns, bitmask, HW, NZCV, ...) +// MRS/MSR system register -> Register / op_sysreg (suffix s) // PC-relative label -> u32 / op_label (suffix l) // memory -> Memory / op_mem (suffix m) // condition code -> Cond / op_cond (suffix c) @@ -69,12 +70,19 @@ Operand_Category :: enum { REL, // u32 label -> op_label (1 param, suffix l) MEM, // Memory -> op_mem (1 param, suffix m) COND, // Cond -> op_cond (1 param, suffix c) + SYSREG, // Register -> op_sysreg (1 param, suffix s) + IMPLICIT, // no parameter -- the operand names the only register it can SHIFTED, // Register + Shift_Type + u8 -> op_shifted (3 params, suffix sh) EXTENDED, // Register + Extend + u8 -> op_extended (3 params, suffix ex) } Operand_Signature :: struct { - types: [4]a.Operand_Type, + types: [5]a.Operand_Type, + // The encoding each operand uses. Needed because the operand TYPE is not + // always enough: .VEC_INDEX is a lane index under NEON_IDX*/NEON_LANE_*, + // which prints glued to its register, but EXT's byte index shares the type + // and prints as a plain `#3`. + encs: [5]a.Operand_Encoding, count: int, } @@ -89,6 +97,27 @@ mnemonic_to_lower :: proc(m: a.Mnemonic) -> string { return strings.to_lower(name) } +// The parameter TYPES of a form's builder, joined -- the key Odin actually +// overloads on. Distinct operand categories can share a type: a Z register +// and a P register are both passed as `u8`, so `inst_trn2_z_z_z` and +// `inst_trn2_p_p_p` have different names but the same signature. Both are +// still emitted as standalone procedures; only the first of a colliding set +// may join the overload group, since Odin rejects a group holding two +// procedures of identical type. +odin_type_key :: proc(sig: Operand_Signature) -> string { + params := param_list(sig) + defer delete(params) + sb: strings.Builder + strings.builder_init(&sb) + for p in params { + if i := strings.index(p.decl, ": "); i >= 0 { + strings.write_string(&sb, p.decl[i+2:]) + } + strings.write_byte(&sb, ',') + } + return strings.to_string(sb) +} + // Every operand type now maps to a category -- nothing is unsupported, so no // form is ever skipped. operand_category :: proc(t: a.Operand_Type) -> Operand_Category { @@ -96,19 +125,31 @@ operand_category :: proc(t: a.Operand_Type) -> Operand_Category { case .W_REG, .X_REG, .WSP_REG, .XSP_REG, .B_REG, .H_REG, .S_REG, .D_REG, .Q_REG, .V_REG, .V_8B, .V_16B, .V_4H, .V_8H, .V_2S, .V_4S, .V_1D, .V_2D, - .V_4H_FP16, .V_8H_FP16, + .V_4H_FP16, .V_8H_FP16, .V_1Q, .V_ELEM_B, .V_ELEM_H, .V_ELEM_S, .V_ELEM_D: return .REG - case .Z_REG_B, .Z_REG_H, .Z_REG_S, .Z_REG_D, .Z_PAIR, .Z_QUAD: + case .Z_REG_B, .Z_REG_H, .Z_REG_S, .Z_REG_D, .Z_REG_ANY, + .Z_LIST1_B, .Z_LIST1_H, .Z_LIST1_S, .Z_LIST1_D, .Z_LIST2_B, + .Z_PAIR_B, .Z_PAIR_H, .Z_PAIR_S, .Z_PAIR_D, + .Z_QUAD_B, .Z_QUAD_H, .Z_QUAD_S, .Z_QUAD_D: return .ZREG - case .P_REG, .P_REG_MERGE, .P_REG_ZERO, .P_REG_GOV: + case .P_REG, .P_REG_MERGE, .P_REG_ZERO, .P_REG_GOV, .PN_REG, .PN_REG_ZERO, + .P_REG_B, .P_REG_H, .P_REG_S, .P_REG_D: return .PREG + case .ZT_REG: + // There is only one ZT register, so it takes no parameter at all. + return .IMPLICIT case .REL_26, .REL_19, .REL_14, .REL_PG21: return .REL - case .MEM: + case .MEM_OFFSET, .MEM_PRE, .MEM_POST, .MEM_REG, .MEM_EXT, + .MEM_SVE_SS, .MEM_SVE_SI, .MEM_SVE_VEC, .MEM_SVE_VB: + // All addressing modes take one `Memory` parameter, so they share a + // builder signature: the encoder picks the form from mem.mode. return .MEM - case .COND: + case .COND, .COND_NOT_AL: return .COND + case .SYS_REG: + return .SYSREG case .W_SHIFTED, .X_SHIFTED: return .SHIFTED case .W_EXTENDED, .X_EXTENDED: @@ -127,6 +168,61 @@ operand_param_count :: proc(t: a.Operand_Type) -> int { return 1 } +// How many consecutive registers this encoding's operand is written as, or 0 +// when it is a plain register. +list_count :: proc(e: a.Operand_Encoding) -> int { + #partial switch e { + case .VD_LIST1, .VN_LIST1: return 1 + case .VD_LIST2, .VN_LIST2: return 2 + case .VD_LIST3, .VN_LIST3: return 3 + case .VD_LIST4, .VN_LIST4: return 4 + } + return 0 +} + +// The ZSHAPE_* constant naming this operand type's SVE element width. +zshape_const :: proc(t: a.Operand_Type) -> string { + #partial switch t { + case .Z_REG_H, .Z_PAIR_H, .Z_QUAD_H, .Z_LIST1_H: return "ZSHAPE_H" + case .Z_REG_S, .Z_PAIR_S, .Z_QUAD_S, .Z_LIST1_S: return "ZSHAPE_S" + case .Z_REG_D, .Z_PAIR_D, .Z_QUAD_D, .Z_LIST1_D: return "ZSHAPE_D" + } + return "ZSHAPE_B" +} + +// The VSHAPE_* constant naming this operand type's arrangement. +vshape_const :: proc(t: a.Operand_Type) -> string { + #partial switch t { + case .V_8B: return "VSHAPE_8B" + case .V_16B: return "VSHAPE_16B" + case .V_4H, .V_4H_FP16: return "VSHAPE_4H" + case .V_8H, .V_8H_FP16: return "VSHAPE_8H" + case .V_2S: return "VSHAPE_2S" + case .V_4S: return "VSHAPE_4S" + case .V_1D: return "VSHAPE_1D" + case .V_2D: return "VSHAPE_2D" + case .V_1Q: return "VSHAPE_1Q" + case .V_ELEM_B: return "VSHAPE_ELEM_B" + case .V_ELEM_H: return "VSHAPE_ELEM_H" + case .V_ELEM_S: return "VSHAPE_ELEM_S" + case .V_ELEM_D: return "VSHAPE_ELEM_D" + } + return "VSHAPE_NONE" +} + +// A lane index prints glued to the register it indexes, so it is built with +// op_lane_index rather than op_imm. Keyed on the ENCODING: EXT writes its byte +// index as a plain immediate while sharing the .VEC_INDEX operand type. +is_lane_index :: proc(e: a.Operand_Encoding) -> bool { + #partial switch e { + case .NEON_IDX5, .NEON_IDX4, .NEON_IDX2, + .NEON_LANE_B, .NEON_LANE_H, .NEON_LANE_S, .NEON_LANE_D, + .SVE_FMLA_IDX_H, .SVE_FMLA_IDX_S, .SVE_FMLA_IDX_D, .LUTI_IDX: + return true + } + return false +} + // Width byte for op_imm / op_label (informational only; the matcher checks // operand kind, not size, so this never affects correctness). operand_imm_size :: proc(t: a.Operand_Type) -> u8 { @@ -145,6 +241,52 @@ operand_imm_size :: proc(t: a.Operand_Type) -> u8 { // Odin-type dedup: two forms producing the same name also produce the same // proc signature (which Odin forbids twice in one overload group). operand_suffix :: proc(t: a.Operand_Type) -> string { + // A NEON arrangement is not recoverable from a Register, so it has to live + // in the name: without this every arrangement of a mnemonic collapses onto + // one builder and only the first is reachable. FP16 variants share a token + // with their non-FP16 twin because they build an identical operand -- the + // encoder tells those two apart by the form, not the operand. + // An SVE element size is not recoverable from the u8 a Z operand is passed + // as, so it has to live in the name -- otherwise every size of a mnemonic + // collapses onto one builder and only the first is reachable. + #partial switch t { + case .Z_REG_B: return "zb" + case .Z_REG_H: return "zh" + case .Z_REG_S: return "zs" + case .Z_REG_D: return "zd" + case .Z_LIST1_B: return "zl1b" + case .Z_LIST1_H: return "zl1h" + case .Z_LIST1_S: return "zl1s" + case .Z_LIST1_D: return "zl1d" + case .Z_LIST2_B: return "zl2b" + case .Z_PAIR_B: return "zpb" + case .Z_PAIR_H: return "zph" + case .Z_PAIR_S: return "zps" + case .Z_PAIR_D: return "zpd" + case .Z_QUAD_B: return "zqb" + case .Z_QUAD_H: return "zqh" + case .Z_QUAD_S: return "zqs" + case .Z_QUAD_D: return "zqd" + case .P_REG_B: return "pb" + case .P_REG_H: return "ph" + case .P_REG_S: return "ps" + case .P_REG_D: return "pd" + case .PN_REG: return "pn" + case .PN_REG_ZERO: return "pnz" + case .V_8B: return "v8b" + case .V_16B: return "v16b" + case .V_4H, .V_4H_FP16: return "v4h" + case .V_8H, .V_8H_FP16: return "v8h" + case .V_2S: return "v2s" + case .V_4S: return "v4s" + case .V_1D: return "v1d" + case .V_2D: return "v2d" + case .V_1Q: return "v1q" + case .V_ELEM_B: return "veb" + case .V_ELEM_H: return "veh" + case .V_ELEM_S: return "ves" + case .V_ELEM_D: return "ved" + } switch operand_category(t) { case .REG: return "r" case .ZREG: return "z" @@ -153,6 +295,8 @@ operand_suffix :: proc(t: a.Operand_Type) -> string { case .REL: return "l" case .MEM: return "m" case .COND: return "c" + case .SYSREG: return "s" + case .IMPLICIT: return "zt" case .SHIFTED: return "sh" case .EXTENDED: return "ex" } @@ -167,7 +311,7 @@ operand_suffix :: proc(t: a.Operand_Type) -> string { // included; only truly implicit operands (enc == .IMPL, which AArch64's tables // never actually use) carry no param. build_signature :: proc(form: a.Encoding) -> (sig: Operand_Signature, ok: bool) { - for i in 0..<4 { + for i in 0..<5 { op := form.ops[i] if op == .NONE { continue } @@ -175,6 +319,7 @@ build_signature :: proc(form: a.Encoding) -> (sig: Operand_Signature, ok: bool) if form.enc[i] == .IMPL { continue } sig.types[sig.count] = op + sig.encs[sig.count] = form.enc[i] sig.count += 1 } return sig, true @@ -194,8 +339,8 @@ Param :: struct { // the shift/extend kind and amount. This is the single source of truth for // parameter names; param_list derives the typed declarations from it so the // declared params always match the expressions that reference them. -operand_primary_names :: proc(sig: Operand_Signature) -> [4][3]string { - result: [4][3]string +operand_primary_names :: proc(sig: Operand_Signature) -> [5][3]string { + result: [5][3]string reg_count := 0 imm_count := 0 zp_count := 0 @@ -231,6 +376,10 @@ operand_primary_names :: proc(sig: Operand_Signature) -> [4][3]string { result[i][0] = "mem" case .COND: result[i][0] = "cond" + case .SYSREG: + result[i][0] = "sysreg" + case .IMPLICIT: + result[i][0] = "" case .SHIFTED: rn := reg_name(i, ®_count) result[i][0] = rn @@ -258,6 +407,8 @@ param_list :: proc(sig: Operand_Signature) -> [dynamic]Param { append(¶ms, Param{decl = fmt.tprintf("%s: Register", names[i][0]), name = names[i][0]}) case .ZREG, .PREG: append(¶ms, Param{decl = fmt.tprintf("%s: u8", names[i][0]), name = names[i][0]}) + case .IMPLICIT: + // no parameter case .IMM: append(¶ms, Param{decl = fmt.tprintf("%s: i64", names[i][0]), name = names[i][0]}) case .REL: @@ -266,6 +417,8 @@ param_list :: proc(sig: Operand_Signature) -> [dynamic]Param { append(¶ms, Param{decl = fmt.tprintf("%s: Memory", names[i][0]), name = names[i][0]}) case .COND: append(¶ms, Param{decl = fmt.tprintf("%s: Cond", names[i][0]), name = names[i][0]}) + case .SYSREG: + append(¶ms, Param{decl = fmt.tprintf("%s: Register", names[i][0]), name = names[i][0]}) case .SHIFTED: append(¶ms, Param{decl = fmt.tprintf("%s: Register", names[i][0]), name = names[i][0]}) append(¶ms, Param{decl = fmt.tprintf("%s: Shift_Type", names[i][1]), name = names[i][1]}) @@ -303,22 +456,36 @@ generate_proc_name :: proc(mnemonic: a.Mnemonic, sig: Operand_Signature) -> stri // the produced encoding is valid for the kept form). // ----------------------------------------------------------------------------- -write_operand_expr :: proc(sb: ^strings.Builder, t: a.Operand_Type, names: [3]string) { +write_operand_expr :: proc(sb: ^strings.Builder, t: a.Operand_Type, enc: a.Operand_Encoding, names: [3]string) { + // A register the syntax writes as a list carries how many, which is a + // property of the form rather than of the operand type. + if n := list_count(enc); n > 0 { + // A Z operand arrives as a bare register number, so it has to be given + // its class before it can head a list. + if operand_category(t) == .ZREG { + fmt.sbprintf(sb, "op_v_list(Register(REG_Z | (u16(%s) & 0x1F)), %s, %d)", + names[0], zshape_const(t), n) + } else { + fmt.sbprintf(sb, "op_v_list(%s, %s, %d)", names[0], vshape_const(t), n) + } + return + } #partial switch operand_category(t) { case .REG: #partial switch t { - case .V_8B: fmt.sbprintf(sb, "op_v_8b(u8(reg_hw(%s)))", names[0]) - case .V_16B: fmt.sbprintf(sb, "op_v_16b(u8(reg_hw(%s)))", names[0]) - case .V_4H, .V_4H_FP16: fmt.sbprintf(sb, "op_v_4h(u8(reg_hw(%s)))", names[0]) - case .V_8H, .V_8H_FP16: fmt.sbprintf(sb, "op_v_8h(u8(reg_hw(%s)))", names[0]) - case .V_2S: fmt.sbprintf(sb, "op_v_2s(u8(reg_hw(%s)))", names[0]) - case .V_4S: fmt.sbprintf(sb, "op_v_4s(u8(reg_hw(%s)))", names[0]) - case .V_1D: fmt.sbprintf(sb, "op_v_1d(u8(reg_hw(%s)))", names[0]) - case .V_2D: fmt.sbprintf(sb, "op_v_2d(u8(reg_hw(%s)))", names[0]) - case .V_ELEM_B: fmt.sbprintf(sb, "op_v_elem_b(u8(reg_hw(%s)))", names[0]) - case .V_ELEM_H: fmt.sbprintf(sb, "op_v_elem_h(u8(reg_hw(%s)))", names[0]) - case .V_ELEM_S: fmt.sbprintf(sb, "op_v_elem_s(u8(reg_hw(%s)))", names[0]) - case .V_ELEM_D: fmt.sbprintf(sb, "op_v_elem_d(u8(reg_hw(%s)))", names[0]) + case .V_8B: fmt.sbprintf(sb, "op_v_8b(%s)", names[0]) + case .V_16B: fmt.sbprintf(sb, "op_v_16b(%s)", names[0]) + case .V_4H, .V_4H_FP16: fmt.sbprintf(sb, "op_v_4h(%s)", names[0]) + case .V_8H, .V_8H_FP16: fmt.sbprintf(sb, "op_v_8h(%s)", names[0]) + case .V_2S: fmt.sbprintf(sb, "op_v_2s(%s)", names[0]) + case .V_4S: fmt.sbprintf(sb, "op_v_4s(%s)", names[0]) + case .V_1D: fmt.sbprintf(sb, "op_v_1d(%s)", names[0]) + case .V_2D: fmt.sbprintf(sb, "op_v_2d(%s)", names[0]) + case .V_1Q: fmt.sbprintf(sb, "op_v_1q(%s)", names[0]) + case .V_ELEM_B: fmt.sbprintf(sb, "op_v_elem_b(%s)", names[0]) + case .V_ELEM_H: fmt.sbprintf(sb, "op_v_elem_h(%s)", names[0]) + case .V_ELEM_S: fmt.sbprintf(sb, "op_v_elem_s(%s)", names[0]) + case .V_ELEM_D: fmt.sbprintf(sb, "op_v_elem_d(%s)", names[0]) case: fmt.sbprintf(sb, "op_reg(%s)", names[0]) } case .ZREG: @@ -327,18 +494,35 @@ write_operand_expr :: proc(sb: ^strings.Builder, t: a.Operand_Type, names: [3]st case .Z_REG_H: fmt.sbprintf(sb, "op_z_h(%s)", names[0]) case .Z_REG_S: fmt.sbprintf(sb, "op_z_s(%s)", names[0]) case .Z_REG_D: fmt.sbprintf(sb, "op_z_d(%s)", names[0]) - case: fmt.sbprintf(sb, "op_reg(Register(REG_Z | (u16(%s) & 0x1F)))", names[0]) // Z_PAIR / Z_QUAD + case .Z_PAIR_B, .Z_QUAD_B: fmt.sbprintf(sb, "op_z_b(%s)", names[0]) + case .Z_PAIR_H, .Z_QUAD_H: fmt.sbprintf(sb, "op_z_h(%s)", names[0]) + case .Z_PAIR_S, .Z_QUAD_S: fmt.sbprintf(sb, "op_z_s(%s)", names[0]) + case .Z_PAIR_D, .Z_QUAD_D: fmt.sbprintf(sb, "op_z_d(%s)", names[0]) + case: fmt.sbprintf(sb, "op_reg(Register(REG_Z | (u16(%s) & 0x1F)))", names[0]) // Z_REG_ANY } case .PREG: - fmt.sbprintf(sb, "op_reg(Register(REG_P | (u16(%s) & 0xF)))", names[0]) + if t == .PN_REG || t == .PN_REG_ZERO { + // SME2 numbers its predicate-as-counter registers from 8. + fmt.sbprintf(sb, "op_reg(Register(REG_PN | (8 + (u16(%s) & 0x7))))", names[0]) + } else { + fmt.sbprintf(sb, "op_reg(Register(REG_P | (u16(%s) & 0xF)))", names[0]) + } case .IMM: - fmt.sbprintf(sb, "op_imm(%s, %d)", names[0], operand_imm_size(t)) + if is_lane_index(enc) { + fmt.sbprintf(sb, "op_lane_index(%s)", names[0]) + } else { + fmt.sbprintf(sb, "op_imm(%s, %d)", names[0], operand_imm_size(t)) + } case .REL: fmt.sbprintf(sb, "op_label(%s, 4)", names[0]) case .MEM: fmt.sbprintf(sb, "op_mem(%s)", names[0]) case .COND: fmt.sbprintf(sb, "op_cond(%s)", names[0]) + case .SYSREG: + fmt.sbprintf(sb, "op_sysreg(%s)", names[0]) + case .IMPLICIT: + strings.write_string(sb, "op_reg(ZT0)") case .SHIFTED: fmt.sbprintf(sb, "op_shifted(%s, %s, %s)", names[0], names[1], names[2]) case .EXTENDED: @@ -374,7 +558,7 @@ uses_plain_constructors :: proc(sig: Operand_Signature) -> bool { .V_4H_FP16, .V_8H_FP16: return false // needs op_v_* } - case .IMM, .REL, .MEM, .COND: + case .IMM, .REL, .MEM, .COND, .SYSREG: // fine case: return false // ZREG / PREG / SHIFTED / EXTENDED @@ -442,10 +626,10 @@ write_inst_fallback :: proc(sb: ^strings.Builder, entry: Proc_Entry) { defer delete(mstr) fmt.sbprintf(sb, "Instruction{{mnemonic = .%s, operand_count = %d, length = 4, ops = {{", mstr, sig.count) - for i in 0..<4 { + for i in 0..<5 { if i > 0 { strings.write_string(sb, ", ") } if i < sig.count { - write_operand_expr(sb, sig.types[i], pnames[i]) + write_operand_expr(sb, sig.types[i], sig.encs[i], pnames[i]) } else { strings.write_string(sb, "{}") } @@ -620,8 +804,26 @@ main :: proc() { `) for m in mnemonic_list { - procs := procs_by_mnemonic[m] - if len(procs) == 0 { continue } + all_procs := procs_by_mnemonic[m] + if len(all_procs) == 0 { continue } + + // Only type-distinct forms can be group members (see odin_type_key). + procs: [dynamic]Proc_Entry + defer delete(procs) + { + seen: map[string]bool + defer delete(seen) + for e in all_procs { + key := odin_type_key(e.sig) + if seen[key] { + delete(key) + continue + } + seen[key] = true + append(&procs, e) + } + } + mlow := mnemonic_to_lower(m) // inst_ group @@ -659,21 +861,10 @@ main :: proc() { } } - // Builder aliases for redundant SME enum names that were removed from the - // Mnemonic enum: they are the same instructions as the canonical *_TILE / - // MOVA_*_FROM_* forms, so the convenient *_za / *_to_* names delegate to them. - sme_aliases := [][2]string{ - {"sme_ld1b_za", "sme_ld1b_tile"}, {"sme_ld1h_za", "sme_ld1h_tile"}, - {"sme_ld1w_za", "sme_ld1w_tile"}, {"sme_ld1d_za", "sme_ld1d_tile"}, - {"sme_ld1q_za", "sme_ld1q_tile"}, {"sme_st1b_za", "sme_st1b_tile"}, - {"sme_st1h_za", "sme_st1h_tile"}, {"sme_st1w_za", "sme_st1w_tile"}, - {"sme_st1d_za", "sme_st1d_tile"}, {"sme_st1q_za", "sme_st1q_tile"}, - {"sme_mova_to_z", "sme_mova_z_from_tile"}, {"sme_mova_to_za", "sme_mova_tile_from_z"}, - } - strings.write_string(&sb, "\n// Aliases: redundant SME names -> canonical tile/MOVA builders.\n") - for al in sme_aliases { - fmt.sbprintf(&sb, "inst_%s :: inst_%s\nemit_%s :: emit_%s\n", al[0], al[1], al[0], al[1]) - } + // (The SME *_za / *_to_* builder aliases that used to be appended here are + // gone: SME_LD1B_TILE, SME_MOVA_Z_FROM_TILE and friends now carry their + // assembler names -- LD1B, MOVA -- so inst_ld1b / inst_mova already are + // the canonical builders and no delegating alias is needed.) output := strings.to_string(sb) err := os.write_entire_file(#directory + "/../mnemonic_builders.odin", transmute([]u8)strings.concatenate({GEN_ATTRIB, output})) diff --git a/core/rexcode/isa/arm64/tools/verify_against_llvm.odin b/core/rexcode/isa/arm64/tools/verify_against_llvm.odin index 051166b3f..08a0088b3 100644 --- a/core/rexcode/isa/arm64/tools/verify_against_llvm.odin +++ b/core/rexcode/isa/arm64/tools/verify_against_llvm.odin @@ -37,6 +37,13 @@ normalize_our :: proc(name: string) -> string { break } } + // A conditional branch keeps its condition: B_LE is `b.le`, not `b`. + // Truncating at the underscore would collapse all sixteen onto one name + // and make every one of them compare equal to every other. + if strings.has_prefix(s, "b_") || strings.has_prefix(s, "bc_") { + return strings.concatenate({s[:strings.index_byte(s, '_')], ".", + s[strings.index_byte(s, '_')+1:]}, context.temp_allocator) + } if i := strings.index_byte(s, '_'); i >= 0 { s = s[:i] } @@ -146,15 +153,6 @@ is_known_alias :: proc(ours, llvm: string) -> bool { {"and", "mov"}, {"facge", "facge"}, {"facgt", "facgt"}, - // Conditional branches: our table has B_COND but LLVM prints b.eq/b.ne/... - {"b", "b.eq"}, {"b", "b.ne"}, {"b", "b.cs"}, {"b", "b.cc"}, - {"b", "b.mi"}, {"b", "b.pl"}, {"b", "b.vs"}, {"b", "b.vc"}, - {"b", "b.hi"}, {"b", "b.ls"}, {"b", "b.ge"}, {"b", "b.lt"}, - {"b", "b.gt"}, {"b", "b.le"}, {"b", "b.al"}, {"b", "b.nv"}, - {"bc", "bc.eq"}, {"bc", "bc.ne"}, {"bc", "bc.cs"}, {"bc", "bc.cc"}, - {"bc", "bc.mi"}, {"bc", "bc.pl"}, {"bc", "bc.vs"}, {"bc", "bc.vc"}, - {"bc", "bc.hi"}, {"bc", "bc.ls"}, {"bc", "bc.ge"}, {"bc", "bc.lt"}, - {"bc", "bc.gt"}, {"bc", "bc.le"}, {"bc", "bc.al"}, {"bc", "bc.nv"}, // FCSEL is canonical for FCSET/FCINC variants if any {"fmov", "fmov"}, // Atomics: many of these LLVM might print without the size suffix diff --git a/core/rexcode/isa/mips/encoder.odin b/core/rexcode/isa/mips/encoder.odin index 80492d030..154194baf 100644 --- a/core/rexcode/isa/mips/encoder.odin +++ b/core/rexcode/isa/mips/encoder.odin @@ -86,6 +86,7 @@ encode :: proc( endianness: Endianness = .BIG, resolve: bool = true, base_address: u64 = 0, + features: Feature_Set = FEATURES_ALL, ) -> (byte_count: u32, ok: bool) { n_inst := u32(len(instructions)) if u32(len(code)) < n_inst * 4 { @@ -99,7 +100,7 @@ encode :: proc( // ---- PASS 1 ------------------------------------------------------------ for i in 0.. (word: u32, ok: bool) { if inst.mnemonic == .INVALID { append(errors, Error{inst_idx = u32(inst_idx), code = .INVALID_MNEMONIC}) @@ -164,8 +166,12 @@ encode_one_inline :: #force_inline proc( } // Find a matching form. Most mnemonics have exactly one. + // Mirror of the decoder's filter: several MIPS variants reuse a mnemonic + // for different encodings (pre-R6 MUL vs R6 MUL, MADD vs the PS2 MMI + // MADD), and only the target's feature set tells them apart. form: ^Encoding for &f in forms { + if f.feature not_in features { continue } if encoding_matches_inline(inst, &f) { form = &f break diff --git a/core/rexcode/isa/mips/mnemonic_builders.odin b/core/rexcode/isa/mips/mnemonic_builders.odin index dd610e283..530a901f9 100644 --- a/core/rexcode/isa/mips/mnemonic_builders.odin +++ b/core/rexcode/isa/mips/mnemonic_builders.odin @@ -41,9 +41,13 @@ emit_mult_r_r :: #force_inline proc(instructions: ^[dynamic]Instruc inst_multu_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MULTU, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_multu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_multu_r_r(dst, src)) } inst_div_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DIV, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_div_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DIV, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_div_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_div_r_r(dst, src)) } +emit_div_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_div_r_r_r(dst, src, src2)) } inst_divu_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DIVU, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_divu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DIVU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_divu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_divu_r_r(dst, src)) } +emit_divu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_divu_r_r_r(dst, src, src2)) } inst_mfhi_r :: #force_inline proc "contextless" (dst: GPR) -> Instruction { return Instruction{mnemonic = .MFHI, operand_count = 1, length = 4, ops = {op_gpr(dst), {}, {}, {}}} } emit_mfhi_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR) { append(instructions, inst_mfhi_r(dst)) } inst_mflo_r :: #force_inline proc "contextless" (dst: GPR) -> Instruction { return Instruction{mnemonic = .MFLO, operand_count = 1, length = 4, ops = {op_gpr(dst), {}, {}, {}}} } @@ -209,9 +213,13 @@ emit_dmult_r_r :: #force_inline proc(instructions: ^[dynamic]Instruc inst_dmultu_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DMULTU, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_dmultu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_dmultu_r_r(dst, src)) } inst_ddiv_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DDIV, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_ddiv_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DDIV, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_ddiv_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_ddiv_r_r(dst, src)) } +emit_ddiv_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_ddiv_r_r_r(dst, src, src2)) } inst_ddivu_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DDIVU, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_ddivu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DDIVU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_ddivu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_ddivu_r_r(dst, src)) } +emit_ddivu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_ddivu_r_r_r(dst, src, src2)) } inst_dsll_r_r_i5 :: #force_inline proc "contextless" (dst: GPR, src: GPR, imm: i64) -> Instruction { return Instruction{mnemonic = .DSLL, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_imm(imm, 1), {}}} } emit_dsll_r_r_i5 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, imm: i64) { append(instructions, inst_dsll_r_r_i5(dst, src, imm)) } inst_dsrl_r_r_i5 :: #force_inline proc "contextless" (dst: GPR, src: GPR, imm: i64) -> Instruction { return Instruction{mnemonic = .DSRL, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_imm(imm, 1), {}}} } @@ -279,13 +287,21 @@ emit_dclo_r_r :: #force_inline proc(instructions: ^[dynamic]Instruc inst_mul_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MUL, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_mul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_mul_r_r_r(dst, src, src2)) } inst_madd_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MADD, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_madd_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MADD, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_madd_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_madd_r_r(dst, src)) } +emit_madd_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_madd_r_r_r(dst, src, src2)) } inst_maddu_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MADDU, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_maddu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MADDU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_maddu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_maddu_r_r(dst, src)) } +emit_maddu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_maddu_r_r_r(dst, src, src2)) } inst_msub_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MSUB, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_msub_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MSUB, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_msub_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_msub_r_r(dst, src)) } +emit_msub_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_msub_r_r_r(dst, src, src2)) } inst_msubu_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MSUBU, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } +inst_msubu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MSUBU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_msubu_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_msubu_r_r(dst, src)) } +emit_msubu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_msubu_r_r_r(dst, src, src2)) } inst_sdbbp_i20 :: #force_inline proc "contextless" (imm: i64) -> Instruction { return Instruction{mnemonic = .SDBBP, operand_count = 1, length = 4, ops = {op_imm(imm, 4), {}, {}, {}}} } emit_sdbbp_i20 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i64) { append(instructions, inst_sdbbp_i20(imm)) } inst_ssnop_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SSNOP, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } @@ -396,20 +412,16 @@ inst_mod_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: G emit_mod_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_mod_r_r_r(dst, src, src2)) } inst_modu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MODU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_modu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_modu_r_r_r(dst, src, src2)) } -inst_dmul_r6_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMUL_R6, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_dmul_r6_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmul_r6_r_r_r(dst, src, src2)) } +inst_dmul_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMUL, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } +emit_dmul_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmul_r_r_r(dst, src, src2)) } inst_dmuh_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMUH, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_dmuh_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmuh_r_r_r(dst, src, src2)) } inst_dmulu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMULU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_dmulu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmulu_r_r_r(dst, src, src2)) } inst_dmuhu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMUHU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_dmuhu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmuhu_r_r_r(dst, src, src2)) } -inst_ddiv_r6_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DDIV_R6, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_ddiv_r6_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_ddiv_r6_r_r_r(dst, src, src2)) } inst_dmod_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMOD, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_dmod_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmod_r_r_r(dst, src, src2)) } -inst_ddivu_r6_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DDIVU_R6, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_ddivu_r6_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_ddivu_r6_r_r_r(dst, src, src2)) } inst_dmodu_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .DMODU, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } emit_dmodu_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_dmodu_r_r_r(dst, src, src2)) } inst_aui_r_r_u16 :: #force_inline proc "contextless" (dst: GPR, src: GPR, imm: i64) -> Instruction { return Instruction{mnemonic = .AUI, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_imm(imm, 2), {}}} } @@ -830,14 +842,14 @@ inst_avsz3_none :: #force_inline proc "contextless" () -> Instruction emit_avsz3_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_avsz3_none()) } inst_avsz4_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .AVSZ4, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } emit_avsz4_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_avsz4_none()) } -inst_op_gte_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .OP_GTE, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } -emit_op_gte_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_op_gte_none()) } +inst_op_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .OP, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } +emit_op_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_op_none()) } inst_gpf_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .GPF, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } emit_gpf_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_gpf_none()) } inst_gpl_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .GPL, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } emit_gpl_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_gpl_none()) } -inst_sqr_gte_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SQR_GTE, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } -emit_sqr_gte_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sqr_gte_none()) } +inst_sqr_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .SQR, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } +emit_sqr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sqr_none()) } inst_dcpl_none :: #force_inline proc "contextless" () -> Instruction { return Instruction{mnemonic = .DCPL, operand_count = 0, length = 4, ops = {{}, {}, {}, {}}} } emit_dcpl_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_dcpl_none()) } inst_lq_r_m :: #force_inline proc "contextless" (dst: GPR, mem: Memory) -> Instruction { return Instruction{mnemonic = .LQ, operand_count = 2, length = 4, ops = {op_gpr(dst), op_mem(mem, 4), {}, {}}} } @@ -864,14 +876,6 @@ inst_div1_r_r :: #force_inline proc "contextless" (dst: GPR, src: G emit_div1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_div1_r_r(dst, src)) } inst_divu1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .DIVU1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_divu1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_divu1_r_r(dst, src)) } -inst_madd_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MADD_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_madd_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_madd_ee_r_r_r(dst, src, src2)) } -inst_maddu_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MADDU_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_maddu_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_maddu_ee_r_r_r(dst, src, src2)) } -inst_msub_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MSUB_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_msub_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_msub_ee_r_r_r(dst, src, src2)) } -inst_msubu_ee_r_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR, src2: GPR) -> Instruction { return Instruction{mnemonic = .MSUBU_EE, operand_count = 3, length = 4, ops = {op_gpr(dst), op_gpr(src), op_gpr(src2), {}}} } -emit_msubu_ee_r_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR, src2: GPR) { append(instructions, inst_msubu_ee_r_r_r(dst, src, src2)) } inst_madd1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MADD1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } emit_madd1_r_r :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR, src: GPR) { append(instructions, inst_madd1_r_r(dst, src)) } inst_maddu1_r_r :: #force_inline proc "contextless" (dst: GPR, src: GPR) -> Instruction { return Instruction{mnemonic = .MADDU1, operand_count = 2, length = 4, ops = {op_gpr(dst), op_gpr(src), {}, {}}} } @@ -2097,10 +2101,10 @@ inst_mult :: inst_mult_r_r emit_mult :: emit_mult_r_r inst_multu :: inst_multu_r_r emit_multu :: emit_multu_r_r -inst_div :: inst_div_r_r -emit_div :: emit_div_r_r -inst_divu :: inst_divu_r_r -emit_divu :: emit_divu_r_r +inst_div :: proc{ inst_div_r_r, inst_div_r_r_r } +emit_div :: proc{ emit_div_r_r, emit_div_r_r_r } +inst_divu :: proc{ inst_divu_r_r, inst_divu_r_r_r } +emit_divu :: proc{ emit_divu_r_r, emit_divu_r_r_r } inst_mfhi :: inst_mfhi_r emit_mfhi :: emit_mfhi_r inst_mflo :: inst_mflo_r @@ -2265,10 +2269,10 @@ inst_dmult :: inst_dmult_r_r emit_dmult :: emit_dmult_r_r inst_dmultu :: inst_dmultu_r_r emit_dmultu :: emit_dmultu_r_r -inst_ddiv :: inst_ddiv_r_r -emit_ddiv :: emit_ddiv_r_r -inst_ddivu :: inst_ddivu_r_r -emit_ddivu :: emit_ddivu_r_r +inst_ddiv :: proc{ inst_ddiv_r_r, inst_ddiv_r_r_r } +emit_ddiv :: proc{ emit_ddiv_r_r, emit_ddiv_r_r_r } +inst_ddivu :: proc{ inst_ddivu_r_r, inst_ddivu_r_r_r } +emit_ddivu :: proc{ emit_ddivu_r_r, emit_ddivu_r_r_r } inst_dsll :: inst_dsll_r_r_i5 emit_dsll :: emit_dsll_r_r_i5 inst_dsrl :: inst_dsrl_r_r_i5 @@ -2335,14 +2339,14 @@ inst_dclo :: inst_dclo_r_r emit_dclo :: emit_dclo_r_r inst_mul :: inst_mul_r_r_r emit_mul :: emit_mul_r_r_r -inst_madd :: inst_madd_r_r -emit_madd :: emit_madd_r_r -inst_maddu :: inst_maddu_r_r -emit_maddu :: emit_maddu_r_r -inst_msub :: inst_msub_r_r -emit_msub :: emit_msub_r_r -inst_msubu :: inst_msubu_r_r -emit_msubu :: emit_msubu_r_r +inst_madd :: proc{ inst_madd_r_r, inst_madd_r_r_r } +emit_madd :: proc{ emit_madd_r_r, emit_madd_r_r_r } +inst_maddu :: proc{ inst_maddu_r_r, inst_maddu_r_r_r } +emit_maddu :: proc{ emit_maddu_r_r, emit_maddu_r_r_r } +inst_msub :: proc{ inst_msub_r_r, inst_msub_r_r_r } +emit_msub :: proc{ emit_msub_r_r, emit_msub_r_r_r } +inst_msubu :: proc{ inst_msubu_r_r, inst_msubu_r_r_r } +emit_msubu :: proc{ emit_msubu_r_r, emit_msubu_r_r_r } inst_sdbbp :: inst_sdbbp_i20 emit_sdbbp :: emit_sdbbp_i20 inst_ssnop :: inst_ssnop_none @@ -2453,20 +2457,16 @@ inst_mod :: inst_mod_r_r_r emit_mod :: emit_mod_r_r_r inst_modu :: inst_modu_r_r_r emit_modu :: emit_modu_r_r_r -inst_dmul_r6 :: inst_dmul_r6_r_r_r -emit_dmul_r6 :: emit_dmul_r6_r_r_r +inst_dmul :: inst_dmul_r_r_r +emit_dmul :: emit_dmul_r_r_r inst_dmuh :: inst_dmuh_r_r_r emit_dmuh :: emit_dmuh_r_r_r inst_dmulu :: inst_dmulu_r_r_r emit_dmulu :: emit_dmulu_r_r_r inst_dmuhu :: inst_dmuhu_r_r_r emit_dmuhu :: emit_dmuhu_r_r_r -inst_ddiv_r6 :: inst_ddiv_r6_r_r_r -emit_ddiv_r6 :: emit_ddiv_r6_r_r_r inst_dmod :: inst_dmod_r_r_r emit_dmod :: emit_dmod_r_r_r -inst_ddivu_r6 :: inst_ddivu_r6_r_r_r -emit_ddivu_r6 :: emit_ddivu_r6_r_r_r inst_dmodu :: inst_dmodu_r_r_r emit_dmodu :: emit_dmodu_r_r_r inst_aui :: inst_aui_r_r_u16 @@ -2887,14 +2887,14 @@ inst_avsz3 :: inst_avsz3_none emit_avsz3 :: emit_avsz3_none inst_avsz4 :: inst_avsz4_none emit_avsz4 :: emit_avsz4_none -inst_op_gte :: inst_op_gte_none -emit_op_gte :: emit_op_gte_none +inst_op :: inst_op_none +emit_op :: emit_op_none inst_gpf :: inst_gpf_none emit_gpf :: emit_gpf_none inst_gpl :: inst_gpl_none emit_gpl :: emit_gpl_none -inst_sqr_gte :: inst_sqr_gte_none -emit_sqr_gte :: emit_sqr_gte_none +inst_sqr :: inst_sqr_none +emit_sqr :: emit_sqr_none inst_dcpl :: inst_dcpl_none emit_dcpl :: emit_dcpl_none inst_lq :: inst_lq_r_m @@ -2921,14 +2921,6 @@ inst_div1 :: inst_div1_r_r emit_div1 :: emit_div1_r_r inst_divu1 :: inst_divu1_r_r emit_divu1 :: emit_divu1_r_r -inst_madd_ee :: inst_madd_ee_r_r_r -emit_madd_ee :: emit_madd_ee_r_r_r -inst_maddu_ee :: inst_maddu_ee_r_r_r -emit_maddu_ee :: emit_maddu_ee_r_r_r -inst_msub_ee :: inst_msub_ee_r_r_r -emit_msub_ee :: emit_msub_ee_r_r_r -inst_msubu_ee :: inst_msubu_ee_r_r_r -emit_msubu_ee :: emit_msubu_ee_r_r_r inst_madd1 :: inst_madd1_r_r emit_madd1 :: emit_madd1_r_r inst_maddu1 :: inst_maddu1_r_r diff --git a/core/rexcode/isa/mips/mnemonics.odin b/core/rexcode/isa/mips/mnemonics.odin index 3a3356587..72e984964 100644 --- a/core/rexcode/isa/mips/mnemonics.odin +++ b/core/rexcode/isa/mips/mnemonics.odin @@ -138,9 +138,9 @@ Mnemonic :: enum u16 { JIC, JIALC, // R6 mul/div (replaces MULT/MULTU/DIV/DIVU; results in single GPR) - MUL_R6, MUH, MULU, MUHU, DIV_R6, MOD, DIVU_R6, MODU, - DMUL_R6, DMUH, DMULU, DMUHU, - DDIV_R6, DMOD, DDIVU_R6, DMODU, + MUH, MULU, MUHU, MOD, MODU, + DMUL, DMUH, DMULU, DMUHU, + DMOD, DMODU, // R6 PC-relative immediates AUI, AUIPC, ALUIPC, DAUI, DAHI, DATI, @@ -263,9 +263,9 @@ Mnemonic :: enum u16 { CDP, CC, NCLIP, AVSZ3, AVSZ4, - OP_GTE, // "OP" (cross product) — disambiguated from MIPS R6 OP + OP, // "OP" (cross product) — disambiguated from MIPS R6 OP GPF, GPL, - SQR_GTE, // "SQR" — disambiguated from generic + SQR, // "SQR" — disambiguated from generic DCPL, // depth-cue per light // ------------------------------------------------------------------------- @@ -281,7 +281,6 @@ Mnemonic :: enum u16 { // Second HI/LO pair (R5900 dual MAC) MFHI1, MFLO1, MTHI1, MTLO1, MULT1, MULTU1, DIV1, DIVU1, - MADD_EE, MADDU_EE, MSUB_EE, MSUBU_EE, MADD1, MADDU1, MSUB1, MSUBU1, // Packed pack/unpack HI:LO diff --git a/core/rexcode/isa/mips/printer.odin b/core/rexcode/isa/mips/printer.odin index 3fb1f2114..e8946a65f 100644 --- a/core/rexcode/isa/mips/printer.odin +++ b/core/rexcode/isa/mips/printer.odin @@ -48,8 +48,8 @@ GPR_NAMES_ABI := [32]string{ // Public string accessors // ============================================================================= -// Canonical mnemonic spelling (lowercase, with `_` mapped to `.`). -// The few enum names that carry a disambiguator suffix get a hand mapping. +// Canonical mnemonic spelling (lowercase; `_` maps to `.`, except in MSA). +// Canonical mnemonic spelling (lowercase; `_` maps to `.`, except in MSA). mnemonic_to_string :: proc(m: Mnemonic, lowercase: bool = true, allocator := context.temp_allocator) -> string { sb := strings.builder_make(allocator) write_mnemonic(&sb, m, !lowercase) @@ -314,32 +314,35 @@ wprintln :: proc( @(private="file") write_mnemonic :: proc(sb: ^strings.Builder, m: Mnemonic, uppercase: bool) { - // Disambiguator-suffix overrides: enum names like DMUL_R6, OP_GTE, - // MADD_EE carry a disambiguator that should NOT appear in the printed - // mnemonic (the canonical assembly form is just `dmul`, `op`, `madd`). - name: string - #partial switch m { - case .DMUL_R6: name = "DMUL" - case .DDIV_R6: name = "DDIV" - case .DDIVU_R6: name = "DDIVU" - case .OP_GTE: name = "OP" - case .SQR_GTE: name = "SQR" - case .MADD_EE: name = "MADD" - case .MADDU_EE: name = "MADDU" - case .MSUB_EE: name = "MSUB" - case .MSUBU_EE: name = "MSUBU" - case: - n, ok := reflect.enum_name_from_value(m) - if !ok { - strings.write_string(sb, "") - return + // No disambiguator overrides any more: the enum holds assembler + // mnemonics, and the ISA-variant encodings that used to need a suffix + // (pre-R6 vs R6 MUL, the PS2 MMI MADD, the PS1 GTE OP) are now forms of + // one mnemonic, picked by operand shape or by the caller's Feature_Set. + name, ok := reflect.enum_name_from_value(m) + if !ok { + strings.write_string(sb, "") + return + } + // Underscores become dots -- except in MSA, which spells the sign + // qualifier with an underscore and only the element size with a dot: + // `adds_s.b`, `max_s.h`, `copy_u.w`. An assembler rejects `adds.s.b`. + // Nothing in the NAME distinguishes the two: MSA's ADDS_S_D and the FP + // convert CVT_S_D have the same shape and need opposite treatment, so + // the family has to come from the form's feature. Only the LAST + // underscore is a dot for MSA; every underscore is a dot elsewhere. + dot_only_last := is_msa(m) + last_underscore := -1 + if dot_only_last { + for i in 0..= 'A' && c <= 'Z' { strings.write_byte(sb, c + 32) } else { @@ -348,6 +351,15 @@ write_mnemonic :: proc(sb: ^strings.Builder, m: Mnemonic, uppercase: bool) { } } +// Is this mnemonic an MSA (MIPS SIMD) instruction? Read off the form table +// rather than the name, which cannot tell MSA apart from the FP converts. +@(private="file", require_results) +is_msa :: proc(m: Mnemonic) -> bool { + r := ENCODE_RUNS[u16(m)] + if r.count == 0 { return false } + return ENCODE_FORMS[r.start].feature == .MSA +} + @(private="file") write_register :: proc(sb: ^strings.Builder, r: Register, uppercase: bool) { if r == NONE { diff --git a/core/rexcode/isa/mips/tablegen/encoding_table.odin b/core/rexcode/isa/mips/tablegen/encoding_table.odin index d3ca71fb1..0a32ce1d8 100644 --- a/core/rexcode/isa/mips/tablegen/encoding_table.odin +++ b/core/rexcode/isa/mips/tablegen/encoding_table.odin @@ -54,8 +54,14 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // mask = OPCODE | RD | SHAMT | FUNCT = 0xFC00FFFF .MULT = { {.MULT, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x00000018, 0xFC00FFFF, .MIPS_I, {writes_hilo=true}} }, .MULTU = { {.MULTU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x00000019, 0xFC00FFFF, .MIPS_I, {writes_hilo=true}} }, - .DIV = { {.DIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001A, 0xFC00FFFF, .MIPS_I, {writes_hilo=true}} }, - .DIVU = { {.DIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001B, 0xFC00FFFF, .MIPS_I, {writes_hilo=true}} }, + .DIV = { + {.DIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001A, 0xFC00FFFF, .MIPS_I, {writes_hilo=true}}, + {.DIV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009A, 0xFC0007FF, .MIPS32_R6, {}}, + }, + .DIVU = { + {.DIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001B, 0xFC00FFFF, .MIPS_I, {writes_hilo=true}}, + {.DIVU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009B, 0xFC0007FF, .MIPS32_R6, {}}, + }, // ---- HI/LO move ---------------------------------------------------------- // MF*: only rd is operand; mask = OPCODE | RS | RT | SHAMT | FUNCT = 0xFFFF07FF @@ -214,8 +220,14 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // Doubleword multiply/divide. .DMULT = { {.DMULT, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001C, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true}} }, .DMULTU = { {.DMULTU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001D, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true}} }, - .DDIV = { {.DDIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001E, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true}} }, - .DDIVU = { {.DDIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001F, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true}} }, + .DDIV = { + {.DDIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001E, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true}}, + {.DDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009E, 0xFC0007FF, .MIPS64_R6, {only_64=true}}, + }, + .DDIVU = { + {.DDIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001F, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true}}, + {.DDIVU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009F, 0xFC0007FF, .MIPS64_R6, {only_64=true}}, + }, // Doubleword shifts by constant. .DSLL = { {.DSLL, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RT,.IMM_5,.NONE}, 0x00000038, 0xFFE0003F, .MIPS_III, {only_64=true}} }, @@ -273,11 +285,26 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // SPECIAL2 (opcode 0x1C) — common shape: bits = (0x1C<<26) | funct = 0x70000000 | f. // mask = OPCODE | SHAMT | FUNCT = 0xFC0007FF (shamt=0 fixed). - .MADD = { {.MADD, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000000, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}} }, - .MADDU = { {.MADDU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000001, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}} }, - .MUL = { {.MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000002, 0xFC0007FF, .MIPS32_R1, {}} }, - .MSUB = { {.MSUB, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000004, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}} }, - .MSUBU = { {.MSUBU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000005, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}} }, + .MADD = { + {.MADD, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000000, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}}, + {.MADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}}, + }, + .MADDU = { + {.MADDU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000001, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}}, + {.MADDU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}}, + }, + .MUL = { + {.MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000002, 0xFC0007FF, .MIPS32_R1, {}}, + {.MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000098, 0xFC0007FF, .MIPS32_R6, {}}, + }, + .MSUB = { + {.MSUB, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000004, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}}, + {.MSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}}, + }, + .MSUBU = { + {.MSUBU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000005, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true}}, + {.MSUBU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}}, + }, .CLZ = { {.CLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000020, 0xFC1F07FF, .MIPS32_R1, {}} }, .CLO = { {.CLO, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000021, 0xFC1F07FF, .MIPS32_R1, {}} }, .DCLZ = { {.DCLZ, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000024, 0xFC1F07FF, .MIPS64_R1, {only_64=true}} }, @@ -535,7 +562,6 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ .RTPS = { {.RTPS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000001, 0xFE00003F, .GTE_PS1, {}} }, .NCLIP = { {.NCLIP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000006, 0xFE00003F, .GTE_PS1, {}} }, - .OP_GTE = { {.OP_GTE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00000C, 0xFE00003F, .GTE_PS1, {}} }, .DPCS = { {.DPCS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000010, 0xFE00003F, .GTE_PS1, {}} }, .INTPL = { {.INTPL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000011, 0xFE00003F, .GTE_PS1, {}} }, .MVMVA = { {.MVMVA, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000012, 0xFE00003F, .GTE_PS1, {}} }, @@ -546,7 +572,6 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ .CC = { {.CC, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00001C, 0xFE00003F, .GTE_PS1, {}} }, .NCS = { {.NCS, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00001E, 0xFE00003F, .GTE_PS1, {}} }, .NCT = { {.NCT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000020, 0xFE00003F, .GTE_PS1, {}} }, - .SQR_GTE = { {.SQR_GTE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000028, 0xFE00003F, .GTE_PS1, {}} }, .DCPL = { {.DCPL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000029, 0xFE00003F, .GTE_PS1, {}} }, .DPCT = { {.DPCT, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00002A, 0xFE00003F, .GTE_PS1, {}} }, .AVSZ3 = { {.AVSZ3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00002D, 0xFE00003F, .GTE_PS1, {}} }, @@ -596,10 +621,6 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // R5900 three-operand multiply-accumulate (writes Rd as well as HI/LO). // Same SPECIAL2 funcs as the MIPS32 two-operand MADD/MADDU/MSUB/MSUBU; the // Rd != 0 form is selected by the less-specific mask after those match. - .MADD_EE = { {.MADD_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, - .MADDU_EE = { {.MADDU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, - .MSUB_EE = { {.MSUB_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, - .MSUBU_EE = { {.MSUBU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true}} }, // Pack/unpack HI:LO (PMFHL with 5-bit sub-op in sa slot). .PMFHL_LW = { {.PMFHL_LW, {.GPR,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x70000030, 0xFFFF07FF, .MMI_PS2, {}} }, @@ -753,22 +774,16 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ // R6 mul/div: reuse SPECIAL functs 0x18-0x1F (which were MULT/MULTU/ // DIV/DIVU in pre-R6) with shamt distinguishing low half (0x02) from // high half (0x03). Results land in rd, not HI/LO. - .MUL_R6 = { {.MUL_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000098, 0xFC0007FF, .MIPS32_R6, {}} }, .MUH = { {.MUH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000D8, 0xFC0007FF, .MIPS32_R6, {}} }, .MULU = { {.MULU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000099, 0xFC0007FF, .MIPS32_R6, {}} }, .MUHU = { {.MUHU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000D9, 0xFC0007FF, .MIPS32_R6, {}} }, - .DIV_R6 = { {.DIV_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009A, 0xFC0007FF, .MIPS32_R6, {}} }, .MOD = { {.MOD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DA, 0xFC0007FF, .MIPS32_R6, {}} }, - .DIVU_R6 = { {.DIVU_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009B, 0xFC0007FF, .MIPS32_R6, {}} }, .MODU = { {.MODU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DB, 0xFC0007FF, .MIPS32_R6, {}} }, // 64-bit R6 mul/div (functs 0x1C-0x1F). - .DMUL_R6 = { {.DMUL_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009C, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, .DMUH = { {.DMUH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DC, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, .DMULU = { {.DMULU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009D, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, .DMUHU = { {.DMUHU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DD, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, - .DDIV_R6 = { {.DDIV_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009E, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, .DMOD = { {.DMOD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DE, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, - .DDIVU_R6 = { {.DDIVU_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009F, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, .DMODU = { {.DMODU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DF, 0xFC0007FF, .MIPS64_R6, {only_64=true}} }, // LSA / DLSA (load shifted add): SPECIAL funct=0x05/0x15 with sa=imm2. @@ -1723,4 +1738,13 @@ ENCODING_TABLE := #partial [Mnemonic][]Encoding{ .LWUPC = { {.LWUPC, {.GPR,.REL19,.NONE,.NONE}, {.RS,.BRANCH_19,.NONE,.NONE}, 0xEC100000, 0xFC180000, .MIPS64_R6, {}} }, .LDPC = { {.LDPC, {.GPR,.REL18,.NONE,.NONE}, {.RS,.BRANCH_18,.NONE,.NONE}, 0xEC180000, 0xFC1C0000, .MIPS64_R6, {}} }, // SPECGEN:END + .OP = { + {.OP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00000C, 0xFE00003F, .GTE_PS1, {}}, + }, + .SQR = { + {.SQR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000028, 0xFE00003F, .GTE_PS1, {}}, + }, + .DMUL = { + {.DMUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009C, 0xFC0007FF, .MIPS64_R6, {only_64=true}}, + }, } diff --git a/core/rexcode/isa/mips/tablegen/generated/decode_tables.odin b/core/rexcode/isa/mips/tablegen/generated/decode_tables.odin index 5251ef669..08a494482 100644 --- a/core/rexcode/isa/mips/tablegen/generated/decode_tables.odin +++ b/core/rexcode/isa/mips/tablegen/generated/decode_tables.odin @@ -41,28 +41,28 @@ DECODE_ENTRIES := [1029]lib.Decode_Entry{ { .DROTRV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RT,.RS,.NONE}, 0x00000056, 0xFC0007FF, .MIPS64_R2, {only_64=true} }, { .DSRAV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RT,.RS,.NONE}, 0x00000017, 0xFC0007FF, .MIPS_III, {only_64=true} }, { .MULT, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x00000018, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, - { .MUL_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000098, 0xFC0007FF, .MIPS32_R6, {} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000098, 0xFC0007FF, .MIPS32_R6, {} }, { .MUH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000D8, 0xFC0007FF, .MIPS32_R6, {} }, { .MULTU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x00000019, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, { .MULU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000099, 0xFC0007FF, .MIPS32_R6, {} }, { .MUHU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000D9, 0xFC0007FF, .MIPS32_R6, {} }, { .DIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001A, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, - { .DIV_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009A, 0xFC0007FF, .MIPS32_R6, {} }, + { .DIV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009A, 0xFC0007FF, .MIPS32_R6, {} }, { .MOD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DA, 0xFC0007FF, .MIPS32_R6, {} }, { .DIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001B, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, - { .DIVU_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009B, 0xFC0007FF, .MIPS32_R6, {} }, + { .DIVU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009B, 0xFC0007FF, .MIPS32_R6, {} }, { .MODU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DB, 0xFC0007FF, .MIPS32_R6, {} }, { .DMULT, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001C, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, - { .DMUL_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009C, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, + { .DMUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009C, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DMUH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DC, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DMULTU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001D, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, { .DMULU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009D, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DMUHU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DD, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DDIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001E, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, - { .DDIV_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009E, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, + { .DDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009E, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DMOD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DE, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DDIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001F, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, - { .DDIVU_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009F, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, + { .DDIVU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009F, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .DMODU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DF, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, { .ADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000020, 0xFC0007FF, .MIPS_I, {} }, { .ADDU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000021, 0xFC0007FF, .MIPS_I, {} }, @@ -318,10 +318,10 @@ DECODE_ENTRIES := [1029]lib.Decode_Entry{ { .NCLIP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000006, 0xFE00003F, .GTE_PS1, {} }, { .AVSZ3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00002D, 0xFE00003F, .GTE_PS1, {} }, { .AVSZ4, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00002E, 0xFE00003F, .GTE_PS1, {} }, - { .OP_GTE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00000C, 0xFE00003F, .GTE_PS1, {} }, + { .OP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00000C, 0xFE00003F, .GTE_PS1, {} }, { .GPF, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00003D, 0xFE00003F, .GTE_PS1, {} }, { .GPL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00003E, 0xFE00003F, .GTE_PS1, {} }, - { .SQR_GTE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000028, 0xFE00003F, .GTE_PS1, {} }, + { .SQR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000028, 0xFE00003F, .GTE_PS1, {} }, { .DCPL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000029, 0xFE00003F, .GTE_PS1, {} }, { .BVF, {.IMM5,.REL16,.NONE,.NONE}, {.VFPU_CC3,.BRANCH_16,.NONE,.NONE}, 0x49000000, 0xFFE30000, .VFPU_PSP, {delay_slot=true} }, { .BVT, {.IMM5,.REL16,.NONE,.NONE}, {.VFPU_CC3,.BRANCH_16,.NONE,.NONE}, 0x49010000, 0xFFE30000, .VFPU_PSP, {delay_slot=true} }, @@ -404,15 +404,15 @@ DECODE_ENTRIES := [1029]lib.Decode_Entry{ { .VMAX_Q, {.VFPU_Q,.VFPU_Q,.VFPU_Q,.NONE}, {.VFPU_VD,.VFPU_VS,.VFPU_VT,.NONE}, 0x6D808080, 0xFF808080, .VFPU_PSP, {} }, { .LDR, {.GPR,.MEM,.NONE,.NONE}, {.RT,.OFFSET_BASE,.NONE,.NONE}, 0x6C000000, 0xFC000000, .MIPS_III, {only_64=true} }, { .MADD, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000000, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, - { .MADD_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + { .MADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .MADDU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000001, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, - { .MADDU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + { .MADDU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000002, 0xFC0007FF, .MIPS32_R1, {} }, { .MSUB, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000004, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, { .PLZCW, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000004, 0xFC1F07FF, .MMI_PS2, {} }, - { .MSUB_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + { .MSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .MSUBU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000005, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, - { .MSUBU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, + { .MSUBU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, { .PADDB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000208, 0xFC0007FF, .MMI_PS2, {} }, { .PADDH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000108, 0xFC0007FF, .MMI_PS2, {} }, { .PADDW, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000008, 0xFC0007FF, .MMI_PS2, {} }, diff --git a/core/rexcode/isa/mips/tablegen/generated/encode_tables.odin b/core/rexcode/isa/mips/tablegen/generated/encode_tables.odin index d30194688..f65dbe824 100644 --- a/core/rexcode/isa/mips/tablegen/generated/encode_tables.odin +++ b/core/rexcode/isa/mips/tablegen/generated/encode_tables.odin @@ -23,8 +23,10 @@ ENCODE_FORMS := [1029]lib.Encoding{ { .MULTU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x00000019, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, // .DIV { .DIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001A, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, + { .DIV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009A, 0xFC0007FF, .MIPS32_R6, {} }, // .DIVU { .DIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001B, 0xFC00FFFF, .MIPS_I, {writes_hilo=true} }, + { .DIVU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009B, 0xFC0007FF, .MIPS32_R6, {} }, // .MFHI { .MFHI, {.GPR,.NONE,.NONE,.NONE}, {.RD,.NONE,.NONE,.NONE}, 0x00000010, 0xFFFF07FF, .MIPS_I, {} }, // .MFLO @@ -191,8 +193,10 @@ ENCODE_FORMS := [1029]lib.Encoding{ { .DMULTU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001D, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, // .DDIV { .DDIV, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001E, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, + { .DDIV, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009E, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DDIVU { .DDIVU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x0000001F, 0xFC00FFFF, .MIPS_III, {only_64=true, writes_hilo=true} }, + { .DDIVU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009F, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DSLL { .DSLL, {.GPR,.GPR,.IMM5,.NONE}, {.RD,.RT,.IMM_5,.NONE}, 0x00000038, 0xFFE0003F, .MIPS_III, {only_64=true} }, // .DSRL @@ -259,14 +263,19 @@ ENCODE_FORMS := [1029]lib.Encoding{ { .DCLO, {.GPR,.GPR,.NONE,.NONE}, {.RD,.RS,.NONE,.NONE}, 0x70000025, 0xFC1F07FF, .MIPS64_R1, {only_64=true} }, // .MUL { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000002, 0xFC0007FF, .MIPS32_R1, {} }, + { .MUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000098, 0xFC0007FF, .MIPS32_R6, {} }, // .MADD { .MADD, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000000, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MADD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, // .MADDU { .MADDU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000001, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MADDU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, // .MSUB { .MSUB, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000004, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MSUB, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, // .MSUBU { .MSUBU, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000005, 0xFC00FFFF, .MIPS32_R1, {writes_hilo=true} }, + { .MSUBU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, // .SDBBP { .SDBBP, {.IMM20,.NONE,.NONE,.NONE}, {.IMM_20,.NONE,.NONE,.NONE}, 0x7000003F, 0xFC00003F, .MIPS32_R1, {} }, // .SSNOP @@ -367,36 +376,26 @@ ENCODE_FORMS := [1029]lib.Encoding{ { .JIC, {.GPR,.IMM16S,.NONE,.NONE}, {.RT,.IMM_16,.NONE,.NONE}, 0xD8000000, 0xFFE00000, .MIPS32_R6, {compact=true} }, // .JIALC { .JIALC, {.GPR,.IMM16S,.NONE,.NONE}, {.RT,.IMM_16,.NONE,.NONE}, 0xF8000000, 0xFFE00000, .MIPS32_R6, {compact=true} }, - // .MUL_R6 - { .MUL_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000098, 0xFC0007FF, .MIPS32_R6, {} }, // .MUH { .MUH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000D8, 0xFC0007FF, .MIPS32_R6, {} }, // .MULU { .MULU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x00000099, 0xFC0007FF, .MIPS32_R6, {} }, // .MUHU { .MUHU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000D9, 0xFC0007FF, .MIPS32_R6, {} }, - // .DIV_R6 - { .DIV_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009A, 0xFC0007FF, .MIPS32_R6, {} }, // .MOD { .MOD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DA, 0xFC0007FF, .MIPS32_R6, {} }, - // .DIVU_R6 - { .DIVU_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009B, 0xFC0007FF, .MIPS32_R6, {} }, // .MODU { .MODU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DB, 0xFC0007FF, .MIPS32_R6, {} }, - // .DMUL_R6 - { .DMUL_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009C, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, + // .DMUL + { .DMUL, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009C, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DMUH { .DMUH, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DC, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DMULU { .DMULU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009D, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DMUHU { .DMUHU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DD, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, - // .DDIV_R6 - { .DDIV_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009E, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DMOD { .DMOD, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DE, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, - // .DDIVU_R6 - { .DDIVU_R6, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x0000009F, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .DMODU { .DMODU, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x000000DF, 0xFC0007FF, .MIPS64_R6, {only_64=true} }, // .AUI @@ -817,14 +816,14 @@ ENCODE_FORMS := [1029]lib.Encoding{ { .AVSZ3, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00002D, 0xFE00003F, .GTE_PS1, {} }, // .AVSZ4 { .AVSZ4, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00002E, 0xFE00003F, .GTE_PS1, {} }, - // .OP_GTE - { .OP_GTE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00000C, 0xFE00003F, .GTE_PS1, {} }, + // .OP + { .OP, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00000C, 0xFE00003F, .GTE_PS1, {} }, // .GPF { .GPF, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00003D, 0xFE00003F, .GTE_PS1, {} }, // .GPL { .GPL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A00003E, 0xFE00003F, .GTE_PS1, {} }, - // .SQR_GTE - { .SQR_GTE, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000028, 0xFE00003F, .GTE_PS1, {} }, + // .SQR + { .SQR, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000028, 0xFE00003F, .GTE_PS1, {} }, // .DCPL { .DCPL, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x4A000029, 0xFE00003F, .GTE_PS1, {} }, // .LQ @@ -851,14 +850,6 @@ ENCODE_FORMS := [1029]lib.Encoding{ { .DIV1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x7000001A, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, // .DIVU1 { .DIVU1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x7000001B, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, - // .MADD_EE - { .MADD_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000000, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, - // .MADDU_EE - { .MADDU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000001, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, - // .MSUB_EE - { .MSUB_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000004, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, - // .MSUBU_EE - { .MSUBU_EE, {.GPR,.GPR,.GPR,.NONE}, {.RD,.RS,.RT,.NONE}, 0x70000005, 0xFC0007FF, .MMI_PS2, {writes_hilo=true} }, // .MADD1 { .MADD1, {.GPR,.GPR,.NONE,.NONE}, {.RS,.RT,.NONE,.NONE}, 0x70000020, 0xFC00FFFF, .MMI_PS2, {writes_hilo=true} }, // .MADDU1 @@ -2078,425 +2069,416 @@ ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ .SUBU = { 3, 1}, .MULT = { 4, 1}, .MULTU = { 5, 1}, - .DIV = { 6, 1}, - .DIVU = { 7, 1}, - .MFHI = { 8, 1}, - .MFLO = { 9, 1}, - .MTHI = { 10, 1}, - .MTLO = { 11, 1}, - .AND = { 12, 1}, - .OR = { 13, 1}, - .XOR = { 14, 1}, - .NOR = { 15, 1}, - .SLT = { 16, 1}, - .SLTU = { 17, 1}, - .SLL = { 18, 1}, - .SRL = { 19, 1}, - .SRA = { 20, 1}, - .SLLV = { 21, 1}, - .SRLV = { 22, 1}, - .SRAV = { 23, 1}, - .ADDI = { 24, 1}, - .ADDIU = { 25, 1}, - .SLTI = { 26, 1}, - .SLTIU = { 27, 1}, - .ANDI = { 28, 1}, - .ORI = { 29, 1}, - .XORI = { 30, 1}, - .LUI = { 31, 1}, - .BEQ = { 32, 1}, - .BNE = { 33, 1}, - .BLEZ = { 34, 1}, - .BGTZ = { 35, 1}, - .BLTZ = { 36, 1}, - .BGEZ = { 37, 1}, - .BLTZAL = { 38, 1}, - .BGEZAL = { 39, 1}, - .J = { 40, 1}, - .JAL = { 41, 1}, - .JR = { 42, 1}, - .JALR = { 43, 1}, - .LB = { 44, 1}, - .LH = { 45, 1}, - .LW = { 46, 1}, - .LBU = { 47, 1}, - .LHU = { 48, 1}, - .LWL = { 49, 1}, - .LWR = { 50, 1}, - .SB = { 51, 1}, - .SH = { 52, 1}, - .SW = { 53, 1}, - .SWL = { 54, 1}, - .SWR = { 55, 1}, - .SYSCALL = { 56, 1}, - .BREAK = { 57, 1}, - .NOP = { 58, 1}, - .LL = { 59, 1}, - .SC = { 60, 1}, - .SYNC = { 61, 1}, - .TGEI = { 62, 1}, - .TGEIU = { 63, 1}, - .TLTI = { 64, 1}, - .TLTIU = { 65, 1}, - .TEQI = { 66, 1}, - .TNEI = { 67, 1}, - .TGE = { 68, 1}, - .TGEU = { 69, 1}, - .TLT = { 70, 1}, - .TLTU = { 71, 1}, - .TEQ = { 72, 1}, - .TNE = { 73, 1}, - .BEQL = { 74, 1}, - .BNEL = { 75, 1}, - .BLEZL = { 76, 1}, - .BGTZL = { 77, 1}, - .BLTZL = { 78, 1}, - .BGEZL = { 79, 1}, - .BLTZALL = { 80, 1}, - .BGEZALL = { 81, 1}, - .DADD = { 82, 1}, - .DADDU = { 83, 1}, - .DSUB = { 84, 1}, - .DSUBU = { 85, 1}, - .DADDI = { 86, 1}, - .DADDIU = { 87, 1}, - .DMULT = { 88, 1}, - .DMULTU = { 89, 1}, - .DDIV = { 90, 1}, - .DDIVU = { 91, 1}, - .DSLL = { 92, 1}, - .DSRL = { 93, 1}, - .DSRA = { 94, 1}, - .DSLLV = { 95, 1}, - .DSRLV = { 96, 1}, - .DSRAV = { 97, 1}, - .DSLL32 = { 98, 1}, - .DSRL32 = { 99, 1}, - .DSRA32 = { 100, 1}, - .LD = { 101, 1}, - .LDL = { 102, 1}, - .LDR = { 103, 1}, - .LWU = { 104, 1}, - .SD = { 105, 1}, - .SDL = { 106, 1}, - .SDR = { 107, 1}, - .LLD = { 108, 1}, - .SCD = { 109, 1}, - .MOVN = { 110, 1}, - .MOVZ = { 111, 1}, - .MOVF = { 112, 1}, - .MOVT = { 113, 1}, - .PREF = { 114, 1}, - .PREFX = { 115, 1}, - .LWXC1 = { 116, 1}, - .SWXC1 = { 117, 1}, - .LDXC1 = { 118, 1}, - .SDXC1 = { 119, 1}, - .CLZ = { 120, 1}, - .CLO = { 121, 1}, - .DCLZ = { 122, 1}, - .DCLO = { 123, 1}, - .MUL = { 124, 1}, - .MADD = { 125, 1}, - .MADDU = { 126, 1}, - .MSUB = { 127, 1}, - .MSUBU = { 128, 1}, - .SDBBP = { 129, 1}, - .SSNOP = { 130, 1}, - .EHB = { 131, 1}, - .PAUSE = { 132, 1}, - .EXT = { 133, 1}, - .INS = { 134, 1}, - .DEXT = { 135, 1}, - .DEXTM = { 136, 1}, - .DEXTU = { 137, 1}, - .DINS = { 138, 1}, - .DINSM = { 139, 1}, - .DINSU = { 140, 1}, - .ROTR = { 141, 1}, - .ROTRV = { 142, 1}, - .DROTR = { 143, 1}, - .DROTRV = { 144, 1}, - .DROTR32 = { 145, 1}, - .WSBH = { 146, 1}, - .DSBH = { 147, 1}, - .DSHD = { 148, 1}, - .SEB = { 149, 1}, - .SEH = { 150, 1}, - .RDHWR = { 151, 1}, - .RDPGPR = { 152, 1}, - .WRPGPR = { 153, 1}, - .DI = { 154, 1}, - .EI = { 155, 1}, - .ERET = { 156, 1}, - .DERET = { 157, 1}, - .WAIT = { 158, 1}, - .BC = { 159, 1}, - .BALC = { 160, 1}, - .BEQC = { 161, 1}, - .BNEC = { 162, 1}, - .BLTC = { 163, 1}, - .BGEC = { 164, 1}, - .BLTUC = { 165, 1}, - .BGEUC = { 166, 1}, - .BLEZC = { 167, 1}, - .BGEZC = { 168, 1}, - .BGTZC = { 169, 1}, - .BLTZC = { 170, 1}, - .BEQZC = { 171, 1}, - .BNEZC = { 172, 1}, - .BC1EQZ = { 173, 1}, - .BC1NEZ = { 174, 1}, - .BC2EQZ = { 175, 1}, - .BC2NEZ = { 176, 1}, - .JIC = { 177, 1}, - .JIALC = { 178, 1}, - .MUL_R6 = { 179, 1}, - .MUH = { 180, 1}, - .MULU = { 181, 1}, - .MUHU = { 182, 1}, - .DIV_R6 = { 183, 1}, - .MOD = { 184, 1}, - .DIVU_R6 = { 185, 1}, - .MODU = { 186, 1}, - .DMUL_R6 = { 187, 1}, - .DMUH = { 188, 1}, - .DMULU = { 189, 1}, - .DMUHU = { 190, 1}, - .DDIV_R6 = { 191, 1}, - .DMOD = { 192, 1}, - .DDIVU_R6 = { 193, 1}, - .DMODU = { 194, 1}, - .AUI = { 195, 1}, - .AUIPC = { 196, 1}, - .ALUIPC = { 197, 1}, - .DAUI = { 198, 1}, - .DAHI = { 199, 1}, - .DATI = { 200, 1}, - .ALIGN = { 201, 1}, - .DALIGN = { 202, 1}, - .BITSWAP = { 203, 1}, - .DBITSWAP = { 204, 1}, - .LSA = { 205, 1}, - .DLSA = { 206, 1}, - .LWPC = { 207, 1}, - .LWUPC = { 208, 1}, - .LDPC = { 209, 1}, - .SELEQZ = { 210, 1}, - .SELNEZ = { 211, 1}, - .CRC32B = { 212, 1}, - .CRC32H = { 213, 1}, - .CRC32W = { 214, 1}, - .CRC32D = { 215, 1}, - .CRC32CB = { 216, 1}, - .CRC32CH = { 217, 1}, - .CRC32CW = { 218, 1}, - .CRC32CD = { 219, 1}, - .SIGRIE = { 220, 1}, - .MFC1 = { 221, 1}, - .MTC1 = { 222, 1}, - .DMFC1 = { 223, 1}, - .DMTC1 = { 224, 1}, - .CFC1 = { 225, 1}, - .CTC1 = { 226, 1}, - .MFHC1 = { 227, 1}, - .MTHC1 = { 228, 1}, - .LWC1 = { 229, 1}, - .SWC1 = { 230, 1}, - .LDC1 = { 231, 1}, - .SDC1 = { 232, 1}, - .ADD_S = { 233, 1}, - .ADD_D = { 234, 1}, - .ADD_PS = { 235, 1}, - .SUB_S = { 236, 1}, - .SUB_D = { 237, 1}, - .SUB_PS = { 238, 1}, - .MUL_S = { 239, 1}, - .MUL_D = { 240, 1}, - .MUL_PS = { 241, 1}, - .DIV_S = { 242, 1}, - .DIV_D = { 243, 1}, - .SQRT_S = { 244, 1}, - .SQRT_D = { 245, 1}, - .ABS_S = { 246, 1}, - .ABS_D = { 247, 1}, - .ABS_PS = { 248, 1}, - .NEG_S = { 249, 1}, - .NEG_D = { 250, 1}, - .NEG_PS = { 251, 1}, - .MOV_S = { 252, 1}, - .MOV_D = { 253, 1}, - .MOV_PS = { 254, 1}, - .RECIP_S = { 255, 1}, - .RECIP_D = { 256, 1}, - .RSQRT_S = { 257, 1}, - .RSQRT_D = { 258, 1}, - .MADD_S = { 259, 1}, - .MADD_D = { 260, 1}, - .MADD_PS = { 261, 1}, - .MSUB_S = { 262, 1}, - .MSUB_D = { 263, 1}, - .MSUB_PS = { 264, 1}, - .NMADD_S = { 265, 1}, - .NMADD_D = { 266, 1}, - .NMADD_PS = { 267, 1}, - .NMSUB_S = { 268, 1}, - .NMSUB_D = { 269, 1}, - .NMSUB_PS = { 270, 1}, - .MOVN_S = { 271, 1}, - .MOVN_D = { 272, 1}, - .MOVN_PS = { 273, 1}, - .MOVZ_S = { 274, 1}, - .MOVZ_D = { 275, 1}, - .MOVZ_PS = { 276, 1}, - .MOVF_S = { 277, 1}, - .MOVF_D = { 278, 1}, - .MOVF_PS = { 279, 1}, - .MOVT_S = { 280, 1}, - .MOVT_D = { 281, 1}, - .MOVT_PS = { 282, 1}, - .CVT_S_D = { 283, 1}, - .CVT_S_W = { 284, 1}, - .CVT_S_L = { 285, 1}, - .CVT_D_S = { 286, 1}, - .CVT_D_W = { 287, 1}, - .CVT_D_L = { 288, 1}, - .CVT_W_S = { 289, 1}, - .CVT_W_D = { 290, 1}, - .CVT_L_S = { 291, 1}, - .CVT_L_D = { 292, 1}, - .CVT_PS_S = { 293, 1}, - .CVT_S_PU = { 294, 1}, - .CVT_S_PL = { 295, 1}, - .PLL_PS = { 296, 1}, - .PLU_PS = { 297, 1}, - .PUL_PS = { 298, 1}, - .PUU_PS = { 299, 1}, - .ROUND_W_S = { 300, 1}, - .ROUND_W_D = { 301, 1}, - .ROUND_L_S = { 302, 1}, - .ROUND_L_D = { 303, 1}, - .TRUNC_W_S = { 304, 1}, - .TRUNC_W_D = { 305, 1}, - .TRUNC_L_S = { 306, 1}, - .TRUNC_L_D = { 307, 1}, - .CEIL_W_S = { 308, 1}, - .CEIL_W_D = { 309, 1}, - .CEIL_L_S = { 310, 1}, - .CEIL_L_D = { 311, 1}, - .FLOOR_W_S = { 312, 1}, - .FLOOR_W_D = { 313, 1}, - .FLOOR_L_S = { 314, 1}, - .FLOOR_L_D = { 315, 1}, - .C_F_S = { 316, 1}, - .C_F_D = { 317, 1}, - .C_F_PS = { 318, 1}, - .C_UN_S = { 319, 1}, - .C_UN_D = { 320, 1}, - .C_UN_PS = { 321, 1}, - .C_EQ_S = { 322, 1}, - .C_EQ_D = { 323, 1}, - .C_EQ_PS = { 324, 1}, - .C_UEQ_S = { 325, 1}, - .C_UEQ_D = { 326, 1}, - .C_UEQ_PS = { 327, 1}, - .C_OLT_S = { 328, 1}, - .C_OLT_D = { 329, 1}, - .C_OLT_PS = { 330, 1}, - .C_ULT_S = { 331, 1}, - .C_ULT_D = { 332, 1}, - .C_ULT_PS = { 333, 1}, - .C_OLE_S = { 334, 1}, - .C_OLE_D = { 335, 1}, - .C_OLE_PS = { 336, 1}, - .C_ULE_S = { 337, 1}, - .C_ULE_D = { 338, 1}, - .C_ULE_PS = { 339, 1}, - .C_SF_S = { 340, 1}, - .C_SF_D = { 341, 1}, - .C_SF_PS = { 342, 1}, - .C_NGLE_S = { 343, 1}, - .C_NGLE_D = { 344, 1}, - .C_NGLE_PS = { 345, 1}, - .C_SEQ_S = { 346, 1}, - .C_SEQ_D = { 347, 1}, - .C_SEQ_PS = { 348, 1}, - .C_NGL_S = { 349, 1}, - .C_NGL_D = { 350, 1}, - .C_NGL_PS = { 351, 1}, - .C_LT_S = { 352, 1}, - .C_LT_D = { 353, 1}, - .C_LT_PS = { 354, 1}, - .C_NGE_S = { 355, 1}, - .C_NGE_D = { 356, 1}, - .C_NGE_PS = { 357, 1}, - .C_LE_S = { 358, 1}, - .C_LE_D = { 359, 1}, - .C_LE_PS = { 360, 1}, - .C_NGT_S = { 361, 1}, - .C_NGT_D = { 362, 1}, - .C_NGT_PS = { 363, 1}, - .BC1F = { 364, 1}, - .BC1T = { 365, 1}, - .BC1FL = { 366, 1}, - .BC1TL = { 367, 1}, - .MFC0 = { 368, 1}, - .MTC0 = { 369, 1}, - .DMFC0 = { 370, 1}, - .DMTC0 = { 371, 1}, - .MFHC0 = { 372, 1}, - .MTHC0 = { 373, 1}, - .TLBP = { 374, 1}, - .TLBR = { 375, 1}, - .TLBWI = { 376, 1}, - .TLBWR = { 377, 1}, - .CACHE = { 378, 1}, - .MFC2 = { 379, 1}, - .MTC2 = { 380, 1}, - .CFC2 = { 381, 1}, - .CTC2 = { 382, 1}, - .LWC2 = { 383, 1}, - .SWC2 = { 384, 1}, - .LDC2 = { 385, 1}, - .SDC2 = { 386, 1}, - .RTPS = { 387, 1}, - .RTPT = { 388, 1}, - .DPCS = { 389, 1}, - .DPCT = { 390, 1}, - .INTPL = { 391, 1}, - .MVMVA = { 392, 1}, - .NCDS = { 393, 1}, - .NCDT = { 394, 1}, - .NCCS = { 395, 1}, - .NCCT = { 396, 1}, - .NCS = { 397, 1}, - .NCT = { 398, 1}, - .CDP = { 399, 1}, - .CC = { 400, 1}, - .NCLIP = { 401, 1}, - .AVSZ3 = { 402, 1}, - .AVSZ4 = { 403, 1}, - .OP_GTE = { 404, 1}, - .GPF = { 405, 1}, - .GPL = { 406, 1}, - .SQR_GTE = { 407, 1}, - .DCPL = { 408, 1}, - .LQ = { 409, 1}, - .SQ = { 410, 1}, - .LQC2 = { 411, 1}, - .SQC2 = { 412, 1}, - .MFHI1 = { 413, 1}, - .MFLO1 = { 414, 1}, - .MTHI1 = { 415, 1}, - .MTLO1 = { 416, 1}, - .MULT1 = { 417, 1}, - .MULTU1 = { 418, 1}, - .DIV1 = { 419, 1}, - .DIVU1 = { 420, 1}, - .MADD_EE = { 421, 1}, - .MADDU_EE = { 422, 1}, - .MSUB_EE = { 423, 1}, - .MSUBU_EE = { 424, 1}, + .DIV = { 6, 2}, + .DIVU = { 8, 2}, + .MFHI = { 10, 1}, + .MFLO = { 11, 1}, + .MTHI = { 12, 1}, + .MTLO = { 13, 1}, + .AND = { 14, 1}, + .OR = { 15, 1}, + .XOR = { 16, 1}, + .NOR = { 17, 1}, + .SLT = { 18, 1}, + .SLTU = { 19, 1}, + .SLL = { 20, 1}, + .SRL = { 21, 1}, + .SRA = { 22, 1}, + .SLLV = { 23, 1}, + .SRLV = { 24, 1}, + .SRAV = { 25, 1}, + .ADDI = { 26, 1}, + .ADDIU = { 27, 1}, + .SLTI = { 28, 1}, + .SLTIU = { 29, 1}, + .ANDI = { 30, 1}, + .ORI = { 31, 1}, + .XORI = { 32, 1}, + .LUI = { 33, 1}, + .BEQ = { 34, 1}, + .BNE = { 35, 1}, + .BLEZ = { 36, 1}, + .BGTZ = { 37, 1}, + .BLTZ = { 38, 1}, + .BGEZ = { 39, 1}, + .BLTZAL = { 40, 1}, + .BGEZAL = { 41, 1}, + .J = { 42, 1}, + .JAL = { 43, 1}, + .JR = { 44, 1}, + .JALR = { 45, 1}, + .LB = { 46, 1}, + .LH = { 47, 1}, + .LW = { 48, 1}, + .LBU = { 49, 1}, + .LHU = { 50, 1}, + .LWL = { 51, 1}, + .LWR = { 52, 1}, + .SB = { 53, 1}, + .SH = { 54, 1}, + .SW = { 55, 1}, + .SWL = { 56, 1}, + .SWR = { 57, 1}, + .SYSCALL = { 58, 1}, + .BREAK = { 59, 1}, + .NOP = { 60, 1}, + .LL = { 61, 1}, + .SC = { 62, 1}, + .SYNC = { 63, 1}, + .TGEI = { 64, 1}, + .TGEIU = { 65, 1}, + .TLTI = { 66, 1}, + .TLTIU = { 67, 1}, + .TEQI = { 68, 1}, + .TNEI = { 69, 1}, + .TGE = { 70, 1}, + .TGEU = { 71, 1}, + .TLT = { 72, 1}, + .TLTU = { 73, 1}, + .TEQ = { 74, 1}, + .TNE = { 75, 1}, + .BEQL = { 76, 1}, + .BNEL = { 77, 1}, + .BLEZL = { 78, 1}, + .BGTZL = { 79, 1}, + .BLTZL = { 80, 1}, + .BGEZL = { 81, 1}, + .BLTZALL = { 82, 1}, + .BGEZALL = { 83, 1}, + .DADD = { 84, 1}, + .DADDU = { 85, 1}, + .DSUB = { 86, 1}, + .DSUBU = { 87, 1}, + .DADDI = { 88, 1}, + .DADDIU = { 89, 1}, + .DMULT = { 90, 1}, + .DMULTU = { 91, 1}, + .DDIV = { 92, 2}, + .DDIVU = { 94, 2}, + .DSLL = { 96, 1}, + .DSRL = { 97, 1}, + .DSRA = { 98, 1}, + .DSLLV = { 99, 1}, + .DSRLV = { 100, 1}, + .DSRAV = { 101, 1}, + .DSLL32 = { 102, 1}, + .DSRL32 = { 103, 1}, + .DSRA32 = { 104, 1}, + .LD = { 105, 1}, + .LDL = { 106, 1}, + .LDR = { 107, 1}, + .LWU = { 108, 1}, + .SD = { 109, 1}, + .SDL = { 110, 1}, + .SDR = { 111, 1}, + .LLD = { 112, 1}, + .SCD = { 113, 1}, + .MOVN = { 114, 1}, + .MOVZ = { 115, 1}, + .MOVF = { 116, 1}, + .MOVT = { 117, 1}, + .PREF = { 118, 1}, + .PREFX = { 119, 1}, + .LWXC1 = { 120, 1}, + .SWXC1 = { 121, 1}, + .LDXC1 = { 122, 1}, + .SDXC1 = { 123, 1}, + .CLZ = { 124, 1}, + .CLO = { 125, 1}, + .DCLZ = { 126, 1}, + .DCLO = { 127, 1}, + .MUL = { 128, 2}, + .MADD = { 130, 2}, + .MADDU = { 132, 2}, + .MSUB = { 134, 2}, + .MSUBU = { 136, 2}, + .SDBBP = { 138, 1}, + .SSNOP = { 139, 1}, + .EHB = { 140, 1}, + .PAUSE = { 141, 1}, + .EXT = { 142, 1}, + .INS = { 143, 1}, + .DEXT = { 144, 1}, + .DEXTM = { 145, 1}, + .DEXTU = { 146, 1}, + .DINS = { 147, 1}, + .DINSM = { 148, 1}, + .DINSU = { 149, 1}, + .ROTR = { 150, 1}, + .ROTRV = { 151, 1}, + .DROTR = { 152, 1}, + .DROTRV = { 153, 1}, + .DROTR32 = { 154, 1}, + .WSBH = { 155, 1}, + .DSBH = { 156, 1}, + .DSHD = { 157, 1}, + .SEB = { 158, 1}, + .SEH = { 159, 1}, + .RDHWR = { 160, 1}, + .RDPGPR = { 161, 1}, + .WRPGPR = { 162, 1}, + .DI = { 163, 1}, + .EI = { 164, 1}, + .ERET = { 165, 1}, + .DERET = { 166, 1}, + .WAIT = { 167, 1}, + .BC = { 168, 1}, + .BALC = { 169, 1}, + .BEQC = { 170, 1}, + .BNEC = { 171, 1}, + .BLTC = { 172, 1}, + .BGEC = { 173, 1}, + .BLTUC = { 174, 1}, + .BGEUC = { 175, 1}, + .BLEZC = { 176, 1}, + .BGEZC = { 177, 1}, + .BGTZC = { 178, 1}, + .BLTZC = { 179, 1}, + .BEQZC = { 180, 1}, + .BNEZC = { 181, 1}, + .BC1EQZ = { 182, 1}, + .BC1NEZ = { 183, 1}, + .BC2EQZ = { 184, 1}, + .BC2NEZ = { 185, 1}, + .JIC = { 186, 1}, + .JIALC = { 187, 1}, + .MUH = { 188, 1}, + .MULU = { 189, 1}, + .MUHU = { 190, 1}, + .MOD = { 191, 1}, + .MODU = { 192, 1}, + .DMUL = { 193, 1}, + .DMUH = { 194, 1}, + .DMULU = { 195, 1}, + .DMUHU = { 196, 1}, + .DMOD = { 197, 1}, + .DMODU = { 198, 1}, + .AUI = { 199, 1}, + .AUIPC = { 200, 1}, + .ALUIPC = { 201, 1}, + .DAUI = { 202, 1}, + .DAHI = { 203, 1}, + .DATI = { 204, 1}, + .ALIGN = { 205, 1}, + .DALIGN = { 206, 1}, + .BITSWAP = { 207, 1}, + .DBITSWAP = { 208, 1}, + .LSA = { 209, 1}, + .DLSA = { 210, 1}, + .LWPC = { 211, 1}, + .LWUPC = { 212, 1}, + .LDPC = { 213, 1}, + .SELEQZ = { 214, 1}, + .SELNEZ = { 215, 1}, + .CRC32B = { 216, 1}, + .CRC32H = { 217, 1}, + .CRC32W = { 218, 1}, + .CRC32D = { 219, 1}, + .CRC32CB = { 220, 1}, + .CRC32CH = { 221, 1}, + .CRC32CW = { 222, 1}, + .CRC32CD = { 223, 1}, + .SIGRIE = { 224, 1}, + .MFC1 = { 225, 1}, + .MTC1 = { 226, 1}, + .DMFC1 = { 227, 1}, + .DMTC1 = { 228, 1}, + .CFC1 = { 229, 1}, + .CTC1 = { 230, 1}, + .MFHC1 = { 231, 1}, + .MTHC1 = { 232, 1}, + .LWC1 = { 233, 1}, + .SWC1 = { 234, 1}, + .LDC1 = { 235, 1}, + .SDC1 = { 236, 1}, + .ADD_S = { 237, 1}, + .ADD_D = { 238, 1}, + .ADD_PS = { 239, 1}, + .SUB_S = { 240, 1}, + .SUB_D = { 241, 1}, + .SUB_PS = { 242, 1}, + .MUL_S = { 243, 1}, + .MUL_D = { 244, 1}, + .MUL_PS = { 245, 1}, + .DIV_S = { 246, 1}, + .DIV_D = { 247, 1}, + .SQRT_S = { 248, 1}, + .SQRT_D = { 249, 1}, + .ABS_S = { 250, 1}, + .ABS_D = { 251, 1}, + .ABS_PS = { 252, 1}, + .NEG_S = { 253, 1}, + .NEG_D = { 254, 1}, + .NEG_PS = { 255, 1}, + .MOV_S = { 256, 1}, + .MOV_D = { 257, 1}, + .MOV_PS = { 258, 1}, + .RECIP_S = { 259, 1}, + .RECIP_D = { 260, 1}, + .RSQRT_S = { 261, 1}, + .RSQRT_D = { 262, 1}, + .MADD_S = { 263, 1}, + .MADD_D = { 264, 1}, + .MADD_PS = { 265, 1}, + .MSUB_S = { 266, 1}, + .MSUB_D = { 267, 1}, + .MSUB_PS = { 268, 1}, + .NMADD_S = { 269, 1}, + .NMADD_D = { 270, 1}, + .NMADD_PS = { 271, 1}, + .NMSUB_S = { 272, 1}, + .NMSUB_D = { 273, 1}, + .NMSUB_PS = { 274, 1}, + .MOVN_S = { 275, 1}, + .MOVN_D = { 276, 1}, + .MOVN_PS = { 277, 1}, + .MOVZ_S = { 278, 1}, + .MOVZ_D = { 279, 1}, + .MOVZ_PS = { 280, 1}, + .MOVF_S = { 281, 1}, + .MOVF_D = { 282, 1}, + .MOVF_PS = { 283, 1}, + .MOVT_S = { 284, 1}, + .MOVT_D = { 285, 1}, + .MOVT_PS = { 286, 1}, + .CVT_S_D = { 287, 1}, + .CVT_S_W = { 288, 1}, + .CVT_S_L = { 289, 1}, + .CVT_D_S = { 290, 1}, + .CVT_D_W = { 291, 1}, + .CVT_D_L = { 292, 1}, + .CVT_W_S = { 293, 1}, + .CVT_W_D = { 294, 1}, + .CVT_L_S = { 295, 1}, + .CVT_L_D = { 296, 1}, + .CVT_PS_S = { 297, 1}, + .CVT_S_PU = { 298, 1}, + .CVT_S_PL = { 299, 1}, + .PLL_PS = { 300, 1}, + .PLU_PS = { 301, 1}, + .PUL_PS = { 302, 1}, + .PUU_PS = { 303, 1}, + .ROUND_W_S = { 304, 1}, + .ROUND_W_D = { 305, 1}, + .ROUND_L_S = { 306, 1}, + .ROUND_L_D = { 307, 1}, + .TRUNC_W_S = { 308, 1}, + .TRUNC_W_D = { 309, 1}, + .TRUNC_L_S = { 310, 1}, + .TRUNC_L_D = { 311, 1}, + .CEIL_W_S = { 312, 1}, + .CEIL_W_D = { 313, 1}, + .CEIL_L_S = { 314, 1}, + .CEIL_L_D = { 315, 1}, + .FLOOR_W_S = { 316, 1}, + .FLOOR_W_D = { 317, 1}, + .FLOOR_L_S = { 318, 1}, + .FLOOR_L_D = { 319, 1}, + .C_F_S = { 320, 1}, + .C_F_D = { 321, 1}, + .C_F_PS = { 322, 1}, + .C_UN_S = { 323, 1}, + .C_UN_D = { 324, 1}, + .C_UN_PS = { 325, 1}, + .C_EQ_S = { 326, 1}, + .C_EQ_D = { 327, 1}, + .C_EQ_PS = { 328, 1}, + .C_UEQ_S = { 329, 1}, + .C_UEQ_D = { 330, 1}, + .C_UEQ_PS = { 331, 1}, + .C_OLT_S = { 332, 1}, + .C_OLT_D = { 333, 1}, + .C_OLT_PS = { 334, 1}, + .C_ULT_S = { 335, 1}, + .C_ULT_D = { 336, 1}, + .C_ULT_PS = { 337, 1}, + .C_OLE_S = { 338, 1}, + .C_OLE_D = { 339, 1}, + .C_OLE_PS = { 340, 1}, + .C_ULE_S = { 341, 1}, + .C_ULE_D = { 342, 1}, + .C_ULE_PS = { 343, 1}, + .C_SF_S = { 344, 1}, + .C_SF_D = { 345, 1}, + .C_SF_PS = { 346, 1}, + .C_NGLE_S = { 347, 1}, + .C_NGLE_D = { 348, 1}, + .C_NGLE_PS = { 349, 1}, + .C_SEQ_S = { 350, 1}, + .C_SEQ_D = { 351, 1}, + .C_SEQ_PS = { 352, 1}, + .C_NGL_S = { 353, 1}, + .C_NGL_D = { 354, 1}, + .C_NGL_PS = { 355, 1}, + .C_LT_S = { 356, 1}, + .C_LT_D = { 357, 1}, + .C_LT_PS = { 358, 1}, + .C_NGE_S = { 359, 1}, + .C_NGE_D = { 360, 1}, + .C_NGE_PS = { 361, 1}, + .C_LE_S = { 362, 1}, + .C_LE_D = { 363, 1}, + .C_LE_PS = { 364, 1}, + .C_NGT_S = { 365, 1}, + .C_NGT_D = { 366, 1}, + .C_NGT_PS = { 367, 1}, + .BC1F = { 368, 1}, + .BC1T = { 369, 1}, + .BC1FL = { 370, 1}, + .BC1TL = { 371, 1}, + .MFC0 = { 372, 1}, + .MTC0 = { 373, 1}, + .DMFC0 = { 374, 1}, + .DMTC0 = { 375, 1}, + .MFHC0 = { 376, 1}, + .MTHC0 = { 377, 1}, + .TLBP = { 378, 1}, + .TLBR = { 379, 1}, + .TLBWI = { 380, 1}, + .TLBWR = { 381, 1}, + .CACHE = { 382, 1}, + .MFC2 = { 383, 1}, + .MTC2 = { 384, 1}, + .CFC2 = { 385, 1}, + .CTC2 = { 386, 1}, + .LWC2 = { 387, 1}, + .SWC2 = { 388, 1}, + .LDC2 = { 389, 1}, + .SDC2 = { 390, 1}, + .RTPS = { 391, 1}, + .RTPT = { 392, 1}, + .DPCS = { 393, 1}, + .DPCT = { 394, 1}, + .INTPL = { 395, 1}, + .MVMVA = { 396, 1}, + .NCDS = { 397, 1}, + .NCDT = { 398, 1}, + .NCCS = { 399, 1}, + .NCCT = { 400, 1}, + .NCS = { 401, 1}, + .NCT = { 402, 1}, + .CDP = { 403, 1}, + .CC = { 404, 1}, + .NCLIP = { 405, 1}, + .AVSZ3 = { 406, 1}, + .AVSZ4 = { 407, 1}, + .OP = { 408, 1}, + .GPF = { 409, 1}, + .GPL = { 410, 1}, + .SQR = { 411, 1}, + .DCPL = { 412, 1}, + .LQ = { 413, 1}, + .SQ = { 414, 1}, + .LQC2 = { 415, 1}, + .SQC2 = { 416, 1}, + .MFHI1 = { 417, 1}, + .MFLO1 = { 418, 1}, + .MTHI1 = { 419, 1}, + .MTLO1 = { 420, 1}, + .MULT1 = { 421, 1}, + .MULTU1 = { 422, 1}, + .DIV1 = { 423, 1}, + .DIVU1 = { 424, 1}, .MADD1 = { 425, 1}, .MADDU1 = { 426, 1}, .MSUB1 = { 427, 1}, diff --git a/core/rexcode/isa/mips/tables/mips.encode_forms.bin b/core/rexcode/isa/mips/tables/mips.encode_forms.bin index 270eeb81f..249d2b18d 100644 Binary files a/core/rexcode/isa/mips/tables/mips.encode_forms.bin and b/core/rexcode/isa/mips/tables/mips.encode_forms.bin differ diff --git a/core/rexcode/isa/mips/tables/mips.encode_runs.bin b/core/rexcode/isa/mips/tables/mips.encode_runs.bin index 3fd0673e3..524aac5ea 100644 Binary files a/core/rexcode/isa/mips/tables/mips.encode_runs.bin and b/core/rexcode/isa/mips/tables/mips.encode_runs.bin differ diff --git a/core/rexcode/isa/mips/tables/mips.entries.bin b/core/rexcode/isa/mips/tables/mips.entries.bin index 32ce70023..7e4f2f891 100644 Binary files a/core/rexcode/isa/mips/tables/mips.entries.bin and b/core/rexcode/isa/mips/tables/mips.entries.bin differ diff --git a/core/rexcode/isa/mos6502/mnemonic_builders.odin b/core/rexcode/isa/mos6502/mnemonic_builders.odin index d8980e6f5..a3562af95 100644 --- a/core/rexcode/isa/mos6502/mnemonic_builders.odin +++ b/core/rexcode/isa/mos6502/mnemonic_builders.odin @@ -172,8 +172,6 @@ inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return emit_nop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_none(.NOP)) } inst_lax_m :: #force_inline proc "contextless" (m: Memory) -> Instruction { return inst_m(.LAX, m) } emit_lax_m :: #force_inline proc(instructions: ^[dynamic]Instruction, m: Memory) { append(instructions, inst_m(.LAX, m)) } -inst_sax_nmos_m :: #force_inline proc "contextless" (m: Memory) -> Instruction { return inst_m(.SAX_NMOS, m) } -emit_sax_nmos_m :: #force_inline proc(instructions: ^[dynamic]Instruction, m: Memory) { append(instructions, inst_m(.SAX_NMOS, m)) } inst_dcp_m :: #force_inline proc "contextless" (m: Memory) -> Instruction { return inst_m(.DCP, m) } emit_dcp_m :: #force_inline proc(instructions: ^[dynamic]Instruction, m: Memory) { append(instructions, inst_m(.DCP, m)) } inst_isc_m :: #force_inline proc "contextless" (m: Memory) -> Instruction { return inst_m(.ISC, m) } @@ -309,7 +307,9 @@ emit_bbs7_zp_rel :: #force_inline proc(instructions: ^[dynamic]Instruction, zp: inst_sxy_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SXY) } emit_sxy_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_none(.SXY)) } inst_sax_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SAX) } +inst_sax_m :: #force_inline proc "contextless" (m: Memory) -> Instruction { return inst_m(.SAX, m) } emit_sax_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_none(.SAX)) } +emit_sax_m :: #force_inline proc(instructions: ^[dynamic]Instruction, m: Memory) { append(instructions, inst_m(.SAX, m)) } inst_say_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.SAY) } emit_say_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_none(.SAY)) } inst_cla_none :: #force_inline proc "contextless" () -> Instruction { return inst_none(.CLA) } @@ -467,8 +467,6 @@ inst_nop :: inst_nop_none emit_nop :: emit_nop_none inst_lax :: inst_lax_m emit_lax :: emit_lax_m -inst_sax_nmos :: inst_sax_nmos_m -emit_sax_nmos :: emit_sax_nmos_m inst_dcp :: inst_dcp_m emit_dcp :: emit_dcp_m inst_isc :: inst_isc_m @@ -601,8 +599,8 @@ inst_bbs7 :: inst_bbs7_zp_rel emit_bbs7 :: emit_bbs7_zp_rel inst_sxy :: inst_sxy_none emit_sxy :: emit_sxy_none -inst_sax :: inst_sax_none -emit_sax :: emit_sax_none +inst_sax :: proc{ inst_sax_none, inst_sax_m } +emit_sax :: proc{ emit_sax_none, emit_sax_m } inst_say :: inst_say_none emit_say :: emit_say_none inst_cla :: inst_cla_none diff --git a/core/rexcode/isa/mos6502/mnemonics.odin b/core/rexcode/isa/mos6502/mnemonics.odin index db88cdc11..76b0ba7c6 100644 --- a/core/rexcode/isa/mos6502/mnemonics.odin +++ b/core/rexcode/isa/mos6502/mnemonics.odin @@ -12,9 +12,10 @@ package rexcode_mos6502 // - 65C02 additions (Rockwell/WDC), incl. RMB/SMB/BBR/BBS bit ops // - HuC6280 (PC Engine) additions: block xfer, swap regs, MMR ops // -// The undocumented NMOS SAX (store A&X) collides in mnemonic with the -// HuC6280 SAX (swap A,X). To keep both, the NMOS undocumented form is -// named `SAX_NMOS` (sometimes written as AAX or SAX-undoc elsewhere). +// The undocumented NMOS SAX (store A&X) and the HuC6280 SAX (swap A,X) +// share the assembler mnemonic `sax`. They are one Mnemonic with two sets +// of forms: the NMOS one takes a memory operand and the HuC6280 one takes +// none, so the operand shape alone picks the right encoding. Mnemonic :: enum u16 { INVALID = 0, @@ -62,7 +63,6 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- LAX, // LDA + LDX (load A and X from memory) - SAX_NMOS, // store A AND X to memory (also called AAX / AXS-undoc) DCP, // DEC + CMP (memory) ISC, // INC + SBC (also ISB) RLA, // ROL + AND @@ -109,7 +109,7 @@ Mnemonic :: enum u16 { // ------------------------------------------------------------------------- SXY, // swap X, Y - SAX, // swap A, X (NB: distinct from undocumented NMOS SAX_NMOS) + SAX, // swap A,X (HuC6280) / store A AND X (NMOS undocumented) SAY, // swap A, Y CLA, CLX, CLY, // clear A / X / Y CSH, CSL, // CPU speed high / low (7.16 MHz vs 1.79 MHz) diff --git a/core/rexcode/isa/mos6502/printer.odin b/core/rexcode/isa/mos6502/printer.odin index 8786420e1..3c1d3dcc8 100644 --- a/core/rexcode/isa/mos6502/printer.odin +++ b/core/rexcode/isa/mos6502/printer.odin @@ -252,16 +252,8 @@ wprintln :: proc( @(private="file") write_mnemonic :: proc(sb: ^strings.Builder, m: Mnemonic, uppercase: bool) { - // SAX_NMOS prints as "sax" in conventional disassembly (the suffix is - // just our internal disambiguator vs the HuC6280 SAX). - name: string - #partial switch m { - case .SAX_NMOS: name = "SAX" - case: - n, ok := reflect.enum_name_from_value(m) - if !ok { strings.write_string(sb, ""); return } - name = n - } + name, ok := reflect.enum_name_from_value(m) + if !ok { strings.write_string(sb, ""); return } for i in 0..= 'A' && c <= 'Z' { diff --git a/core/rexcode/isa/mos6502/tablegen/encoding_table.odin b/core/rexcode/isa/mos6502/tablegen/encoding_table.odin index 84c1344a2..ee5909bfb 100644 --- a/core/rexcode/isa/mos6502/tablegen/encoding_table.odin +++ b/core/rexcode/isa/mos6502/tablegen/encoding_table.odin @@ -302,13 +302,6 @@ ENCODING_TABLE:= #partial [Mnemonic][]Encoding{ {.LAX, {.MEM_IND_Y, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0xB3, 2, .NMOS_UNDOC, {page_cross=true}}, }, - // SAX_NMOS (A & X -> mem) - .SAX_NMOS = { - {.SAX_NMOS, {.MEM_ZP, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0x87, 2, .NMOS_UNDOC, {}}, - {.SAX_NMOS, {.MEM_ZP_Y, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0x97, 2, .NMOS_UNDOC, {}}, - {.SAX_NMOS, {.MEM_ABS, .NONE, .NONE, .NONE}, {.WORD_1_ADDR, .NONE, .NONE, .NONE}, 0x8F, 3, .NMOS_UNDOC, {}}, - {.SAX_NMOS, {.MEM_IND_X, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0x83, 2, .NMOS_UNDOC, {}}, - }, // DCP (DEC + CMP) .DCP = { @@ -502,7 +495,16 @@ ENCODING_TABLE:= #partial [Mnemonic][]Encoding{ // Register swap / clear .SXY = { {.SXY, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x02, 1, .HUC6280, {}} }, - .SAX = { {.SAX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x22, 1, .HUC6280, {}} }, + // SAX: the HuC6280 register swap (no operand) and the NMOS undocumented + // store-A&X (memory operand). One assembler mnemonic; the operand shape + // picks the form. + .SAX = { + {.SAX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x22, 1, .HUC6280, {}}, + {.SAX, {.MEM_ZP, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0x87, 2, .NMOS_UNDOC, {}}, + {.SAX, {.MEM_ZP_Y, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0x97, 2, .NMOS_UNDOC, {}}, + {.SAX, {.MEM_ABS, .NONE, .NONE, .NONE}, {.WORD_1_ADDR, .NONE, .NONE, .NONE}, 0x8F, 3, .NMOS_UNDOC, {}}, + {.SAX, {.MEM_IND_X, .NONE, .NONE, .NONE}, {.BYTE_1_ADDR, .NONE, .NONE, .NONE}, 0x83, 2, .NMOS_UNDOC, {}}, + }, .SAY = { {.SAY, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x42, 1, .HUC6280, {}} }, .CLA = { {.CLA, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x62, 1, .HUC6280, {}} }, .CLX = { {.CLX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, 0x82, 1, .HUC6280, {}} }, diff --git a/core/rexcode/isa/mos6502/tablegen/generated/decode_tables.odin b/core/rexcode/isa/mos6502/tablegen/generated/decode_tables.odin index 2093f88d6..e6cc3551a 100644 --- a/core/rexcode/isa/mos6502/tablegen/generated/decode_tables.odin +++ b/core/rexcode/isa/mos6502/tablegen/generated/decode_tables.odin @@ -176,12 +176,12 @@ DECODE_ENTRIES := [321]lib.Decode_Entry{ { .BRA, {.REL,.NONE,.NONE}, {.BYTE_1_REL,.NONE,.NONE}, 0x80, 2, .CMOS_65C02, {branch=true} }, { .STA, {.MEM_IND_X,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x81, 2, .NMOS, {} }, { .CLX, {.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE}, 0x82, 1, .HUC6280, {} }, - { .SAX_NMOS, {.MEM_IND_X,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x83, 2, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_IND_X,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x83, 2, .NMOS_UNDOC, {} }, { .TST, {.IMM_8,.MEM_ZP,.NONE}, {.BYTE_1_IMM,.BYTE_2_ADDR,.NONE}, 0x83, 3, .HUC6280, {} }, { .STY, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x84, 2, .NMOS, {} }, { .STA, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x85, 2, .NMOS, {} }, { .STX, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x86, 2, .NMOS, {} }, - { .SAX_NMOS, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x87, 2, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x87, 2, .NMOS_UNDOC, {} }, { .SMB0, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x87, 2, .CMOS_65C02, {} }, { .DEY, {.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE}, 0x88, 1, .NMOS, {} }, { .BIT, {.IMM_8,.NONE,.NONE}, {.BYTE_1_IMM,.NONE,.NONE}, 0x89, 2, .CMOS_65C02, {} }, @@ -190,7 +190,7 @@ DECODE_ENTRIES := [321]lib.Decode_Entry{ { .STY, {.MEM_ABS,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE}, 0x8C, 3, .NMOS, {} }, { .STA, {.MEM_ABS,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE}, 0x8D, 3, .NMOS, {} }, { .STX, {.MEM_ABS,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE}, 0x8E, 3, .NMOS, {} }, - { .SAX_NMOS, {.MEM_ABS,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE}, 0x8F, 3, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_ABS,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE}, 0x8F, 3, .NMOS_UNDOC, {} }, { .BBS0, {.MEM_ZP,.REL,.NONE}, {.BYTE_1_ADDR,.BYTE_2_REL,.NONE}, 0x8F, 3, .CMOS_65C02, {cond_branch=true} }, { .BCC, {.REL,.NONE,.NONE}, {.BYTE_1_REL,.NONE,.NONE}, 0x90, 2, .NMOS, {cond_branch=true} }, { .STA, {.MEM_IND_Y,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x91, 2, .NMOS, {} }, @@ -201,7 +201,7 @@ DECODE_ENTRIES := [321]lib.Decode_Entry{ { .STY, {.MEM_ZP_X,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x94, 2, .NMOS, {} }, { .STA, {.MEM_ZP_X,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x95, 2, .NMOS, {} }, { .STX, {.MEM_ZP_Y,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x96, 2, .NMOS, {} }, - { .SAX_NMOS, {.MEM_ZP_Y,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x97, 2, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_ZP_Y,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x97, 2, .NMOS_UNDOC, {} }, { .SMB1, {.MEM_ZP,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE}, 0x97, 2, .CMOS_65C02, {} }, { .TYA, {.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE}, 0x98, 1, .NMOS, {} }, { .STA, {.MEM_ABS_Y,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE}, 0x99, 3, .NMOS, {} }, diff --git a/core/rexcode/isa/mos6502/tablegen/generated/encode_tables.odin b/core/rexcode/isa/mos6502/tablegen/generated/encode_tables.odin index 576d83f49..dcacfa75b 100644 --- a/core/rexcode/isa/mos6502/tablegen/generated/encode_tables.odin +++ b/core/rexcode/isa/mos6502/tablegen/generated/encode_tables.odin @@ -237,11 +237,6 @@ ENCODE_FORMS := [321]lib.Encoding{ { .LAX, {.MEM_ABS_Y,.NONE,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE,.NONE}, 0xBF, 3, .NMOS_UNDOC, {page_cross=true} }, { .LAX, {.MEM_IND_X,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0xA3, 2, .NMOS_UNDOC, {} }, { .LAX, {.MEM_IND_Y,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0xB3, 2, .NMOS_UNDOC, {page_cross=true} }, - // .SAX_NMOS - { .SAX_NMOS, {.MEM_ZP,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0x87, 2, .NMOS_UNDOC, {} }, - { .SAX_NMOS, {.MEM_ZP_Y,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0x97, 2, .NMOS_UNDOC, {} }, - { .SAX_NMOS, {.MEM_ABS,.NONE,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE,.NONE}, 0x8F, 3, .NMOS_UNDOC, {} }, - { .SAX_NMOS, {.MEM_IND_X,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0x83, 2, .NMOS_UNDOC, {} }, // .DCP { .DCP, {.MEM_ZP,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0xC7, 2, .NMOS_UNDOC, {} }, { .DCP, {.MEM_ZP_X,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0xD7, 2, .NMOS_UNDOC, {} }, @@ -433,6 +428,10 @@ ENCODE_FORMS := [321]lib.Encoding{ { .SXY, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x02, 1, .HUC6280, {} }, // .SAX { .SAX, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x22, 1, .HUC6280, {} }, + { .SAX, {.MEM_ZP,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0x87, 2, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_ZP_Y,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0x97, 2, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_ABS,.NONE,.NONE,.NONE}, {.WORD_1_ADDR,.NONE,.NONE,.NONE}, 0x8F, 3, .NMOS_UNDOC, {} }, + { .SAX, {.MEM_IND_X,.NONE,.NONE,.NONE}, {.BYTE_1_ADDR,.NONE,.NONE,.NONE}, 0x83, 2, .NMOS_UNDOC, {} }, // .SAY { .SAY, {.NONE,.NONE,.NONE,.NONE}, {.NONE,.NONE,.NONE,.NONE}, 0x42, 1, .HUC6280, {} }, // .CLA @@ -478,149 +477,148 @@ ENCODE_FORMS := [321]lib.Encoding{ @(rodata) ENCODE_RUNS := [lib.Mnemonic]lib.Encode_Run{ - .INVALID = { 0, 0}, - .ADC = { 0, 9}, - .AND = { 9, 9}, - .ASL = { 18, 5}, - .BIT = { 23, 5}, - .CMP = { 28, 9}, - .CPX = { 37, 3}, - .CPY = { 40, 3}, - .DEC = { 43, 5}, - .DEX = { 48, 1}, - .DEY = { 49, 1}, - .EOR = { 50, 9}, - .INC = { 59, 5}, - .INX = { 64, 1}, - .INY = { 65, 1}, - .LSR = { 66, 5}, - .ORA = { 71, 9}, - .ROL = { 80, 5}, - .ROR = { 85, 5}, - .SBC = { 90, 9}, - .BCC = { 99, 1}, - .BCS = { 100, 1}, - .BEQ = { 101, 1}, - .BMI = { 102, 1}, - .BNE = { 103, 1}, - .BPL = { 104, 1}, - .BVC = { 105, 1}, - .BVS = { 106, 1}, - .JMP = { 107, 3}, - .JSR = { 110, 1}, - .RTI = { 111, 1}, - .RTS = { 112, 1}, - .BRK = { 113, 1}, - .CLC = { 114, 1}, - .CLD = { 115, 1}, - .CLI = { 116, 1}, - .CLV = { 117, 1}, - .SEC = { 118, 1}, - .SED = { 119, 1}, - .SEI = { 120, 1}, - .LDA = { 121, 9}, - .LDX = { 130, 5}, - .LDY = { 135, 5}, - .STA = { 140, 8}, - .STX = { 148, 3}, - .STY = { 151, 3}, - .PHA = { 154, 1}, - .PHP = { 155, 1}, - .PLA = { 156, 1}, - .PLP = { 157, 1}, - .TAX = { 158, 1}, - .TAY = { 159, 1}, - .TSX = { 160, 1}, - .TXA = { 161, 1}, - .TXS = { 162, 1}, - .TYA = { 163, 1}, - .NOP = { 164, 1}, - .LAX = { 165, 6}, - .SAX_NMOS = { 171, 4}, - .DCP = { 175, 7}, - .ISC = { 182, 7}, - .RLA = { 189, 7}, - .RRA = { 196, 7}, - .SLO = { 203, 7}, - .SRE = { 210, 7}, - .ALR = { 217, 1}, - .ANC = { 218, 2}, - .ARR = { 220, 1}, - .AXS = { 221, 1}, - .LAS = { 222, 1}, - .ANE = { 223, 1}, - .LXA = { 224, 1}, - .SHA = { 225, 2}, - .SHX = { 227, 1}, - .SHY = { 228, 1}, - .TAS = { 229, 1}, - .JAM = { 230, 12}, - .USBC = { 242, 1}, - .DOP = { 243, 3}, - .TOP = { 246, 2}, - .BRA = { 248, 1}, - .INA = { 249, 1}, - .DEA = { 250, 1}, - .PHX = { 251, 1}, - .PHY = { 252, 1}, - .PLX = { 253, 1}, - .PLY = { 254, 1}, - .STZ = { 255, 4}, - .TRB = { 259, 2}, - .TSB = { 261, 2}, - .STP = { 263, 1}, - .WAI = { 264, 1}, - .RMB0 = { 265, 1}, - .RMB1 = { 266, 1}, - .RMB2 = { 267, 1}, - .RMB3 = { 268, 1}, - .RMB4 = { 269, 1}, - .RMB5 = { 270, 1}, - .RMB6 = { 271, 1}, - .RMB7 = { 272, 1}, - .SMB0 = { 273, 1}, - .SMB1 = { 274, 1}, - .SMB2 = { 275, 1}, - .SMB3 = { 276, 1}, - .SMB4 = { 277, 1}, - .SMB5 = { 278, 1}, - .SMB6 = { 279, 1}, - .SMB7 = { 280, 1}, - .BBR0 = { 281, 1}, - .BBR1 = { 282, 1}, - .BBR2 = { 283, 1}, - .BBR3 = { 284, 1}, - .BBR4 = { 285, 1}, - .BBR5 = { 286, 1}, - .BBR6 = { 287, 1}, - .BBR7 = { 288, 1}, - .BBS0 = { 289, 1}, - .BBS1 = { 290, 1}, - .BBS2 = { 291, 1}, - .BBS3 = { 292, 1}, - .BBS4 = { 293, 1}, - .BBS5 = { 294, 1}, - .BBS6 = { 295, 1}, - .BBS7 = { 296, 1}, - .SXY = { 297, 1}, - .SAX = { 298, 1}, - .SAY = { 299, 1}, - .CLA = { 300, 1}, - .CLX = { 301, 1}, - .CLY = { 302, 1}, - .CSH = { 303, 1}, - .CSL = { 304, 1}, - .SET = { 305, 1}, - .ST0 = { 306, 1}, - .ST1 = { 307, 1}, - .ST2 = { 308, 1}, - .TAM = { 309, 1}, - .TMA = { 310, 1}, - .TST = { 311, 4}, - .BSR = { 315, 1}, - .TII = { 316, 1}, - .TDD = { 317, 1}, - .TIN = { 318, 1}, - .TIA = { 319, 1}, - .TAI = { 320, 1}, + .INVALID = { 0, 0}, + .ADC = { 0, 9}, + .AND = { 9, 9}, + .ASL = { 18, 5}, + .BIT = { 23, 5}, + .CMP = { 28, 9}, + .CPX = { 37, 3}, + .CPY = { 40, 3}, + .DEC = { 43, 5}, + .DEX = { 48, 1}, + .DEY = { 49, 1}, + .EOR = { 50, 9}, + .INC = { 59, 5}, + .INX = { 64, 1}, + .INY = { 65, 1}, + .LSR = { 66, 5}, + .ORA = { 71, 9}, + .ROL = { 80, 5}, + .ROR = { 85, 5}, + .SBC = { 90, 9}, + .BCC = { 99, 1}, + .BCS = { 100, 1}, + .BEQ = { 101, 1}, + .BMI = { 102, 1}, + .BNE = { 103, 1}, + .BPL = { 104, 1}, + .BVC = { 105, 1}, + .BVS = { 106, 1}, + .JMP = { 107, 3}, + .JSR = { 110, 1}, + .RTI = { 111, 1}, + .RTS = { 112, 1}, + .BRK = { 113, 1}, + .CLC = { 114, 1}, + .CLD = { 115, 1}, + .CLI = { 116, 1}, + .CLV = { 117, 1}, + .SEC = { 118, 1}, + .SED = { 119, 1}, + .SEI = { 120, 1}, + .LDA = { 121, 9}, + .LDX = { 130, 5}, + .LDY = { 135, 5}, + .STA = { 140, 8}, + .STX = { 148, 3}, + .STY = { 151, 3}, + .PHA = { 154, 1}, + .PHP = { 155, 1}, + .PLA = { 156, 1}, + .PLP = { 157, 1}, + .TAX = { 158, 1}, + .TAY = { 159, 1}, + .TSX = { 160, 1}, + .TXA = { 161, 1}, + .TXS = { 162, 1}, + .TYA = { 163, 1}, + .NOP = { 164, 1}, + .LAX = { 165, 6}, + .DCP = { 171, 7}, + .ISC = { 178, 7}, + .RLA = { 185, 7}, + .RRA = { 192, 7}, + .SLO = { 199, 7}, + .SRE = { 206, 7}, + .ALR = { 213, 1}, + .ANC = { 214, 2}, + .ARR = { 216, 1}, + .AXS = { 217, 1}, + .LAS = { 218, 1}, + .ANE = { 219, 1}, + .LXA = { 220, 1}, + .SHA = { 221, 2}, + .SHX = { 223, 1}, + .SHY = { 224, 1}, + .TAS = { 225, 1}, + .JAM = { 226, 12}, + .USBC = { 238, 1}, + .DOP = { 239, 3}, + .TOP = { 242, 2}, + .BRA = { 244, 1}, + .INA = { 245, 1}, + .DEA = { 246, 1}, + .PHX = { 247, 1}, + .PHY = { 248, 1}, + .PLX = { 249, 1}, + .PLY = { 250, 1}, + .STZ = { 251, 4}, + .TRB = { 255, 2}, + .TSB = { 257, 2}, + .STP = { 259, 1}, + .WAI = { 260, 1}, + .RMB0 = { 261, 1}, + .RMB1 = { 262, 1}, + .RMB2 = { 263, 1}, + .RMB3 = { 264, 1}, + .RMB4 = { 265, 1}, + .RMB5 = { 266, 1}, + .RMB6 = { 267, 1}, + .RMB7 = { 268, 1}, + .SMB0 = { 269, 1}, + .SMB1 = { 270, 1}, + .SMB2 = { 271, 1}, + .SMB3 = { 272, 1}, + .SMB4 = { 273, 1}, + .SMB5 = { 274, 1}, + .SMB6 = { 275, 1}, + .SMB7 = { 276, 1}, + .BBR0 = { 277, 1}, + .BBR1 = { 278, 1}, + .BBR2 = { 279, 1}, + .BBR3 = { 280, 1}, + .BBR4 = { 281, 1}, + .BBR5 = { 282, 1}, + .BBR6 = { 283, 1}, + .BBR7 = { 284, 1}, + .BBS0 = { 285, 1}, + .BBS1 = { 286, 1}, + .BBS2 = { 287, 1}, + .BBS3 = { 288, 1}, + .BBS4 = { 289, 1}, + .BBS5 = { 290, 1}, + .BBS6 = { 291, 1}, + .BBS7 = { 292, 1}, + .SXY = { 293, 1}, + .SAX = { 294, 5}, + .SAY = { 299, 1}, + .CLA = { 300, 1}, + .CLX = { 301, 1}, + .CLY = { 302, 1}, + .CSH = { 303, 1}, + .CSL = { 304, 1}, + .SET = { 305, 1}, + .ST0 = { 306, 1}, + .ST1 = { 307, 1}, + .ST2 = { 308, 1}, + .TAM = { 309, 1}, + .TMA = { 310, 1}, + .TST = { 311, 4}, + .BSR = { 315, 1}, + .TII = { 316, 1}, + .TDD = { 317, 1}, + .TIN = { 318, 1}, + .TIA = { 319, 1}, + .TAI = { 320, 1}, } diff --git a/core/rexcode/isa/mos6502/tables/mos6502.encode_forms.bin b/core/rexcode/isa/mos6502/tables/mos6502.encode_forms.bin index 0b656fdb9..fe9a672e4 100644 Binary files a/core/rexcode/isa/mos6502/tables/mos6502.encode_forms.bin and b/core/rexcode/isa/mos6502/tables/mos6502.encode_forms.bin differ diff --git a/core/rexcode/isa/mos6502/tables/mos6502.encode_runs.bin b/core/rexcode/isa/mos6502/tables/mos6502.encode_runs.bin index 6e54c4fdc..6e630427d 100644 Binary files a/core/rexcode/isa/mos6502/tables/mos6502.encode_runs.bin and b/core/rexcode/isa/mos6502/tables/mos6502.encode_runs.bin differ diff --git a/core/rexcode/isa/mos6502/tables/mos6502.entries.bin b/core/rexcode/isa/mos6502/tables/mos6502.entries.bin index 3d55cc1c6..db437e84a 100644 Binary files a/core/rexcode/isa/mos6502/tables/mos6502.entries.bin and b/core/rexcode/isa/mos6502/tables/mos6502.entries.bin differ diff --git a/core/rexcode/isa/mos6502/tests/smoke.odin b/core/rexcode/isa/mos6502/tests/smoke.odin index cfc9d5a08..fd1c6ff1f 100644 --- a/core/rexcode/isa/mos6502/tests/smoke.odin +++ b/core/rexcode/isa/mos6502/tests/smoke.odin @@ -113,8 +113,8 @@ main :: proc() { // ---- NMOS undocumented ---------------------------------------------------- check_mode("LAX zp", .LAX, .MEM_ZP, 0xA7) check_mode("LAX abs,Y", .LAX, .MEM_ABS_Y,0xBF) - check_mode("SAX_NMOS zp", .SAX_NMOS, .MEM_ZP, 0x87) - check_mode("SAX_NMOS abs", .SAX_NMOS, .MEM_ABS, 0x8F) + check_mode("SAX zp (NMOS)", .SAX, .MEM_ZP, 0x87) + check_mode("SAX abs (NMOS)", .SAX, .MEM_ABS, 0x8F) check_mode("DCP abs", .DCP, .MEM_ABS, 0xCF) check_mode("ISC abs", .ISC, .MEM_ABS, 0xEF) check_mode("RLA abs", .RLA, .MEM_ABS, 0x2F) diff --git a/core/rexcode/isa/riscv/decoder.odin b/core/rexcode/isa/riscv/decoder.odin index 47aa72cd2..12de89972 100644 --- a/core/rexcode/isa/riscv/decoder.odin +++ b/core/rexcode/isa/riscv/decoder.odin @@ -165,7 +165,9 @@ decode_one_inline :: #force_inline proc "contextless" ( return matched_idx } -@(private="file") +// Shared with the encoder: an rv32_only / rv64_only form is only selectable +// when the target XLEN matches. +@(private) xlen_accepts :: #force_inline proc "contextless" (xlen: XLEN, f: Encoding_Flags) -> bool { if f.rv32_only && xlen != .RV32 { return false } if f.rv64_only && xlen != .RV64 { return false } diff --git a/core/rexcode/isa/riscv/encoder.odin b/core/rexcode/isa/riscv/encoder.odin index e37d7e8c8..a588aec20 100644 --- a/core/rexcode/isa/riscv/encoder.odin +++ b/core/rexcode/isa/riscv/encoder.odin @@ -56,6 +56,7 @@ encode :: proc( errors: ^[dynamic]Error, resolve: bool = true, base_address: u64 = 0, + xlen: XLEN = .RV64, ) -> (byte_count: u32, ok: bool) { n_inst := u32(len(instructions)) if u32(len(code)) < n_inst * 4 { @@ -75,7 +76,7 @@ encode :: proc( for i in 0.. (word: u32, ilen: u8, ok: bool) { if inst.mnemonic == .INVALID { append(errors, Error{inst_idx = u32(inst_idx), code = .INVALID_MNEMONIC}) @@ -143,6 +145,9 @@ encode_one_inline :: #force_inline proc( form: ^Encoding for &f in forms { + // ZEXT_H and REV8 have one RV32 and one RV64 encoding with identical + // operands; without this the RV64 form was unreachable. + if !xlen_accepts(xlen, f.flags) { continue } if encoding_matches_inline(inst, &f) { form = &f break diff --git a/core/rexcode/isa/riscv/tablegen/cpp-compiler/cpp-gen.odin b/core/rexcode/isa/riscv/tablegen/cpp-compiler/cpp-gen.odin index 1eec54f16..84cb4d67a 100644 --- a/core/rexcode/isa/riscv/tablegen/cpp-compiler/cpp-gen.odin +++ b/core/rexcode/isa/riscv/tablegen/cpp-compiler/cpp-gen.odin @@ -79,22 +79,9 @@ main :: proc() { { strings.write_string(&sb, "\n") strings.write_string(&sb, """ - static const u16 REG_CLASS_NONE = 0x000; - static const u16 REG_CLASS_GPR64 = 0x100; - static const u16 REG_CLASS_GPR32 = 0x200; - static const u16 REG_CLASS_GPR16 = 0x300; - static const u16 REG_CLASS_GPR8 = 0x400; - static const u16 REG_CLASS_GPR8H = 0x500; // AH, CH, DH, BH - legacy high byte regs - static const u16 REG_CLASS_XMM = 0x600; - static const u16 REG_CLASS_YMM = 0x700; - static const u16 REG_CLASS_ZMM = 0x800; - static const u16 REG_CLASS_K = 0x900; // opmask - static const u16 REG_CLASS_SEG = 0xA00; // segment - static const u16 REG_CLASS_CR = 0xB00; // control - static const u16 REG_CLASS_DR = 0xC00; // debug - static const u16 REG_CLASS_BND = 0xD00; // bound - static const u16 REG_CLASS_MM = 0xE00; // MMX - static const u16 REG_CLASS_ST = 0xF00; // x87 FPU + static const u16 REG_CLASS_NONE = 0x0000; + static const u16 REG_CLASS_GPR = 0x0100; // x0..x31 + static const u16 REG_CLASS_FPR = 0x0200; // f0..f31 \n """) { @@ -117,6 +104,88 @@ main :: proc() { strings.write_string(&sb, "\t};\n") } } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum OperandType : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in type_of(gen.Encoding{}.ops[0]) { + fmt.sbprintf(&sb, "\t\tOP_%s,\n", op) + } + + } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum OperandEncoding : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in Operand_Encoding { + fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) + } + + } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum Feature : u16 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in Feature { + fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) + } + + } + strings.write_string(&sb, "\n") + strings.write_string(&sb, "\ttypedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability\n") + strings.write_string(&sb, "\n") + { + defer strings.write_string(&sb, "\tGB_STATIC_ASSERT(gb_size_of(Encoding) == 21);\n") + + strings.write_string(&sb, "\t#pragma pack(push, 1)\n") + defer strings.write_string(&sb, "\t#pragma pack(pop)\n") + strings.write_string(&sb, "\tstruct Encoding {\n") + defer strings.write_string(&sb, "\t};\n") + strings.write_string(&sb, """ + Mnemonic mnemonic; + OperandType ops[4]; + OperandEncoding enc[4]; + u32 bits; + u32 mask; + Feature feature; + EncodingFlags flags; + \n + """) + Encoding_Flags :: type_of(gen.Encoding{}.flags) + + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "has_implicit") + strings.write_string(&sb, "\t\tbool has_implicit () const { ") + fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + strings.write_string(&sb, " }\n") + } + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "explicit_count") + bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "explicit_count") + strings.write_string(&sb, "\t\tu8 explicit_count() const { ") + fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) + strings.write_string(&sb, " }\n") + } + // { + // bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "op_count") + // bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "op_count") + // strings.write_string(&sb, "\t\tu8 op_count () const { ") + // fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) + // strings.write_string(&sb, " }\n") + // } + // { + // bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "lock_ok") + // strings.write_string(&sb, "\t\tbool lock_ok () const { ") + // fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + // strings.write_string(&sb, " }\n") + // } + // { + // bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "rep_ok") + // strings.write_string(&sb, "\t\tbool rep_ok () const { ") + // fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + // strings.write_string(&sb, " }\n") + // } + } strings.write_string(&sb, "\n") strings.write_string(&sb, """ @@ -264,6 +333,9 @@ main :: proc() { ClobberFlags flags_rd_call() const { return {}; } + ClobberFlags flags_wr_call() const { + return flags_wr; + } bool implies_clobber_flags() const { return (flags_wr != 0); @@ -285,7 +357,7 @@ main :: proc() { bool has_halt() const { return (cast(u16)side_effects & SideEffectFlag_TRAP) != 0; } - bool is_conditional() const { + bool is_conditional(struct Encoding const &valid_form) const { return has_control(); } bool is_nondeterministic() const { @@ -299,6 +371,19 @@ main :: proc() { bool is_atomic = false; // TODO(bill): Add ATOMIC flag to SideEffectFlags in the original INSTRUCTION_TABLE return (implicit & (ClobberReg_SP)) != 0 || is_atomic; } + bool is_status_snapshot() const { + // RiscV64 has no architectural condition flags: branches compare two GPRs + // directly (beq/bltu/…) and slt/sltu materialise a 0/1 into a GPR, so nothing + // ever consumes status as an implicit condition — flags_rd_call() is always + // empty and the flag read-before-write check is already vacuous here. + // + // The only status that exists — the accrued fcsr exception flags (fflags[4:0]) + // and the frm rounding field — is read solely through an explicit CSR access + // (csrr* / frflags / frrm), which pulls the register out as an opaque value + // into a GPR. That is a snapshot by construction and must never require a + // producer, so every status read that RV64 can express qualifies. + return true; + } }; void clobber_implicit_regs(StringSet *clobber_registers_set, u16 implicit_regs) { @@ -384,88 +469,6 @@ main :: proc() { strings.write_string(&sb, "\tstatic u16 const register_codes [REG_COUNT];\n") strings.write_string(&sb, "\tstatic String const register_strings[REG_COUNT];\n") - strings.write_string(&sb, "\n\n") - { - strings.write_string(&sb, "\tenum OperandType : u8 {\n") - defer strings.write_string(&sb, "\t};\n") - for op in type_of(gen.Encoding{}.ops[0]) { - fmt.sbprintf(&sb, "\t\tOP_%s,\n", op) - } - - } - strings.write_string(&sb, "\n\n") - { - strings.write_string(&sb, "\tenum OperandEncoding : u8 {\n") - defer strings.write_string(&sb, "\t};\n") - for op in Operand_Encoding { - fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) - } - - } - strings.write_string(&sb, "\n\n") - { - strings.write_string(&sb, "\tenum Feature : u16 {\n") - defer strings.write_string(&sb, "\t};\n") - for op in Feature { - fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) - } - - } - strings.write_string(&sb, "\n") - strings.write_string(&sb, "\ttypedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability\n") - strings.write_string(&sb, "\n") - { - defer strings.write_string(&sb, "\tGB_STATIC_ASSERT(gb_size_of(Encoding) == 21);\n") - - strings.write_string(&sb, "\t#pragma pack(push, 1)\n") - defer strings.write_string(&sb, "\t#pragma pack(pop)\n") - strings.write_string(&sb, "\tstruct Encoding {\n") - defer strings.write_string(&sb, "\t};\n") - strings.write_string(&sb, """ - Mnemonic mnemonic; - OperandType ops[4]; - OperandEncoding enc[4]; - u32 bits; - u32 mask; - Feature feature; - EncodingFlags flags; - \n - """) - Encoding_Flags :: type_of(gen.Encoding{}.flags) - - { - bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "has_implicit") - strings.write_string(&sb, "\t\tbool has_implicit () const { ") - fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) - strings.write_string(&sb, " }\n") - } - { - bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "explicit_count") - bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "explicit_count") - strings.write_string(&sb, "\t\tu8 explicit_count() const { ") - fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) - strings.write_string(&sb, " }\n") - } - // { - // bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "op_count") - // bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "op_count") - // strings.write_string(&sb, "\t\tu8 op_count () const { ") - // fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) - // strings.write_string(&sb, " }\n") - // } - // { - // bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "lock_ok") - // strings.write_string(&sb, "\t\tbool lock_ok () const { ") - // fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) - // strings.write_string(&sb, " }\n") - // } - // { - // bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "rep_ok") - // strings.write_string(&sb, "\t\tbool rep_ok () const { ") - // fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) - // strings.write_string(&sb, " }\n") - // } - } strings.write_string(&sb, "\n\n") { strings.write_string(&sb, "\t// Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS.\n") @@ -603,25 +606,16 @@ main :: proc() { // size in bits for register u16 reg_size(Register r) const { switch (reg_class(register_codes[r])) { - case REG_CLASS_GPR64: return 64; - case REG_CLASS_GPR32: return 32; - case REG_CLASS_GPR16: return 16; - case REG_CLASS_GPR8: return 8; - case REG_CLASS_GPR8H: return 8; - case REG_CLASS_XMM: return 128; - case REG_CLASS_YMM: return 256; - case REG_CLASS_ZMM: return 512; - case REG_CLASS_K: return 64; - case REG_CLASS_MM: return 64; - case REG_CLASS_ST: return 80; - case REG_CLASS_SEG: return 16; - case REG_CLASS_CR: return 64; - case REG_CLASS_DR: return 64; - case REG_CLASS_BND: return 128; + case REG_CLASS_GPR: return XLEN; + case REG_CLASS_FPR: return FLEN; } return 0; } + bool reg_is_segment(/*Register*/ u16 r) { + return false; + } + bool integer_reg_width_is_exact() const { return false; } @@ -824,6 +818,24 @@ main :: proc() { } return 0; } + + bool target_has_feature(u64 enabled_features, u32 f) const { + return true; + } + char const *feature_name(u32 f) const { + return ""; + } + u16 operand_type_transfer_bytes(OperandType t) const { + gb_unused(t); + return 0; + } + bool operand_type_is_lane(OperandType t) const { + return false; + } + + String feature_name_from_form(Encoding const &form) const { + return {}; + } """) strings.write_string(&sb, "\n\n") @@ -846,6 +858,27 @@ main :: proc() { } return -1; } + + // Transfer size (bytes) a memory form's scaled index must match: + // shift == log2(bytes). Derived from the widest register operand in the form + // (the data being loaded/stored). 0 => no such constraint. Generic across ISAs. + u16 form_transfer_bytes(Encoding const &form) const { + u16 widest = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) { + break; + } + AsmOperandKind k = kind_from_operand_type(t); + if (k == AsmOperand_Register) { + u16 w = operand_type_bit_width(t); + if (w > widest) { + widest = w; + } + } + } + return cast(u16)(widest / 8); + } """) strings.write_string(&sb, "\n\n") diff --git a/core/rexcode/isa/x86/aliases.odin b/core/rexcode/isa/x86/aliases.odin new file mode 100644 index 000000000..42c8077a4 --- /dev/null +++ b/core/rexcode/isa/x86/aliases.odin @@ -0,0 +1,130 @@ +// rexcode · Brendan Punsky (dotbmp@github), original author + +package rexcode_x86 + +// ============================================================================= +// MNEMONIC ALIASES — which of several names for one encoding a disassembler prints +// ============================================================================= +// +// Some x86 instructions have several legal mnemonics for ONE encoding. SHL and +// SAL are both ModRM.reg=4 in the shift group; JE and JZ are both 0x74; there +// are 57 such pairs. A decoder has nothing to tell them apart with — the bytes +// are identical — so it must simply pick a name, and that choice has to be +// DECLARED. Left undeclared it falls out of wherever the entry happened to land +// in the (unstably sorted) decode table: correct, arbitrary, and free to move on +// any table regeneration. It did move once, and four tests that had always +// passed began reporting `SAL != expected SHL`. +// +// The canonical name here is the one **llvm-mc prints**, measured rather than +// chosen: llvm-mc is the ground truth every verifier in this library diffs +// against, so agreeing with it is what makes a disassembly comparable. Before +// this table, 52 of the 74 aliased encodings decoded to a name llvm-mc does not +// use (`0F 84` → JZ where it says JE, `A4` → MOVS where it says MOVSB, `DB E2` → +// FCLEX where it says FNCLEX). +// +// An alias stays fully ENCODABLE — `inst_r_r(.SAL, …)` emits the same bytes it +// always did. Only the decode direction is narrowed, and only where the +// canonical name covers the byte-identical encoding: that condition is what lets +// MOV be the alias at the `A0`-`A3`/`B8` moffs forms while remaining the only +// name for `88`/`89`. `tablegen/gen.odin` applies it when it collects decode +// entries, so an aliased mnemonic never reaches the decode tables at all. +// +// Adding an instruction whose mnemonic aliases another one's encoding requires a +// row here; `run_alias_table_test` in tests/ recomputes the ambiguity from the +// built tables and fails by name if one is missing, so it cannot be forgotten. + +Mnemonic_Alias :: struct { + alias: Mnemonic, // never produced by the decoder + canonical: Mnemonic, // produced instead, at the byte-identical encoding +} + +@(rodata) +MNEMONIC_ALIASES := [?]Mnemonic_Alias{ + // -- Jcc, both the short 0x7x and near 0x0F 8x forms -------------------- + {.JNAE, .JB}, {.JC, .JB}, + {.JNB, .JAE}, {.JNC, .JAE}, + {.JZ, .JE}, + {.JNZ, .JNE}, + {.JNA, .JBE}, + {.JNBE, .JA}, + {.JPE, .JP}, + {.JPO, .JNP}, + {.JNGE, .JL}, + {.JNL, .JGE}, + {.JNG, .JLE}, + {.JNLE, .JG}, + + // -- CMOVcc (0x0F 4x) --------------------------------------------------- + {.CMOVNAE, .CMOVB}, {.CMOVC, .CMOVB}, + {.CMOVNB, .CMOVAE}, {.CMOVNC, .CMOVAE}, + {.CMOVZ, .CMOVE}, + {.CMOVNZ, .CMOVNE}, + {.CMOVNA, .CMOVBE}, + {.CMOVNBE, .CMOVA}, + {.CMOVPE, .CMOVP}, + {.CMOVPO, .CMOVNP}, + {.CMOVNGE, .CMOVL}, + {.CMOVNL, .CMOVGE}, + {.CMOVNG, .CMOVLE}, + {.CMOVNLE, .CMOVG}, + + // -- SETcc (0x0F 9x) ---------------------------------------------------- + {.SETNAE, .SETB}, {.SETC, .SETB}, + {.SETNB, .SETAE}, {.SETNC, .SETAE}, + {.SETZ, .SETE}, + {.SETNZ, .SETNE}, + {.SETNA, .SETBE}, + {.SETNBE, .SETA}, + {.SETPE, .SETP}, + {.SETPO, .SETNP}, + {.SETNGE, .SETL}, + {.SETNL, .SETGE}, + {.SETNG, .SETLE}, + {.SETNLE, .SETG}, + + // -- Shift group: SAL and SHL are both /4, the same encoding ------------ + {.SAL, .SHL}, + + // -- String ops: the bare name against the explicitly byte-sized one ---- + {.CMPS, .CMPSB}, + {.LODS, .LODSB}, + {.MOVS, .MOVSB}, + {.SCAS, .SCASB}, + {.STOS, .STOSB}, + + // -- x87: the assembler's wait-prefixed spelling of a no-wait opcode ---- + // (FSTENV is really `9B D9 /6`; the table gives it the bare `D9 /6`, which + // is FNSTENV. Modelling the 9B prefix is a separate question — until then + // the bare encoding decodes as the no-wait name, which is what it is.) + {.FCLEX, .FNCLEX}, + {.FINIT, .FNINIT}, + {.FSAVE, .FNSAVE}, + {.FSTCW, .FNSTCW}, + {.FSTENV, .FNSTENV}, + {.FSTSW, .FNSTSW}, + + // -- Odds -------------------------------------------------------------- + {.FWAIT, .WAIT}, + {.XLAT, .XLATB}, + // MOV aliases MOVABS only at the moffs (`A0`-`A3`) and imm64 (`B8+r`) + // forms; the coverage rule leaves every other MOV encoding untouched. + {.MOV, .MOVABS}, +} + +// The name a disassembler prints for `m`'s encoding — `m` itself unless it is a +// declared alias. Useful to an assembler front-end that accepts either spelling +// and wants to compare against decoder output. +canonical_mnemonic :: proc "contextless" (m: Mnemonic) -> Mnemonic { + for entry in MNEMONIC_ALIASES { + if entry.alias == m { return entry.canonical } + } + return m +} + +// Is `m` a name the decoder never produces? +is_mnemonic_alias :: proc "contextless" (m: Mnemonic) -> bool { + for entry in MNEMONIC_ALIASES { + if entry.alias == m { return true } + } + return false +} diff --git a/core/rexcode/isa/x86/decoder.odin b/core/rexcode/isa/x86/decoder.odin index e883944ab..69127337f 100644 --- a/core/rexcode/isa/x86/decoder.odin +++ b/core/rexcode/isa/x86/decoder.odin @@ -565,6 +565,21 @@ decode_opcode :: proc(state: ^Decoder_State) -> (entry: ^Decode_Entry, vex_entry } if !has_modrm_byte { + // ADDRESS-size variants first: a form declaring one is picked by which + // address size is in effect (mode default vs 67h), an axis the operand- + // size scan below cannot see -- it reads REX.W and 66h, and neither + // affects address size. 0xE3 is the case: JRCXZ/JECXZ/JCXZ are one + // opcode telling RCX/ECX/CX apart, and nothing else in the bytes says + // which. Checked before the operand-size pass so a REX.W-prefixed E3 + // (legal, and ignored by the CPU for address size) still reads as JRCXZ. + addr_want := effective_addr_size(state.mode, state.prefix_67) + for i in 0..= int(run.start) + int(run.count) { + panic("rexcode/x86: a baked enc_hint names a form outside its own mnemonic's run — mnemonic_builders.odin is stale relative to tables/x86.encode_*.bin. Regenerate it: odin run core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin -file") + } + } } else { // Resolve the form on the matcher path (memoizing cache + scan) in a // separate, non-inlined proc so this hot loop stays lean for the hint @@ -313,8 +334,26 @@ encode :: proc( pos += 1 } - // Address size override (67h) - if inst.flags.addr32 { + // Address size override (67h), when the CALLER asked for one. A form + // that requires a particular address size emits it below instead -- + // this branch is inside the "any instruction flag is set" gate, and + // such a form needs the prefix whether or not the caller set a flag. + if inst.flags.addr32 && enc.flags.addr_size == .DEFAULT { + out[pos] = 0x67 + pos += 1 + } + } + + // A form whose ADDRESS size is fixed (JRCXZ/JECXZ/JCXZ -- one opcode, the + // mnemonic saying which counter register) carries the prefix when its size + // is not the mode's default. Outside the flags gate above because it is a + // property of the ENCODING, not of the caller's request; `addr_size` is + // .DEFAULT for all but three forms, so the test is one compare against a + // field already loaded. + if enc.flags.addr_size != .DEFAULT { + // Reachability was settled by the matcher's gate, which refuses a form + // whose address size this mode cannot express. + if needs_67, _ := addr_size_prefix(enc.flags.addr_size, mode); needs_67 { out[pos] = 0x67 pos += 1 } @@ -871,6 +910,15 @@ encoding_matches_inline :: proc "contextless" (inst: ^Instruction, enc: ^Encodin return false } + // Address-size gate: a form fixed to an address size this mode cannot reach + // is not encodable here at all -- JCXZ (16-bit) in long mode, where 67h + // selects 32-bit; JRCXZ (64-bit) outside it. Every other form is .DEFAULT. + if enc.flags.addr_size != .DEFAULT { + if _, reachable := addr_size_prefix(enc.flags.addr_size, mode); !reachable { + return false + } + } + // PUSH/POP FS/GS: the segment operand is fixed by the opcode (0F A0/A1 -> FS, // 0F A8/A9 -> GS), so a form only matches when the user's segment agrees -- // otherwise `push gs` would take the first {SREG} form (FS) and mis-encode. diff --git a/core/rexcode/isa/x86/encoding_types.odin b/core/rexcode/isa/x86/encoding_types.odin index d4958d284..c756f65c7 100644 --- a/core/rexcode/isa/x86/encoding_types.odin +++ b/core/rexcode/isa/x86/encoding_types.odin @@ -241,6 +241,48 @@ VEX_L :: enum u8 { L2, // L = 2 (512-bit, EVEX only) } +/* + The ADDRESS size a form requires -- a different axis from operand size (66h / + REX.W), selected by 67h against the mode's default: 64-bit in long mode and + 32-bit under 67h; 32-bit in protected mode and 16-bit under 67h. + + Almost every instruction is DEFAULT (it works at whatever address size is in + effect). It matters where address size picks the MNEMONIC: 0xE3 is JRCXZ, + JECXZ or JCXZ purely by which counter register it tests, and nothing else in + the encoding says which. Modelling that as REX.W (which does not affect + address size at all) made `48 E3 cb` the encoding of JRCXZ, where the correct + one is a bare `E3 cb`, and left the decoder unable to tell the three apart. +*/ +Addr_Size :: enum u8 { + DEFAULT, // whatever the mode/prefix selects; the form does not care + A16, // 16-bit addressing (CX) + A32, // 32-bit addressing (ECX) + A64, // 64-bit addressing (RCX); long mode only +} + +// The address size in effect for `mode` with/without a 67h override. +effective_addr_size :: #force_inline proc "contextless" (mode: Mode, prefix_67: bool) -> Addr_Size { + if mode == ._64 { + return prefix_67 ? .A32 : .A64 + } + return prefix_67 ? .A16 : .A32 +} + +// Does reaching `want` in `mode` require a 67h prefix, and is it reachable at all? +addr_size_prefix :: #force_inline proc "contextless" (want: Addr_Size, mode: Mode) -> (prefix_67: bool, ok: bool) { + if want == .DEFAULT { + return false, true + } + if want == effective_addr_size(mode, false) { + return false, true + } + if want == effective_addr_size(mode, true) { + return true, true + } + // e.g. JCXZ (A16) in long mode: 67h there gives 32-bit, never 16-bit. + return false, false +} + // ----------------------------------------------------------------------------- // SECTION: 6.5 Encoding Flags // ----------------------------------------------------------------------------- @@ -259,6 +301,7 @@ Encoding_Flags :: bit_field u32 { rep_ok: bool | 1, // REP prefix valid modrm_reg_ext: bool | 1, // ModR/M reg field is opcode extension (use ext field) mode_32_only: bool | 1, // only valid in Mode._32 (e.g. short-form INC/DEC at 0x40-0x4F) + addr_size: Addr_Size | 2, // required ADDRESS size (67h axis); selects JCXZ/JECXZ/JRCXZ explicit_count: u8 | 3, // 0..<4 non-implicit operands has_implicit: bool | 1, // any implicit operand @@ -302,8 +345,9 @@ encoding_flags :: #force_inline proc "contextless" ( no_rex: bool = false, lock_ok: bool = false, rep_ok: bool = false, - modrm_reg_ext: bool = false, - mode_32_only: bool = false, + modrm_reg_ext: bool = false, + mode_32_only: bool = false, + addr_size: Addr_Size = .DEFAULT, ) -> Encoding_Flags { return Encoding_Flags{ esc = esc, @@ -319,6 +363,7 @@ encoding_flags :: #force_inline proc "contextless" ( rep_ok = rep_ok, modrm_reg_ext = modrm_reg_ext, mode_32_only = mode_32_only, + addr_size = addr_size, } } diff --git a/core/rexcode/isa/x86/mnemonic_builders.odin b/core/rexcode/isa/x86/mnemonic_builders.odin index 80e533958..93991e23d 100644 --- a/core/rexcode/isa/x86/mnemonic_builders.odin +++ b/core/rexcode/isa/x86/mnemonic_builders.odin @@ -889,22 +889,54 @@ emit_sar_r64 :: #force_inline proc(instructions: ^[dynami emit_sar_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_sar_m64(dst)) } emit_sar_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_sar_r64_imm8(dst, imm)) } emit_sar_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_sar_m64_imm8(dst, imm)) } -inst_rol_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 323) } -inst_rol_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 323) } -inst_rol_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 325) } -inst_rol_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 325) } -inst_rol_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 326) } -inst_rol_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 326) } -inst_rol_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 328) } -inst_rol_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 328) } -inst_rol_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 329) } -inst_rol_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 329) } -inst_rol_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 331) } -inst_rol_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 331) } -inst_rol_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 332) } -inst_rol_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 332) } -inst_rol_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 334) } -inst_rol_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 334) } +inst_sal_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 323) } +inst_sal_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 323) } +inst_sal_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 325) } +inst_sal_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 325) } +inst_sal_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 326) } +inst_sal_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 326) } +inst_sal_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 328) } +inst_sal_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 328) } +inst_sal_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 329) } +inst_sal_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 329) } +inst_sal_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 331) } +inst_sal_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 331) } +inst_sal_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 332) } +inst_sal_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 332) } +inst_sal_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 334) } +inst_sal_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SAL, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 334) } +emit_sal_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_sal_r8(dst)) } +emit_sal_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_sal_m8(dst)) } +emit_sal_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, imm: i8) { append(instructions, inst_sal_r8_imm8(dst, imm)) } +emit_sal_m8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8, imm: i8) { append(instructions, inst_sal_m8_imm8(dst, imm)) } +emit_sal_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_sal_r16(dst)) } +emit_sal_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_sal_m16(dst)) } +emit_sal_r16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, imm: i8) { append(instructions, inst_sal_r16_imm8(dst, imm)) } +emit_sal_m16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, imm: i8) { append(instructions, inst_sal_m16_imm8(dst, imm)) } +emit_sal_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_sal_r32(dst)) } +emit_sal_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_sal_m32(dst)) } +emit_sal_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, imm: i8) { append(instructions, inst_sal_r32_imm8(dst, imm)) } +emit_sal_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, imm: i8) { append(instructions, inst_sal_m32_imm8(dst, imm)) } +emit_sal_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_sal_r64(dst)) } +emit_sal_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_sal_m64(dst)) } +emit_sal_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_sal_r64_imm8(dst, imm)) } +emit_sal_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_sal_m64_imm8(dst, imm)) } +inst_rol_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 335) } +inst_rol_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 335) } +inst_rol_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 337) } +inst_rol_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 337) } +inst_rol_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 338) } +inst_rol_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 338) } +inst_rol_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 340) } +inst_rol_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 340) } +inst_rol_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 341) } +inst_rol_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 341) } +inst_rol_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 343) } +inst_rol_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 343) } +inst_rol_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 344) } +inst_rol_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 344) } +inst_rol_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 346) } +inst_rol_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROL, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 346) } emit_rol_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_rol_r8(dst)) } emit_rol_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_rol_m8(dst)) } emit_rol_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, imm: i8) { append(instructions, inst_rol_r8_imm8(dst, imm)) } @@ -921,22 +953,22 @@ emit_rol_r64 :: #force_inline proc(instructions: ^[dynami emit_rol_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_rol_m64(dst)) } emit_rol_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_rol_r64_imm8(dst, imm)) } emit_rol_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_rol_m64_imm8(dst, imm)) } -inst_ror_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 335) } -inst_ror_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 335) } -inst_ror_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 337) } -inst_ror_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 337) } -inst_ror_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 338) } -inst_ror_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 338) } -inst_ror_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 340) } -inst_ror_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 340) } -inst_ror_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 341) } -inst_ror_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 341) } -inst_ror_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 343) } -inst_ror_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 343) } -inst_ror_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 344) } -inst_ror_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 344) } -inst_ror_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 346) } -inst_ror_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 346) } +inst_ror_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 347) } +inst_ror_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 347) } +inst_ror_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 349) } +inst_ror_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 349) } +inst_ror_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 350) } +inst_ror_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 350) } +inst_ror_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 352) } +inst_ror_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 352) } +inst_ror_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 353) } +inst_ror_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 353) } +inst_ror_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 355) } +inst_ror_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 355) } +inst_ror_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 356) } +inst_ror_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 356) } +inst_ror_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 358) } +inst_ror_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 358) } emit_ror_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_ror_r8(dst)) } emit_ror_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_ror_m8(dst)) } emit_ror_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, imm: i8) { append(instructions, inst_ror_r8_imm8(dst, imm)) } @@ -953,22 +985,22 @@ emit_ror_r64 :: #force_inline proc(instructions: ^[dynami emit_ror_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_ror_m64(dst)) } emit_ror_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_ror_r64_imm8(dst, imm)) } emit_ror_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_ror_m64_imm8(dst, imm)) } -inst_rcl_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 347) } -inst_rcl_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 347) } -inst_rcl_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 349) } -inst_rcl_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 349) } -inst_rcl_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 350) } -inst_rcl_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 350) } -inst_rcl_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 352) } -inst_rcl_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 352) } -inst_rcl_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 353) } -inst_rcl_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 353) } -inst_rcl_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 355) } -inst_rcl_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 355) } -inst_rcl_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 356) } -inst_rcl_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 356) } -inst_rcl_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 358) } -inst_rcl_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 358) } +inst_rcl_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 359) } +inst_rcl_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 359) } +inst_rcl_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 361) } +inst_rcl_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 361) } +inst_rcl_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 362) } +inst_rcl_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 362) } +inst_rcl_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 364) } +inst_rcl_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 364) } +inst_rcl_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 365) } +inst_rcl_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 365) } +inst_rcl_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 367) } +inst_rcl_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 367) } +inst_rcl_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 368) } +inst_rcl_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 368) } +inst_rcl_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 370) } +inst_rcl_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCL, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 370) } emit_rcl_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_rcl_r8(dst)) } emit_rcl_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_rcl_m8(dst)) } emit_rcl_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, imm: i8) { append(instructions, inst_rcl_r8_imm8(dst, imm)) } @@ -985,22 +1017,22 @@ emit_rcl_r64 :: #force_inline proc(instructions: ^[dynami emit_rcl_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_rcl_m64(dst)) } emit_rcl_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_rcl_r64_imm8(dst, imm)) } emit_rcl_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_rcl_m64_imm8(dst, imm)) } -inst_rcr_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 359) } -inst_rcr_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 359) } -inst_rcr_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 361) } -inst_rcr_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 361) } -inst_rcr_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 362) } -inst_rcr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 362) } -inst_rcr_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 364) } -inst_rcr_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 364) } -inst_rcr_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 365) } -inst_rcr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 365) } -inst_rcr_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 367) } -inst_rcr_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 367) } -inst_rcr_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 368) } -inst_rcr_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 368) } -inst_rcr_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 370) } -inst_rcr_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 370) } +inst_rcr_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 371) } +inst_rcr_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 371) } +inst_rcr_r8_imm8 :: #force_inline proc "contextless" (dst: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr8(dst), op_imm8(imm), {}, {}} }, 373) } +inst_rcr_m8_imm8 :: #force_inline proc "contextless" (dst: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 1), op_imm8(imm), {}, {}} }, 373) } +inst_rcr_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 374) } +inst_rcr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 374) } +inst_rcr_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 376) } +inst_rcr_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 376) } +inst_rcr_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 377) } +inst_rcr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 377) } +inst_rcr_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 379) } +inst_rcr_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 379) } +inst_rcr_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 380) } +inst_rcr_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 380) } +inst_rcr_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 382) } +inst_rcr_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RCR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 382) } emit_rcr_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_rcr_r8(dst)) } emit_rcr_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_rcr_m8(dst)) } emit_rcr_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, imm: i8) { append(instructions, inst_rcr_r8_imm8(dst, imm)) } @@ -1017,18 +1049,18 @@ emit_rcr_r64 :: #force_inline proc(instructions: ^[dynami emit_rcr_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_rcr_m64(dst)) } emit_rcr_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_rcr_r64_imm8(dst, imm)) } emit_rcr_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_rcr_m64_imm8(dst, imm)) } -inst_shld_r16_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_gpr16(dst), op_gpr16(src), op_imm8(imm), {}} }, 371) } -inst_shld_m16_r16_imm8 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_mem(dst.mem, 2), op_gpr16(src), op_imm8(imm), {}} }, 371) } -inst_shld_r32_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_imm8(imm), {}} }, 372) } -inst_shld_m32_r32_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_gpr32(src), op_imm8(imm), {}} }, 372) } -inst_shld_r64_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_imm8(imm), {}} }, 373) } -inst_shld_m64_r64_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_mem(dst.mem, 8), op_gpr64(src), op_imm8(imm), {}} }, 373) } -inst_shld_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 374) } -inst_shld_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 374) } -inst_shld_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 375) } -inst_shld_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 375) } -inst_shld_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 376) } -inst_shld_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 376) } +inst_shld_r16_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_gpr16(dst), op_gpr16(src), op_imm8(imm), {}} }, 383) } +inst_shld_m16_r16_imm8 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_mem(dst.mem, 2), op_gpr16(src), op_imm8(imm), {}} }, 383) } +inst_shld_r32_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_imm8(imm), {}} }, 384) } +inst_shld_m32_r32_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_gpr32(src), op_imm8(imm), {}} }, 384) } +inst_shld_r64_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_imm8(imm), {}} }, 385) } +inst_shld_m64_r64_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 3, ops = {op_mem(dst.mem, 8), op_gpr64(src), op_imm8(imm), {}} }, 385) } +inst_shld_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 386) } +inst_shld_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 386) } +inst_shld_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 387) } +inst_shld_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 387) } +inst_shld_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 388) } +inst_shld_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 388) } emit_shld_r16_r16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16, imm: i8) { append(instructions, inst_shld_r16_r16_imm8(dst, src, imm)) } emit_shld_m16_r16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16, imm: i8) { append(instructions, inst_shld_m16_r16_imm8(dst, src, imm)) } emit_shld_r32_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, imm: i8) { append(instructions, inst_shld_r32_r32_imm8(dst, src, imm)) } @@ -1041,18 +1073,18 @@ emit_shld_r32_r32 :: #force_inline proc(instructions: ^[dynami emit_shld_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_shld_m32_r32(dst, src)) } emit_shld_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_shld_r64_r64(dst, src)) } emit_shld_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_shld_m64_r64(dst, src)) } -inst_shrd_r16_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_gpr16(dst), op_gpr16(src), op_imm8(imm), {}} }, 377) } -inst_shrd_m16_r16_imm8 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_mem(dst.mem, 2), op_gpr16(src), op_imm8(imm), {}} }, 377) } -inst_shrd_r32_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_imm8(imm), {}} }, 378) } -inst_shrd_m32_r32_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_gpr32(src), op_imm8(imm), {}} }, 378) } -inst_shrd_r64_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_imm8(imm), {}} }, 379) } -inst_shrd_m64_r64_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_mem(dst.mem, 8), op_gpr64(src), op_imm8(imm), {}} }, 379) } -inst_shrd_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 380) } -inst_shrd_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 380) } -inst_shrd_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 381) } -inst_shrd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 381) } -inst_shrd_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 382) } -inst_shrd_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 382) } +inst_shrd_r16_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_gpr16(dst), op_gpr16(src), op_imm8(imm), {}} }, 389) } +inst_shrd_m16_r16_imm8 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_mem(dst.mem, 2), op_gpr16(src), op_imm8(imm), {}} }, 389) } +inst_shrd_r32_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_imm8(imm), {}} }, 390) } +inst_shrd_m32_r32_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_gpr32(src), op_imm8(imm), {}} }, 390) } +inst_shrd_r64_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_imm8(imm), {}} }, 391) } +inst_shrd_m64_r64_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 3, ops = {op_mem(dst.mem, 8), op_gpr64(src), op_imm8(imm), {}} }, 391) } +inst_shrd_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 392) } +inst_shrd_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 392) } +inst_shrd_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 393) } +inst_shrd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 393) } +inst_shrd_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 394) } +inst_shrd_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 394) } emit_shrd_r16_r16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16, imm: i8) { append(instructions, inst_shrd_r16_r16_imm8(dst, src, imm)) } emit_shrd_m16_r16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16, imm: i8) { append(instructions, inst_shrd_m16_r16_imm8(dst, src, imm)) } emit_shrd_r32_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, imm: i8) { append(instructions, inst_shrd_r32_r32_imm8(dst, src, imm)) } @@ -1065,18 +1097,18 @@ emit_shrd_r32_r32 :: #force_inline proc(instructions: ^[dynami emit_shrd_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_shrd_m32_r32(dst, src)) } emit_shrd_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_shrd_r64_r64(dst, src)) } emit_shrd_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_shrd_m64_r64(dst, src)) } -inst_bt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 383) } -inst_bt_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 383) } -inst_bt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 384) } -inst_bt_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 384) } -inst_bt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 385) } -inst_bt_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 385) } -inst_bt_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 386) } -inst_bt_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 386) } -inst_bt_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 387) } -inst_bt_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 387) } -inst_bt_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 388) } -inst_bt_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 388) } +inst_bt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 395) } +inst_bt_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 395) } +inst_bt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 396) } +inst_bt_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 396) } +inst_bt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 397) } +inst_bt_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 397) } +inst_bt_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 398) } +inst_bt_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 398) } +inst_bt_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 399) } +inst_bt_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 399) } +inst_bt_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 400) } +inst_bt_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BT, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 400) } emit_bt_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_bt_r16_r16(dst, src)) } emit_bt_m16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16) { append(instructions, inst_bt_m16_r16(dst, src)) } emit_bt_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_bt_r32_r32(dst, src)) } @@ -1089,18 +1121,18 @@ emit_bt_r32_imm8 :: #force_inline proc(instructions: ^[dynami emit_bt_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, imm: i8) { append(instructions, inst_bt_m32_imm8(dst, imm)) } emit_bt_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_bt_r64_imm8(dst, imm)) } emit_bt_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_bt_m64_imm8(dst, imm)) } -inst_bts_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 389) } -inst_bts_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 389) } -inst_bts_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 390) } -inst_bts_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 390) } -inst_bts_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 391) } -inst_bts_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 391) } -inst_bts_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 392) } -inst_bts_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 392) } -inst_bts_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 393) } -inst_bts_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 393) } -inst_bts_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 394) } -inst_bts_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 394) } +inst_bts_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 401) } +inst_bts_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 401) } +inst_bts_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 402) } +inst_bts_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 402) } +inst_bts_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 403) } +inst_bts_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 403) } +inst_bts_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 404) } +inst_bts_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 404) } +inst_bts_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 405) } +inst_bts_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 405) } +inst_bts_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 406) } +inst_bts_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 406) } emit_bts_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_bts_r16_r16(dst, src)) } emit_bts_m16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16) { append(instructions, inst_bts_m16_r16(dst, src)) } emit_bts_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_bts_r32_r32(dst, src)) } @@ -1113,18 +1145,18 @@ emit_bts_r32_imm8 :: #force_inline proc(instructions: ^[dynami emit_bts_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, imm: i8) { append(instructions, inst_bts_m32_imm8(dst, imm)) } emit_bts_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_bts_r64_imm8(dst, imm)) } emit_bts_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_bts_m64_imm8(dst, imm)) } -inst_btr_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 395) } -inst_btr_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 395) } -inst_btr_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 396) } -inst_btr_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 396) } -inst_btr_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 397) } -inst_btr_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 397) } -inst_btr_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 398) } -inst_btr_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 398) } -inst_btr_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 399) } -inst_btr_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 399) } -inst_btr_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 400) } -inst_btr_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 400) } +inst_btr_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 407) } +inst_btr_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 407) } +inst_btr_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 408) } +inst_btr_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 408) } +inst_btr_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 409) } +inst_btr_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 409) } +inst_btr_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 410) } +inst_btr_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 410) } +inst_btr_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 411) } +inst_btr_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 411) } +inst_btr_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 412) } +inst_btr_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 412) } emit_btr_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_btr_r16_r16(dst, src)) } emit_btr_m16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16) { append(instructions, inst_btr_m16_r16(dst, src)) } emit_btr_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_btr_r32_r32(dst, src)) } @@ -1137,18 +1169,18 @@ emit_btr_r32_imm8 :: #force_inline proc(instructions: ^[dynami emit_btr_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, imm: i8) { append(instructions, inst_btr_m32_imm8(dst, imm)) } emit_btr_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_btr_r64_imm8(dst, imm)) } emit_btr_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_btr_m64_imm8(dst, imm)) } -inst_btc_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 401) } -inst_btc_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 401) } -inst_btc_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 402) } -inst_btc_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 402) } -inst_btc_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 403) } -inst_btc_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 403) } -inst_btc_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 404) } -inst_btc_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 404) } -inst_btc_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 405) } -inst_btc_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 405) } -inst_btc_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 406) } -inst_btc_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 406) } +inst_btc_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 413) } +inst_btc_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 413) } +inst_btc_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 414) } +inst_btc_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 414) } +inst_btc_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 415) } +inst_btc_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 415) } +inst_btc_r16_imm8 :: #force_inline proc "contextless" (dst: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr16(dst), op_imm8(imm), {}, {}} }, 416) } +inst_btc_m16_imm8 :: #force_inline proc "contextless" (dst: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 2), op_imm8(imm), {}, {}} }, 416) } +inst_btc_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr32(dst), op_imm8(imm), {}, {}} }, 417) } +inst_btc_m32_imm8 :: #force_inline proc "contextless" (dst: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 4), op_imm8(imm), {}, {}} }, 417) } +inst_btc_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_gpr64(dst), op_imm8(imm), {}, {}} }, 418) } +inst_btc_m64_imm8 :: #force_inline proc "contextless" (dst: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BTC, operand_count = 2, ops = {op_mem(dst.mem, 8), op_imm8(imm), {}, {}} }, 418) } emit_btc_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_btc_r16_r16(dst, src)) } emit_btc_m16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16) { append(instructions, inst_btc_m16_r16(dst, src)) } emit_btc_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_btc_r32_r32(dst, src)) } @@ -1161,60 +1193,60 @@ emit_btc_r32_imm8 :: #force_inline proc(instructions: ^[dynami emit_btc_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, imm: i8) { append(instructions, inst_btc_m32_imm8(dst, imm)) } emit_btc_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, imm: i8) { append(instructions, inst_btc_r64_imm8(dst, imm)) } emit_btc_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, imm: i8) { append(instructions, inst_btc_m64_imm8(dst, imm)) } -inst_bsf_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 407) } -inst_bsf_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 407) } -inst_bsf_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 408) } -inst_bsf_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 408) } -inst_bsf_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 409) } -inst_bsf_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 409) } +inst_bsf_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 419) } +inst_bsf_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 419) } +inst_bsf_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 420) } +inst_bsf_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 420) } +inst_bsf_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 421) } +inst_bsf_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSF, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 421) } emit_bsf_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_bsf_r16_r16(dst, src)) } emit_bsf_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_bsf_r16_m16(dst, src)) } emit_bsf_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_bsf_r32_r32(dst, src)) } emit_bsf_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_bsf_r32_m32(dst, src)) } emit_bsf_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_bsf_r64_r64(dst, src)) } emit_bsf_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_bsf_r64_m64(dst, src)) } -inst_bsr_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 410) } -inst_bsr_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 410) } -inst_bsr_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 411) } -inst_bsr_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 411) } -inst_bsr_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 412) } -inst_bsr_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 412) } +inst_bsr_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 422) } +inst_bsr_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 422) } +inst_bsr_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 423) } +inst_bsr_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 423) } +inst_bsr_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 424) } +inst_bsr_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSR, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 424) } emit_bsr_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_bsr_r16_r16(dst, src)) } emit_bsr_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_bsr_r16_m16(dst, src)) } emit_bsr_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_bsr_r32_r32(dst, src)) } emit_bsr_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_bsr_r32_m32(dst, src)) } emit_bsr_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_bsr_r64_r64(dst, src)) } emit_bsr_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_bsr_r64_m64(dst, src)) } -inst_popcnt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 413) } -inst_popcnt_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 413) } -inst_popcnt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 414) } -inst_popcnt_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 414) } -inst_popcnt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 415) } -inst_popcnt_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 415) } +inst_popcnt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 425) } +inst_popcnt_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 425) } +inst_popcnt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 426) } +inst_popcnt_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 426) } +inst_popcnt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 427) } +inst_popcnt_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .POPCNT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 427) } emit_popcnt_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_popcnt_r16_r16(dst, src)) } emit_popcnt_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_popcnt_r16_m16(dst, src)) } emit_popcnt_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_popcnt_r32_r32(dst, src)) } emit_popcnt_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_popcnt_r32_m32(dst, src)) } emit_popcnt_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_popcnt_r64_r64(dst, src)) } emit_popcnt_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_popcnt_r64_m64(dst, src)) } -inst_lzcnt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 416) } -inst_lzcnt_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 416) } -inst_lzcnt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 417) } -inst_lzcnt_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 417) } -inst_lzcnt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 418) } -inst_lzcnt_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 418) } +inst_lzcnt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 428) } +inst_lzcnt_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 428) } +inst_lzcnt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 429) } +inst_lzcnt_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 429) } +inst_lzcnt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 430) } +inst_lzcnt_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .LZCNT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 430) } emit_lzcnt_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_lzcnt_r16_r16(dst, src)) } emit_lzcnt_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_lzcnt_r16_m16(dst, src)) } emit_lzcnt_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_lzcnt_r32_r32(dst, src)) } emit_lzcnt_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_lzcnt_r32_m32(dst, src)) } emit_lzcnt_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_lzcnt_r64_r64(dst, src)) } emit_lzcnt_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_lzcnt_r64_m64(dst, src)) } -inst_tzcnt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 419) } -inst_tzcnt_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 419) } -inst_tzcnt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 420) } -inst_tzcnt_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 420) } -inst_tzcnt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 421) } -inst_tzcnt_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 421) } +inst_tzcnt_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 431) } +inst_tzcnt_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 431) } +inst_tzcnt_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 432) } +inst_tzcnt_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 432) } +inst_tzcnt_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 433) } +inst_tzcnt_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .TZCNT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 433) } emit_tzcnt_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_tzcnt_r16_r16(dst, src)) } emit_tzcnt_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_tzcnt_r16_m16(dst, src)) } emit_tzcnt_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_tzcnt_r32_r32(dst, src)) } @@ -1223,9 +1255,9 @@ emit_tzcnt_r64_r64 :: #force_inline proc(instructions: ^[dynami emit_tzcnt_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_tzcnt_r64_m64(dst, src)) } inst_jmp_rel8 :: #force_inline proc "contextless" (offset: i8) -> Instruction { return Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_rel8(offset), {}, {}, {}} } } inst_jmp_rel32 :: #force_inline proc "contextless" (offset: i32) -> Instruction { return Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_rel32(offset), {}, {}, {}} } } -inst_jmp_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 424) } -inst_jmp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 424) } -inst_jmp_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 425) } +inst_jmp_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 436) } +inst_jmp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 436) } +inst_jmp_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .JMP, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 437) } emit_jmp_rel8 :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i8) { append(instructions, inst_jmp_rel8(offset)) } emit_jmp_rel32 :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i32) { append(instructions, inst_jmp_rel32(offset)) } emit_jmp_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_jmp_r64(dst)) } @@ -1364,614 +1396,614 @@ emit_loope_rel8 :: #force_inline proc(instructions: ^[dynami inst_loopne_rel8 :: #force_inline proc "contextless" (offset: i8) -> Instruction { return Instruction{ mnemonic = .LOOPNE, operand_count = 1, ops = {op_rel8(offset), {}, {}, {}} } } emit_loopne_rel8 :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i8) { append(instructions, inst_loopne_rel8(offset)) } inst_call_rel32 :: #force_inline proc "contextless" (offset: i32) -> Instruction { return Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_rel32(offset), {}, {}, {}} } } -inst_call_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 495) } -inst_call_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 495) } -inst_call_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 496) } +inst_call_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 507) } +inst_call_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 507) } +inst_call_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .CALL, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 508) } emit_call_rel32 :: #force_inline proc(instructions: ^[dynamic]Instruction, offset: i32) { append(instructions, inst_call_rel32(offset)) } emit_call_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_call_r64(dst)) } emit_call_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_call_m64(dst)) } emit_call_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_call_m(dst)) } -inst_ret_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RET, operand_count = 0, ops = {{}, {}, {}, {}} }, 499) } -inst_ret_imm16 :: #force_inline proc "contextless" (imm: i16) -> Instruction { return with_hint(Instruction{ mnemonic = .RET, operand_count = 1, ops = {op_imm16(imm), {}, {}, {}} }, 500) } +inst_ret_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RET, operand_count = 0, ops = {{}, {}, {}, {}} }, 511) } +inst_ret_imm16 :: #force_inline proc "contextless" (imm: i16) -> Instruction { return with_hint(Instruction{ mnemonic = .RET, operand_count = 1, ops = {op_imm16(imm), {}, {}, {}} }, 512) } emit_ret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ret_none()) } emit_ret_imm16 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i16) { append(instructions, inst_ret_imm16(imm)) } -inst_iret_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .IRET, operand_count = 0, ops = {{}, {}, {}, {}} }, 501) } +inst_iret_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .IRET, operand_count = 0, ops = {{}, {}, {}, {}} }, 513) } emit_iret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_iret_none()) } -inst_iretd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .IRETD, operand_count = 0, ops = {{}, {}, {}, {}} }, 502) } +inst_iretd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .IRETD, operand_count = 0, ops = {{}, {}, {}, {}} }, 514) } emit_iretd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_iretd_none()) } -inst_iretq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .IRETQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 503) } +inst_iretq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .IRETQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 515) } emit_iretq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_iretq_none()) } -inst_int_imm8 :: #force_inline proc "contextless" (imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .INT, operand_count = 1, ops = {op_imm8(imm), {}, {}, {}} }, 504) } +inst_int_imm8 :: #force_inline proc "contextless" (imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .INT, operand_count = 1, ops = {op_imm8(imm), {}, {}, {}} }, 516) } emit_int_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i8) { append(instructions, inst_int_imm8(imm)) } -inst_int3_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INT3, operand_count = 0, ops = {{}, {}, {}, {}} }, 505) } +inst_int3_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INT3, operand_count = 0, ops = {{}, {}, {}, {}} }, 517) } emit_int3_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_int3_none()) } -inst_into_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INTO, operand_count = 0, ops = {{}, {}, {}, {}} }, 506) } +inst_into_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INTO, operand_count = 0, ops = {{}, {}, {}, {}} }, 518) } emit_into_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_into_none()) } -inst_syscall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSCALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 507) } +inst_syscall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSCALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 519) } emit_syscall_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_syscall_none()) } -inst_sysret_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSRET, operand_count = 0, ops = {{}, {}, {}, {}} }, 508) } +inst_sysret_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSRET, operand_count = 0, ops = {{}, {}, {}, {}} }, 520) } emit_sysret_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sysret_none()) } -inst_sysenter_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSENTER, operand_count = 0, ops = {{}, {}, {}, {}} }, 509) } +inst_sysenter_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSENTER, operand_count = 0, ops = {{}, {}, {}, {}} }, 521) } emit_sysenter_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sysenter_none()) } -inst_sysexit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSEXIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 510) } +inst_sysexit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SYSEXIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 522) } emit_sysexit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sysexit_none()) } -inst_seta_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETA, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 511) } -inst_seta_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETA, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 511) } +inst_seta_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETA, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 523) } +inst_seta_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETA, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 523) } emit_seta_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_seta_r8(dst)) } emit_seta_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_seta_m8(dst)) } -inst_setae_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETAE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 512) } -inst_setae_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETAE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 512) } +inst_setae_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETAE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 524) } +inst_setae_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETAE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 524) } emit_setae_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setae_r8(dst)) } emit_setae_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setae_m8(dst)) } -inst_setb_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETB, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 513) } -inst_setb_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETB, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 513) } +inst_setb_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETB, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 525) } +inst_setb_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETB, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 525) } emit_setb_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setb_r8(dst)) } emit_setb_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setb_m8(dst)) } -inst_setbe_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETBE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 514) } -inst_setbe_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETBE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 514) } +inst_setbe_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETBE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 526) } +inst_setbe_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETBE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 526) } emit_setbe_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setbe_r8(dst)) } emit_setbe_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setbe_m8(dst)) } -inst_setc_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETC, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 515) } -inst_setc_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETC, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 515) } +inst_setc_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETC, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 527) } +inst_setc_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETC, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 527) } emit_setc_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setc_r8(dst)) } emit_setc_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setc_m8(dst)) } -inst_sete_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 516) } -inst_sete_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 516) } +inst_sete_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 528) } +inst_sete_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 528) } emit_sete_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_sete_r8(dst)) } emit_sete_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_sete_m8(dst)) } -inst_setg_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETG, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 517) } -inst_setg_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETG, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 517) } +inst_setg_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETG, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 529) } +inst_setg_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETG, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 529) } emit_setg_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setg_r8(dst)) } emit_setg_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setg_m8(dst)) } -inst_setge_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETGE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 518) } -inst_setge_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETGE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 518) } +inst_setge_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETGE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 530) } +inst_setge_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETGE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 530) } emit_setge_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setge_r8(dst)) } emit_setge_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setge_m8(dst)) } -inst_setl_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 519) } -inst_setl_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 519) } +inst_setl_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 531) } +inst_setl_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 531) } emit_setl_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setl_r8(dst)) } emit_setl_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setl_m8(dst)) } -inst_setle_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETLE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 520) } -inst_setle_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETLE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 520) } +inst_setle_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETLE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 532) } +inst_setle_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETLE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 532) } emit_setle_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setle_r8(dst)) } emit_setle_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setle_m8(dst)) } -inst_setna_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNA, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 521) } -inst_setna_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNA, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 521) } +inst_setna_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNA, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 533) } +inst_setna_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNA, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 533) } emit_setna_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setna_r8(dst)) } emit_setna_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setna_m8(dst)) } -inst_setnae_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNAE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 522) } -inst_setnae_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNAE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 522) } +inst_setnae_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNAE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 534) } +inst_setnae_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNAE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 534) } emit_setnae_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnae_r8(dst)) } emit_setnae_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnae_m8(dst)) } -inst_setnb_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNB, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 523) } -inst_setnb_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNB, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 523) } +inst_setnb_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNB, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 535) } +inst_setnb_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNB, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 535) } emit_setnb_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnb_r8(dst)) } emit_setnb_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnb_m8(dst)) } -inst_setnbe_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNBE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 524) } -inst_setnbe_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNBE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 524) } +inst_setnbe_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNBE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 536) } +inst_setnbe_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNBE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 536) } emit_setnbe_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnbe_r8(dst)) } emit_setnbe_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnbe_m8(dst)) } -inst_setnc_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNC, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 525) } -inst_setnc_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNC, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 525) } +inst_setnc_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNC, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 537) } +inst_setnc_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNC, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 537) } emit_setnc_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnc_r8(dst)) } emit_setnc_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnc_m8(dst)) } -inst_setne_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 526) } -inst_setne_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 526) } +inst_setne_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 538) } +inst_setne_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 538) } emit_setne_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setne_r8(dst)) } emit_setne_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setne_m8(dst)) } -inst_setng_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNG, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 527) } -inst_setng_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNG, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 527) } +inst_setng_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNG, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 539) } +inst_setng_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNG, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 539) } emit_setng_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setng_r8(dst)) } emit_setng_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setng_m8(dst)) } -inst_setnge_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNGE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 528) } -inst_setnge_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNGE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 528) } +inst_setnge_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNGE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 540) } +inst_setnge_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNGE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 540) } emit_setnge_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnge_r8(dst)) } emit_setnge_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnge_m8(dst)) } -inst_setnl_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 529) } -inst_setnl_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 529) } +inst_setnl_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNL, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 541) } +inst_setnl_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNL, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 541) } emit_setnl_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnl_r8(dst)) } emit_setnl_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnl_m8(dst)) } -inst_setnle_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNLE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 530) } -inst_setnle_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNLE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 530) } +inst_setnle_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNLE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 542) } +inst_setnle_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNLE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 542) } emit_setnle_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnle_r8(dst)) } emit_setnle_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnle_m8(dst)) } -inst_setno_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNO, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 531) } -inst_setno_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNO, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 531) } +inst_setno_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNO, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 543) } +inst_setno_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNO, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 543) } emit_setno_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setno_r8(dst)) } emit_setno_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setno_m8(dst)) } -inst_setnp_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNP, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 532) } -inst_setnp_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNP, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 532) } +inst_setnp_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNP, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 544) } +inst_setnp_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNP, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 544) } emit_setnp_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnp_r8(dst)) } emit_setnp_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnp_m8(dst)) } -inst_setns_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNS, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 533) } -inst_setns_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNS, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 533) } +inst_setns_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNS, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 545) } +inst_setns_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNS, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 545) } emit_setns_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setns_r8(dst)) } emit_setns_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setns_m8(dst)) } -inst_setnz_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNZ, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 534) } -inst_setnz_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNZ, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 534) } +inst_setnz_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNZ, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 546) } +inst_setnz_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETNZ, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 546) } emit_setnz_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setnz_r8(dst)) } emit_setnz_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setnz_m8(dst)) } -inst_seto_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETO, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 535) } -inst_seto_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETO, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 535) } +inst_seto_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETO, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 547) } +inst_seto_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETO, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 547) } emit_seto_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_seto_r8(dst)) } emit_seto_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_seto_m8(dst)) } -inst_setp_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETP, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 536) } -inst_setp_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETP, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 536) } +inst_setp_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETP, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 548) } +inst_setp_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETP, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 548) } emit_setp_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setp_r8(dst)) } emit_setp_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setp_m8(dst)) } -inst_setpe_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 537) } -inst_setpe_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 537) } +inst_setpe_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPE, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 549) } +inst_setpe_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 549) } emit_setpe_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setpe_r8(dst)) } emit_setpe_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setpe_m8(dst)) } -inst_setpo_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPO, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 538) } -inst_setpo_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPO, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 538) } +inst_setpo_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPO, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 550) } +inst_setpo_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETPO, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 550) } emit_setpo_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setpo_r8(dst)) } emit_setpo_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setpo_m8(dst)) } -inst_sets_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETS, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 539) } -inst_sets_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETS, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 539) } +inst_sets_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETS, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 551) } +inst_sets_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETS, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 551) } emit_sets_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_sets_r8(dst)) } emit_sets_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_sets_m8(dst)) } -inst_setz_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETZ, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 540) } -inst_setz_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETZ, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 540) } +inst_setz_r8 :: #force_inline proc "contextless" (dst: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETZ, operand_count = 1, ops = {op_gpr8(dst), {}, {}, {}} }, 552) } +inst_setz_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .SETZ, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 552) } emit_setz_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8) { append(instructions, inst_setz_r8(dst)) } emit_setz_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_setz_m8(dst)) } -inst_cmova_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 541) } -inst_cmova_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 541) } -inst_cmova_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 542) } -inst_cmova_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 542) } -inst_cmova_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 543) } -inst_cmova_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 543) } +inst_cmova_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 553) } +inst_cmova_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 553) } +inst_cmova_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 554) } +inst_cmova_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 554) } +inst_cmova_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 555) } +inst_cmova_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVA, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 555) } emit_cmova_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmova_r16_r16(dst, src)) } emit_cmova_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmova_r16_m16(dst, src)) } emit_cmova_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmova_r32_r32(dst, src)) } emit_cmova_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmova_r32_m32(dst, src)) } emit_cmova_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmova_r64_r64(dst, src)) } emit_cmova_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmova_r64_m64(dst, src)) } -inst_cmovae_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 544) } -inst_cmovae_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 544) } -inst_cmovae_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 545) } -inst_cmovae_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 545) } -inst_cmovae_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 546) } -inst_cmovae_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 546) } +inst_cmovae_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 556) } +inst_cmovae_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 556) } +inst_cmovae_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 557) } +inst_cmovae_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 557) } +inst_cmovae_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 558) } +inst_cmovae_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVAE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 558) } emit_cmovae_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovae_r16_r16(dst, src)) } emit_cmovae_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovae_r16_m16(dst, src)) } emit_cmovae_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovae_r32_r32(dst, src)) } emit_cmovae_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovae_r32_m32(dst, src)) } emit_cmovae_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovae_r64_r64(dst, src)) } emit_cmovae_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovae_r64_m64(dst, src)) } -inst_cmovb_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 547) } -inst_cmovb_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 547) } -inst_cmovb_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 548) } -inst_cmovb_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 548) } -inst_cmovb_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 549) } -inst_cmovb_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 549) } +inst_cmovb_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 559) } +inst_cmovb_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 559) } +inst_cmovb_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 560) } +inst_cmovb_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 560) } +inst_cmovb_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 561) } +inst_cmovb_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVB, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 561) } emit_cmovb_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovb_r16_r16(dst, src)) } emit_cmovb_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovb_r16_m16(dst, src)) } emit_cmovb_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovb_r32_r32(dst, src)) } emit_cmovb_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovb_r32_m32(dst, src)) } emit_cmovb_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovb_r64_r64(dst, src)) } emit_cmovb_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovb_r64_m64(dst, src)) } -inst_cmovbe_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 550) } -inst_cmovbe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 550) } -inst_cmovbe_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 551) } -inst_cmovbe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 551) } -inst_cmovbe_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 552) } -inst_cmovbe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 552) } +inst_cmovbe_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 562) } +inst_cmovbe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 562) } +inst_cmovbe_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 563) } +inst_cmovbe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 563) } +inst_cmovbe_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 564) } +inst_cmovbe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVBE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 564) } emit_cmovbe_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovbe_r16_r16(dst, src)) } emit_cmovbe_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovbe_r16_m16(dst, src)) } emit_cmovbe_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovbe_r32_r32(dst, src)) } emit_cmovbe_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovbe_r32_m32(dst, src)) } emit_cmovbe_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovbe_r64_r64(dst, src)) } emit_cmovbe_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovbe_r64_m64(dst, src)) } -inst_cmovc_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 553) } -inst_cmovc_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 553) } -inst_cmovc_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 554) } -inst_cmovc_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 554) } -inst_cmovc_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 555) } -inst_cmovc_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 555) } +inst_cmovc_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 565) } +inst_cmovc_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 565) } +inst_cmovc_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 566) } +inst_cmovc_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 566) } +inst_cmovc_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 567) } +inst_cmovc_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVC, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 567) } emit_cmovc_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovc_r16_r16(dst, src)) } emit_cmovc_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovc_r16_m16(dst, src)) } emit_cmovc_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovc_r32_r32(dst, src)) } emit_cmovc_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovc_r32_m32(dst, src)) } emit_cmovc_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovc_r64_r64(dst, src)) } emit_cmovc_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovc_r64_m64(dst, src)) } -inst_cmove_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 556) } -inst_cmove_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 556) } -inst_cmove_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 557) } -inst_cmove_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 557) } -inst_cmove_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 558) } -inst_cmove_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 558) } +inst_cmove_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 568) } +inst_cmove_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 568) } +inst_cmove_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 569) } +inst_cmove_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 569) } +inst_cmove_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 570) } +inst_cmove_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 570) } emit_cmove_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmove_r16_r16(dst, src)) } emit_cmove_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmove_r16_m16(dst, src)) } emit_cmove_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmove_r32_r32(dst, src)) } emit_cmove_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmove_r32_m32(dst, src)) } emit_cmove_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmove_r64_r64(dst, src)) } emit_cmove_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmove_r64_m64(dst, src)) } -inst_cmovg_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 559) } -inst_cmovg_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 559) } -inst_cmovg_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 560) } -inst_cmovg_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 560) } -inst_cmovg_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 561) } -inst_cmovg_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 561) } +inst_cmovg_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 571) } +inst_cmovg_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 571) } +inst_cmovg_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 572) } +inst_cmovg_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 572) } +inst_cmovg_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 573) } +inst_cmovg_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVG, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 573) } emit_cmovg_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovg_r16_r16(dst, src)) } emit_cmovg_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovg_r16_m16(dst, src)) } emit_cmovg_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovg_r32_r32(dst, src)) } emit_cmovg_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovg_r32_m32(dst, src)) } emit_cmovg_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovg_r64_r64(dst, src)) } emit_cmovg_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovg_r64_m64(dst, src)) } -inst_cmovge_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 562) } -inst_cmovge_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 562) } -inst_cmovge_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 563) } -inst_cmovge_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 563) } -inst_cmovge_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 564) } -inst_cmovge_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 564) } +inst_cmovge_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 574) } +inst_cmovge_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 574) } +inst_cmovge_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 575) } +inst_cmovge_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 575) } +inst_cmovge_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 576) } +inst_cmovge_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVGE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 576) } emit_cmovge_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovge_r16_r16(dst, src)) } emit_cmovge_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovge_r16_m16(dst, src)) } emit_cmovge_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovge_r32_r32(dst, src)) } emit_cmovge_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovge_r32_m32(dst, src)) } emit_cmovge_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovge_r64_r64(dst, src)) } emit_cmovge_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovge_r64_m64(dst, src)) } -inst_cmovl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 565) } -inst_cmovl_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 565) } -inst_cmovl_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 566) } -inst_cmovl_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 566) } -inst_cmovl_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 567) } -inst_cmovl_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 567) } +inst_cmovl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 577) } +inst_cmovl_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 577) } +inst_cmovl_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 578) } +inst_cmovl_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 578) } +inst_cmovl_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 579) } +inst_cmovl_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVL, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 579) } emit_cmovl_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovl_r16_r16(dst, src)) } emit_cmovl_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovl_r16_m16(dst, src)) } emit_cmovl_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovl_r32_r32(dst, src)) } emit_cmovl_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovl_r32_m32(dst, src)) } emit_cmovl_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovl_r64_r64(dst, src)) } emit_cmovl_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovl_r64_m64(dst, src)) } -inst_cmovle_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 568) } -inst_cmovle_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 568) } -inst_cmovle_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 569) } -inst_cmovle_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 569) } -inst_cmovle_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 570) } -inst_cmovle_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 570) } +inst_cmovle_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 580) } +inst_cmovle_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 580) } +inst_cmovle_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 581) } +inst_cmovle_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 581) } +inst_cmovle_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 582) } +inst_cmovle_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVLE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 582) } emit_cmovle_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovle_r16_r16(dst, src)) } emit_cmovle_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovle_r16_m16(dst, src)) } emit_cmovle_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovle_r32_r32(dst, src)) } emit_cmovle_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovle_r32_m32(dst, src)) } emit_cmovle_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovle_r64_r64(dst, src)) } emit_cmovle_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovle_r64_m64(dst, src)) } -inst_cmovna_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 571) } -inst_cmovna_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 571) } -inst_cmovna_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 572) } -inst_cmovna_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 572) } -inst_cmovna_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 573) } -inst_cmovna_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 573) } +inst_cmovna_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 583) } +inst_cmovna_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 583) } +inst_cmovna_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 584) } +inst_cmovna_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 584) } +inst_cmovna_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 585) } +inst_cmovna_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNA, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 585) } emit_cmovna_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovna_r16_r16(dst, src)) } emit_cmovna_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovna_r16_m16(dst, src)) } emit_cmovna_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovna_r32_r32(dst, src)) } emit_cmovna_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovna_r32_m32(dst, src)) } emit_cmovna_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovna_r64_r64(dst, src)) } emit_cmovna_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovna_r64_m64(dst, src)) } -inst_cmovnae_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 574) } -inst_cmovnae_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 574) } -inst_cmovnae_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 575) } -inst_cmovnae_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 575) } -inst_cmovnae_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 576) } -inst_cmovnae_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 576) } +inst_cmovnae_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 586) } +inst_cmovnae_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 586) } +inst_cmovnae_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 587) } +inst_cmovnae_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 587) } +inst_cmovnae_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 588) } +inst_cmovnae_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNAE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 588) } emit_cmovnae_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnae_r16_r16(dst, src)) } emit_cmovnae_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnae_r16_m16(dst, src)) } emit_cmovnae_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnae_r32_r32(dst, src)) } emit_cmovnae_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnae_r32_m32(dst, src)) } emit_cmovnae_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnae_r64_r64(dst, src)) } emit_cmovnae_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnae_r64_m64(dst, src)) } -inst_cmovnb_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 577) } -inst_cmovnb_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 577) } -inst_cmovnb_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 578) } -inst_cmovnb_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 578) } -inst_cmovnb_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 579) } -inst_cmovnb_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 579) } +inst_cmovnb_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 589) } +inst_cmovnb_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 589) } +inst_cmovnb_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 590) } +inst_cmovnb_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 590) } +inst_cmovnb_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 591) } +inst_cmovnb_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNB, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 591) } emit_cmovnb_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnb_r16_r16(dst, src)) } emit_cmovnb_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnb_r16_m16(dst, src)) } emit_cmovnb_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnb_r32_r32(dst, src)) } emit_cmovnb_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnb_r32_m32(dst, src)) } emit_cmovnb_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnb_r64_r64(dst, src)) } emit_cmovnb_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnb_r64_m64(dst, src)) } -inst_cmovnbe_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 580) } -inst_cmovnbe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 580) } -inst_cmovnbe_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 581) } -inst_cmovnbe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 581) } -inst_cmovnbe_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 582) } -inst_cmovnbe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 582) } +inst_cmovnbe_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 592) } +inst_cmovnbe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 592) } +inst_cmovnbe_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 593) } +inst_cmovnbe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 593) } +inst_cmovnbe_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 594) } +inst_cmovnbe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNBE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 594) } emit_cmovnbe_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnbe_r16_r16(dst, src)) } emit_cmovnbe_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnbe_r16_m16(dst, src)) } emit_cmovnbe_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnbe_r32_r32(dst, src)) } emit_cmovnbe_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnbe_r32_m32(dst, src)) } emit_cmovnbe_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnbe_r64_r64(dst, src)) } emit_cmovnbe_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnbe_r64_m64(dst, src)) } -inst_cmovnc_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 583) } -inst_cmovnc_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 583) } -inst_cmovnc_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 584) } -inst_cmovnc_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 584) } -inst_cmovnc_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 585) } -inst_cmovnc_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 585) } +inst_cmovnc_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 595) } +inst_cmovnc_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 595) } +inst_cmovnc_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 596) } +inst_cmovnc_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 596) } +inst_cmovnc_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 597) } +inst_cmovnc_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNC, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 597) } emit_cmovnc_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnc_r16_r16(dst, src)) } emit_cmovnc_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnc_r16_m16(dst, src)) } emit_cmovnc_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnc_r32_r32(dst, src)) } emit_cmovnc_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnc_r32_m32(dst, src)) } emit_cmovnc_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnc_r64_r64(dst, src)) } emit_cmovnc_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnc_r64_m64(dst, src)) } -inst_cmovne_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 586) } -inst_cmovne_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 586) } -inst_cmovne_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 587) } -inst_cmovne_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 587) } -inst_cmovne_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 588) } -inst_cmovne_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 588) } +inst_cmovne_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 598) } +inst_cmovne_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 598) } +inst_cmovne_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 599) } +inst_cmovne_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 599) } +inst_cmovne_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 600) } +inst_cmovne_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 600) } emit_cmovne_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovne_r16_r16(dst, src)) } emit_cmovne_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovne_r16_m16(dst, src)) } emit_cmovne_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovne_r32_r32(dst, src)) } emit_cmovne_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovne_r32_m32(dst, src)) } emit_cmovne_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovne_r64_r64(dst, src)) } emit_cmovne_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovne_r64_m64(dst, src)) } -inst_cmovng_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 589) } -inst_cmovng_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 589) } -inst_cmovng_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 590) } -inst_cmovng_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 590) } -inst_cmovng_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 591) } -inst_cmovng_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 591) } +inst_cmovng_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 601) } +inst_cmovng_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 601) } +inst_cmovng_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 602) } +inst_cmovng_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 602) } +inst_cmovng_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 603) } +inst_cmovng_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNG, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 603) } emit_cmovng_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovng_r16_r16(dst, src)) } emit_cmovng_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovng_r16_m16(dst, src)) } emit_cmovng_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovng_r32_r32(dst, src)) } emit_cmovng_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovng_r32_m32(dst, src)) } emit_cmovng_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovng_r64_r64(dst, src)) } emit_cmovng_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovng_r64_m64(dst, src)) } -inst_cmovnge_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 592) } -inst_cmovnge_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 592) } -inst_cmovnge_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 593) } -inst_cmovnge_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 593) } -inst_cmovnge_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 594) } -inst_cmovnge_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 594) } +inst_cmovnge_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 604) } +inst_cmovnge_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 604) } +inst_cmovnge_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 605) } +inst_cmovnge_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 605) } +inst_cmovnge_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 606) } +inst_cmovnge_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNGE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 606) } emit_cmovnge_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnge_r16_r16(dst, src)) } emit_cmovnge_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnge_r16_m16(dst, src)) } emit_cmovnge_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnge_r32_r32(dst, src)) } emit_cmovnge_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnge_r32_m32(dst, src)) } emit_cmovnge_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnge_r64_r64(dst, src)) } emit_cmovnge_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnge_r64_m64(dst, src)) } -inst_cmovnl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 595) } -inst_cmovnl_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 595) } -inst_cmovnl_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 596) } -inst_cmovnl_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 596) } -inst_cmovnl_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 597) } -inst_cmovnl_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 597) } +inst_cmovnl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 607) } +inst_cmovnl_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 607) } +inst_cmovnl_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 608) } +inst_cmovnl_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 608) } +inst_cmovnl_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 609) } +inst_cmovnl_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNL, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 609) } emit_cmovnl_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnl_r16_r16(dst, src)) } emit_cmovnl_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnl_r16_m16(dst, src)) } emit_cmovnl_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnl_r32_r32(dst, src)) } emit_cmovnl_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnl_r32_m32(dst, src)) } emit_cmovnl_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnl_r64_r64(dst, src)) } emit_cmovnl_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnl_r64_m64(dst, src)) } -inst_cmovnle_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 598) } -inst_cmovnle_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 598) } -inst_cmovnle_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 599) } -inst_cmovnle_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 599) } -inst_cmovnle_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 600) } -inst_cmovnle_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 600) } +inst_cmovnle_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 610) } +inst_cmovnle_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 610) } +inst_cmovnle_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 611) } +inst_cmovnle_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 611) } +inst_cmovnle_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 612) } +inst_cmovnle_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNLE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 612) } emit_cmovnle_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnle_r16_r16(dst, src)) } emit_cmovnle_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnle_r16_m16(dst, src)) } emit_cmovnle_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnle_r32_r32(dst, src)) } emit_cmovnle_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnle_r32_m32(dst, src)) } emit_cmovnle_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnle_r64_r64(dst, src)) } emit_cmovnle_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnle_r64_m64(dst, src)) } -inst_cmovno_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 601) } -inst_cmovno_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 601) } -inst_cmovno_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 602) } -inst_cmovno_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 602) } -inst_cmovno_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 603) } -inst_cmovno_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 603) } +inst_cmovno_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 613) } +inst_cmovno_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 613) } +inst_cmovno_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 614) } +inst_cmovno_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 614) } +inst_cmovno_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 615) } +inst_cmovno_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNO, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 615) } emit_cmovno_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovno_r16_r16(dst, src)) } emit_cmovno_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovno_r16_m16(dst, src)) } emit_cmovno_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovno_r32_r32(dst, src)) } emit_cmovno_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovno_r32_m32(dst, src)) } emit_cmovno_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovno_r64_r64(dst, src)) } emit_cmovno_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovno_r64_m64(dst, src)) } -inst_cmovnp_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 604) } -inst_cmovnp_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 604) } -inst_cmovnp_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 605) } -inst_cmovnp_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 605) } -inst_cmovnp_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 606) } -inst_cmovnp_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 606) } +inst_cmovnp_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 616) } +inst_cmovnp_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 616) } +inst_cmovnp_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 617) } +inst_cmovnp_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 617) } +inst_cmovnp_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 618) } +inst_cmovnp_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNP, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 618) } emit_cmovnp_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnp_r16_r16(dst, src)) } emit_cmovnp_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnp_r16_m16(dst, src)) } emit_cmovnp_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnp_r32_r32(dst, src)) } emit_cmovnp_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnp_r32_m32(dst, src)) } emit_cmovnp_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnp_r64_r64(dst, src)) } emit_cmovnp_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnp_r64_m64(dst, src)) } -inst_cmovns_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 607) } -inst_cmovns_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 607) } -inst_cmovns_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 608) } -inst_cmovns_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 608) } -inst_cmovns_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 609) } -inst_cmovns_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 609) } +inst_cmovns_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 619) } +inst_cmovns_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 619) } +inst_cmovns_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 620) } +inst_cmovns_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 620) } +inst_cmovns_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 621) } +inst_cmovns_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNS, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 621) } emit_cmovns_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovns_r16_r16(dst, src)) } emit_cmovns_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovns_r16_m16(dst, src)) } emit_cmovns_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovns_r32_r32(dst, src)) } emit_cmovns_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovns_r32_m32(dst, src)) } emit_cmovns_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovns_r64_r64(dst, src)) } emit_cmovns_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovns_r64_m64(dst, src)) } -inst_cmovnz_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 610) } -inst_cmovnz_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 610) } -inst_cmovnz_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 611) } -inst_cmovnz_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 611) } -inst_cmovnz_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 612) } -inst_cmovnz_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 612) } +inst_cmovnz_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 622) } +inst_cmovnz_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 622) } +inst_cmovnz_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 623) } +inst_cmovnz_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 623) } +inst_cmovnz_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 624) } +inst_cmovnz_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVNZ, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 624) } emit_cmovnz_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovnz_r16_r16(dst, src)) } emit_cmovnz_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovnz_r16_m16(dst, src)) } emit_cmovnz_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovnz_r32_r32(dst, src)) } emit_cmovnz_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovnz_r32_m32(dst, src)) } emit_cmovnz_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovnz_r64_r64(dst, src)) } emit_cmovnz_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovnz_r64_m64(dst, src)) } -inst_cmovo_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 613) } -inst_cmovo_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 613) } -inst_cmovo_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 614) } -inst_cmovo_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 614) } -inst_cmovo_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 615) } -inst_cmovo_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 615) } +inst_cmovo_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 625) } +inst_cmovo_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 625) } +inst_cmovo_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 626) } +inst_cmovo_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 626) } +inst_cmovo_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 627) } +inst_cmovo_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVO, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 627) } emit_cmovo_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovo_r16_r16(dst, src)) } emit_cmovo_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovo_r16_m16(dst, src)) } emit_cmovo_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovo_r32_r32(dst, src)) } emit_cmovo_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovo_r32_m32(dst, src)) } emit_cmovo_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovo_r64_r64(dst, src)) } emit_cmovo_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovo_r64_m64(dst, src)) } -inst_cmovp_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 616) } -inst_cmovp_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 616) } -inst_cmovp_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 617) } -inst_cmovp_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 617) } -inst_cmovp_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 618) } -inst_cmovp_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 618) } +inst_cmovp_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 628) } +inst_cmovp_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 628) } +inst_cmovp_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 629) } +inst_cmovp_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 629) } +inst_cmovp_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 630) } +inst_cmovp_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVP, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 630) } emit_cmovp_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovp_r16_r16(dst, src)) } emit_cmovp_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovp_r16_m16(dst, src)) } emit_cmovp_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovp_r32_r32(dst, src)) } emit_cmovp_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovp_r32_m32(dst, src)) } emit_cmovp_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovp_r64_r64(dst, src)) } emit_cmovp_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovp_r64_m64(dst, src)) } -inst_cmovpe_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 619) } -inst_cmovpe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 619) } -inst_cmovpe_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 620) } -inst_cmovpe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 620) } -inst_cmovpe_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 621) } -inst_cmovpe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 621) } +inst_cmovpe_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 631) } +inst_cmovpe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 631) } +inst_cmovpe_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 632) } +inst_cmovpe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 632) } +inst_cmovpe_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 633) } +inst_cmovpe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 633) } emit_cmovpe_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovpe_r16_r16(dst, src)) } emit_cmovpe_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovpe_r16_m16(dst, src)) } emit_cmovpe_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovpe_r32_r32(dst, src)) } emit_cmovpe_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovpe_r32_m32(dst, src)) } emit_cmovpe_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovpe_r64_r64(dst, src)) } emit_cmovpe_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovpe_r64_m64(dst, src)) } -inst_cmovpo_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 622) } -inst_cmovpo_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 622) } -inst_cmovpo_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 623) } -inst_cmovpo_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 623) } -inst_cmovpo_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 624) } -inst_cmovpo_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 624) } +inst_cmovpo_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 634) } +inst_cmovpo_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 634) } +inst_cmovpo_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 635) } +inst_cmovpo_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 635) } +inst_cmovpo_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 636) } +inst_cmovpo_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVPO, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 636) } emit_cmovpo_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovpo_r16_r16(dst, src)) } emit_cmovpo_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovpo_r16_m16(dst, src)) } emit_cmovpo_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovpo_r32_r32(dst, src)) } emit_cmovpo_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovpo_r32_m32(dst, src)) } emit_cmovpo_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovpo_r64_r64(dst, src)) } emit_cmovpo_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovpo_r64_m64(dst, src)) } -inst_cmovs_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 625) } -inst_cmovs_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 625) } -inst_cmovs_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 626) } -inst_cmovs_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 626) } -inst_cmovs_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 627) } -inst_cmovs_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 627) } +inst_cmovs_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 637) } +inst_cmovs_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 637) } +inst_cmovs_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 638) } +inst_cmovs_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 638) } +inst_cmovs_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 639) } +inst_cmovs_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVS, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 639) } emit_cmovs_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovs_r16_r16(dst, src)) } emit_cmovs_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovs_r16_m16(dst, src)) } emit_cmovs_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovs_r32_r32(dst, src)) } emit_cmovs_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovs_r32_m32(dst, src)) } emit_cmovs_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovs_r64_r64(dst, src)) } emit_cmovs_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovs_r64_m64(dst, src)) } -inst_cmovz_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 628) } -inst_cmovz_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 628) } -inst_cmovz_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 629) } -inst_cmovz_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 629) } -inst_cmovz_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 630) } -inst_cmovz_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 630) } +inst_cmovz_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 640) } +inst_cmovz_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 640) } +inst_cmovz_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 641) } +inst_cmovz_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 641) } +inst_cmovz_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 642) } +inst_cmovz_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMOVZ, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 642) } emit_cmovz_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmovz_r16_r16(dst, src)) } emit_cmovz_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_cmovz_r16_m16(dst, src)) } emit_cmovz_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_cmovz_r32_r32(dst, src)) } emit_cmovz_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cmovz_r32_m32(dst, src)) } emit_cmovz_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmovz_r64_r64(dst, src)) } emit_cmovz_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cmovz_r64_m64(dst, src)) } -inst_movs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVS, operand_count = 0, ops = {{}, {}, {}, {}} }, 631) } +inst_movs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVS, operand_count = 0, ops = {{}, {}, {}, {}} }, 643) } emit_movs_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_movs_none()) } -inst_movsb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 632) } +inst_movsb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 644) } emit_movsb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_movsb_none()) } -inst_movsw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 633) } +inst_movsw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 645) } emit_movsw_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_movsw_none()) } -inst_movsd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 634) } -inst_movsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 635) } -inst_movsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 635) } -inst_movsd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 636) } +inst_movsd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 646) } +inst_movsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 647) } +inst_movsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 647) } +inst_movsd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 648) } emit_movsd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_movsd_none()) } emit_movsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movsd_xmm_xmm(dst, src)) } emit_movsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movsd_xmm_m64(dst, src)) } emit_movsd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_movsd_m64_xmm(dst, src)) } -inst_movsq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 637) } +inst_movsq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 649) } emit_movsq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_movsq_none()) } -inst_cmps_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPS, operand_count = 0, ops = {{}, {}, {}, {}} }, 638) } +inst_cmps_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPS, operand_count = 0, ops = {{}, {}, {}, {}} }, 650) } emit_cmps_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cmps_none()) } -inst_cmpsb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 639) } +inst_cmpsb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 651) } emit_cmpsb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cmpsb_none()) } -inst_cmpsw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 640) } +inst_cmpsw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 652) } emit_cmpsw_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cmpsw_none()) } -inst_cmpsd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 641) } -inst_cmpsd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 642) } -inst_cmpsd_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 642) } +inst_cmpsd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 653) } +inst_cmpsd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 654) } +inst_cmpsd_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 654) } emit_cmpsd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cmpsd_none()) } emit_cmpsd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_cmpsd_xmm_xmm_imm8(dst, src, imm)) } emit_cmpsd_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64, imm: i8) { append(instructions, inst_cmpsd_xmm_m64_imm8(dst, src, imm)) } -inst_cmpsq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 643) } +inst_cmpsq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 655) } emit_cmpsq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cmpsq_none()) } -inst_scas_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCAS, operand_count = 0, ops = {{}, {}, {}, {}} }, 644) } +inst_scas_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCAS, operand_count = 0, ops = {{}, {}, {}, {}} }, 656) } emit_scas_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_scas_none()) } -inst_scasb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASB, operand_count = 0, ops = {{}, {}, {}, {}} }, 645) } +inst_scasb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASB, operand_count = 0, ops = {{}, {}, {}, {}} }, 657) } emit_scasb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_scasb_none()) } -inst_scasw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASW, operand_count = 0, ops = {{}, {}, {}, {}} }, 646) } +inst_scasw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASW, operand_count = 0, ops = {{}, {}, {}, {}} }, 658) } emit_scasw_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_scasw_none()) } -inst_scasd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASD, operand_count = 0, ops = {{}, {}, {}, {}} }, 647) } +inst_scasd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASD, operand_count = 0, ops = {{}, {}, {}, {}} }, 659) } emit_scasd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_scasd_none()) } -inst_scasq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 648) } +inst_scasq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SCASQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 660) } emit_scasq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_scasq_none()) } -inst_lods_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODS, operand_count = 0, ops = {{}, {}, {}, {}} }, 649) } +inst_lods_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODS, operand_count = 0, ops = {{}, {}, {}, {}} }, 661) } emit_lods_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lods_none()) } -inst_lodsb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 650) } +inst_lodsb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 662) } emit_lodsb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lodsb_none()) } -inst_lodsw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 651) } +inst_lodsw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 663) } emit_lodsw_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lodsw_none()) } -inst_lodsd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 652) } +inst_lodsd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 664) } emit_lodsd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lodsd_none()) } -inst_lodsq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 653) } +inst_lodsq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LODSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 665) } emit_lodsq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lodsq_none()) } -inst_stos_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOS, operand_count = 0, ops = {{}, {}, {}, {}} }, 654) } +inst_stos_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOS, operand_count = 0, ops = {{}, {}, {}, {}} }, 666) } emit_stos_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stos_none()) } -inst_stosb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 655) } +inst_stosb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSB, operand_count = 0, ops = {{}, {}, {}, {}} }, 667) } emit_stosb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stosb_none()) } -inst_stosw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 656) } +inst_stosw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSW, operand_count = 0, ops = {{}, {}, {}, {}} }, 668) } emit_stosw_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stosw_none()) } -inst_stosd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 657) } +inst_stosd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSD, operand_count = 0, ops = {{}, {}, {}, {}} }, 669) } emit_stosd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stosd_none()) } -inst_stosq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 658) } +inst_stosq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STOSQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 670) } emit_stosq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stosq_none()) } -inst_clc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLC, operand_count = 0, ops = {{}, {}, {}, {}} }, 659) } +inst_clc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLC, operand_count = 0, ops = {{}, {}, {}, {}} }, 671) } emit_clc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clc_none()) } -inst_stc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STC, operand_count = 0, ops = {{}, {}, {}, {}} }, 660) } +inst_stc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STC, operand_count = 0, ops = {{}, {}, {}, {}} }, 672) } emit_stc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stc_none()) } -inst_cmc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMC, operand_count = 0, ops = {{}, {}, {}, {}} }, 661) } +inst_cmc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CMC, operand_count = 0, ops = {{}, {}, {}, {}} }, 673) } emit_cmc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cmc_none()) } -inst_cld_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLD, operand_count = 0, ops = {{}, {}, {}, {}} }, 662) } +inst_cld_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLD, operand_count = 0, ops = {{}, {}, {}, {}} }, 674) } emit_cld_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cld_none()) } -inst_std_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STD, operand_count = 0, ops = {{}, {}, {}, {}} }, 663) } +inst_std_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STD, operand_count = 0, ops = {{}, {}, {}, {}} }, 675) } emit_std_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_std_none()) } -inst_cli_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLI, operand_count = 0, ops = {{}, {}, {}, {}} }, 664) } +inst_cli_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLI, operand_count = 0, ops = {{}, {}, {}, {}} }, 676) } emit_cli_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cli_none()) } -inst_sti_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STI, operand_count = 0, ops = {{}, {}, {}, {}} }, 665) } +inst_sti_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STI, operand_count = 0, ops = {{}, {}, {}, {}} }, 677) } emit_sti_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sti_none()) } -inst_lahf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LAHF, operand_count = 0, ops = {{}, {}, {}, {}} }, 666) } +inst_lahf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LAHF, operand_count = 0, ops = {{}, {}, {}, {}} }, 678) } emit_lahf_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lahf_none()) } -inst_sahf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SAHF, operand_count = 0, ops = {{}, {}, {}, {}} }, 667) } +inst_sahf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SAHF, operand_count = 0, ops = {{}, {}, {}, {}} }, 679) } emit_sahf_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sahf_none()) } -inst_pushf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PUSHF, operand_count = 0, ops = {{}, {}, {}, {}} }, 668) } +inst_pushf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PUSHF, operand_count = 0, ops = {{}, {}, {}, {}} }, 680) } emit_pushf_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pushf_none()) } -inst_pushfd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PUSHFD, operand_count = 0, ops = {{}, {}, {}, {}} }, 669) } +inst_pushfd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PUSHFD, operand_count = 0, ops = {{}, {}, {}, {}} }, 681) } emit_pushfd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pushfd_none()) } -inst_pushfq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PUSHFQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 670) } +inst_pushfq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PUSHFQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 682) } emit_pushfq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pushfq_none()) } -inst_popf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .POPF, operand_count = 0, ops = {{}, {}, {}, {}} }, 671) } +inst_popf_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .POPF, operand_count = 0, ops = {{}, {}, {}, {}} }, 683) } emit_popf_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_popf_none()) } -inst_popfd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .POPFD, operand_count = 0, ops = {{}, {}, {}, {}} }, 672) } +inst_popfd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .POPFD, operand_count = 0, ops = {{}, {}, {}, {}} }, 684) } emit_popfd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_popfd_none()) } -inst_popfq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .POPFQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 673) } +inst_popfq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .POPFQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 685) } emit_popfq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_popfq_none()) } -inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 0, ops = {{}, {}, {}, {}} }, 674) } -inst_nop_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 675) } -inst_nop_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 675) } -inst_nop_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 676) } -inst_nop_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 676) } -inst_nop_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 677) } -inst_nop_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 677) } +inst_nop_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 0, ops = {{}, {}, {}, {}} }, 686) } +inst_nop_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 687) } +inst_nop_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 687) } +inst_nop_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 688) } +inst_nop_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 688) } +inst_nop_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 689) } +inst_nop_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .NOP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 689) } emit_nop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_nop_none()) } emit_nop_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_nop_r16(dst)) } emit_nop_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_nop_m16(dst)) } @@ -1979,216 +2011,216 @@ emit_nop_r32 :: #force_inline proc(instructions: ^[dynami emit_nop_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_nop_m32(dst)) } emit_nop_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_nop_r64(dst)) } emit_nop_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_nop_m64(dst)) } -inst_hlt_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .HLT, operand_count = 0, ops = {{}, {}, {}, {}} }, 678) } +inst_hlt_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .HLT, operand_count = 0, ops = {{}, {}, {}, {}} }, 690) } emit_hlt_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_hlt_none()) } -inst_wait_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WAIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 679) } +inst_wait_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WAIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 691) } emit_wait_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wait_none()) } -inst_lock_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LOCK, operand_count = 0, ops = {{}, {}, {}, {}} }, 680) } +inst_lock_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LOCK, operand_count = 0, ops = {{}, {}, {}, {}} }, 692) } emit_lock_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lock_none()) } -inst_ud0_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD0, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 681) } -inst_ud0_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD0, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 681) } +inst_ud0_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD0, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 693) } +inst_ud0_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD0, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 693) } emit_ud0_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_ud0_r32_r32(dst, src)) } emit_ud0_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_ud0_r32_m32(dst, src)) } -inst_ud1_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD1, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 682) } -inst_ud1_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD1, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 682) } +inst_ud1_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD1, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 694) } +inst_ud1_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .UD1, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 694) } emit_ud1_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_ud1_r32_r32(dst, src)) } emit_ud1_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_ud1_r32_m32(dst, src)) } -inst_ud2_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .UD2, operand_count = 0, ops = {{}, {}, {}, {}} }, 683) } +inst_ud2_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .UD2, operand_count = 0, ops = {{}, {}, {}, {}} }, 695) } emit_ud2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ud2_none()) } -inst_cpuid_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CPUID, operand_count = 0, ops = {{}, {}, {}, {}} }, 684) } +inst_cpuid_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CPUID, operand_count = 0, ops = {{}, {}, {}, {}} }, 696) } emit_cpuid_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cpuid_none()) } -inst_rdtsc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDTSC, operand_count = 0, ops = {{}, {}, {}, {}} }, 685) } +inst_rdtsc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDTSC, operand_count = 0, ops = {{}, {}, {}, {}} }, 697) } emit_rdtsc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rdtsc_none()) } -inst_rdtscp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDTSCP, operand_count = 0, ops = {{}, {}, {}, {}} }, 686) } +inst_rdtscp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDTSCP, operand_count = 0, ops = {{}, {}, {}, {}} }, 698) } emit_rdtscp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rdtscp_none()) } -inst_rdpmc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDPMC, operand_count = 0, ops = {{}, {}, {}, {}} }, 687) } +inst_rdpmc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDPMC, operand_count = 0, ops = {{}, {}, {}, {}} }, 699) } emit_rdpmc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rdpmc_none()) } -inst_xgetbv_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XGETBV, operand_count = 0, ops = {{}, {}, {}, {}} }, 688) } +inst_xgetbv_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XGETBV, operand_count = 0, ops = {{}, {}, {}, {}} }, 700) } emit_xgetbv_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xgetbv_none()) } -inst_xsetbv_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XSETBV, operand_count = 0, ops = {{}, {}, {}, {}} }, 689) } +inst_xsetbv_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XSETBV, operand_count = 0, ops = {{}, {}, {}, {}} }, 701) } emit_xsetbv_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xsetbv_none()) } -inst_cbw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CBW, operand_count = 0, ops = {{}, {}, {}, {}} }, 690) } +inst_cbw_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CBW, operand_count = 0, ops = {{}, {}, {}, {}} }, 702) } emit_cbw_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cbw_none()) } -inst_cwde_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CWDE, operand_count = 0, ops = {{}, {}, {}, {}} }, 691) } +inst_cwde_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CWDE, operand_count = 0, ops = {{}, {}, {}, {}} }, 703) } emit_cwde_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cwde_none()) } -inst_cdqe_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CDQE, operand_count = 0, ops = {{}, {}, {}, {}} }, 692) } +inst_cdqe_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CDQE, operand_count = 0, ops = {{}, {}, {}, {}} }, 704) } emit_cdqe_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cdqe_none()) } -inst_cwd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CWD, operand_count = 0, ops = {{}, {}, {}, {}} }, 693) } +inst_cwd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CWD, operand_count = 0, ops = {{}, {}, {}, {}} }, 705) } emit_cwd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cwd_none()) } -inst_cdq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CDQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 694) } +inst_cdq_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CDQ, operand_count = 0, ops = {{}, {}, {}, {}} }, 706) } emit_cdq_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cdq_none()) } -inst_cqo_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CQO, operand_count = 0, ops = {{}, {}, {}, {}} }, 695) } +inst_cqo_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CQO, operand_count = 0, ops = {{}, {}, {}, {}} }, 707) } emit_cqo_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_cqo_none()) } -inst_andn_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 696) } -inst_andn_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 696) } -inst_andn_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 697) } -inst_andn_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 697) } +inst_andn_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 708) } +inst_andn_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 708) } +inst_andn_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 709) } +inst_andn_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDN, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 709) } emit_andn_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_andn_r32_r32_r32(dst, src, src2)) } emit_andn_r32_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: Mem32) { append(instructions, inst_andn_r32_r32_m32(dst, src, src2)) } emit_andn_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_andn_r64_r64_r64(dst, src, src2)) } emit_andn_r64_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: Mem64) { append(instructions, inst_andn_r64_r64_m64(dst, src, src2)) } -inst_bextr_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 698) } -inst_bextr_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 698) } -inst_bextr_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 699) } -inst_bextr_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 699) } +inst_bextr_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 710) } +inst_bextr_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 710) } +inst_bextr_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 711) } +inst_bextr_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BEXTR, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 711) } emit_bextr_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_bextr_r32_r32_r32(dst, src, src2)) } emit_bextr_r32_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32, src2: GPR32) { append(instructions, inst_bextr_r32_m32_r32(dst, src, src2)) } emit_bextr_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_bextr_r64_r64_r64(dst, src, src2)) } emit_bextr_r64_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64, src2: GPR64) { append(instructions, inst_bextr_r64_m64_r64(dst, src, src2)) } -inst_blsi_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 700) } -inst_blsi_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 700) } -inst_blsi_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 701) } -inst_blsi_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 701) } +inst_blsi_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 712) } +inst_blsi_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 712) } +inst_blsi_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 713) } +inst_blsi_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 713) } emit_blsi_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_blsi_r32_r32(dst, src)) } emit_blsi_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_blsi_r32_m32(dst, src)) } emit_blsi_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_blsi_r64_r64(dst, src)) } emit_blsi_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_blsi_r64_m64(dst, src)) } -inst_blsmsk_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 702) } -inst_blsmsk_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 702) } -inst_blsmsk_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 703) } -inst_blsmsk_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 703) } +inst_blsmsk_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 714) } +inst_blsmsk_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 714) } +inst_blsmsk_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 715) } +inst_blsmsk_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSMSK, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 715) } emit_blsmsk_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_blsmsk_r32_r32(dst, src)) } emit_blsmsk_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_blsmsk_r32_m32(dst, src)) } emit_blsmsk_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_blsmsk_r64_r64(dst, src)) } emit_blsmsk_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_blsmsk_r64_m64(dst, src)) } -inst_blsr_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 704) } -inst_blsr_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 704) } -inst_blsr_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 705) } -inst_blsr_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 705) } +inst_blsr_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 716) } +inst_blsr_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 716) } +inst_blsr_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 717) } +inst_blsr_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .BLSR, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 717) } emit_blsr_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_blsr_r32_r32(dst, src)) } emit_blsr_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_blsr_r32_m32(dst, src)) } emit_blsr_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_blsr_r64_r64(dst, src)) } emit_blsr_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_blsr_r64_m64(dst, src)) } -inst_bzhi_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 706) } -inst_bzhi_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 706) } -inst_bzhi_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 707) } -inst_bzhi_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 707) } +inst_bzhi_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 718) } +inst_bzhi_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 718) } +inst_bzhi_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 719) } +inst_bzhi_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BZHI, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 719) } emit_bzhi_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_bzhi_r32_r32_r32(dst, src, src2)) } emit_bzhi_r32_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32, src2: GPR32) { append(instructions, inst_bzhi_r32_m32_r32(dst, src, src2)) } emit_bzhi_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_bzhi_r64_r64_r64(dst, src, src2)) } emit_bzhi_r64_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64, src2: GPR64) { append(instructions, inst_bzhi_r64_m64_r64(dst, src, src2)) } -inst_pdep_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 708) } -inst_pdep_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 708) } -inst_pdep_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 709) } -inst_pdep_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 709) } +inst_pdep_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 720) } +inst_pdep_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 720) } +inst_pdep_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 721) } +inst_pdep_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PDEP, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 721) } emit_pdep_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_pdep_r32_r32_r32(dst, src, src2)) } emit_pdep_r32_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: Mem32) { append(instructions, inst_pdep_r32_r32_m32(dst, src, src2)) } emit_pdep_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_pdep_r64_r64_r64(dst, src, src2)) } emit_pdep_r64_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: Mem64) { append(instructions, inst_pdep_r64_r64_m64(dst, src, src2)) } -inst_pext_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 710) } -inst_pext_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 710) } -inst_pext_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 711) } -inst_pext_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 711) } +inst_pext_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 722) } +inst_pext_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 722) } +inst_pext_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 723) } +inst_pext_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXT, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 723) } emit_pext_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_pext_r32_r32_r32(dst, src, src2)) } emit_pext_r32_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: Mem32) { append(instructions, inst_pext_r32_r32_m32(dst, src, src2)) } emit_pext_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_pext_r64_r64_r64(dst, src, src2)) } emit_pext_r64_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: Mem64) { append(instructions, inst_pext_r64_r64_m64(dst, src, src2)) } -inst_rorx_r32_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_imm8(imm), {}} }, 712) } -inst_rorx_r32_m32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 712) } -inst_rorx_r64_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_imm8(imm), {}} }, 713) } -inst_rorx_r64_m64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 713) } +inst_rorx_r32_r32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_imm8(imm), {}} }, 724) } +inst_rorx_r32_m32_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 724) } +inst_rorx_r64_r64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_imm8(imm), {}} }, 725) } +inst_rorx_r64_m64_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .RORX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 725) } emit_rorx_r32_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, imm: i8) { append(instructions, inst_rorx_r32_r32_imm8(dst, src, imm)) } emit_rorx_r32_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32, imm: i8) { append(instructions, inst_rorx_r32_m32_imm8(dst, src, imm)) } emit_rorx_r64_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, imm: i8) { append(instructions, inst_rorx_r64_r64_imm8(dst, src, imm)) } emit_rorx_r64_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64, imm: i8) { append(instructions, inst_rorx_r64_m64_imm8(dst, src, imm)) } -inst_sarx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 714) } -inst_sarx_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 714) } -inst_sarx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 715) } -inst_sarx_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 715) } +inst_sarx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 726) } +inst_sarx_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 726) } +inst_sarx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 727) } +inst_sarx_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SARX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 727) } emit_sarx_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_sarx_r32_r32_r32(dst, src, src2)) } emit_sarx_r32_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32, src2: GPR32) { append(instructions, inst_sarx_r32_m32_r32(dst, src, src2)) } emit_sarx_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_sarx_r64_r64_r64(dst, src, src2)) } emit_sarx_r64_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64, src2: GPR64) { append(instructions, inst_sarx_r64_m64_r64(dst, src, src2)) } -inst_shlx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 716) } -inst_shlx_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 716) } -inst_shlx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 717) } -inst_shlx_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 717) } +inst_shlx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 728) } +inst_shlx_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 728) } +inst_shlx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 729) } +inst_shlx_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHLX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 729) } emit_shlx_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_shlx_r32_r32_r32(dst, src, src2)) } emit_shlx_r32_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32, src2: GPR32) { append(instructions, inst_shlx_r32_m32_r32(dst, src, src2)) } emit_shlx_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_shlx_r64_r64_r64(dst, src, src2)) } emit_shlx_r64_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64, src2: GPR64) { append(instructions, inst_shlx_r64_m64_r64(dst, src, src2)) } -inst_shrx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 718) } -inst_shrx_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 718) } -inst_shrx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 719) } -inst_shrx_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 719) } +inst_shrx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 730) } +inst_shrx_r32_m32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr32(dst), op_mem(src.mem, 4), op_gpr32(src2), {}} }, 730) } +inst_shrx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 731) } +inst_shrx_r64_m64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SHRX, operand_count = 3, ops = {op_gpr64(dst), op_mem(src.mem, 8), op_gpr64(src2), {}} }, 731) } emit_shrx_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_shrx_r32_r32_r32(dst, src, src2)) } emit_shrx_r32_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32, src2: GPR32) { append(instructions, inst_shrx_r32_m32_r32(dst, src, src2)) } emit_shrx_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_shrx_r64_r64_r64(dst, src, src2)) } emit_shrx_r64_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64, src2: GPR64) { append(instructions, inst_shrx_r64_m64_r64(dst, src, src2)) } -inst_mulx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 720) } -inst_mulx_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 720) } -inst_mulx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 721) } -inst_mulx_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 721) } +inst_mulx_r32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_gpr32(src2), {}} }, 732) } +inst_mulx_r32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr32(dst), op_gpr32(src), op_mem(src2.mem, 4), {}} }, 732) } +inst_mulx_r64_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_gpr64(src2), {}} }, 733) } +inst_mulx_r64_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MULX, operand_count = 3, ops = {op_gpr64(dst), op_gpr64(src), op_mem(src2.mem, 8), {}} }, 733) } emit_mulx_r32_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: GPR32) { append(instructions, inst_mulx_r32_r32_r32(dst, src, src2)) } emit_mulx_r32_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32, src2: Mem32) { append(instructions, inst_mulx_r32_r32_m32(dst, src, src2)) } emit_mulx_r64_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: GPR64) { append(instructions, inst_mulx_r64_r64_r64(dst, src, src2)) } emit_mulx_r64_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64, src2: Mem64) { append(instructions, inst_mulx_r64_r64_m64(dst, src, src2)) } -inst_adcx_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 722) } -inst_adcx_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 722) } -inst_adcx_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 723) } -inst_adcx_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 723) } +inst_adcx_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 734) } +inst_adcx_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 734) } +inst_adcx_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 735) } +inst_adcx_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADCX, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 735) } emit_adcx_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_adcx_r32_r32(dst, src)) } emit_adcx_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_adcx_r32_m32(dst, src)) } emit_adcx_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_adcx_r64_r64(dst, src)) } emit_adcx_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_adcx_r64_m64(dst, src)) } -inst_adox_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 724) } -inst_adox_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 724) } -inst_adox_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 725) } -inst_adox_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 725) } +inst_adox_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 736) } +inst_adox_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 736) } +inst_adox_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 737) } +inst_adox_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADOX, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 737) } emit_adox_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_adox_r32_r32(dst, src)) } emit_adox_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_adox_r32_m32(dst, src)) } emit_adox_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_adox_r64_r64(dst, src)) } emit_adox_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_adox_r64_m64(dst, src)) } -inst_movaps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 726) } -inst_movaps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 726) } -inst_movaps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 727) } +inst_movaps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 738) } +inst_movaps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 738) } +inst_movaps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 739) } emit_movaps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movaps_xmm_xmm(dst, src)) } emit_movaps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movaps_xmm_m128(dst, src)) } emit_movaps_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movaps_m128_xmm(dst, src)) } -inst_movups_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 728) } -inst_movups_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 728) } -inst_movups_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 729) } +inst_movups_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 740) } +inst_movups_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 740) } +inst_movups_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 741) } emit_movups_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movups_xmm_xmm(dst, src)) } emit_movups_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movups_xmm_m128(dst, src)) } emit_movups_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movups_m128_xmm(dst, src)) } -inst_movapd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 730) } -inst_movapd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 730) } -inst_movapd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 731) } +inst_movapd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 742) } +inst_movapd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 742) } +inst_movapd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVAPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 743) } emit_movapd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movapd_xmm_xmm(dst, src)) } emit_movapd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movapd_xmm_m128(dst, src)) } emit_movapd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movapd_m128_xmm(dst, src)) } -inst_movupd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 732) } -inst_movupd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 732) } -inst_movupd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 733) } +inst_movupd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 744) } +inst_movupd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 744) } +inst_movupd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVUPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 745) } emit_movupd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movupd_xmm_xmm(dst, src)) } emit_movupd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movupd_xmm_m128(dst, src)) } emit_movupd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movupd_m128_xmm(dst, src)) } -inst_movss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 734) } -inst_movss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 734) } -inst_movss_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 735) } +inst_movss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 746) } +inst_movss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 746) } +inst_movss_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 747) } emit_movss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movss_xmm_xmm(dst, src)) } emit_movss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_movss_xmm_m32(dst, src)) } emit_movss_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_movss_m32_xmm(dst, src)) } -inst_movdqa_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQA, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 736) } -inst_movdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 736) } -inst_movdqa_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQA, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 737) } +inst_movdqa_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQA, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 748) } +inst_movdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 748) } +inst_movdqa_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQA, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 749) } emit_movdqa_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movdqa_xmm_xmm(dst, src)) } emit_movdqa_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movdqa_xmm_m128(dst, src)) } emit_movdqa_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movdqa_m128_xmm(dst, src)) } -inst_movdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 738) } -inst_movdqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 738) } -inst_movdqu_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQU, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 739) } +inst_movdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 750) } +inst_movdqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 750) } +inst_movdqu_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDQU, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 751) } emit_movdqu_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movdqu_xmm_xmm(dst, src)) } emit_movdqu_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movdqu_xmm_m128(dst, src)) } emit_movdqu_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movdqu_m128_xmm(dst, src)) } -inst_movq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 740) } -inst_movq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 740) } -inst_movq_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 741) } -inst_movq_mm_mm :: #force_inline proc "contextless" (dst: MM, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mm(dst), op_mm(src), {}, {}} }, 742) } -inst_movq_mm_m64 :: #force_inline proc "contextless" (dst: MM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mm(dst), op_mem(src.mem, 8), {}, {}} }, 742) } -inst_movq_m64_mm :: #force_inline proc "contextless" (dst: Mem64, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_mm(src), {}, {}} }, 743) } -inst_movq_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 744) } -inst_movq_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 745) } +inst_movq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 752) } +inst_movq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 752) } +inst_movq_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 753) } +inst_movq_mm_mm :: #force_inline proc "contextless" (dst: MM, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mm(dst), op_mm(src), {}, {}} }, 754) } +inst_movq_mm_m64 :: #force_inline proc "contextless" (dst: MM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mm(dst), op_mem(src.mem, 8), {}, {}} }, 754) } +inst_movq_m64_mm :: #force_inline proc "contextless" (dst: Mem64, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_mm(src), {}, {}} }, 755) } +inst_movq_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 756) } +inst_movq_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVQ, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 757) } emit_movq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movq_xmm_xmm(dst, src)) } emit_movq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movq_xmm_m64(dst, src)) } emit_movq_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_movq_m64_xmm(dst, src)) } @@ -2197,14 +2229,14 @@ emit_movq_mm_m64 :: #force_inline proc(instructions: ^[dynami emit_movq_m64_mm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: MM) { append(instructions, inst_movq_m64_mm(dst, src)) } emit_movq_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_movq_r64_xmm(dst, src)) } emit_movq_xmm_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR64) { append(instructions, inst_movq_xmm_r64(dst, src)) } -inst_movd_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 746) } -inst_movd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 746) } -inst_movd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 747) } -inst_movd_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 747) } -inst_movd_mm_r32 :: #force_inline proc "contextless" (dst: MM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mm(dst), op_gpr32(src), {}, {}} }, 748) } -inst_movd_mm_m32 :: #force_inline proc "contextless" (dst: MM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mm(dst), op_mem(src.mem, 4), {}, {}} }, 748) } -inst_movd_r32_mm :: #force_inline proc "contextless" (dst: GPR32, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_gpr32(dst), op_mm(src), {}, {}} }, 749) } -inst_movd_m32_mm :: #force_inline proc "contextless" (dst: Mem32, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_mm(src), {}, {}} }, 749) } +inst_movd_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 758) } +inst_movd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 758) } +inst_movd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 759) } +inst_movd_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 759) } +inst_movd_mm_r32 :: #force_inline proc "contextless" (dst: MM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mm(dst), op_gpr32(src), {}, {}} }, 760) } +inst_movd_mm_m32 :: #force_inline proc "contextless" (dst: MM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mm(dst), op_mem(src.mem, 4), {}, {}} }, 760) } +inst_movd_r32_mm :: #force_inline proc "contextless" (dst: GPR32, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_gpr32(dst), op_mm(src), {}, {}} }, 761) } +inst_movd_m32_mm :: #force_inline proc "contextless" (dst: Mem32, src: MM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_mm(src), {}, {}} }, 761) } emit_movd_xmm_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR32) { append(instructions, inst_movd_xmm_r32(dst, src)) } emit_movd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_movd_xmm_m32(dst, src)) } emit_movd_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_movd_r32_xmm(dst, src)) } @@ -2213,926 +2245,926 @@ emit_movd_mm_r32 :: #force_inline proc(instructions: ^[dynami emit_movd_mm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: MM, src: Mem32) { append(instructions, inst_movd_mm_m32(dst, src)) } emit_movd_r32_mm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: MM) { append(instructions, inst_movd_r32_mm(dst, src)) } emit_movd_m32_mm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: MM) { append(instructions, inst_movd_m32_mm(dst, src)) } -inst_movlps_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 750) } -inst_movlps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 751) } +inst_movlps_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 762) } +inst_movlps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 763) } emit_movlps_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movlps_xmm_m64(dst, src)) } emit_movlps_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_movlps_m64_xmm(dst, src)) } -inst_movhps_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 752) } -inst_movhps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 753) } +inst_movhps_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 764) } +inst_movhps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 765) } emit_movhps_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movhps_xmm_m64(dst, src)) } emit_movhps_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_movhps_m64_xmm(dst, src)) } -inst_movlpd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 754) } -inst_movlpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 755) } +inst_movlpd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 766) } +inst_movlpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 767) } emit_movlpd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movlpd_xmm_m64(dst, src)) } emit_movlpd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_movlpd_m64_xmm(dst, src)) } -inst_movhpd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 756) } -inst_movhpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 757) } +inst_movhpd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 768) } +inst_movhpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 769) } emit_movhpd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movhpd_xmm_m64(dst, src)) } emit_movhpd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_movhpd_m64_xmm(dst, src)) } -inst_movlhps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLHPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 758) } +inst_movlhps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVLHPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 770) } emit_movlhps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movlhps_xmm_xmm(dst, src)) } -inst_movhlps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHLPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 759) } +inst_movhlps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVHLPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 771) } emit_movhlps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movhlps_xmm_xmm(dst, src)) } -inst_movmskps_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPS, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 760) } -inst_movmskps_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPS, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 761) } +inst_movmskps_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPS, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 772) } +inst_movmskps_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPS, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 773) } emit_movmskps_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_movmskps_r32_xmm(dst, src)) } emit_movmskps_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_movmskps_r64_xmm(dst, src)) } -inst_movmskpd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 762) } -inst_movmskpd_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPD, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 763) } +inst_movmskpd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 774) } +inst_movmskpd_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVMSKPD, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 775) } emit_movmskpd_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_movmskpd_r32_xmm(dst, src)) } emit_movmskpd_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_movmskpd_r64_xmm(dst, src)) } -inst_movntps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 764) } +inst_movntps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 776) } emit_movntps_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movntps_m128_xmm(dst, src)) } -inst_movntpd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 765) } +inst_movntpd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 777) } emit_movntpd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movntpd_m128_xmm(dst, src)) } -inst_movntdq_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTDQ, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 766) } +inst_movntdq_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTDQ, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 778) } emit_movntdq_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_movntdq_m128_xmm(dst, src)) } -inst_movntdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 767) } +inst_movntdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVNTDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 779) } emit_movntdqa_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movntdqa_xmm_m128(dst, src)) } -inst_addps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 768) } -inst_addps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 768) } +inst_addps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 780) } +inst_addps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 780) } emit_addps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_addps_xmm_xmm(dst, src)) } emit_addps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_addps_xmm_m128(dst, src)) } -inst_addpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 769) } -inst_addpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 769) } +inst_addpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 781) } +inst_addpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 781) } emit_addpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_addpd_xmm_xmm(dst, src)) } emit_addpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_addpd_xmm_m128(dst, src)) } -inst_addss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 770) } -inst_addss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 770) } +inst_addss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 782) } +inst_addss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 782) } emit_addss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_addss_xmm_xmm(dst, src)) } emit_addss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_addss_xmm_m32(dst, src)) } -inst_addsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 771) } -inst_addsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 771) } +inst_addsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 783) } +inst_addsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 783) } emit_addsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_addsd_xmm_xmm(dst, src)) } emit_addsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_addsd_xmm_m64(dst, src)) } -inst_subps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 772) } -inst_subps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 772) } +inst_subps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 784) } +inst_subps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 784) } emit_subps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_subps_xmm_xmm(dst, src)) } emit_subps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_subps_xmm_m128(dst, src)) } -inst_subpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 773) } -inst_subpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 773) } +inst_subpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 785) } +inst_subpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 785) } emit_subpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_subpd_xmm_xmm(dst, src)) } emit_subpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_subpd_xmm_m128(dst, src)) } -inst_subss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 774) } -inst_subss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 774) } +inst_subss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 786) } +inst_subss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 786) } emit_subss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_subss_xmm_xmm(dst, src)) } emit_subss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_subss_xmm_m32(dst, src)) } -inst_subsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 775) } -inst_subsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 775) } +inst_subsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 787) } +inst_subsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .SUBSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 787) } emit_subsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_subsd_xmm_xmm(dst, src)) } emit_subsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_subsd_xmm_m64(dst, src)) } -inst_mulps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 776) } -inst_mulps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 776) } +inst_mulps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 788) } +inst_mulps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 788) } emit_mulps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_mulps_xmm_xmm(dst, src)) } emit_mulps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_mulps_xmm_m128(dst, src)) } -inst_mulpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 777) } -inst_mulpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 777) } +inst_mulpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 789) } +inst_mulpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MULPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 789) } emit_mulpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_mulpd_xmm_xmm(dst, src)) } emit_mulpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_mulpd_xmm_m128(dst, src)) } -inst_mulss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 778) } -inst_mulss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 778) } +inst_mulss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 790) } +inst_mulss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 790) } emit_mulss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_mulss_xmm_xmm(dst, src)) } emit_mulss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_mulss_xmm_m32(dst, src)) } -inst_mulsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 779) } -inst_mulsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 779) } +inst_mulsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 791) } +inst_mulsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MULSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 791) } emit_mulsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_mulsd_xmm_xmm(dst, src)) } emit_mulsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_mulsd_xmm_m64(dst, src)) } -inst_divps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 780) } -inst_divps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 780) } +inst_divps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 792) } +inst_divps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 792) } emit_divps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_divps_xmm_xmm(dst, src)) } emit_divps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_divps_xmm_m128(dst, src)) } -inst_divpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 781) } -inst_divpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 781) } +inst_divpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 793) } +inst_divpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 793) } emit_divpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_divpd_xmm_xmm(dst, src)) } emit_divpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_divpd_xmm_m128(dst, src)) } -inst_divss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 782) } -inst_divss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 782) } +inst_divss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 794) } +inst_divss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 794) } emit_divss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_divss_xmm_xmm(dst, src)) } emit_divss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_divss_xmm_m32(dst, src)) } -inst_divsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 783) } -inst_divsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 783) } +inst_divsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 795) } +inst_divsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .DIVSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 795) } emit_divsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_divsd_xmm_xmm(dst, src)) } emit_divsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_divsd_xmm_m64(dst, src)) } -inst_sqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 784) } -inst_sqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 784) } +inst_sqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 796) } +inst_sqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 796) } emit_sqrtps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sqrtps_xmm_xmm(dst, src)) } emit_sqrtps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sqrtps_xmm_m128(dst, src)) } -inst_sqrtpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 785) } -inst_sqrtpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 785) } +inst_sqrtpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 797) } +inst_sqrtpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 797) } emit_sqrtpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sqrtpd_xmm_xmm(dst, src)) } emit_sqrtpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sqrtpd_xmm_m128(dst, src)) } -inst_sqrtss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 786) } -inst_sqrtss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 786) } +inst_sqrtss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 798) } +inst_sqrtss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 798) } emit_sqrtss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sqrtss_xmm_xmm(dst, src)) } emit_sqrtss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_sqrtss_xmm_m32(dst, src)) } -inst_sqrtsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 787) } -inst_sqrtsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 787) } +inst_sqrtsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 799) } +inst_sqrtsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .SQRTSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 799) } emit_sqrtsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sqrtsd_xmm_xmm(dst, src)) } emit_sqrtsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_sqrtsd_xmm_m64(dst, src)) } -inst_rcpps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 788) } -inst_rcpps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 788) } +inst_rcpps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 800) } +inst_rcpps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 800) } emit_rcpps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_rcpps_xmm_xmm(dst, src)) } emit_rcpps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_rcpps_xmm_m128(dst, src)) } -inst_rcpss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 789) } -inst_rcpss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 789) } +inst_rcpss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 801) } +inst_rcpss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RCPSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 801) } emit_rcpss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_rcpss_xmm_xmm(dst, src)) } emit_rcpss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_rcpss_xmm_m32(dst, src)) } -inst_rsqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 790) } -inst_rsqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 790) } +inst_rsqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 802) } +inst_rsqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 802) } emit_rsqrtps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_rsqrtps_xmm_xmm(dst, src)) } emit_rsqrtps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_rsqrtps_xmm_m128(dst, src)) } -inst_rsqrtss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 791) } -inst_rsqrtss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 791) } +inst_rsqrtss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 803) } +inst_rsqrtss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .RSQRTSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 803) } emit_rsqrtss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_rsqrtss_xmm_xmm(dst, src)) } emit_rsqrtss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_rsqrtss_xmm_m32(dst, src)) } -inst_maxps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 792) } -inst_maxps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 792) } +inst_maxps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 804) } +inst_maxps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 804) } emit_maxps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_maxps_xmm_xmm(dst, src)) } emit_maxps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_maxps_xmm_m128(dst, src)) } -inst_maxpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 793) } -inst_maxpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 793) } +inst_maxpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 805) } +inst_maxpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 805) } emit_maxpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_maxpd_xmm_xmm(dst, src)) } emit_maxpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_maxpd_xmm_m128(dst, src)) } -inst_maxss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 794) } -inst_maxss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 794) } +inst_maxss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 806) } +inst_maxss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 806) } emit_maxss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_maxss_xmm_xmm(dst, src)) } emit_maxss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_maxss_xmm_m32(dst, src)) } -inst_maxsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 795) } -inst_maxsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 795) } +inst_maxsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 807) } +inst_maxsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MAXSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 807) } emit_maxsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_maxsd_xmm_xmm(dst, src)) } emit_maxsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_maxsd_xmm_m64(dst, src)) } -inst_minps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 796) } -inst_minps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 796) } +inst_minps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 808) } +inst_minps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 808) } emit_minps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_minps_xmm_xmm(dst, src)) } emit_minps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_minps_xmm_m128(dst, src)) } -inst_minpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 797) } -inst_minpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 797) } +inst_minpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 809) } +inst_minpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MINPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 809) } emit_minpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_minpd_xmm_xmm(dst, src)) } emit_minpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_minpd_xmm_m128(dst, src)) } -inst_minss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 798) } -inst_minss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 798) } +inst_minss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 810) } +inst_minss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 810) } emit_minss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_minss_xmm_xmm(dst, src)) } emit_minss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_minss_xmm_m32(dst, src)) } -inst_minsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 799) } -inst_minsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 799) } +inst_minsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 811) } +inst_minsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MINSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 811) } emit_minsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_minsd_xmm_xmm(dst, src)) } emit_minsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_minsd_xmm_m64(dst, src)) } -inst_andps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 800) } -inst_andps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 800) } +inst_andps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 812) } +inst_andps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 812) } emit_andps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_andps_xmm_xmm(dst, src)) } emit_andps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_andps_xmm_m128(dst, src)) } -inst_andpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 801) } -inst_andpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 801) } +inst_andpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 813) } +inst_andpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 813) } emit_andpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_andpd_xmm_xmm(dst, src)) } emit_andpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_andpd_xmm_m128(dst, src)) } -inst_andnps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 802) } -inst_andnps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 802) } +inst_andnps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 814) } +inst_andnps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 814) } emit_andnps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_andnps_xmm_xmm(dst, src)) } emit_andnps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_andnps_xmm_m128(dst, src)) } -inst_andnpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 803) } -inst_andnpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 803) } +inst_andnpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 815) } +inst_andnpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ANDNPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 815) } emit_andnpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_andnpd_xmm_xmm(dst, src)) } emit_andnpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_andnpd_xmm_m128(dst, src)) } -inst_orps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 804) } -inst_orps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 804) } +inst_orps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 816) } +inst_orps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 816) } emit_orps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_orps_xmm_xmm(dst, src)) } emit_orps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_orps_xmm_m128(dst, src)) } -inst_orpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 805) } -inst_orpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 805) } +inst_orpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 817) } +inst_orpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ORPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 817) } emit_orpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_orpd_xmm_xmm(dst, src)) } emit_orpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_orpd_xmm_m128(dst, src)) } -inst_xorps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 806) } -inst_xorps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 806) } +inst_xorps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 818) } +inst_xorps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 818) } emit_xorps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_xorps_xmm_xmm(dst, src)) } emit_xorps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_xorps_xmm_m128(dst, src)) } -inst_xorpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 807) } -inst_xorpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 807) } +inst_xorpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 819) } +inst_xorpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .XORPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 819) } emit_xorpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_xorpd_xmm_xmm(dst, src)) } emit_xorpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_xorpd_xmm_m128(dst, src)) } -inst_cmpps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 808) } -inst_cmpps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 808) } +inst_cmpps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 820) } +inst_cmpps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 820) } emit_cmpps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_cmpps_xmm_xmm_imm8(dst, src, imm)) } emit_cmpps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_cmpps_xmm_m128_imm8(dst, src, imm)) } -inst_cmppd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 809) } -inst_cmppd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 809) } +inst_cmppd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 821) } +inst_cmppd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 821) } emit_cmppd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_cmppd_xmm_xmm_imm8(dst, src, imm)) } emit_cmppd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_cmppd_xmm_m128_imm8(dst, src, imm)) } -inst_cmpss_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 810) } -inst_cmpss_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 810) } +inst_cmpss_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 822) } +inst_cmpss_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPSS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 822) } emit_cmpss_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_cmpss_xmm_xmm_imm8(dst, src, imm)) } emit_cmpss_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32, imm: i8) { append(instructions, inst_cmpss_xmm_m32_imm8(dst, src, imm)) } -inst_comiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 811) } -inst_comiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 811) } +inst_comiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 823) } +inst_comiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 823) } emit_comiss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_comiss_xmm_xmm(dst, src)) } emit_comiss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_comiss_xmm_m32(dst, src)) } -inst_comisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 812) } -inst_comisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 812) } +inst_comisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 824) } +inst_comisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .COMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 824) } emit_comisd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_comisd_xmm_xmm(dst, src)) } emit_comisd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_comisd_xmm_m64(dst, src)) } -inst_ucomiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 813) } -inst_ucomiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 813) } +inst_ucomiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 825) } +inst_ucomiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 825) } emit_ucomiss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_ucomiss_xmm_xmm(dst, src)) } emit_ucomiss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_ucomiss_xmm_m32(dst, src)) } -inst_ucomisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 814) } -inst_ucomisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 814) } +inst_ucomisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 826) } +inst_ucomisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .UCOMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 826) } emit_ucomisd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_ucomisd_xmm_xmm(dst, src)) } emit_ucomisd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_ucomisd_xmm_m64(dst, src)) } -inst_shufps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 815) } -inst_shufps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 815) } +inst_shufps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 827) } +inst_shufps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 827) } emit_shufps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_shufps_xmm_xmm_imm8(dst, src, imm)) } emit_shufps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_shufps_xmm_m128_imm8(dst, src, imm)) } -inst_shufpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 816) } -inst_shufpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 816) } +inst_shufpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 828) } +inst_shufpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHUFPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 828) } emit_shufpd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_shufpd_xmm_xmm_imm8(dst, src, imm)) } emit_shufpd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_shufpd_xmm_m128_imm8(dst, src, imm)) } -inst_unpcklps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 817) } -inst_unpcklps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 817) } +inst_unpcklps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 829) } +inst_unpcklps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 829) } emit_unpcklps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_unpcklps_xmm_xmm(dst, src)) } emit_unpcklps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_unpcklps_xmm_m128(dst, src)) } -inst_unpckhps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 818) } -inst_unpckhps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 818) } +inst_unpckhps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 830) } +inst_unpckhps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 830) } emit_unpckhps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_unpckhps_xmm_xmm(dst, src)) } emit_unpckhps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_unpckhps_xmm_m128(dst, src)) } -inst_unpcklpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 819) } -inst_unpcklpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 819) } +inst_unpcklpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 831) } +inst_unpcklpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKLPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 831) } emit_unpcklpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_unpcklpd_xmm_xmm(dst, src)) } emit_unpcklpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_unpcklpd_xmm_m128(dst, src)) } -inst_unpckhpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 820) } -inst_unpckhpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 820) } +inst_unpckhpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 832) } +inst_unpckhpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .UNPCKHPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 832) } emit_unpckhpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_unpckhpd_xmm_xmm(dst, src)) } emit_unpckhpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_unpckhpd_xmm_m128(dst, src)) } -inst_cvtps2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 821) } -inst_cvtps2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 821) } +inst_cvtps2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 833) } +inst_cvtps2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 833) } emit_cvtps2pd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtps2pd_xmm_xmm(dst, src)) } emit_cvtps2pd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_cvtps2pd_xmm_m64(dst, src)) } -inst_cvtpd2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 822) } -inst_cvtpd2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 822) } +inst_cvtpd2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 834) } +inst_cvtpd2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 834) } emit_cvtpd2ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtpd2ps_xmm_xmm(dst, src)) } emit_cvtpd2ps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_cvtpd2ps_xmm_m128(dst, src)) } -inst_cvtss2sd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 823) } -inst_cvtss2sd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 823) } +inst_cvtss2sd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 835) } +inst_cvtss2sd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 835) } emit_cvtss2sd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtss2sd_xmm_xmm(dst, src)) } emit_cvtss2sd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_cvtss2sd_xmm_m32(dst, src)) } -inst_cvtsd2ss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 824) } -inst_cvtsd2ss_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 824) } +inst_cvtsd2ss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 836) } +inst_cvtsd2ss_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 836) } emit_cvtsd2ss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtsd2ss_xmm_xmm(dst, src)) } emit_cvtsd2ss_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_cvtsd2ss_xmm_m64(dst, src)) } -inst_cvtps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 825) } -inst_cvtps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 825) } +inst_cvtps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 837) } +inst_cvtps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 837) } emit_cvtps2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtps2dq_xmm_xmm(dst, src)) } emit_cvtps2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_cvtps2dq_xmm_m128(dst, src)) } -inst_cvtpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 826) } -inst_cvtpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 826) } +inst_cvtpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 838) } +inst_cvtpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 838) } emit_cvtpd2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtpd2dq_xmm_xmm(dst, src)) } emit_cvtpd2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_cvtpd2dq_xmm_m128(dst, src)) } -inst_cvtdq2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 827) } -inst_cvtdq2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 827) } +inst_cvtdq2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 839) } +inst_cvtdq2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 839) } emit_cvtdq2ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtdq2ps_xmm_xmm(dst, src)) } emit_cvtdq2ps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_cvtdq2ps_xmm_m128(dst, src)) } -inst_cvtdq2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 828) } -inst_cvtdq2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 828) } +inst_cvtdq2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 840) } +inst_cvtdq2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 840) } emit_cvtdq2pd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvtdq2pd_xmm_xmm(dst, src)) } emit_cvtdq2pd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_cvtdq2pd_xmm_m64(dst, src)) } -inst_cvtss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 829) } -inst_cvtss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 829) } -inst_cvtss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 830) } -inst_cvtss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 830) } +inst_cvtss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 841) } +inst_cvtss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 841) } +inst_cvtss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 842) } +inst_cvtss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 842) } emit_cvtss2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_cvtss2si_r32_xmm(dst, src)) } emit_cvtss2si_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cvtss2si_r32_m32(dst, src)) } emit_cvtss2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_cvtss2si_r64_xmm(dst, src)) } emit_cvtss2si_r64_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem32) { append(instructions, inst_cvtss2si_r64_m32(dst, src)) } -inst_cvtsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 831) } -inst_cvtsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 831) } -inst_cvtsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 832) } -inst_cvtsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 832) } +inst_cvtsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 843) } +inst_cvtsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 843) } +inst_cvtsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 844) } +inst_cvtsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 844) } emit_cvtsd2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_cvtsd2si_r32_xmm(dst, src)) } emit_cvtsd2si_r32_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem64) { append(instructions, inst_cvtsd2si_r32_m64(dst, src)) } emit_cvtsd2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_cvtsd2si_r64_xmm(dst, src)) } emit_cvtsd2si_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cvtsd2si_r64_m64(dst, src)) } -inst_cvtsi2ss_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 833) } -inst_cvtsi2ss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 833) } -inst_cvtsi2ss_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 834) } -inst_cvtsi2ss_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 834) } +inst_cvtsi2ss_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 845) } +inst_cvtsi2ss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 845) } +inst_cvtsi2ss_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 846) } +inst_cvtsi2ss_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 846) } emit_cvtsi2ss_xmm_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR32) { append(instructions, inst_cvtsi2ss_xmm_r32(dst, src)) } emit_cvtsi2ss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_cvtsi2ss_xmm_m32(dst, src)) } emit_cvtsi2ss_xmm_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR64) { append(instructions, inst_cvtsi2ss_xmm_r64(dst, src)) } emit_cvtsi2ss_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_cvtsi2ss_xmm_m64(dst, src)) } -inst_cvtsi2sd_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 835) } -inst_cvtsi2sd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 835) } -inst_cvtsi2sd_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 836) } -inst_cvtsi2sd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 836) } +inst_cvtsi2sd_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 847) } +inst_cvtsi2sd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 847) } +inst_cvtsi2sd_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 848) } +inst_cvtsi2sd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTSI2SD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 848) } emit_cvtsi2sd_xmm_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR32) { append(instructions, inst_cvtsi2sd_xmm_r32(dst, src)) } emit_cvtsi2sd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_cvtsi2sd_xmm_m32(dst, src)) } emit_cvtsi2sd_xmm_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR64) { append(instructions, inst_cvtsi2sd_xmm_r64(dst, src)) } emit_cvtsi2sd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_cvtsi2sd_xmm_m64(dst, src)) } -inst_cvttps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 837) } -inst_cvttps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 837) } +inst_cvttps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 849) } +inst_cvttps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 849) } emit_cvttps2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvttps2dq_xmm_xmm(dst, src)) } emit_cvttps2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_cvttps2dq_xmm_m128(dst, src)) } -inst_cvttpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 838) } -inst_cvttpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 838) } +inst_cvttpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 850) } +inst_cvttpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 850) } emit_cvttpd2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_cvttpd2dq_xmm_xmm(dst, src)) } emit_cvttpd2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_cvttpd2dq_xmm_m128(dst, src)) } -inst_cvttss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 839) } -inst_cvttss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 839) } -inst_cvttss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 840) } -inst_cvttss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 840) } +inst_cvttss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 851) } +inst_cvttss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 851) } +inst_cvttss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 852) } +inst_cvttss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 852) } emit_cvttss2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_cvttss2si_r32_xmm(dst, src)) } emit_cvttss2si_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_cvttss2si_r32_m32(dst, src)) } emit_cvttss2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_cvttss2si_r64_xmm(dst, src)) } emit_cvttss2si_r64_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem32) { append(instructions, inst_cvttss2si_r64_m32(dst, src)) } -inst_cvttsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 841) } -inst_cvttsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 841) } -inst_cvttsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 842) } -inst_cvttsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 842) } +inst_cvttsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 853) } +inst_cvttsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 853) } +inst_cvttsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 854) } +inst_cvttsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 854) } emit_cvttsd2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_cvttsd2si_r32_xmm(dst, src)) } emit_cvttsd2si_r32_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem64) { append(instructions, inst_cvttsd2si_r32_m64(dst, src)) } emit_cvttsd2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_cvttsd2si_r64_xmm(dst, src)) } emit_cvttsd2si_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_cvttsd2si_r64_m64(dst, src)) } -inst_paddb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 843) } -inst_paddb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 843) } +inst_paddb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 855) } +inst_paddb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 855) } emit_paddb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddb_xmm_xmm(dst, src)) } emit_paddb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddb_xmm_m128(dst, src)) } -inst_paddw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 844) } -inst_paddw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 844) } +inst_paddw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 856) } +inst_paddw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 856) } emit_paddw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddw_xmm_xmm(dst, src)) } emit_paddw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddw_xmm_m128(dst, src)) } -inst_paddd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 845) } -inst_paddd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 845) } +inst_paddd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 857) } +inst_paddd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 857) } emit_paddd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddd_xmm_xmm(dst, src)) } emit_paddd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddd_xmm_m128(dst, src)) } -inst_paddq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 846) } -inst_paddq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 846) } +inst_paddq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 858) } +inst_paddq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 858) } emit_paddq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddq_xmm_xmm(dst, src)) } emit_paddq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddq_xmm_m128(dst, src)) } -inst_psubb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 847) } -inst_psubb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 847) } +inst_psubb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 859) } +inst_psubb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 859) } emit_psubb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubb_xmm_xmm(dst, src)) } emit_psubb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubb_xmm_m128(dst, src)) } -inst_psubw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 848) } -inst_psubw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 848) } +inst_psubw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 860) } +inst_psubw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 860) } emit_psubw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubw_xmm_xmm(dst, src)) } emit_psubw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubw_xmm_m128(dst, src)) } -inst_psubd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 849) } -inst_psubd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 849) } +inst_psubd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 861) } +inst_psubd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 861) } emit_psubd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubd_xmm_xmm(dst, src)) } emit_psubd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubd_xmm_m128(dst, src)) } -inst_psubq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 850) } -inst_psubq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 850) } +inst_psubq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 862) } +inst_psubq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 862) } emit_psubq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubq_xmm_xmm(dst, src)) } emit_psubq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubq_xmm_m128(dst, src)) } -inst_paddsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 851) } -inst_paddsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 851) } +inst_paddsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 863) } +inst_paddsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 863) } emit_paddsb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddsb_xmm_xmm(dst, src)) } emit_paddsb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddsb_xmm_m128(dst, src)) } -inst_paddsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 852) } -inst_paddsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 852) } +inst_paddsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 864) } +inst_paddsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 864) } emit_paddsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddsw_xmm_xmm(dst, src)) } emit_paddsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddsw_xmm_m128(dst, src)) } -inst_paddusb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 853) } -inst_paddusb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 853) } +inst_paddusb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 865) } +inst_paddusb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 865) } emit_paddusb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddusb_xmm_xmm(dst, src)) } emit_paddusb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddusb_xmm_m128(dst, src)) } -inst_paddusw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 854) } -inst_paddusw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 854) } +inst_paddusw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 866) } +inst_paddusw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PADDUSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 866) } emit_paddusw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_paddusw_xmm_xmm(dst, src)) } emit_paddusw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_paddusw_xmm_m128(dst, src)) } -inst_psubsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 855) } -inst_psubsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 855) } +inst_psubsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 867) } +inst_psubsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 867) } emit_psubsb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubsb_xmm_xmm(dst, src)) } emit_psubsb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubsb_xmm_m128(dst, src)) } -inst_psubsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 856) } -inst_psubsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 856) } +inst_psubsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 868) } +inst_psubsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 868) } emit_psubsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubsw_xmm_xmm(dst, src)) } emit_psubsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubsw_xmm_m128(dst, src)) } -inst_psubusb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 857) } -inst_psubusb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 857) } +inst_psubusb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 869) } +inst_psubusb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 869) } emit_psubusb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubusb_xmm_xmm(dst, src)) } emit_psubusb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubusb_xmm_m128(dst, src)) } -inst_psubusw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 858) } -inst_psubusw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 858) } +inst_psubusw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 870) } +inst_psubusw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSUBUSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 870) } emit_psubusw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psubusw_xmm_xmm(dst, src)) } emit_psubusw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psubusw_xmm_m128(dst, src)) } -inst_pmullw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 859) } -inst_pmullw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 859) } +inst_pmullw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 871) } +inst_pmullw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 871) } emit_pmullw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmullw_xmm_xmm(dst, src)) } emit_pmullw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmullw_xmm_m128(dst, src)) } -inst_pmulhw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 860) } -inst_pmulhw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 860) } +inst_pmulhw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 872) } +inst_pmulhw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 872) } emit_pmulhw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmulhw_xmm_xmm(dst, src)) } emit_pmulhw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmulhw_xmm_m128(dst, src)) } -inst_pmulhuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 861) } -inst_pmulhuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 861) } +inst_pmulhuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 873) } +inst_pmulhuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 873) } emit_pmulhuw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmulhuw_xmm_xmm(dst, src)) } emit_pmulhuw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmulhuw_xmm_m128(dst, src)) } -inst_pmuludq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULUDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 862) } -inst_pmuludq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULUDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 862) } +inst_pmuludq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULUDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 874) } +inst_pmuludq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULUDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 874) } emit_pmuludq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmuludq_xmm_xmm(dst, src)) } emit_pmuludq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmuludq_xmm_m128(dst, src)) } -inst_pmaddwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 863) } -inst_pmaddwd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 863) } +inst_pmaddwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 875) } +inst_pmaddwd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 875) } emit_pmaddwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaddwd_xmm_xmm(dst, src)) } emit_pmaddwd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaddwd_xmm_m128(dst, src)) } -inst_pand_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PAND, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 864) } -inst_pand_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PAND, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 864) } +inst_pand_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PAND, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 876) } +inst_pand_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PAND, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 876) } emit_pand_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pand_xmm_xmm(dst, src)) } emit_pand_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pand_xmm_m128(dst, src)) } -inst_pandn_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PANDN, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 865) } -inst_pandn_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PANDN, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 865) } +inst_pandn_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PANDN, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 877) } +inst_pandn_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PANDN, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 877) } emit_pandn_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pandn_xmm_xmm(dst, src)) } emit_pandn_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pandn_xmm_m128(dst, src)) } -inst_por_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .POR, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 866) } -inst_por_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .POR, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 866) } +inst_por_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .POR, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 878) } +inst_por_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .POR, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 878) } emit_por_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_por_xmm_xmm(dst, src)) } emit_por_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_por_xmm_m128(dst, src)) } -inst_pxor_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PXOR, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 867) } -inst_pxor_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PXOR, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 867) } +inst_pxor_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PXOR, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 879) } +inst_pxor_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PXOR, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 879) } emit_pxor_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pxor_xmm_xmm(dst, src)) } emit_pxor_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pxor_xmm_m128(dst, src)) } -inst_psllw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 868) } -inst_psllw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 868) } -inst_psllw_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLW, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 869) } +inst_psllw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 880) } +inst_psllw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 880) } +inst_psllw_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLW, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 881) } emit_psllw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psllw_xmm_xmm(dst, src)) } emit_psllw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psllw_xmm_m128(dst, src)) } emit_psllw_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psllw_xmm_imm8(dst, imm)) } -inst_pslld_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 870) } -inst_pslld_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 870) } -inst_pslld_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLD, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 871) } +inst_pslld_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 882) } +inst_pslld_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 882) } +inst_pslld_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLD, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 883) } emit_pslld_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pslld_xmm_xmm(dst, src)) } emit_pslld_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pslld_xmm_m128(dst, src)) } emit_pslld_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_pslld_xmm_imm8(dst, imm)) } -inst_psllq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 872) } -inst_psllq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 872) } -inst_psllq_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLQ, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 873) } +inst_psllq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 884) } +inst_psllq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 884) } +inst_psllq_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSLLQ, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 885) } emit_psllq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psllq_xmm_xmm(dst, src)) } emit_psllq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psllq_xmm_m128(dst, src)) } emit_psllq_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psllq_xmm_imm8(dst, imm)) } -inst_psrlw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 874) } -inst_psrlw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 874) } -inst_psrlw_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLW, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 875) } +inst_psrlw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 886) } +inst_psrlw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 886) } +inst_psrlw_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLW, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 887) } emit_psrlw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psrlw_xmm_xmm(dst, src)) } emit_psrlw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psrlw_xmm_m128(dst, src)) } emit_psrlw_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psrlw_xmm_imm8(dst, imm)) } -inst_psrld_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 876) } -inst_psrld_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 876) } -inst_psrld_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLD, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 877) } +inst_psrld_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 888) } +inst_psrld_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 888) } +inst_psrld_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLD, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 889) } emit_psrld_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psrld_xmm_xmm(dst, src)) } emit_psrld_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psrld_xmm_m128(dst, src)) } emit_psrld_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psrld_xmm_imm8(dst, imm)) } -inst_psrlq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 878) } -inst_psrlq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 878) } -inst_psrlq_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLQ, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 879) } +inst_psrlq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 890) } +inst_psrlq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 890) } +inst_psrlq_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRLQ, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 891) } emit_psrlq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psrlq_xmm_xmm(dst, src)) } emit_psrlq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psrlq_xmm_m128(dst, src)) } emit_psrlq_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psrlq_xmm_imm8(dst, imm)) } -inst_psraw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 880) } -inst_psraw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 880) } -inst_psraw_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAW, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 881) } +inst_psraw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 892) } +inst_psraw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 892) } +inst_psraw_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAW, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 893) } emit_psraw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psraw_xmm_xmm(dst, src)) } emit_psraw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psraw_xmm_m128(dst, src)) } emit_psraw_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psraw_xmm_imm8(dst, imm)) } -inst_psrad_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 882) } -inst_psrad_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 882) } -inst_psrad_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAD, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 883) } +inst_psrad_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 894) } +inst_psrad_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 894) } +inst_psrad_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSRAD, operand_count = 2, ops = {op_xmm(dst), op_imm8(imm), {}, {}} }, 895) } emit_psrad_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psrad_xmm_xmm(dst, src)) } emit_psrad_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psrad_xmm_m128(dst, src)) } emit_psrad_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, imm: i8) { append(instructions, inst_psrad_xmm_imm8(dst, imm)) } -inst_pcmpeqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 884) } -inst_pcmpeqb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 884) } +inst_pcmpeqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 896) } +inst_pcmpeqb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 896) } emit_pcmpeqb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpeqb_xmm_xmm(dst, src)) } emit_pcmpeqb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpeqb_xmm_m128(dst, src)) } -inst_pcmpeqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 885) } -inst_pcmpeqw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 885) } +inst_pcmpeqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 897) } +inst_pcmpeqw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 897) } emit_pcmpeqw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpeqw_xmm_xmm(dst, src)) } emit_pcmpeqw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpeqw_xmm_m128(dst, src)) } -inst_pcmpeqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 886) } -inst_pcmpeqd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 886) } +inst_pcmpeqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 898) } +inst_pcmpeqd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 898) } emit_pcmpeqd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpeqd_xmm_xmm(dst, src)) } emit_pcmpeqd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpeqd_xmm_m128(dst, src)) } -inst_pcmpgtb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 887) } -inst_pcmpgtb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 887) } +inst_pcmpgtb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 899) } +inst_pcmpgtb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 899) } emit_pcmpgtb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpgtb_xmm_xmm(dst, src)) } emit_pcmpgtb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpgtb_xmm_m128(dst, src)) } -inst_pcmpgtw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 888) } -inst_pcmpgtw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 888) } +inst_pcmpgtw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 900) } +inst_pcmpgtw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 900) } emit_pcmpgtw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpgtw_xmm_xmm(dst, src)) } emit_pcmpgtw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpgtw_xmm_m128(dst, src)) } -inst_pcmpgtd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 889) } -inst_pcmpgtd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 889) } +inst_pcmpgtd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 901) } +inst_pcmpgtd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 901) } emit_pcmpgtd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpgtd_xmm_xmm(dst, src)) } emit_pcmpgtd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpgtd_xmm_m128(dst, src)) } -inst_packsswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 890) } -inst_packsswb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSWB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 890) } +inst_packsswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 902) } +inst_packsswb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSWB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 902) } emit_packsswb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_packsswb_xmm_xmm(dst, src)) } emit_packsswb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_packsswb_xmm_m128(dst, src)) } -inst_packssdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 891) } -inst_packssdw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 891) } +inst_packssdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 903) } +inst_packssdw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKSSDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 903) } emit_packssdw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_packssdw_xmm_xmm(dst, src)) } emit_packssdw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_packssdw_xmm_m128(dst, src)) } -inst_packuswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 892) } -inst_packuswb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSWB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 892) } +inst_packuswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 904) } +inst_packuswb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSWB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 904) } emit_packuswb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_packuswb_xmm_xmm(dst, src)) } emit_packuswb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_packuswb_xmm_m128(dst, src)) } -inst_punpcklbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 893) } -inst_punpcklbw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 893) } +inst_punpcklbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 905) } +inst_punpcklbw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 905) } emit_punpcklbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpcklbw_xmm_xmm(dst, src)) } emit_punpcklbw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpcklbw_xmm_m128(dst, src)) } -inst_punpcklwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 894) } -inst_punpcklwd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 894) } +inst_punpcklwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 906) } +inst_punpcklwd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 906) } emit_punpcklwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpcklwd_xmm_xmm(dst, src)) } emit_punpcklwd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpcklwd_xmm_m128(dst, src)) } -inst_punpckldq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 895) } -inst_punpckldq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 895) } +inst_punpckldq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 907) } +inst_punpckldq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 907) } emit_punpckldq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpckldq_xmm_xmm(dst, src)) } emit_punpckldq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpckldq_xmm_m128(dst, src)) } -inst_punpcklqdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLQDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 896) } -inst_punpcklqdq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLQDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 896) } +inst_punpcklqdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLQDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 908) } +inst_punpcklqdq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKLQDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 908) } emit_punpcklqdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpcklqdq_xmm_xmm(dst, src)) } emit_punpcklqdq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpcklqdq_xmm_m128(dst, src)) } -inst_punpckhbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 897) } -inst_punpckhbw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 897) } +inst_punpckhbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 909) } +inst_punpckhbw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 909) } emit_punpckhbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpckhbw_xmm_xmm(dst, src)) } emit_punpckhbw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpckhbw_xmm_m128(dst, src)) } -inst_punpckhwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 898) } -inst_punpckhwd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 898) } +inst_punpckhwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 910) } +inst_punpckhwd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 910) } emit_punpckhwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpckhwd_xmm_xmm(dst, src)) } emit_punpckhwd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpckhwd_xmm_m128(dst, src)) } -inst_punpckhdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 899) } -inst_punpckhdq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 899) } +inst_punpckhdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 911) } +inst_punpckhdq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 911) } emit_punpckhdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpckhdq_xmm_xmm(dst, src)) } emit_punpckhdq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpckhdq_xmm_m128(dst, src)) } -inst_punpckhqdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHQDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 900) } -inst_punpckhqdq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHQDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 900) } +inst_punpckhqdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHQDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 912) } +inst_punpckhqdq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PUNPCKHQDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 912) } emit_punpckhqdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_punpckhqdq_xmm_xmm(dst, src)) } emit_punpckhqdq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_punpckhqdq_xmm_m128(dst, src)) } -inst_pshufd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 901) } -inst_pshufd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 901) } +inst_pshufd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 913) } +inst_pshufd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 913) } emit_pshufd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pshufd_xmm_xmm_imm8(dst, src, imm)) } emit_pshufd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pshufd_xmm_m128_imm8(dst, src, imm)) } -inst_pshufhw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 902) } -inst_pshufhw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 902) } +inst_pshufhw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 914) } +inst_pshufhw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 914) } emit_pshufhw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pshufhw_xmm_xmm_imm8(dst, src, imm)) } emit_pshufhw_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pshufhw_xmm_m128_imm8(dst, src, imm)) } -inst_pshuflw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 903) } -inst_pshuflw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 903) } +inst_pshuflw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 915) } +inst_pshuflw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 915) } emit_pshuflw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pshuflw_xmm_xmm_imm8(dst, src, imm)) } emit_pshuflw_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pshuflw_xmm_m128_imm8(dst, src, imm)) } -inst_pshufw_mm_mm_imm8 :: #force_inline proc "contextless" (dst: MM, src: MM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFW, operand_count = 3, ops = {op_mm(dst), op_mm(src), op_imm8(imm), {}} }, 904) } -inst_pshufw_mm_m64_imm8 :: #force_inline proc "contextless" (dst: MM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFW, operand_count = 3, ops = {op_mm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 904) } +inst_pshufw_mm_mm_imm8 :: #force_inline proc "contextless" (dst: MM, src: MM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFW, operand_count = 3, ops = {op_mm(dst), op_mm(src), op_imm8(imm), {}} }, 916) } +inst_pshufw_mm_m64_imm8 :: #force_inline proc "contextless" (dst: MM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFW, operand_count = 3, ops = {op_mm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 916) } emit_pshufw_mm_mm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: MM, src: MM, imm: i8) { append(instructions, inst_pshufw_mm_mm_imm8(dst, src, imm)) } emit_pshufw_mm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: MM, src: Mem64, imm: i8) { append(instructions, inst_pshufw_mm_m64_imm8(dst, src, imm)) } -inst_pextrw_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRW, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 905) } -inst_pextrw_r64_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRW, operand_count = 3, ops = {op_gpr64(dst), op_xmm(src), op_imm8(imm), {}} }, 906) } +inst_pextrw_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRW, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 917) } +inst_pextrw_r64_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRW, operand_count = 3, ops = {op_gpr64(dst), op_xmm(src), op_imm8(imm), {}} }, 918) } emit_pextrw_r32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM, imm: i8) { append(instructions, inst_pextrw_r32_xmm_imm8(dst, src, imm)) } emit_pextrw_r64_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM, imm: i8) { append(instructions, inst_pextrw_r64_xmm_imm8(dst, src, imm)) } -inst_pinsrw_xmm_r32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRW, operand_count = 3, ops = {op_xmm(dst), op_gpr32(src), op_imm8(imm), {}} }, 907) } -inst_pinsrw_xmm_m16_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 2), op_imm8(imm), {}} }, 908) } +inst_pinsrw_xmm_r32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRW, operand_count = 3, ops = {op_xmm(dst), op_gpr32(src), op_imm8(imm), {}} }, 919) } +inst_pinsrw_xmm_m16_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 2), op_imm8(imm), {}} }, 920) } emit_pinsrw_xmm_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR32, imm: i8) { append(instructions, inst_pinsrw_xmm_r32_imm8(dst, src, imm)) } emit_pinsrw_xmm_m16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem16, imm: i8) { append(instructions, inst_pinsrw_xmm_m16_imm8(dst, src, imm)) } -inst_pmovmskb_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVMSKB, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 909) } -inst_pmovmskb_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVMSKB, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 910) } +inst_pmovmskb_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVMSKB, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 921) } +inst_pmovmskb_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVMSKB, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 922) } emit_pmovmskb_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_pmovmskb_r32_xmm(dst, src)) } emit_pmovmskb_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_pmovmskb_r64_xmm(dst, src)) } -inst_pavgb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 911) } -inst_pavgb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 911) } +inst_pavgb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 923) } +inst_pavgb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 923) } emit_pavgb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pavgb_xmm_xmm(dst, src)) } emit_pavgb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pavgb_xmm_m128(dst, src)) } -inst_pavgw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 912) } -inst_pavgw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 912) } +inst_pavgw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 924) } +inst_pavgw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PAVGW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 924) } emit_pavgw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pavgw_xmm_xmm(dst, src)) } emit_pavgw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pavgw_xmm_m128(dst, src)) } -inst_pmaxub_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 913) } -inst_pmaxub_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 913) } +inst_pmaxub_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 925) } +inst_pmaxub_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 925) } emit_pmaxub_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaxub_xmm_xmm(dst, src)) } emit_pmaxub_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaxub_xmm_m128(dst, src)) } -inst_pmaxsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 914) } -inst_pmaxsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 914) } +inst_pmaxsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 926) } +inst_pmaxsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 926) } emit_pmaxsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaxsw_xmm_xmm(dst, src)) } emit_pmaxsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaxsw_xmm_m128(dst, src)) } -inst_pminub_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 915) } -inst_pminub_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 915) } +inst_pminub_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 927) } +inst_pminub_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 927) } emit_pminub_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pminub_xmm_xmm(dst, src)) } emit_pminub_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pminub_xmm_m128(dst, src)) } -inst_pminsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 916) } -inst_pminsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 916) } +inst_pminsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 928) } +inst_pminsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 928) } emit_pminsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pminsw_xmm_xmm(dst, src)) } emit_pminsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pminsw_xmm_m128(dst, src)) } -inst_psadbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSADBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 917) } -inst_psadbw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSADBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 917) } +inst_psadbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSADBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 929) } +inst_psadbw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSADBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 929) } emit_psadbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psadbw_xmm_xmm(dst, src)) } emit_psadbw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psadbw_xmm_m128(dst, src)) } -inst_maskmovdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MASKMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 918) } +inst_maskmovdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MASKMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 930) } emit_maskmovdqu_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_maskmovdqu_xmm_xmm(dst, src)) } -inst_lfence_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LFENCE, operand_count = 0, ops = {{}, {}, {}, {}} }, 919) } +inst_lfence_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LFENCE, operand_count = 0, ops = {{}, {}, {}, {}} }, 931) } emit_lfence_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_lfence_none()) } -inst_sfence_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SFENCE, operand_count = 0, ops = {{}, {}, {}, {}} }, 920) } +inst_sfence_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SFENCE, operand_count = 0, ops = {{}, {}, {}, {}} }, 932) } emit_sfence_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_sfence_none()) } -inst_mfence_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MFENCE, operand_count = 0, ops = {{}, {}, {}, {}} }, 921) } +inst_mfence_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MFENCE, operand_count = 0, ops = {{}, {}, {}, {}} }, 933) } emit_mfence_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_mfence_none()) } -inst_pause_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PAUSE, operand_count = 0, ops = {{}, {}, {}, {}} }, 922) } +inst_pause_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PAUSE, operand_count = 0, ops = {{}, {}, {}, {}} }, 934) } emit_pause_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pause_none()) } -inst_clflush_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLFLUSH, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 923) } +inst_clflush_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLFLUSH, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 935) } emit_clflush_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_clflush_m8(dst)) } -inst_addsubps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 924) } -inst_addsubps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 924) } +inst_addsubps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 936) } +inst_addsubps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 936) } emit_addsubps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_addsubps_xmm_xmm(dst, src)) } emit_addsubps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_addsubps_xmm_m128(dst, src)) } -inst_addsubpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 925) } -inst_addsubpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 925) } +inst_addsubpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 937) } +inst_addsubpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .ADDSUBPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 937) } emit_addsubpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_addsubpd_xmm_xmm(dst, src)) } emit_addsubpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_addsubpd_xmm_m128(dst, src)) } -inst_haddps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 926) } -inst_haddps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 926) } +inst_haddps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 938) } +inst_haddps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 938) } emit_haddps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_haddps_xmm_xmm(dst, src)) } emit_haddps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_haddps_xmm_m128(dst, src)) } -inst_haddpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 927) } -inst_haddpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 927) } +inst_haddpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 939) } +inst_haddpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HADDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 939) } emit_haddpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_haddpd_xmm_xmm(dst, src)) } emit_haddpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_haddpd_xmm_m128(dst, src)) } -inst_hsubps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 928) } -inst_hsubps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 928) } +inst_hsubps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 940) } +inst_hsubps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 940) } emit_hsubps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_hsubps_xmm_xmm(dst, src)) } emit_hsubps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_hsubps_xmm_m128(dst, src)) } -inst_hsubpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 929) } -inst_hsubpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 929) } +inst_hsubpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 941) } +inst_hsubpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .HSUBPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 941) } emit_hsubpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_hsubpd_xmm_xmm(dst, src)) } emit_hsubpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_hsubpd_xmm_m128(dst, src)) } -inst_movddup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 930) } -inst_movddup_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 930) } +inst_movddup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 942) } +inst_movddup_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 942) } emit_movddup_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movddup_xmm_xmm(dst, src)) } emit_movddup_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_movddup_xmm_m64(dst, src)) } -inst_movsldup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 931) } -inst_movsldup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 931) } +inst_movsldup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 943) } +inst_movsldup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 943) } emit_movsldup_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movsldup_xmm_xmm(dst, src)) } emit_movsldup_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movsldup_xmm_m128(dst, src)) } -inst_movshdup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 932) } -inst_movshdup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 932) } +inst_movshdup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 944) } +inst_movshdup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 944) } emit_movshdup_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_movshdup_xmm_xmm(dst, src)) } emit_movshdup_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_movshdup_xmm_m128(dst, src)) } -inst_lddqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .LDDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 933) } +inst_lddqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .LDDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 945) } emit_lddqu_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_lddqu_xmm_m128(dst, src)) } -inst_pshufb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 934) } -inst_pshufb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 934) } +inst_pshufb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 946) } +inst_pshufb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSHUFB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 946) } emit_pshufb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pshufb_xmm_xmm(dst, src)) } emit_pshufb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pshufb_xmm_m128(dst, src)) } -inst_phaddw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 935) } -inst_phaddw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 935) } +inst_phaddw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 947) } +inst_phaddw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 947) } emit_phaddw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phaddw_xmm_xmm(dst, src)) } emit_phaddw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phaddw_xmm_m128(dst, src)) } -inst_phaddd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 936) } -inst_phaddd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 936) } +inst_phaddd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 948) } +inst_phaddd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 948) } emit_phaddd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phaddd_xmm_xmm(dst, src)) } emit_phaddd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phaddd_xmm_m128(dst, src)) } -inst_phaddsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 937) } -inst_phaddsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 937) } +inst_phaddsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 949) } +inst_phaddsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHADDSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 949) } emit_phaddsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phaddsw_xmm_xmm(dst, src)) } emit_phaddsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phaddsw_xmm_m128(dst, src)) } -inst_phsubw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 938) } -inst_phsubw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 938) } +inst_phsubw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 950) } +inst_phsubw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 950) } emit_phsubw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phsubw_xmm_xmm(dst, src)) } emit_phsubw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phsubw_xmm_m128(dst, src)) } -inst_phsubd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 939) } -inst_phsubd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 939) } +inst_phsubd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 951) } +inst_phsubd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 951) } emit_phsubd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phsubd_xmm_xmm(dst, src)) } emit_phsubd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phsubd_xmm_m128(dst, src)) } -inst_phsubsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 940) } -inst_phsubsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 940) } +inst_phsubsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 952) } +inst_phsubsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHSUBSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 952) } emit_phsubsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phsubsw_xmm_xmm(dst, src)) } emit_phsubsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phsubsw_xmm_m128(dst, src)) } -inst_pmaddubsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDUBSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 941) } -inst_pmaddubsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDUBSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 941) } +inst_pmaddubsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDUBSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 953) } +inst_pmaddubsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMADDUBSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 953) } emit_pmaddubsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaddubsw_xmm_xmm(dst, src)) } emit_pmaddubsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaddubsw_xmm_m128(dst, src)) } -inst_pmulhrsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHRSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 942) } -inst_pmulhrsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHRSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 942) } +inst_pmulhrsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHRSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 954) } +inst_pmulhrsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULHRSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 954) } emit_pmulhrsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmulhrsw_xmm_xmm(dst, src)) } emit_pmulhrsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmulhrsw_xmm_m128(dst, src)) } -inst_psignb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 943) } -inst_psignb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 943) } +inst_psignb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 955) } +inst_psignb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 955) } emit_psignb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psignb_xmm_xmm(dst, src)) } emit_psignb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psignb_xmm_m128(dst, src)) } -inst_psignw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 944) } -inst_psignw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 944) } +inst_psignw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 956) } +inst_psignw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGNW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 956) } emit_psignw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psignw_xmm_xmm(dst, src)) } emit_psignw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psignw_xmm_m128(dst, src)) } -inst_psignd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGND, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 945) } -inst_psignd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGND, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 945) } +inst_psignd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGND, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 957) } +inst_psignd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PSIGND, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 957) } emit_psignd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_psignd_xmm_xmm(dst, src)) } emit_psignd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_psignd_xmm_m128(dst, src)) } -inst_pabsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 946) } -inst_pabsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 946) } +inst_pabsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 958) } +inst_pabsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 958) } emit_pabsb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pabsb_xmm_xmm(dst, src)) } emit_pabsb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pabsb_xmm_m128(dst, src)) } -inst_pabsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 947) } -inst_pabsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 947) } +inst_pabsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 959) } +inst_pabsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 959) } emit_pabsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pabsw_xmm_xmm(dst, src)) } emit_pabsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pabsw_xmm_m128(dst, src)) } -inst_pabsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 948) } -inst_pabsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 948) } +inst_pabsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 960) } +inst_pabsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PABSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 960) } emit_pabsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pabsd_xmm_xmm(dst, src)) } emit_pabsd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pabsd_xmm_m128(dst, src)) } -inst_palignr_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PALIGNR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 949) } -inst_palignr_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PALIGNR, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 949) } +inst_palignr_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PALIGNR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 961) } +inst_palignr_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PALIGNR, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 961) } emit_palignr_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_palignr_xmm_xmm_imm8(dst, src, imm)) } emit_palignr_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_palignr_xmm_m128_imm8(dst, src, imm)) } -inst_blendps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 950) } -inst_blendps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 950) } +inst_blendps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 962) } +inst_blendps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 962) } emit_blendps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_blendps_xmm_xmm_imm8(dst, src, imm)) } emit_blendps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_blendps_xmm_m128_imm8(dst, src, imm)) } -inst_blendpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 951) } -inst_blendpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 951) } +inst_blendpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 963) } +inst_blendpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 963) } emit_blendpd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_blendpd_xmm_xmm_imm8(dst, src, imm)) } emit_blendpd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_blendpd_xmm_m128_imm8(dst, src, imm)) } -inst_blendvps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 952) } -inst_blendvps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 952) } +inst_blendvps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 964) } +inst_blendvps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 964) } emit_blendvps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_blendvps_xmm_xmm(dst, src)) } emit_blendvps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_blendvps_xmm_m128(dst, src)) } -inst_blendvpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 953) } -inst_blendvpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 953) } +inst_blendvpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 965) } +inst_blendvpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .BLENDVPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 965) } emit_blendvpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_blendvpd_xmm_xmm(dst, src)) } emit_blendvpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_blendvpd_xmm_m128(dst, src)) } -inst_pblendw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 954) } -inst_pblendw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 954) } +inst_pblendw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 966) } +inst_pblendw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 966) } emit_pblendw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pblendw_xmm_xmm_imm8(dst, src, imm)) } emit_pblendw_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pblendw_xmm_m128_imm8(dst, src, imm)) } -inst_pblendvb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDVB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 955) } -inst_pblendvb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDVB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 955) } +inst_pblendvb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDVB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 967) } +inst_pblendvb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PBLENDVB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 967) } emit_pblendvb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pblendvb_xmm_xmm(dst, src)) } emit_pblendvb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pblendvb_xmm_m128(dst, src)) } -inst_dpps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 956) } -inst_dpps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 956) } +inst_dpps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 968) } +inst_dpps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 968) } emit_dpps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_dpps_xmm_xmm_imm8(dst, src, imm)) } emit_dpps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_dpps_xmm_m128_imm8(dst, src, imm)) } -inst_dppd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 957) } -inst_dppd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 957) } +inst_dppd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 969) } +inst_dppd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .DPPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 969) } emit_dppd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_dppd_xmm_xmm_imm8(dst, src, imm)) } emit_dppd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_dppd_xmm_m128_imm8(dst, src, imm)) } -inst_extractps_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .EXTRACTPS, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 958) } -inst_extractps_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .EXTRACTPS, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 958) } +inst_extractps_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .EXTRACTPS, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 970) } +inst_extractps_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .EXTRACTPS, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 970) } emit_extractps_r32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM, imm: i8) { append(instructions, inst_extractps_r32_xmm_imm8(dst, src, imm)) } emit_extractps_m32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM, imm: i8) { append(instructions, inst_extractps_m32_xmm_imm8(dst, src, imm)) } -inst_insertps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .INSERTPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 959) } -inst_insertps_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .INSERTPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 959) } +inst_insertps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .INSERTPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 971) } +inst_insertps_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .INSERTPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 971) } emit_insertps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_insertps_xmm_xmm_imm8(dst, src, imm)) } emit_insertps_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32, imm: i8) { append(instructions, inst_insertps_xmm_m32_imm8(dst, src, imm)) } -inst_mpsadbw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .MPSADBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 960) } -inst_mpsadbw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .MPSADBW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 960) } +inst_mpsadbw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .MPSADBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 972) } +inst_mpsadbw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .MPSADBW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 972) } emit_mpsadbw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_mpsadbw_xmm_xmm_imm8(dst, src, imm)) } emit_mpsadbw_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_mpsadbw_xmm_m128_imm8(dst, src, imm)) } -inst_packusdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 961) } -inst_packusdw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 961) } +inst_packusdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 973) } +inst_packusdw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PACKUSDW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 973) } emit_packusdw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_packusdw_xmm_xmm(dst, src)) } emit_packusdw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_packusdw_xmm_m128(dst, src)) } -inst_pextrb_r8_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRB, operand_count = 3, ops = {op_gpr8(dst), op_xmm(src), op_imm8(imm), {}} }, 962) } -inst_pextrb_m8_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRB, operand_count = 3, ops = {op_mem(dst.mem, 1), op_xmm(src), op_imm8(imm), {}} }, 962) } +inst_pextrb_r8_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRB, operand_count = 3, ops = {op_gpr8(dst), op_xmm(src), op_imm8(imm), {}} }, 974) } +inst_pextrb_m8_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRB, operand_count = 3, ops = {op_mem(dst.mem, 1), op_xmm(src), op_imm8(imm), {}} }, 974) } emit_pextrb_r8_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, src: XMM, imm: i8) { append(instructions, inst_pextrb_r8_xmm_imm8(dst, src, imm)) } emit_pextrb_m8_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8, src: XMM, imm: i8) { append(instructions, inst_pextrb_m8_xmm_imm8(dst, src, imm)) } -inst_pextrd_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRD, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 963) } -inst_pextrd_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 963) } +inst_pextrd_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRD, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 975) } +inst_pextrd_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 975) } emit_pextrd_r32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM, imm: i8) { append(instructions, inst_pextrd_r32_xmm_imm8(dst, src, imm)) } emit_pextrd_m32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM, imm: i8) { append(instructions, inst_pextrd_m32_xmm_imm8(dst, src, imm)) } -inst_pextrq_r64_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRQ, operand_count = 3, ops = {op_gpr64(dst), op_xmm(src), op_imm8(imm), {}} }, 964) } -inst_pextrq_m64_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRQ, operand_count = 3, ops = {op_mem(dst.mem, 8), op_xmm(src), op_imm8(imm), {}} }, 964) } +inst_pextrq_r64_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRQ, operand_count = 3, ops = {op_gpr64(dst), op_xmm(src), op_imm8(imm), {}} }, 976) } +inst_pextrq_m64_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PEXTRQ, operand_count = 3, ops = {op_mem(dst.mem, 8), op_xmm(src), op_imm8(imm), {}} }, 976) } emit_pextrq_r64_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM, imm: i8) { append(instructions, inst_pextrq_r64_xmm_imm8(dst, src, imm)) } emit_pextrq_m64_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM, imm: i8) { append(instructions, inst_pextrq_m64_xmm_imm8(dst, src, imm)) } -inst_phminposuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 965) } -inst_phminposuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 965) } +inst_phminposuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 977) } +inst_phminposuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 977) } emit_phminposuw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_phminposuw_xmm_xmm(dst, src)) } emit_phminposuw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_phminposuw_xmm_m128(dst, src)) } -inst_pinsrb_xmm_r8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRB, operand_count = 3, ops = {op_xmm(dst), op_gpr8(src), op_imm8(imm), {}} }, 966) } -inst_pinsrb_xmm_m8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRB, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 1), op_imm8(imm), {}} }, 966) } +inst_pinsrb_xmm_r8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRB, operand_count = 3, ops = {op_xmm(dst), op_gpr8(src), op_imm8(imm), {}} }, 978) } +inst_pinsrb_xmm_m8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRB, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 1), op_imm8(imm), {}} }, 978) } emit_pinsrb_xmm_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR8, imm: i8) { append(instructions, inst_pinsrb_xmm_r8_imm8(dst, src, imm)) } emit_pinsrb_xmm_m8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem8, imm: i8) { append(instructions, inst_pinsrb_xmm_m8_imm8(dst, src, imm)) } -inst_pinsrd_xmm_r32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRD, operand_count = 3, ops = {op_xmm(dst), op_gpr32(src), op_imm8(imm), {}} }, 967) } -inst_pinsrd_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 967) } +inst_pinsrd_xmm_r32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRD, operand_count = 3, ops = {op_xmm(dst), op_gpr32(src), op_imm8(imm), {}} }, 979) } +inst_pinsrd_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 979) } emit_pinsrd_xmm_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR32, imm: i8) { append(instructions, inst_pinsrd_xmm_r32_imm8(dst, src, imm)) } emit_pinsrd_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32, imm: i8) { append(instructions, inst_pinsrd_xmm_m32_imm8(dst, src, imm)) } -inst_pinsrq_xmm_r64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRQ, operand_count = 3, ops = {op_xmm(dst), op_gpr64(src), op_imm8(imm), {}} }, 968) } -inst_pinsrq_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 968) } +inst_pinsrq_xmm_r64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRQ, operand_count = 3, ops = {op_xmm(dst), op_gpr64(src), op_imm8(imm), {}} }, 980) } +inst_pinsrq_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PINSRQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 980) } emit_pinsrq_xmm_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR64, imm: i8) { append(instructions, inst_pinsrq_xmm_r64_imm8(dst, src, imm)) } emit_pinsrq_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64, imm: i8) { append(instructions, inst_pinsrq_xmm_m64_imm8(dst, src, imm)) } -inst_pmaxsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 969) } -inst_pmaxsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 969) } +inst_pmaxsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 981) } +inst_pmaxsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 981) } emit_pmaxsb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaxsb_xmm_xmm(dst, src)) } emit_pmaxsb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaxsb_xmm_m128(dst, src)) } -inst_pmaxsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 970) } -inst_pmaxsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 970) } +inst_pmaxsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 982) } +inst_pmaxsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 982) } emit_pmaxsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaxsd_xmm_xmm(dst, src)) } emit_pmaxsd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaxsd_xmm_m128(dst, src)) } -inst_pmaxuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 971) } -inst_pmaxuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 971) } +inst_pmaxuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 983) } +inst_pmaxuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 983) } emit_pmaxuw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaxuw_xmm_xmm(dst, src)) } emit_pmaxuw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaxuw_xmm_m128(dst, src)) } -inst_pmaxud_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 972) } -inst_pmaxud_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 972) } +inst_pmaxud_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 984) } +inst_pmaxud_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMAXUD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 984) } emit_pmaxud_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmaxud_xmm_xmm(dst, src)) } emit_pmaxud_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmaxud_xmm_m128(dst, src)) } -inst_pminsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 973) } -inst_pminsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 973) } +inst_pminsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 985) } +inst_pminsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 985) } emit_pminsb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pminsb_xmm_xmm(dst, src)) } emit_pminsb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pminsb_xmm_m128(dst, src)) } -inst_pminsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 974) } -inst_pminsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 974) } +inst_pminsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 986) } +inst_pminsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 986) } emit_pminsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pminsd_xmm_xmm(dst, src)) } emit_pminsd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pminsd_xmm_m128(dst, src)) } -inst_pminuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 975) } -inst_pminuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 975) } +inst_pminuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 987) } +inst_pminuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 987) } emit_pminuw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pminuw_xmm_xmm(dst, src)) } emit_pminuw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pminuw_xmm_m128(dst, src)) } -inst_pminud_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 976) } -inst_pminud_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 976) } +inst_pminud_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 988) } +inst_pminud_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMINUD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 988) } emit_pminud_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pminud_xmm_xmm(dst, src)) } emit_pminud_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pminud_xmm_m128(dst, src)) } -inst_pmovsxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 977) } -inst_pmovsxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 977) } +inst_pmovsxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 989) } +inst_pmovsxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 989) } emit_pmovsxbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovsxbw_xmm_xmm(dst, src)) } emit_pmovsxbw_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_pmovsxbw_xmm_m64(dst, src)) } -inst_pmovsxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 978) } -inst_pmovsxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 978) } +inst_pmovsxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 990) } +inst_pmovsxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 990) } emit_pmovsxbd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovsxbd_xmm_xmm(dst, src)) } emit_pmovsxbd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_pmovsxbd_xmm_m32(dst, src)) } -inst_pmovsxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 979) } -inst_pmovsxbq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 979) } +inst_pmovsxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 991) } +inst_pmovsxbq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXBQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 991) } emit_pmovsxbq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovsxbq_xmm_xmm(dst, src)) } emit_pmovsxbq_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_pmovsxbq_xmm_m32(dst, src)) } -inst_pmovsxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 980) } -inst_pmovsxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 980) } +inst_pmovsxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 992) } +inst_pmovsxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 992) } emit_pmovsxwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovsxwd_xmm_xmm(dst, src)) } emit_pmovsxwd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_pmovsxwd_xmm_m64(dst, src)) } -inst_pmovsxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 981) } -inst_pmovsxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 981) } +inst_pmovsxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 993) } +inst_pmovsxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 993) } emit_pmovsxwq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovsxwq_xmm_xmm(dst, src)) } emit_pmovsxwq_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_pmovsxwq_xmm_m32(dst, src)) } -inst_pmovsxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 982) } -inst_pmovsxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 982) } +inst_pmovsxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 994) } +inst_pmovsxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 994) } emit_pmovsxdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovsxdq_xmm_xmm(dst, src)) } emit_pmovsxdq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_pmovsxdq_xmm_m64(dst, src)) } -inst_pmovzxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 983) } -inst_pmovzxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 983) } +inst_pmovzxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 995) } +inst_pmovzxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 995) } emit_pmovzxbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovzxbw_xmm_xmm(dst, src)) } emit_pmovzxbw_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_pmovzxbw_xmm_m64(dst, src)) } -inst_pmovzxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 984) } -inst_pmovzxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 984) } +inst_pmovzxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 996) } +inst_pmovzxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 996) } emit_pmovzxbd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovzxbd_xmm_xmm(dst, src)) } emit_pmovzxbd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_pmovzxbd_xmm_m32(dst, src)) } -inst_pmovzxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 985) } -inst_pmovzxbq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 985) } +inst_pmovzxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 997) } +inst_pmovzxbq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXBQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 997) } emit_pmovzxbq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovzxbq_xmm_xmm(dst, src)) } emit_pmovzxbq_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_pmovzxbq_xmm_m32(dst, src)) } -inst_pmovzxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 986) } -inst_pmovzxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 986) } +inst_pmovzxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 998) } +inst_pmovzxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 998) } emit_pmovzxwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovzxwd_xmm_xmm(dst, src)) } emit_pmovzxwd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_pmovzxwd_xmm_m64(dst, src)) } -inst_pmovzxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 987) } -inst_pmovzxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 987) } +inst_pmovzxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 999) } +inst_pmovzxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 999) } emit_pmovzxwq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovzxwq_xmm_xmm(dst, src)) } emit_pmovzxwq_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_pmovzxwq_xmm_m32(dst, src)) } -inst_pmovzxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 988) } -inst_pmovzxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 988) } +inst_pmovzxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1000) } +inst_pmovzxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1000) } emit_pmovzxdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmovzxdq_xmm_xmm(dst, src)) } emit_pmovzxdq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_pmovzxdq_xmm_m64(dst, src)) } -inst_pmuldq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 989) } -inst_pmuldq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 989) } +inst_pmuldq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1001) } +inst_pmuldq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1001) } emit_pmuldq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmuldq_xmm_xmm(dst, src)) } emit_pmuldq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmuldq_xmm_m128(dst, src)) } -inst_pmulld_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 990) } -inst_pmulld_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 990) } +inst_pmulld_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1002) } +inst_pmulld_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PMULLD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1002) } emit_pmulld_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pmulld_xmm_xmm(dst, src)) } emit_pmulld_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pmulld_xmm_m128(dst, src)) } -inst_ptest_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PTEST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 991) } -inst_ptest_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PTEST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 991) } +inst_ptest_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PTEST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1003) } +inst_ptest_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PTEST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1003) } emit_ptest_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_ptest_xmm_xmm(dst, src)) } emit_ptest_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_ptest_xmm_m128(dst, src)) } -inst_roundps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 992) } -inst_roundps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 992) } +inst_roundps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1004) } +inst_roundps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1004) } emit_roundps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_roundps_xmm_xmm_imm8(dst, src, imm)) } emit_roundps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_roundps_xmm_m128_imm8(dst, src, imm)) } -inst_roundpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 993) } -inst_roundpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 993) } +inst_roundpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1005) } +inst_roundpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1005) } emit_roundpd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_roundpd_xmm_xmm_imm8(dst, src, imm)) } emit_roundpd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_roundpd_xmm_m128_imm8(dst, src, imm)) } -inst_roundss_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 994) } -inst_roundss_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 994) } +inst_roundss_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1006) } +inst_roundss_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 1006) } emit_roundss_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_roundss_xmm_xmm_imm8(dst, src, imm)) } emit_roundss_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32, imm: i8) { append(instructions, inst_roundss_xmm_m32_imm8(dst, src, imm)) } -inst_roundsd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 995) } -inst_roundsd_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 995) } +inst_roundsd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1007) } +inst_roundsd_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ROUNDSD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 1007) } emit_roundsd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_roundsd_xmm_xmm_imm8(dst, src, imm)) } emit_roundsd_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64, imm: i8) { append(instructions, inst_roundsd_xmm_m64_imm8(dst, src, imm)) } -inst_pcmpeqq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 996) } -inst_pcmpeqq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 996) } +inst_pcmpeqq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1008) } +inst_pcmpeqq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPEQQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1008) } emit_pcmpeqq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpeqq_xmm_xmm(dst, src)) } emit_pcmpeqq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpeqq_xmm_m128(dst, src)) } -inst_crc32_r32_r8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_gpr8(src), {}, {}} }, 997) } -inst_crc32_r32_m8 :: #force_inline proc "contextless" (dst: GPR32, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 1), {}, {}} }, 997) } -inst_crc32_r32_r16 :: #force_inline proc "contextless" (dst: GPR32, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_gpr16(src), {}, {}} }, 998) } -inst_crc32_r32_m16 :: #force_inline proc "contextless" (dst: GPR32, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 2), {}, {}} }, 998) } -inst_crc32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 999) } -inst_crc32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 999) } -inst_crc32_r64_r8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_gpr8(src), {}, {}} }, 1000) } -inst_crc32_r64_m8 :: #force_inline proc "contextless" (dst: GPR64, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 1), {}, {}} }, 1000) } -inst_crc32_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 1001) } -inst_crc32_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 1001) } +inst_crc32_r32_r8 :: #force_inline proc "contextless" (dst: GPR32, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_gpr8(src), {}, {}} }, 1009) } +inst_crc32_r32_m8 :: #force_inline proc "contextless" (dst: GPR32, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 1), {}, {}} }, 1009) } +inst_crc32_r32_r16 :: #force_inline proc "contextless" (dst: GPR32, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_gpr16(src), {}, {}} }, 1010) } +inst_crc32_r32_m16 :: #force_inline proc "contextless" (dst: GPR32, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 2), {}, {}} }, 1010) } +inst_crc32_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 1011) } +inst_crc32_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 1011) } +inst_crc32_r64_r8 :: #force_inline proc "contextless" (dst: GPR64, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_gpr8(src), {}, {}} }, 1012) } +inst_crc32_r64_m8 :: #force_inline proc "contextless" (dst: GPR64, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 1), {}, {}} }, 1012) } +inst_crc32_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 1013) } +inst_crc32_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CRC32, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 1013) } emit_crc32_r32_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR8) { append(instructions, inst_crc32_r32_r8(dst, src)) } emit_crc32_r32_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem8) { append(instructions, inst_crc32_r32_m8(dst, src)) } emit_crc32_r32_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR16) { append(instructions, inst_crc32_r32_r16(dst, src)) } @@ -3143,2317 +3175,2317 @@ emit_crc32_r64_r8 :: #force_inline proc(instructions: ^[dynami emit_crc32_r64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem8) { append(instructions, inst_crc32_r64_m8(dst, src)) } emit_crc32_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_crc32_r64_r64(dst, src)) } emit_crc32_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_crc32_r64_m64(dst, src)) } -inst_pcmpestri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1002) } -inst_pcmpestri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1002) } +inst_pcmpestri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1014) } +inst_pcmpestri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1014) } emit_pcmpestri_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pcmpestri_xmm_xmm_imm8(dst, src, imm)) } emit_pcmpestri_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pcmpestri_xmm_m128_imm8(dst, src, imm)) } -inst_pcmpestrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1003) } -inst_pcmpestrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1003) } +inst_pcmpestrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1015) } +inst_pcmpestrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1015) } emit_pcmpestrm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pcmpestrm_xmm_xmm_imm8(dst, src, imm)) } emit_pcmpestrm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pcmpestrm_xmm_m128_imm8(dst, src, imm)) } -inst_pcmpistri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1004) } -inst_pcmpistri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1004) } +inst_pcmpistri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1016) } +inst_pcmpistri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1016) } emit_pcmpistri_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pcmpistri_xmm_xmm_imm8(dst, src, imm)) } emit_pcmpistri_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pcmpistri_xmm_m128_imm8(dst, src, imm)) } -inst_pcmpistrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1005) } -inst_pcmpistrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1005) } +inst_pcmpistrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1017) } +inst_pcmpistrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1017) } emit_pcmpistrm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pcmpistrm_xmm_xmm_imm8(dst, src, imm)) } emit_pcmpistrm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pcmpistrm_xmm_m128_imm8(dst, src, imm)) } -inst_pcmpgtq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1006) } -inst_pcmpgtq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1006) } +inst_pcmpgtq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1018) } +inst_pcmpgtq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .PCMPGTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1018) } emit_pcmpgtq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_pcmpgtq_xmm_xmm(dst, src)) } emit_pcmpgtq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_pcmpgtq_xmm_m128(dst, src)) } -inst_pclmulqdq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCLMULQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1007) } -inst_pclmulqdq_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCLMULQDQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1007) } +inst_pclmulqdq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCLMULQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1019) } +inst_pclmulqdq_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .PCLMULQDQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1019) } emit_pclmulqdq_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_pclmulqdq_xmm_xmm_imm8(dst, src, imm)) } emit_pclmulqdq_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_pclmulqdq_xmm_m128_imm8(dst, src, imm)) } -inst_aesdec_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDEC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1008) } -inst_aesdec_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDEC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1008) } +inst_aesdec_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDEC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1020) } +inst_aesdec_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDEC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1020) } emit_aesdec_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_aesdec_xmm_xmm(dst, src)) } emit_aesdec_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_aesdec_xmm_m128(dst, src)) } -inst_aesdeclast_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDECLAST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1009) } -inst_aesdeclast_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDECLAST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1009) } +inst_aesdeclast_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDECLAST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1021) } +inst_aesdeclast_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESDECLAST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1021) } emit_aesdeclast_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_aesdeclast_xmm_xmm(dst, src)) } emit_aesdeclast_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_aesdeclast_xmm_m128(dst, src)) } -inst_aesenc_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1010) } -inst_aesenc_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1010) } +inst_aesenc_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1022) } +inst_aesenc_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1022) } emit_aesenc_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_aesenc_xmm_xmm(dst, src)) } emit_aesenc_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_aesenc_xmm_m128(dst, src)) } -inst_aesenclast_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENCLAST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1011) } -inst_aesenclast_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENCLAST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1011) } +inst_aesenclast_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENCLAST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1023) } +inst_aesenclast_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESENCLAST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1023) } emit_aesenclast_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_aesenclast_xmm_xmm(dst, src)) } emit_aesenclast_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_aesenclast_xmm_m128(dst, src)) } -inst_aesimc_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESIMC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1012) } -inst_aesimc_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESIMC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1012) } +inst_aesimc_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .AESIMC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1024) } +inst_aesimc_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .AESIMC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1024) } emit_aesimc_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_aesimc_xmm_xmm(dst, src)) } emit_aesimc_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_aesimc_xmm_m128(dst, src)) } -inst_aeskeygenassist_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .AESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1013) } -inst_aeskeygenassist_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .AESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1013) } +inst_aeskeygenassist_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .AESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1025) } +inst_aeskeygenassist_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .AESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1025) } emit_aeskeygenassist_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_aeskeygenassist_xmm_xmm_imm8(dst, src, imm)) } emit_aeskeygenassist_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_aeskeygenassist_xmm_m128_imm8(dst, src, imm)) } -inst_sha1msg1_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG1, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1014) } -inst_sha1msg1_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG1, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1014) } +inst_sha1msg1_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG1, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1026) } +inst_sha1msg1_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG1, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1026) } emit_sha1msg1_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sha1msg1_xmm_xmm(dst, src)) } emit_sha1msg1_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sha1msg1_xmm_m128(dst, src)) } -inst_sha1msg2_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG2, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1015) } -inst_sha1msg2_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG2, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1015) } +inst_sha1msg2_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG2, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1027) } +inst_sha1msg2_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1MSG2, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1027) } emit_sha1msg2_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sha1msg2_xmm_xmm(dst, src)) } emit_sha1msg2_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sha1msg2_xmm_m128(dst, src)) } -inst_sha1nexte_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1NEXTE, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1016) } -inst_sha1nexte_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1NEXTE, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1016) } +inst_sha1nexte_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1NEXTE, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1028) } +inst_sha1nexte_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1NEXTE, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1028) } emit_sha1nexte_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sha1nexte_xmm_xmm(dst, src)) } emit_sha1nexte_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sha1nexte_xmm_m128(dst, src)) } -inst_sha1rnds4_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1RNDS4, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1017) } -inst_sha1rnds4_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1RNDS4, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1017) } +inst_sha1rnds4_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1RNDS4, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1029) } +inst_sha1rnds4_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA1RNDS4, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1029) } emit_sha1rnds4_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_sha1rnds4_xmm_xmm_imm8(dst, src, imm)) } emit_sha1rnds4_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_sha1rnds4_xmm_m128_imm8(dst, src, imm)) } -inst_sha256msg1_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG1, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1018) } -inst_sha256msg1_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG1, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1018) } +inst_sha256msg1_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG1, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1030) } +inst_sha256msg1_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG1, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1030) } emit_sha256msg1_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sha256msg1_xmm_xmm(dst, src)) } emit_sha256msg1_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sha256msg1_xmm_m128(dst, src)) } -inst_sha256msg2_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG2, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1019) } -inst_sha256msg2_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG2, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1019) } +inst_sha256msg2_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG2, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1031) } +inst_sha256msg2_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256MSG2, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1031) } emit_sha256msg2_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sha256msg2_xmm_xmm(dst, src)) } emit_sha256msg2_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sha256msg2_xmm_m128(dst, src)) } -inst_sha256rnds2_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256RNDS2, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1020) } -inst_sha256rnds2_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256RNDS2, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1020) } +inst_sha256rnds2_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256RNDS2, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1032) } +inst_sha256rnds2_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .SHA256RNDS2, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1032) } emit_sha256rnds2_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_sha256rnds2_xmm_xmm(dst, src)) } emit_sha256rnds2_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_sha256rnds2_xmm_m128(dst, src)) } -inst_vaddps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1021) } -inst_vaddps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1021) } -inst_vaddps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1022) } -inst_vaddps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1022) } +inst_vaddps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1033) } +inst_vaddps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1033) } +inst_vaddps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1034) } +inst_vaddps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1034) } emit_vaddps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaddps_xmm_xmm_xmm(dst, src, src2)) } emit_vaddps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaddps_xmm_xmm_m128(dst, src, src2)) } emit_vaddps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vaddps_ymm_ymm_ymm(dst, src, src2)) } emit_vaddps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vaddps_ymm_ymm_m256(dst, src, src2)) } -inst_vaddpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1023) } -inst_vaddpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1023) } -inst_vaddpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1024) } -inst_vaddpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1024) } +inst_vaddpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1035) } +inst_vaddpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1035) } +inst_vaddpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1036) } +inst_vaddpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1036) } emit_vaddpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaddpd_xmm_xmm_xmm(dst, src, src2)) } emit_vaddpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaddpd_xmm_xmm_m128(dst, src, src2)) } emit_vaddpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vaddpd_ymm_ymm_ymm(dst, src, src2)) } emit_vaddpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vaddpd_ymm_ymm_m256(dst, src, src2)) } -inst_vaddss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1025) } -inst_vaddss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1025) } +inst_vaddss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1037) } +inst_vaddss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1037) } emit_vaddss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaddss_xmm_xmm_xmm(dst, src, src2)) } emit_vaddss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vaddss_xmm_xmm_m32(dst, src, src2)) } -inst_vaddsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1026) } -inst_vaddsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1026) } +inst_vaddsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1038) } +inst_vaddsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1038) } emit_vaddsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaddsd_xmm_xmm_xmm(dst, src, src2)) } emit_vaddsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vaddsd_xmm_xmm_m64(dst, src, src2)) } -inst_vsubps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1027) } -inst_vsubps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1027) } -inst_vsubps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1028) } -inst_vsubps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1028) } +inst_vsubps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1039) } +inst_vsubps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1039) } +inst_vsubps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1040) } +inst_vsubps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1040) } emit_vsubps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vsubps_xmm_xmm_xmm(dst, src, src2)) } emit_vsubps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vsubps_xmm_xmm_m128(dst, src, src2)) } emit_vsubps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vsubps_ymm_ymm_ymm(dst, src, src2)) } emit_vsubps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vsubps_ymm_ymm_m256(dst, src, src2)) } -inst_vsubpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1029) } -inst_vsubpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1029) } -inst_vsubpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1030) } -inst_vsubpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1030) } +inst_vsubpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1041) } +inst_vsubpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1041) } +inst_vsubpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1042) } +inst_vsubpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1042) } emit_vsubpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vsubpd_xmm_xmm_xmm(dst, src, src2)) } emit_vsubpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vsubpd_xmm_xmm_m128(dst, src, src2)) } emit_vsubpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vsubpd_ymm_ymm_ymm(dst, src, src2)) } emit_vsubpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vsubpd_ymm_ymm_m256(dst, src, src2)) } -inst_vsubss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1031) } -inst_vsubss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1031) } +inst_vsubss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1043) } +inst_vsubss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1043) } emit_vsubss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vsubss_xmm_xmm_xmm(dst, src, src2)) } emit_vsubss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vsubss_xmm_xmm_m32(dst, src, src2)) } -inst_vsubsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1032) } -inst_vsubsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1032) } +inst_vsubsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1044) } +inst_vsubsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VSUBSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1044) } emit_vsubsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vsubsd_xmm_xmm_xmm(dst, src, src2)) } emit_vsubsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vsubsd_xmm_xmm_m64(dst, src, src2)) } -inst_vmulps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1033) } -inst_vmulps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1033) } -inst_vmulps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1034) } -inst_vmulps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1034) } +inst_vmulps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1045) } +inst_vmulps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1045) } +inst_vmulps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1046) } +inst_vmulps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1046) } emit_vmulps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmulps_xmm_xmm_xmm(dst, src, src2)) } emit_vmulps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vmulps_xmm_xmm_m128(dst, src, src2)) } emit_vmulps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vmulps_ymm_ymm_ymm(dst, src, src2)) } emit_vmulps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vmulps_ymm_ymm_m256(dst, src, src2)) } -inst_vmulpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1035) } -inst_vmulpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1035) } -inst_vmulpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1036) } -inst_vmulpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1036) } +inst_vmulpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1047) } +inst_vmulpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1047) } +inst_vmulpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1048) } +inst_vmulpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1048) } emit_vmulpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmulpd_xmm_xmm_xmm(dst, src, src2)) } emit_vmulpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vmulpd_xmm_xmm_m128(dst, src, src2)) } emit_vmulpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vmulpd_ymm_ymm_ymm(dst, src, src2)) } emit_vmulpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vmulpd_ymm_ymm_m256(dst, src, src2)) } -inst_vmulss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1037) } -inst_vmulss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1037) } +inst_vmulss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1049) } +inst_vmulss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1049) } emit_vmulss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmulss_xmm_xmm_xmm(dst, src, src2)) } emit_vmulss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vmulss_xmm_xmm_m32(dst, src, src2)) } -inst_vmulsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1038) } -inst_vmulsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1038) } +inst_vmulsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1050) } +inst_vmulsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMULSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1050) } emit_vmulsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmulsd_xmm_xmm_xmm(dst, src, src2)) } emit_vmulsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vmulsd_xmm_xmm_m64(dst, src, src2)) } -inst_vdivps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1039) } -inst_vdivps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1039) } -inst_vdivps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1040) } -inst_vdivps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1040) } +inst_vdivps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1051) } +inst_vdivps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1051) } +inst_vdivps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1052) } +inst_vdivps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1052) } emit_vdivps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vdivps_xmm_xmm_xmm(dst, src, src2)) } emit_vdivps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vdivps_xmm_xmm_m128(dst, src, src2)) } emit_vdivps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vdivps_ymm_ymm_ymm(dst, src, src2)) } emit_vdivps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vdivps_ymm_ymm_m256(dst, src, src2)) } -inst_vdivpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1041) } -inst_vdivpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1041) } -inst_vdivpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1042) } -inst_vdivpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1042) } +inst_vdivpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1053) } +inst_vdivpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1053) } +inst_vdivpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1054) } +inst_vdivpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1054) } emit_vdivpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vdivpd_xmm_xmm_xmm(dst, src, src2)) } emit_vdivpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vdivpd_xmm_xmm_m128(dst, src, src2)) } emit_vdivpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vdivpd_ymm_ymm_ymm(dst, src, src2)) } emit_vdivpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vdivpd_ymm_ymm_m256(dst, src, src2)) } -inst_vdivss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1043) } -inst_vdivss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1043) } +inst_vdivss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1055) } +inst_vdivss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1055) } emit_vdivss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vdivss_xmm_xmm_xmm(dst, src, src2)) } emit_vdivss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vdivss_xmm_xmm_m32(dst, src, src2)) } -inst_vdivsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1044) } -inst_vdivsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1044) } +inst_vdivsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1056) } +inst_vdivsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VDIVSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1056) } emit_vdivsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vdivsd_xmm_xmm_xmm(dst, src, src2)) } emit_vdivsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vdivsd_xmm_xmm_m64(dst, src, src2)) } -inst_vsqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1045) } -inst_vsqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1045) } -inst_vsqrtps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1046) } -inst_vsqrtps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1046) } +inst_vsqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1057) } +inst_vsqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1057) } +inst_vsqrtps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1058) } +inst_vsqrtps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1058) } emit_vsqrtps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vsqrtps_xmm_xmm(dst, src)) } emit_vsqrtps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vsqrtps_xmm_m128(dst, src)) } emit_vsqrtps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vsqrtps_ymm_ymm(dst, src)) } emit_vsqrtps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vsqrtps_ymm_m256(dst, src)) } -inst_vsqrtpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1047) } -inst_vsqrtpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1047) } -inst_vsqrtpd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1048) } -inst_vsqrtpd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1048) } +inst_vsqrtpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1059) } +inst_vsqrtpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1059) } +inst_vsqrtpd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1060) } +inst_vsqrtpd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1060) } emit_vsqrtpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vsqrtpd_xmm_xmm(dst, src)) } emit_vsqrtpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vsqrtpd_xmm_m128(dst, src)) } emit_vsqrtpd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vsqrtpd_ymm_ymm(dst, src)) } emit_vsqrtpd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vsqrtpd_ymm_m256(dst, src)) } -inst_vsqrtss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1049) } -inst_vsqrtss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1049) } +inst_vsqrtss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1061) } +inst_vsqrtss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1061) } emit_vsqrtss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vsqrtss_xmm_xmm_xmm(dst, src, src2)) } emit_vsqrtss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vsqrtss_xmm_xmm_m32(dst, src, src2)) } -inst_vsqrtsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1050) } -inst_vsqrtsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1050) } +inst_vsqrtsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1062) } +inst_vsqrtsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VSQRTSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1062) } emit_vsqrtsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vsqrtsd_xmm_xmm_xmm(dst, src, src2)) } emit_vsqrtsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vsqrtsd_xmm_xmm_m64(dst, src, src2)) } -inst_vrcpps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1051) } -inst_vrcpps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1051) } -inst_vrcpps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1052) } -inst_vrcpps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1052) } +inst_vrcpps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1063) } +inst_vrcpps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1063) } +inst_vrcpps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1064) } +inst_vrcpps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1064) } emit_vrcpps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vrcpps_xmm_xmm(dst, src)) } emit_vrcpps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vrcpps_xmm_m128(dst, src)) } emit_vrcpps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vrcpps_ymm_ymm(dst, src)) } emit_vrcpps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vrcpps_ymm_m256(dst, src)) } -inst_vrcpss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1053) } -inst_vrcpss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1053) } +inst_vrcpss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1065) } +inst_vrcpss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1065) } emit_vrcpss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vrcpss_xmm_xmm_xmm(dst, src, src2)) } emit_vrcpss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vrcpss_xmm_xmm_m32(dst, src, src2)) } -inst_vrsqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1054) } -inst_vrsqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1054) } -inst_vrsqrtps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1055) } -inst_vrsqrtps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1055) } +inst_vrsqrtps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1066) } +inst_vrsqrtps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1066) } +inst_vrsqrtps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1067) } +inst_vrsqrtps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1067) } emit_vrsqrtps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vrsqrtps_xmm_xmm(dst, src)) } emit_vrsqrtps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vrsqrtps_xmm_m128(dst, src)) } emit_vrsqrtps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vrsqrtps_ymm_ymm(dst, src)) } emit_vrsqrtps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vrsqrtps_ymm_m256(dst, src)) } -inst_vrsqrtss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1056) } -inst_vrsqrtss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1056) } +inst_vrsqrtss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1068) } +inst_vrsqrtss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRTSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1068) } emit_vrsqrtss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vrsqrtss_xmm_xmm_xmm(dst, src, src2)) } emit_vrsqrtss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vrsqrtss_xmm_xmm_m32(dst, src, src2)) } -inst_vmaxps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1057) } -inst_vmaxps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1057) } -inst_vmaxps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1058) } -inst_vmaxps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1058) } +inst_vmaxps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1069) } +inst_vmaxps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1069) } +inst_vmaxps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1070) } +inst_vmaxps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1070) } emit_vmaxps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmaxps_xmm_xmm_xmm(dst, src, src2)) } emit_vmaxps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vmaxps_xmm_xmm_m128(dst, src, src2)) } emit_vmaxps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vmaxps_ymm_ymm_ymm(dst, src, src2)) } emit_vmaxps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vmaxps_ymm_ymm_m256(dst, src, src2)) } -inst_vmaxpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1059) } -inst_vmaxpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1059) } -inst_vmaxpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1060) } -inst_vmaxpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1060) } +inst_vmaxpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1071) } +inst_vmaxpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1071) } +inst_vmaxpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1072) } +inst_vmaxpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1072) } emit_vmaxpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmaxpd_xmm_xmm_xmm(dst, src, src2)) } emit_vmaxpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vmaxpd_xmm_xmm_m128(dst, src, src2)) } emit_vmaxpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vmaxpd_ymm_ymm_ymm(dst, src, src2)) } emit_vmaxpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vmaxpd_ymm_ymm_m256(dst, src, src2)) } -inst_vmaxss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1061) } -inst_vmaxss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1061) } +inst_vmaxss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1073) } +inst_vmaxss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1073) } emit_vmaxss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmaxss_xmm_xmm_xmm(dst, src, src2)) } emit_vmaxss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vmaxss_xmm_xmm_m32(dst, src, src2)) } -inst_vmaxsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1062) } -inst_vmaxsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1062) } +inst_vmaxsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1074) } +inst_vmaxsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1074) } emit_vmaxsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmaxsd_xmm_xmm_xmm(dst, src, src2)) } emit_vmaxsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vmaxsd_xmm_xmm_m64(dst, src, src2)) } -inst_vminps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1063) } -inst_vminps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1063) } -inst_vminps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1064) } -inst_vminps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1064) } +inst_vminps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1075) } +inst_vminps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1075) } +inst_vminps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1076) } +inst_vminps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1076) } emit_vminps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vminps_xmm_xmm_xmm(dst, src, src2)) } emit_vminps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vminps_xmm_xmm_m128(dst, src, src2)) } emit_vminps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vminps_ymm_ymm_ymm(dst, src, src2)) } emit_vminps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vminps_ymm_ymm_m256(dst, src, src2)) } -inst_vminpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1065) } -inst_vminpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1065) } -inst_vminpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1066) } -inst_vminpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1066) } +inst_vminpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1077) } +inst_vminpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1077) } +inst_vminpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1078) } +inst_vminpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1078) } emit_vminpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vminpd_xmm_xmm_xmm(dst, src, src2)) } emit_vminpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vminpd_xmm_xmm_m128(dst, src, src2)) } emit_vminpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vminpd_ymm_ymm_ymm(dst, src, src2)) } emit_vminpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vminpd_ymm_ymm_m256(dst, src, src2)) } -inst_vminss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1067) } -inst_vminss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1067) } +inst_vminss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1079) } +inst_vminss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1079) } emit_vminss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vminss_xmm_xmm_xmm(dst, src, src2)) } emit_vminss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vminss_xmm_xmm_m32(dst, src, src2)) } -inst_vminsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1068) } -inst_vminsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1068) } +inst_vminsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1080) } +inst_vminsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1080) } emit_vminsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vminsd_xmm_xmm_xmm(dst, src, src2)) } emit_vminsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vminsd_xmm_xmm_m64(dst, src, src2)) } -inst_vandps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1069) } -inst_vandps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1069) } -inst_vandps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1070) } -inst_vandps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1070) } +inst_vandps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1081) } +inst_vandps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1081) } +inst_vandps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1082) } +inst_vandps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1082) } emit_vandps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vandps_xmm_xmm_xmm(dst, src, src2)) } emit_vandps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vandps_xmm_xmm_m128(dst, src, src2)) } emit_vandps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vandps_ymm_ymm_ymm(dst, src, src2)) } emit_vandps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vandps_ymm_ymm_m256(dst, src, src2)) } -inst_vandpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1071) } -inst_vandpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1071) } -inst_vandpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1072) } -inst_vandpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1072) } +inst_vandpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1083) } +inst_vandpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1083) } +inst_vandpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1084) } +inst_vandpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1084) } emit_vandpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vandpd_xmm_xmm_xmm(dst, src, src2)) } emit_vandpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vandpd_xmm_xmm_m128(dst, src, src2)) } emit_vandpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vandpd_ymm_ymm_ymm(dst, src, src2)) } emit_vandpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vandpd_ymm_ymm_m256(dst, src, src2)) } -inst_vandnps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1073) } -inst_vandnps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1073) } -inst_vandnps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1074) } -inst_vandnps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1074) } +inst_vandnps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1085) } +inst_vandnps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1085) } +inst_vandnps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1086) } +inst_vandnps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1086) } emit_vandnps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vandnps_xmm_xmm_xmm(dst, src, src2)) } emit_vandnps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vandnps_xmm_xmm_m128(dst, src, src2)) } emit_vandnps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vandnps_ymm_ymm_ymm(dst, src, src2)) } emit_vandnps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vandnps_ymm_ymm_m256(dst, src, src2)) } -inst_vandnpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1075) } -inst_vandnpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1075) } -inst_vandnpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1076) } -inst_vandnpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1076) } +inst_vandnpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1087) } +inst_vandnpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1087) } +inst_vandnpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1088) } +inst_vandnpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VANDNPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1088) } emit_vandnpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vandnpd_xmm_xmm_xmm(dst, src, src2)) } emit_vandnpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vandnpd_xmm_xmm_m128(dst, src, src2)) } emit_vandnpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vandnpd_ymm_ymm_ymm(dst, src, src2)) } emit_vandnpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vandnpd_ymm_ymm_m256(dst, src, src2)) } -inst_vorps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1077) } -inst_vorps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1077) } -inst_vorps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1078) } -inst_vorps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1078) } +inst_vorps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1089) } +inst_vorps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1089) } +inst_vorps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1090) } +inst_vorps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1090) } emit_vorps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vorps_xmm_xmm_xmm(dst, src, src2)) } emit_vorps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vorps_xmm_xmm_m128(dst, src, src2)) } emit_vorps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vorps_ymm_ymm_ymm(dst, src, src2)) } emit_vorps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vorps_ymm_ymm_m256(dst, src, src2)) } -inst_vorpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1079) } -inst_vorpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1079) } -inst_vorpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1080) } -inst_vorpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1080) } +inst_vorpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1091) } +inst_vorpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1091) } +inst_vorpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1092) } +inst_vorpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1092) } emit_vorpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vorpd_xmm_xmm_xmm(dst, src, src2)) } emit_vorpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vorpd_xmm_xmm_m128(dst, src, src2)) } emit_vorpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vorpd_ymm_ymm_ymm(dst, src, src2)) } emit_vorpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vorpd_ymm_ymm_m256(dst, src, src2)) } -inst_vxorps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1081) } -inst_vxorps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1081) } -inst_vxorps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1082) } -inst_vxorps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1082) } +inst_vxorps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1093) } +inst_vxorps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1093) } +inst_vxorps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1094) } +inst_vxorps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1094) } emit_vxorps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vxorps_xmm_xmm_xmm(dst, src, src2)) } emit_vxorps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vxorps_xmm_xmm_m128(dst, src, src2)) } emit_vxorps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vxorps_ymm_ymm_ymm(dst, src, src2)) } emit_vxorps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vxorps_ymm_ymm_m256(dst, src, src2)) } -inst_vxorpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1083) } -inst_vxorpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1083) } -inst_vxorpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1084) } -inst_vxorpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1084) } +inst_vxorpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1095) } +inst_vxorpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1095) } +inst_vxorpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1096) } +inst_vxorpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VXORPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1096) } emit_vxorpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vxorpd_xmm_xmm_xmm(dst, src, src2)) } emit_vxorpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vxorpd_xmm_xmm_m128(dst, src, src2)) } emit_vxorpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vxorpd_ymm_ymm_ymm(dst, src, src2)) } emit_vxorpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vxorpd_ymm_ymm_m256(dst, src, src2)) } -inst_vcmpps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1085) } -inst_vcmpps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1085) } -inst_vcmpps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1086) } -inst_vcmpps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1086) } +inst_vcmpps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1097) } +inst_vcmpps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1097) } +inst_vcmpps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1098) } +inst_vcmpps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1098) } emit_vcmpps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vcmpps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vcmpps_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vcmpps_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vcmpps_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vcmpps_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vcmpps_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vcmpps_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vcmppd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1087) } -inst_vcmppd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1087) } -inst_vcmppd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1088) } -inst_vcmppd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1088) } +inst_vcmppd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1099) } +inst_vcmppd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1099) } +inst_vcmppd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1100) } +inst_vcmppd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1100) } emit_vcmppd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vcmppd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vcmppd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vcmppd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vcmppd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vcmppd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vcmppd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vcmppd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vcmpss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1089) } -inst_vcmpss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1089) } +inst_vcmpss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1101) } +inst_vcmpss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1101) } emit_vcmpss_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vcmpss_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vcmpss_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vcmpss_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vcmpsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1090) } -inst_vcmpsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1090) } +inst_vcmpsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1102) } +inst_vcmpsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCMPSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1102) } emit_vcmpsd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vcmpsd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vcmpsd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vcmpsd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vcomiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1091) } -inst_vcomiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1091) } +inst_vcomiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1103) } +inst_vcomiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1103) } emit_vcomiss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcomiss_xmm_xmm(dst, src)) } emit_vcomiss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vcomiss_xmm_m32(dst, src)) } -inst_vcomisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1092) } -inst_vcomisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1092) } +inst_vcomisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1104) } +inst_vcomisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1104) } emit_vcomisd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcomisd_xmm_xmm(dst, src)) } emit_vcomisd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vcomisd_xmm_m64(dst, src)) } -inst_vucomiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1093) } -inst_vucomiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1093) } +inst_vucomiss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1105) } +inst_vucomiss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1105) } emit_vucomiss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vucomiss_xmm_xmm(dst, src)) } emit_vucomiss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vucomiss_xmm_m32(dst, src)) } -inst_vucomisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1094) } -inst_vucomisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1094) } +inst_vucomisd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1106) } +inst_vucomisd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VUCOMISD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1106) } emit_vucomisd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vucomisd_xmm_xmm(dst, src)) } emit_vucomisd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vucomisd_xmm_m64(dst, src)) } -inst_vshufps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1095) } -inst_vshufps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1095) } -inst_vshufps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1096) } -inst_vshufps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1096) } +inst_vshufps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1107) } +inst_vshufps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1107) } +inst_vshufps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1108) } +inst_vshufps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1108) } emit_vshufps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vshufps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vshufps_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vshufps_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vshufps_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vshufps_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vshufps_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vshufps_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vshufpd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1097) } -inst_vshufpd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1097) } -inst_vshufpd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1098) } -inst_vshufpd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1098) } +inst_vshufpd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1109) } +inst_vshufpd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1109) } +inst_vshufpd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1110) } +inst_vshufpd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VSHUFPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1110) } emit_vshufpd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vshufpd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vshufpd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vshufpd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vshufpd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vshufpd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vshufpd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vshufpd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vunpcklps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1099) } -inst_vunpcklps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1099) } -inst_vunpcklps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1100) } -inst_vunpcklps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1100) } +inst_vunpcklps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1111) } +inst_vunpcklps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1111) } +inst_vunpcklps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1112) } +inst_vunpcklps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1112) } emit_vunpcklps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vunpcklps_xmm_xmm_xmm(dst, src, src2)) } emit_vunpcklps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vunpcklps_xmm_xmm_m128(dst, src, src2)) } emit_vunpcklps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vunpcklps_ymm_ymm_ymm(dst, src, src2)) } emit_vunpcklps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vunpcklps_ymm_ymm_m256(dst, src, src2)) } -inst_vunpckhps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1101) } -inst_vunpckhps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1101) } -inst_vunpckhps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1102) } -inst_vunpckhps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1102) } +inst_vunpckhps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1113) } +inst_vunpckhps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1113) } +inst_vunpckhps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1114) } +inst_vunpckhps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1114) } emit_vunpckhps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vunpckhps_xmm_xmm_xmm(dst, src, src2)) } emit_vunpckhps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vunpckhps_xmm_xmm_m128(dst, src, src2)) } emit_vunpckhps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vunpckhps_ymm_ymm_ymm(dst, src, src2)) } emit_vunpckhps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vunpckhps_ymm_ymm_m256(dst, src, src2)) } -inst_vunpcklpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1103) } -inst_vunpcklpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1103) } -inst_vunpcklpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1104) } -inst_vunpcklpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1104) } +inst_vunpcklpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1115) } +inst_vunpcklpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1115) } +inst_vunpcklpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1116) } +inst_vunpcklpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKLPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1116) } emit_vunpcklpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vunpcklpd_xmm_xmm_xmm(dst, src, src2)) } emit_vunpcklpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vunpcklpd_xmm_xmm_m128(dst, src, src2)) } emit_vunpcklpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vunpcklpd_ymm_ymm_ymm(dst, src, src2)) } emit_vunpcklpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vunpcklpd_ymm_ymm_m256(dst, src, src2)) } -inst_vunpckhpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1105) } -inst_vunpckhpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1105) } -inst_vunpckhpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1106) } -inst_vunpckhpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1106) } +inst_vunpckhpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1117) } +inst_vunpckhpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1117) } +inst_vunpckhpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1118) } +inst_vunpckhpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VUNPCKHPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1118) } emit_vunpckhpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vunpckhpd_xmm_xmm_xmm(dst, src, src2)) } emit_vunpckhpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vunpckhpd_xmm_xmm_m128(dst, src, src2)) } emit_vunpckhpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vunpckhpd_ymm_ymm_ymm(dst, src, src2)) } emit_vunpckhpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vunpckhpd_ymm_ymm_m256(dst, src, src2)) } -inst_vblendps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1107) } -inst_vblendps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1107) } -inst_vblendps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1108) } -inst_vblendps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1108) } +inst_vblendps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1119) } +inst_vblendps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1119) } +inst_vblendps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1120) } +inst_vblendps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1120) } emit_vblendps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vblendps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vblendps_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vblendps_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vblendps_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vblendps_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vblendps_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vblendps_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vblendpd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1109) } -inst_vblendpd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1109) } -inst_vblendpd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1110) } -inst_vblendpd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1110) } +inst_vblendpd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1121) } +inst_vblendpd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1121) } +inst_vblendpd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1122) } +inst_vblendpd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1122) } emit_vblendpd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vblendpd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vblendpd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vblendpd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vblendpd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vblendpd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vblendpd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vblendpd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vblendvps_xmm_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_xmm(src3)} }, 1111) } -inst_vblendvps_xmm_xmm_m128_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_xmm(src3)} }, 1111) } -inst_vblendvps_ymm_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_ymm(src3)} }, 1112) } -inst_vblendvps_ymm_ymm_m256_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_ymm(src3)} }, 1112) } +inst_vblendvps_xmm_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_xmm(src3)} }, 1123) } +inst_vblendvps_xmm_xmm_m128_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_xmm(src3)} }, 1123) } +inst_vblendvps_ymm_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_ymm(src3)} }, 1124) } +inst_vblendvps_ymm_ymm_m256_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_ymm(src3)} }, 1124) } emit_vblendvps_xmm_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, src3: XMM) { append(instructions, inst_vblendvps_xmm_xmm_xmm_xmm(dst, src, src2, src3)) } emit_vblendvps_xmm_xmm_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, src3: XMM) { append(instructions, inst_vblendvps_xmm_xmm_m128_xmm(dst, src, src2, src3)) } emit_vblendvps_ymm_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, src3: YMM) { append(instructions, inst_vblendvps_ymm_ymm_ymm_ymm(dst, src, src2, src3)) } emit_vblendvps_ymm_ymm_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, src3: YMM) { append(instructions, inst_vblendvps_ymm_ymm_m256_ymm(dst, src, src2, src3)) } -inst_vblendvpd_xmm_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_xmm(src3)} }, 1113) } -inst_vblendvpd_xmm_xmm_m128_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_xmm(src3)} }, 1113) } -inst_vblendvpd_ymm_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_ymm(src3)} }, 1114) } -inst_vblendvpd_ymm_ymm_m256_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_ymm(src3)} }, 1114) } +inst_vblendvpd_xmm_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_xmm(src3)} }, 1125) } +inst_vblendvpd_xmm_xmm_m128_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_xmm(src3)} }, 1125) } +inst_vblendvpd_ymm_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_ymm(src3)} }, 1126) } +inst_vblendvpd_ymm_ymm_m256_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDVPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_ymm(src3)} }, 1126) } emit_vblendvpd_xmm_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, src3: XMM) { append(instructions, inst_vblendvpd_xmm_xmm_xmm_xmm(dst, src, src2, src3)) } emit_vblendvpd_xmm_xmm_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, src3: XMM) { append(instructions, inst_vblendvpd_xmm_xmm_m128_xmm(dst, src, src2, src3)) } emit_vblendvpd_ymm_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, src3: YMM) { append(instructions, inst_vblendvpd_ymm_ymm_ymm_ymm(dst, src, src2, src3)) } emit_vblendvpd_ymm_ymm_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, src3: YMM) { append(instructions, inst_vblendvpd_ymm_ymm_m256_ymm(dst, src, src2, src3)) } -inst_vdpps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1115) } -inst_vdpps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1115) } -inst_vdpps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1116) } -inst_vdpps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1116) } +inst_vdpps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1127) } +inst_vdpps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1127) } +inst_vdpps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1128) } +inst_vdpps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1128) } emit_vdpps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vdpps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vdpps_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vdpps_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vdpps_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vdpps_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vdpps_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vdpps_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vdppd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1117) } -inst_vdppd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1117) } +inst_vdppd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1129) } +inst_vdppd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDPPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1129) } emit_vdppd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vdppd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vdppd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vdppd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } -inst_vroundps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1118) } -inst_vroundps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1118) } -inst_vroundps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1119) } -inst_vroundps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1119) } +inst_vroundps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1130) } +inst_vroundps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1130) } +inst_vroundps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1131) } +inst_vroundps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1131) } emit_vroundps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vroundps_xmm_xmm_imm8(dst, src, imm)) } emit_vroundps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vroundps_xmm_m128_imm8(dst, src, imm)) } emit_vroundps_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vroundps_ymm_ymm_imm8(dst, src, imm)) } emit_vroundps_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vroundps_ymm_m256_imm8(dst, src, imm)) } -inst_vroundpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1120) } -inst_vroundpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1120) } -inst_vroundpd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1121) } -inst_vroundpd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1121) } +inst_vroundpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1132) } +inst_vroundpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1132) } +inst_vroundpd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1133) } +inst_vroundpd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1133) } emit_vroundpd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vroundpd_xmm_xmm_imm8(dst, src, imm)) } emit_vroundpd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vroundpd_xmm_m128_imm8(dst, src, imm)) } emit_vroundpd_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vroundpd_ymm_ymm_imm8(dst, src, imm)) } emit_vroundpd_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vroundpd_ymm_m256_imm8(dst, src, imm)) } -inst_vroundss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1122) } -inst_vroundss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1122) } +inst_vroundss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1134) } +inst_vroundss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1134) } emit_vroundss_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vroundss_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vroundss_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vroundss_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vroundsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1123) } -inst_vroundsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1123) } +inst_vroundsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1135) } +inst_vroundsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VROUNDSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1135) } emit_vroundsd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vroundsd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vroundsd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vroundsd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vextractps_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTPS, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 1124) } -inst_vextractps_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTPS, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 1124) } +inst_vextractps_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTPS, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 1136) } +inst_vextractps_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTPS, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 1136) } emit_vextractps_r32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM, imm: i8) { append(instructions, inst_vextractps_r32_xmm_imm8(dst, src, imm)) } emit_vextractps_m32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM, imm: i8) { append(instructions, inst_vextractps_m32_xmm_imm8(dst, src, imm)) } -inst_vinsertps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1125) } -inst_vinsertps_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1125) } +inst_vinsertps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1137) } +inst_vinsertps_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1137) } emit_vinsertps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vinsertps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vinsertps_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vinsertps_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vmovaps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1126) } -inst_vmovaps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1126) } -inst_vmovaps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1127) } -inst_vmovaps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1128) } -inst_vmovaps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1128) } -inst_vmovaps_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1129) } +inst_vmovaps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1138) } +inst_vmovaps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1138) } +inst_vmovaps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1139) } +inst_vmovaps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1140) } +inst_vmovaps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1140) } +inst_vmovaps_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1141) } emit_vmovaps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovaps_xmm_xmm(dst, src)) } emit_vmovaps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovaps_xmm_m128(dst, src)) } emit_vmovaps_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovaps_m128_xmm(dst, src)) } emit_vmovaps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovaps_ymm_ymm(dst, src)) } emit_vmovaps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovaps_ymm_m256(dst, src)) } emit_vmovaps_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovaps_m256_ymm(dst, src)) } -inst_vmovups_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1130) } -inst_vmovups_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1130) } -inst_vmovups_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1131) } -inst_vmovups_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1132) } -inst_vmovups_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1132) } -inst_vmovups_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1133) } +inst_vmovups_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1142) } +inst_vmovups_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1142) } +inst_vmovups_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1143) } +inst_vmovups_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1144) } +inst_vmovups_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1144) } +inst_vmovups_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1145) } emit_vmovups_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovups_xmm_xmm(dst, src)) } emit_vmovups_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovups_xmm_m128(dst, src)) } emit_vmovups_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovups_m128_xmm(dst, src)) } emit_vmovups_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovups_ymm_ymm(dst, src)) } emit_vmovups_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovups_ymm_m256(dst, src)) } emit_vmovups_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovups_m256_ymm(dst, src)) } -inst_vmovapd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1134) } -inst_vmovapd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1134) } -inst_vmovapd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1135) } -inst_vmovapd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1136) } -inst_vmovapd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1136) } -inst_vmovapd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1137) } +inst_vmovapd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1146) } +inst_vmovapd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1146) } +inst_vmovapd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1147) } +inst_vmovapd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1148) } +inst_vmovapd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1148) } +inst_vmovapd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVAPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1149) } emit_vmovapd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovapd_xmm_xmm(dst, src)) } emit_vmovapd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovapd_xmm_m128(dst, src)) } emit_vmovapd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovapd_m128_xmm(dst, src)) } emit_vmovapd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovapd_ymm_ymm(dst, src)) } emit_vmovapd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovapd_ymm_m256(dst, src)) } emit_vmovapd_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovapd_m256_ymm(dst, src)) } -inst_vmovupd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1138) } -inst_vmovupd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1138) } -inst_vmovupd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1139) } -inst_vmovupd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1140) } -inst_vmovupd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1140) } -inst_vmovupd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1141) } +inst_vmovupd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1150) } +inst_vmovupd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1150) } +inst_vmovupd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1151) } +inst_vmovupd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1152) } +inst_vmovupd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1152) } +inst_vmovupd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVUPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1153) } emit_vmovupd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovupd_xmm_xmm(dst, src)) } emit_vmovupd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovupd_xmm_m128(dst, src)) } emit_vmovupd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovupd_m128_xmm(dst, src)) } emit_vmovupd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovupd_ymm_ymm(dst, src)) } emit_vmovupd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovupd_ymm_m256(dst, src)) } emit_vmovupd_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovupd_m256_ymm(dst, src)) } -inst_vmovss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1142) } -inst_vmovss_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1143) } -inst_vmovss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1144) } +inst_vmovss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1154) } +inst_vmovss_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSS, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1155) } +inst_vmovss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1156) } emit_vmovss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vmovss_xmm_m32(dst, src)) } emit_vmovss_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vmovss_m32_xmm(dst, src)) } emit_vmovss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmovss_xmm_xmm_xmm(dst, src, src2)) } -inst_vmovsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1145) } -inst_vmovsd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1146) } -inst_vmovsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1147) } +inst_vmovsd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1157) } +inst_vmovsd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1158) } +inst_vmovsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1159) } emit_vmovsd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vmovsd_xmm_m64(dst, src)) } emit_vmovsd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vmovsd_m64_xmm(dst, src)) } emit_vmovsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmovsd_xmm_xmm_xmm(dst, src, src2)) } -inst_vmovdqa_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1148) } -inst_vmovdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1148) } -inst_vmovdqa_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1149) } -inst_vmovdqa_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1150) } -inst_vmovdqa_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1150) } -inst_vmovdqa_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1151) } +inst_vmovdqa_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1160) } +inst_vmovdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1160) } +inst_vmovdqa_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1161) } +inst_vmovdqa_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1162) } +inst_vmovdqa_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1162) } +inst_vmovdqa_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1163) } emit_vmovdqa_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqa_xmm_xmm(dst, src)) } emit_vmovdqa_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqa_xmm_m128(dst, src)) } emit_vmovdqa_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqa_m128_xmm(dst, src)) } emit_vmovdqa_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovdqa_ymm_ymm(dst, src)) } emit_vmovdqa_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovdqa_ymm_m256(dst, src)) } emit_vmovdqa_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovdqa_m256_ymm(dst, src)) } -inst_vmovdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1152) } -inst_vmovdqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1152) } -inst_vmovdqu_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1153) } -inst_vmovdqu_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1154) } -inst_vmovdqu_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1154) } -inst_vmovdqu_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1155) } +inst_vmovdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1164) } +inst_vmovdqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1164) } +inst_vmovdqu_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1165) } +inst_vmovdqu_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1166) } +inst_vmovdqu_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1166) } +inst_vmovdqu_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1167) } emit_vmovdqu_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqu_xmm_xmm(dst, src)) } emit_vmovdqu_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqu_xmm_m128(dst, src)) } emit_vmovdqu_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqu_m128_xmm(dst, src)) } emit_vmovdqu_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovdqu_ymm_ymm(dst, src)) } emit_vmovdqu_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovdqu_ymm_m256(dst, src)) } emit_vmovdqu_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovdqu_m256_ymm(dst, src)) } -inst_vmovq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1156) } -inst_vmovq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1156) } -inst_vmovq_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1157) } -inst_vmovq_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 1158) } -inst_vmovq_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1159) } +inst_vmovq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1168) } +inst_vmovq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1168) } +inst_vmovq_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1169) } +inst_vmovq_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_xmm(dst), op_gpr64(src), {}, {}} }, 1170) } +inst_vmovq_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVQ, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1171) } emit_vmovq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovq_xmm_xmm(dst, src)) } emit_vmovq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vmovq_xmm_m64(dst, src)) } emit_vmovq_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vmovq_m64_xmm(dst, src)) } emit_vmovq_xmm_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR64) { append(instructions, inst_vmovq_xmm_r64(dst, src)) } emit_vmovq_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_vmovq_r64_xmm(dst, src)) } -inst_vmovd_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 1160) } -inst_vmovd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1160) } -inst_vmovd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1161) } -inst_vmovd_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1161) } +inst_vmovd_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_xmm(dst), op_gpr32(src), {}, {}} }, 1172) } +inst_vmovd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1172) } +inst_vmovd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1173) } +inst_vmovd_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1173) } emit_vmovd_xmm_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: GPR32) { append(instructions, inst_vmovd_xmm_r32(dst, src)) } emit_vmovd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vmovd_xmm_m32(dst, src)) } emit_vmovd_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vmovd_r32_xmm(dst, src)) } emit_vmovd_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vmovd_m32_xmm(dst, src)) } -inst_vmovlps_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1162) } -inst_vmovlps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1163) } +inst_vmovlps_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1174) } +inst_vmovlps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1175) } emit_vmovlps_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vmovlps_xmm_xmm_m64(dst, src, src2)) } emit_vmovlps_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vmovlps_m64_xmm(dst, src)) } -inst_vmovhps_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1164) } -inst_vmovhps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1165) } +inst_vmovhps_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1176) } +inst_vmovhps_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPS, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1177) } emit_vmovhps_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vmovhps_xmm_xmm_m64(dst, src, src2)) } emit_vmovhps_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vmovhps_m64_xmm(dst, src)) } -inst_vmovlpd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1166) } -inst_vmovlpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1167) } +inst_vmovlpd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1178) } +inst_vmovlpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1179) } emit_vmovlpd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vmovlpd_xmm_xmm_m64(dst, src, src2)) } emit_vmovlpd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vmovlpd_m64_xmm(dst, src)) } -inst_vmovhpd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1168) } -inst_vmovhpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1169) } +inst_vmovhpd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1180) } +inst_vmovhpd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHPD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1181) } emit_vmovhpd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vmovhpd_xmm_xmm_m64(dst, src, src2)) } emit_vmovhpd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vmovhpd_m64_xmm(dst, src)) } -inst_vmovlhps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1170) } +inst_vmovlhps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVLHPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1182) } emit_vmovlhps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmovlhps_xmm_xmm_xmm(dst, src, src2)) } -inst_vmovhlps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1171) } +inst_vmovhlps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVHLPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1183) } emit_vmovhlps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vmovhlps_xmm_xmm_xmm(dst, src, src2)) } -inst_vmovmskps_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPS, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1172) } -inst_vmovmskps_r32_ymm :: #force_inline proc "contextless" (dst: GPR32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPS, operand_count = 2, ops = {op_gpr32(dst), op_ymm(src), {}, {}} }, 1173) } +inst_vmovmskps_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPS, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1184) } +inst_vmovmskps_r32_ymm :: #force_inline proc "contextless" (dst: GPR32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPS, operand_count = 2, ops = {op_gpr32(dst), op_ymm(src), {}, {}} }, 1185) } emit_vmovmskps_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vmovmskps_r32_xmm(dst, src)) } emit_vmovmskps_r32_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: YMM) { append(instructions, inst_vmovmskps_r32_ymm(dst, src)) } -inst_vmovmskpd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1174) } -inst_vmovmskpd_r32_ymm :: #force_inline proc "contextless" (dst: GPR32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPD, operand_count = 2, ops = {op_gpr32(dst), op_ymm(src), {}, {}} }, 1175) } +inst_vmovmskpd_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPD, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1186) } +inst_vmovmskpd_r32_ymm :: #force_inline proc "contextless" (dst: GPR32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVMSKPD, operand_count = 2, ops = {op_gpr32(dst), op_ymm(src), {}, {}} }, 1187) } emit_vmovmskpd_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vmovmskpd_r32_xmm(dst, src)) } emit_vmovmskpd_r32_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: YMM) { append(instructions, inst_vmovmskpd_r32_ymm(dst, src)) } -inst_vmovntps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1176) } -inst_vmovntps_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1177) } +inst_vmovntps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1188) } +inst_vmovntps_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1189) } emit_vmovntps_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovntps_m128_xmm(dst, src)) } emit_vmovntps_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovntps_m256_ymm(dst, src)) } -inst_vmovntpd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1178) } -inst_vmovntpd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1179) } +inst_vmovntpd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1190) } +inst_vmovntpd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1191) } emit_vmovntpd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovntpd_m128_xmm(dst, src)) } emit_vmovntpd_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovntpd_m256_ymm(dst, src)) } -inst_vmovntdq_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQ, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1180) } -inst_vmovntdq_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQ, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1181) } +inst_vmovntdq_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQ, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1192) } +inst_vmovntdq_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQ, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1193) } emit_vmovntdq_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovntdq_m128_xmm(dst, src)) } emit_vmovntdq_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vmovntdq_m256_ymm(dst, src)) } -inst_vmovntdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1182) } -inst_vmovntdqa_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQA, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1183) } +inst_vmovntdqa_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQA, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1194) } +inst_vmovntdqa_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVNTDQA, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1195) } emit_vmovntdqa_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovntdqa_xmm_m128(dst, src)) } emit_vmovntdqa_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovntdqa_ymm_m256(dst, src)) } -inst_vaddsubps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1184) } -inst_vaddsubps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1184) } -inst_vaddsubps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1185) } -inst_vaddsubps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1185) } +inst_vaddsubps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1196) } +inst_vaddsubps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1196) } +inst_vaddsubps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1197) } +inst_vaddsubps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1197) } emit_vaddsubps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaddsubps_xmm_xmm_xmm(dst, src, src2)) } emit_vaddsubps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaddsubps_xmm_xmm_m128(dst, src, src2)) } emit_vaddsubps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vaddsubps_ymm_ymm_ymm(dst, src, src2)) } emit_vaddsubps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vaddsubps_ymm_ymm_m256(dst, src, src2)) } -inst_vaddsubpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1186) } -inst_vaddsubpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1186) } -inst_vaddsubpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1187) } -inst_vaddsubpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1187) } +inst_vaddsubpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1198) } +inst_vaddsubpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1198) } +inst_vaddsubpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1199) } +inst_vaddsubpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VADDSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1199) } emit_vaddsubpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaddsubpd_xmm_xmm_xmm(dst, src, src2)) } emit_vaddsubpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaddsubpd_xmm_xmm_m128(dst, src, src2)) } emit_vaddsubpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vaddsubpd_ymm_ymm_ymm(dst, src, src2)) } emit_vaddsubpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vaddsubpd_ymm_ymm_m256(dst, src, src2)) } -inst_vhaddps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1188) } -inst_vhaddps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1188) } -inst_vhaddps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1189) } -inst_vhaddps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1189) } +inst_vhaddps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1200) } +inst_vhaddps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1200) } +inst_vhaddps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1201) } +inst_vhaddps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1201) } emit_vhaddps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vhaddps_xmm_xmm_xmm(dst, src, src2)) } emit_vhaddps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vhaddps_xmm_xmm_m128(dst, src, src2)) } emit_vhaddps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vhaddps_ymm_ymm_ymm(dst, src, src2)) } emit_vhaddps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vhaddps_ymm_ymm_m256(dst, src, src2)) } -inst_vhaddpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1190) } -inst_vhaddpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1190) } -inst_vhaddpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1191) } -inst_vhaddpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1191) } +inst_vhaddpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1202) } +inst_vhaddpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1202) } +inst_vhaddpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1203) } +inst_vhaddpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHADDPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1203) } emit_vhaddpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vhaddpd_xmm_xmm_xmm(dst, src, src2)) } emit_vhaddpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vhaddpd_xmm_xmm_m128(dst, src, src2)) } emit_vhaddpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vhaddpd_ymm_ymm_ymm(dst, src, src2)) } emit_vhaddpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vhaddpd_ymm_ymm_m256(dst, src, src2)) } -inst_vhsubps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1192) } -inst_vhsubps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1192) } -inst_vhsubps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1193) } -inst_vhsubps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1193) } +inst_vhsubps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1204) } +inst_vhsubps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1204) } +inst_vhsubps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1205) } +inst_vhsubps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1205) } emit_vhsubps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vhsubps_xmm_xmm_xmm(dst, src, src2)) } emit_vhsubps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vhsubps_xmm_xmm_m128(dst, src, src2)) } emit_vhsubps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vhsubps_ymm_ymm_ymm(dst, src, src2)) } emit_vhsubps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vhsubps_ymm_ymm_m256(dst, src, src2)) } -inst_vhsubpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1194) } -inst_vhsubpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1194) } -inst_vhsubpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1195) } -inst_vhsubpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1195) } +inst_vhsubpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1206) } +inst_vhsubpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1206) } +inst_vhsubpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1207) } +inst_vhsubpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VHSUBPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1207) } emit_vhsubpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vhsubpd_xmm_xmm_xmm(dst, src, src2)) } emit_vhsubpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vhsubpd_xmm_xmm_m128(dst, src, src2)) } emit_vhsubpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vhsubpd_ymm_ymm_ymm(dst, src, src2)) } emit_vhsubpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vhsubpd_ymm_ymm_m256(dst, src, src2)) } -inst_vlddqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VLDDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1196) } -inst_vlddqu_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VLDDQU, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1197) } +inst_vlddqu_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VLDDQU, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1208) } +inst_vlddqu_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VLDDQU, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1209) } emit_vlddqu_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vlddqu_xmm_m128(dst, src)) } emit_vlddqu_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vlddqu_ymm_m256(dst, src)) } -inst_vmovddup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1198) } -inst_vmovddup_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1198) } -inst_vmovddup_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1199) } -inst_vmovddup_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1199) } +inst_vmovddup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1210) } +inst_vmovddup_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1210) } +inst_vmovddup_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1211) } +inst_vmovddup_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDDUP, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1211) } emit_vmovddup_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovddup_xmm_xmm(dst, src)) } emit_vmovddup_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vmovddup_xmm_m64(dst, src)) } emit_vmovddup_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovddup_ymm_ymm(dst, src)) } emit_vmovddup_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovddup_ymm_m256(dst, src)) } -inst_vmovsldup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1200) } -inst_vmovsldup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1200) } -inst_vmovsldup_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1201) } -inst_vmovsldup_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1201) } +inst_vmovsldup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1212) } +inst_vmovsldup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1212) } +inst_vmovsldup_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1213) } +inst_vmovsldup_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSLDUP, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1213) } emit_vmovsldup_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovsldup_xmm_xmm(dst, src)) } emit_vmovsldup_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovsldup_xmm_m128(dst, src)) } emit_vmovsldup_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovsldup_ymm_ymm(dst, src)) } emit_vmovsldup_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovsldup_ymm_m256(dst, src)) } -inst_vmovshdup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1202) } -inst_vmovshdup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1202) } -inst_vmovshdup_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1203) } -inst_vmovshdup_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1203) } +inst_vmovshdup_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1214) } +inst_vmovshdup_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1214) } +inst_vmovshdup_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1215) } +inst_vmovshdup_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVSHDUP, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1215) } emit_vmovshdup_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovshdup_xmm_xmm(dst, src)) } emit_vmovshdup_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovshdup_xmm_m128(dst, src)) } emit_vmovshdup_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vmovshdup_ymm_ymm(dst, src)) } emit_vmovshdup_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vmovshdup_ymm_m256(dst, src)) } -inst_vpcmpestri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1204) } -inst_vpcmpestri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1204) } +inst_vpcmpestri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1216) } +inst_vpcmpestri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1216) } emit_vpcmpestri_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpcmpestri_xmm_xmm_imm8(dst, src, imm)) } emit_vpcmpestri_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpcmpestri_xmm_m128_imm8(dst, src, imm)) } -inst_vpcmpestrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1205) } -inst_vpcmpestrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1205) } +inst_vpcmpestrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1217) } +inst_vpcmpestrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPESTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1217) } emit_vpcmpestrm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpcmpestrm_xmm_xmm_imm8(dst, src, imm)) } emit_vpcmpestrm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpcmpestrm_xmm_m128_imm8(dst, src, imm)) } -inst_vpcmpistri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1206) } -inst_vpcmpistri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1206) } +inst_vpcmpistri_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1218) } +inst_vpcmpistri_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRI, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1218) } emit_vpcmpistri_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpcmpistri_xmm_xmm_imm8(dst, src, imm)) } emit_vpcmpistri_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpcmpistri_xmm_m128_imm8(dst, src, imm)) } -inst_vpcmpistrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1207) } -inst_vpcmpistrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1207) } +inst_vpcmpistrm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1219) } +inst_vpcmpistrm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPISTRM, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1219) } emit_vpcmpistrm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpcmpistrm_xmm_xmm_imm8(dst, src, imm)) } emit_vpcmpistrm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpcmpistrm_xmm_m128_imm8(dst, src, imm)) } -inst_vpbroadcastb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1208) } -inst_vpbroadcastb_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1209) } -inst_vpbroadcastb_xmm_m8 :: #force_inline proc "contextless" (dst: XMM, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 1), {}, {}} }, 1210) } -inst_vpbroadcastb_ymm_m8 :: #force_inline proc "contextless" (dst: YMM, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 1), {}, {}} }, 1211) } +inst_vpbroadcastb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1220) } +inst_vpbroadcastb_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1221) } +inst_vpbroadcastb_xmm_m8 :: #force_inline proc "contextless" (dst: XMM, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 1), {}, {}} }, 1222) } +inst_vpbroadcastb_ymm_m8 :: #force_inline proc "contextless" (dst: YMM, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTB, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 1), {}, {}} }, 1223) } emit_vpbroadcastb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpbroadcastb_xmm_xmm(dst, src)) } emit_vpbroadcastb_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpbroadcastb_ymm_xmm(dst, src)) } emit_vpbroadcastb_xmm_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem8) { append(instructions, inst_vpbroadcastb_xmm_m8(dst, src)) } emit_vpbroadcastb_ymm_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem8) { append(instructions, inst_vpbroadcastb_ymm_m8(dst, src)) } -inst_vpbroadcastw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1212) } -inst_vpbroadcastw_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1213) } -inst_vpbroadcastw_xmm_m16 :: #force_inline proc "contextless" (dst: XMM, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 2), {}, {}} }, 1214) } -inst_vpbroadcastw_ymm_m16 :: #force_inline proc "contextless" (dst: YMM, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 2), {}, {}} }, 1215) } +inst_vpbroadcastw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1224) } +inst_vpbroadcastw_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1225) } +inst_vpbroadcastw_xmm_m16 :: #force_inline proc "contextless" (dst: XMM, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 2), {}, {}} }, 1226) } +inst_vpbroadcastw_ymm_m16 :: #force_inline proc "contextless" (dst: YMM, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 2), {}, {}} }, 1227) } emit_vpbroadcastw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpbroadcastw_xmm_xmm(dst, src)) } emit_vpbroadcastw_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpbroadcastw_ymm_xmm(dst, src)) } emit_vpbroadcastw_xmm_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem16) { append(instructions, inst_vpbroadcastw_xmm_m16(dst, src)) } emit_vpbroadcastw_ymm_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem16) { append(instructions, inst_vpbroadcastw_ymm_m16(dst, src)) } -inst_vpbroadcastd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1216) } -inst_vpbroadcastd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1217) } -inst_vpbroadcastd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1218) } -inst_vpbroadcastd_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1219) } +inst_vpbroadcastd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1228) } +inst_vpbroadcastd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1229) } +inst_vpbroadcastd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1230) } +inst_vpbroadcastd_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1231) } emit_vpbroadcastd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpbroadcastd_xmm_xmm(dst, src)) } emit_vpbroadcastd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpbroadcastd_ymm_xmm(dst, src)) } emit_vpbroadcastd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vpbroadcastd_xmm_m32(dst, src)) } emit_vpbroadcastd_ymm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem32) { append(instructions, inst_vpbroadcastd_ymm_m32(dst, src)) } -inst_vpbroadcastq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1220) } -inst_vpbroadcastq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1221) } -inst_vpbroadcastq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1222) } -inst_vpbroadcastq_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1223) } +inst_vpbroadcastq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1232) } +inst_vpbroadcastq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1233) } +inst_vpbroadcastq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1234) } +inst_vpbroadcastq_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBROADCASTQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1235) } emit_vpbroadcastq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpbroadcastq_xmm_xmm(dst, src)) } emit_vpbroadcastq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpbroadcastq_ymm_xmm(dst, src)) } emit_vpbroadcastq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpbroadcastq_xmm_m64(dst, src)) } emit_vpbroadcastq_ymm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem64) { append(instructions, inst_vpbroadcastq_ymm_m64(dst, src)) } -inst_vcvtps2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1224) } -inst_vcvtps2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1224) } -inst_vcvtps2pd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1225) } -inst_vcvtps2pd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1225) } +inst_vcvtps2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1236) } +inst_vcvtps2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1236) } +inst_vcvtps2pd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1237) } +inst_vcvtps2pd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1237) } emit_vcvtps2pd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtps2pd_xmm_xmm(dst, src)) } emit_vcvtps2pd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vcvtps2pd_xmm_m64(dst, src)) } emit_vcvtps2pd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vcvtps2pd_ymm_xmm(dst, src)) } emit_vcvtps2pd_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vcvtps2pd_ymm_m128(dst, src)) } -inst_vcvtpd2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1226) } -inst_vcvtpd2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1226) } -inst_vcvtpd2ps_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1227) } -inst_vcvtpd2ps_xmm_m256 :: #force_inline proc "contextless" (dst: XMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 32), {}, {}} }, 1227) } +inst_vcvtpd2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1238) } +inst_vcvtpd2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1238) } +inst_vcvtpd2ps_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1239) } +inst_vcvtpd2ps_xmm_m256 :: #force_inline proc "contextless" (dst: XMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 32), {}, {}} }, 1239) } emit_vcvtpd2ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtpd2ps_xmm_xmm(dst, src)) } emit_vcvtpd2ps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vcvtpd2ps_xmm_m128(dst, src)) } emit_vcvtpd2ps_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vcvtpd2ps_xmm_ymm(dst, src)) } emit_vcvtpd2ps_xmm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem256) { append(instructions, inst_vcvtpd2ps_xmm_m256(dst, src)) } -inst_vcvtss2sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1228) } -inst_vcvtss2sd_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1228) } +inst_vcvtss2sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1240) } +inst_vcvtss2sd_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1240) } emit_vcvtss2sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vcvtss2sd_xmm_xmm_xmm(dst, src, src2)) } emit_vcvtss2sd_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vcvtss2sd_xmm_xmm_m32(dst, src, src2)) } -inst_vcvtsd2ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1229) } -inst_vcvtsd2ss_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1229) } +inst_vcvtsd2ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1241) } +inst_vcvtsd2ss_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1241) } emit_vcvtsd2ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vcvtsd2ss_xmm_xmm_xmm(dst, src, src2)) } emit_vcvtsd2ss_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vcvtsd2ss_xmm_xmm_m64(dst, src, src2)) } -inst_vcvtps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1230) } -inst_vcvtps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1230) } -inst_vcvtps2dq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1231) } -inst_vcvtps2dq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1231) } +inst_vcvtps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1242) } +inst_vcvtps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1242) } +inst_vcvtps2dq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1243) } +inst_vcvtps2dq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1243) } emit_vcvtps2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtps2dq_xmm_xmm(dst, src)) } emit_vcvtps2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vcvtps2dq_xmm_m128(dst, src)) } emit_vcvtps2dq_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vcvtps2dq_ymm_ymm(dst, src)) } emit_vcvtps2dq_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vcvtps2dq_ymm_m256(dst, src)) } -inst_vcvtpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1232) } -inst_vcvtpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1232) } -inst_vcvtpd2dq_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1233) } -inst_vcvtpd2dq_xmm_m256 :: #force_inline proc "contextless" (dst: XMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 32), {}, {}} }, 1233) } +inst_vcvtpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1244) } +inst_vcvtpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1244) } +inst_vcvtpd2dq_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1245) } +inst_vcvtpd2dq_xmm_m256 :: #force_inline proc "contextless" (dst: XMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 32), {}, {}} }, 1245) } emit_vcvtpd2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtpd2dq_xmm_xmm(dst, src)) } emit_vcvtpd2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vcvtpd2dq_xmm_m128(dst, src)) } emit_vcvtpd2dq_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vcvtpd2dq_xmm_ymm(dst, src)) } emit_vcvtpd2dq_xmm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem256) { append(instructions, inst_vcvtpd2dq_xmm_m256(dst, src)) } -inst_vcvtdq2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1234) } -inst_vcvtdq2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1234) } -inst_vcvtdq2ps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1235) } -inst_vcvtdq2ps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1235) } +inst_vcvtdq2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1246) } +inst_vcvtdq2ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1246) } +inst_vcvtdq2ps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1247) } +inst_vcvtdq2ps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1247) } emit_vcvtdq2ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtdq2ps_xmm_xmm(dst, src)) } emit_vcvtdq2ps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vcvtdq2ps_xmm_m128(dst, src)) } emit_vcvtdq2ps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vcvtdq2ps_ymm_ymm(dst, src)) } emit_vcvtdq2ps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vcvtdq2ps_ymm_m256(dst, src)) } -inst_vcvtdq2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1236) } -inst_vcvtdq2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1236) } -inst_vcvtdq2pd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1237) } -inst_vcvtdq2pd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1237) } +inst_vcvtdq2pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1248) } +inst_vcvtdq2pd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1248) } +inst_vcvtdq2pd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1249) } +inst_vcvtdq2pd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTDQ2PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1249) } emit_vcvtdq2pd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtdq2pd_xmm_xmm(dst, src)) } emit_vcvtdq2pd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vcvtdq2pd_xmm_m64(dst, src)) } emit_vcvtdq2pd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vcvtdq2pd_ymm_xmm(dst, src)) } emit_vcvtdq2pd_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vcvtdq2pd_ymm_m128(dst, src)) } -inst_vcvtss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1238) } -inst_vcvtss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 1238) } -inst_vcvtss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1239) } -inst_vcvtss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 1239) } +inst_vcvtss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1250) } +inst_vcvtss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 1250) } +inst_vcvtss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1251) } +inst_vcvtss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 1251) } emit_vcvtss2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vcvtss2si_r32_xmm(dst, src)) } emit_vcvtss2si_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_vcvtss2si_r32_m32(dst, src)) } emit_vcvtss2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_vcvtss2si_r64_xmm(dst, src)) } emit_vcvtss2si_r64_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem32) { append(instructions, inst_vcvtss2si_r64_m32(dst, src)) } -inst_vcvtsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1240) } -inst_vcvtsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 1240) } -inst_vcvtsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1241) } -inst_vcvtsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 1241) } +inst_vcvtsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1252) } +inst_vcvtsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 1252) } +inst_vcvtsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1253) } +inst_vcvtsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 1253) } emit_vcvtsd2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vcvtsd2si_r32_xmm(dst, src)) } emit_vcvtsd2si_r32_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem64) { append(instructions, inst_vcvtsd2si_r32_m64(dst, src)) } emit_vcvtsd2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_vcvtsd2si_r64_xmm(dst, src)) } emit_vcvtsd2si_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_vcvtsd2si_r64_m64(dst, src)) } -inst_vcvtsi2ss_xmm_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr32(src2), {}} }, 1242) } -inst_vcvtsi2ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1242) } -inst_vcvtsi2ss_xmm_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr64(src2), {}} }, 1243) } -inst_vcvtsi2ss_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1243) } +inst_vcvtsi2ss_xmm_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr32(src2), {}} }, 1254) } +inst_vcvtsi2ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1254) } +inst_vcvtsi2ss_xmm_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr64(src2), {}} }, 1255) } +inst_vcvtsi2ss_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1255) } emit_vcvtsi2ss_xmm_xmm_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR32) { append(instructions, inst_vcvtsi2ss_xmm_xmm_r32(dst, src, src2)) } emit_vcvtsi2ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vcvtsi2ss_xmm_xmm_m32(dst, src, src2)) } emit_vcvtsi2ss_xmm_xmm_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR64) { append(instructions, inst_vcvtsi2ss_xmm_xmm_r64(dst, src, src2)) } emit_vcvtsi2ss_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vcvtsi2ss_xmm_xmm_m64(dst, src, src2)) } -inst_vcvtsi2sd_xmm_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr32(src2), {}} }, 1244) } -inst_vcvtsi2sd_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1244) } -inst_vcvtsi2sd_xmm_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr64(src2), {}} }, 1245) } -inst_vcvtsi2sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1245) } +inst_vcvtsi2sd_xmm_xmm_r32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr32(src2), {}} }, 1256) } +inst_vcvtsi2sd_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1256) } +inst_vcvtsi2sd_xmm_xmm_r64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_gpr64(src2), {}} }, 1257) } +inst_vcvtsi2sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTSI2SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1257) } emit_vcvtsi2sd_xmm_xmm_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR32) { append(instructions, inst_vcvtsi2sd_xmm_xmm_r32(dst, src, src2)) } emit_vcvtsi2sd_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vcvtsi2sd_xmm_xmm_m32(dst, src, src2)) } emit_vcvtsi2sd_xmm_xmm_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR64) { append(instructions, inst_vcvtsi2sd_xmm_xmm_r64(dst, src, src2)) } emit_vcvtsi2sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vcvtsi2sd_xmm_xmm_m64(dst, src, src2)) } -inst_vcvttps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1246) } -inst_vcvttps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1246) } -inst_vcvttps2dq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1247) } -inst_vcvttps2dq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1247) } +inst_vcvttps2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1258) } +inst_vcvttps2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1258) } +inst_vcvttps2dq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1259) } +inst_vcvttps2dq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPS2DQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1259) } emit_vcvttps2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvttps2dq_xmm_xmm(dst, src)) } emit_vcvttps2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vcvttps2dq_xmm_m128(dst, src)) } emit_vcvttps2dq_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vcvttps2dq_ymm_ymm(dst, src)) } emit_vcvttps2dq_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vcvttps2dq_ymm_m256(dst, src)) } -inst_vcvttpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1248) } -inst_vcvttpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1248) } -inst_vcvttpd2dq_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1249) } -inst_vcvttpd2dq_xmm_m256 :: #force_inline proc "contextless" (dst: XMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 32), {}, {}} }, 1249) } +inst_vcvttpd2dq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1260) } +inst_vcvttpd2dq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1260) } +inst_vcvttpd2dq_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1261) } +inst_vcvttpd2dq_xmm_m256 :: #force_inline proc "contextless" (dst: XMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTPD2DQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 32), {}, {}} }, 1261) } emit_vcvttpd2dq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvttpd2dq_xmm_xmm(dst, src)) } emit_vcvttpd2dq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vcvttpd2dq_xmm_m128(dst, src)) } emit_vcvttpd2dq_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vcvttpd2dq_xmm_ymm(dst, src)) } emit_vcvttpd2dq_xmm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem256) { append(instructions, inst_vcvttpd2dq_xmm_m256(dst, src)) } -inst_vcvttss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1250) } -inst_vcvttss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 1250) } -inst_vcvttss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1251) } -inst_vcvttss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 1251) } +inst_vcvttss2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1262) } +inst_vcvttss2si_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 1262) } +inst_vcvttss2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1263) } +inst_vcvttss2si_r64_m32 :: #force_inline proc "contextless" (dst: GPR64, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSS2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 4), {}, {}} }, 1263) } emit_vcvttss2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vcvttss2si_r32_xmm(dst, src)) } emit_vcvttss2si_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_vcvttss2si_r32_m32(dst, src)) } emit_vcvttss2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_vcvttss2si_r64_xmm(dst, src)) } emit_vcvttss2si_r64_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem32) { append(instructions, inst_vcvttss2si_r64_m32(dst, src)) } -inst_vcvttsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1252) } -inst_vcvttsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 1252) } -inst_vcvttsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1253) } -inst_vcvttsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 1253) } +inst_vcvttsd2si_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1264) } +inst_vcvttsd2si_r32_m64 :: #force_inline proc "contextless" (dst: GPR32, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 8), {}, {}} }, 1264) } +inst_vcvttsd2si_r64_xmm :: #force_inline proc "contextless" (dst: GPR64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_xmm(src), {}, {}} }, 1265) } +inst_vcvttsd2si_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTTSD2SI, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 1265) } emit_vcvttsd2si_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vcvttsd2si_r32_xmm(dst, src)) } emit_vcvttsd2si_r32_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem64) { append(instructions, inst_vcvttsd2si_r32_m64(dst, src)) } emit_vcvttsd2si_r64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM) { append(instructions, inst_vcvttsd2si_r64_xmm(dst, src)) } emit_vcvttsd2si_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_vcvttsd2si_r64_m64(dst, src)) } -inst_vpaddb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1254) } -inst_vpaddb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1254) } -inst_vpaddb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1255) } -inst_vpaddb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1255) } +inst_vpaddb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1266) } +inst_vpaddb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1266) } +inst_vpaddb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1267) } +inst_vpaddb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1267) } emit_vpaddb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpaddb_xmm_xmm_xmm(dst, src, src2)) } emit_vpaddb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpaddb_xmm_xmm_m128(dst, src, src2)) } emit_vpaddb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpaddb_ymm_ymm_ymm(dst, src, src2)) } emit_vpaddb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpaddb_ymm_ymm_m256(dst, src, src2)) } -inst_vpaddw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1256) } -inst_vpaddw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1256) } -inst_vpaddw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1257) } -inst_vpaddw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1257) } +inst_vpaddw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1268) } +inst_vpaddw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1268) } +inst_vpaddw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1269) } +inst_vpaddw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1269) } emit_vpaddw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpaddw_xmm_xmm_xmm(dst, src, src2)) } emit_vpaddw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpaddw_xmm_xmm_m128(dst, src, src2)) } emit_vpaddw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpaddw_ymm_ymm_ymm(dst, src, src2)) } emit_vpaddw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpaddw_ymm_ymm_m256(dst, src, src2)) } -inst_vpaddd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1258) } -inst_vpaddd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1258) } -inst_vpaddd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1259) } -inst_vpaddd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1259) } +inst_vpaddd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1270) } +inst_vpaddd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1270) } +inst_vpaddd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1271) } +inst_vpaddd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1271) } emit_vpaddd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpaddd_xmm_xmm_xmm(dst, src, src2)) } emit_vpaddd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpaddd_xmm_xmm_m128(dst, src, src2)) } emit_vpaddd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpaddd_ymm_ymm_ymm(dst, src, src2)) } emit_vpaddd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpaddd_ymm_ymm_m256(dst, src, src2)) } -inst_vpaddq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1260) } -inst_vpaddq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1260) } -inst_vpaddq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1261) } -inst_vpaddq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1261) } +inst_vpaddq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1272) } +inst_vpaddq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1272) } +inst_vpaddq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1273) } +inst_vpaddq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPADDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1273) } emit_vpaddq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpaddq_xmm_xmm_xmm(dst, src, src2)) } emit_vpaddq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpaddq_xmm_xmm_m128(dst, src, src2)) } emit_vpaddq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpaddq_ymm_ymm_ymm(dst, src, src2)) } emit_vpaddq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpaddq_ymm_ymm_m256(dst, src, src2)) } -inst_vpsubb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1262) } -inst_vpsubb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1262) } -inst_vpsubb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1263) } -inst_vpsubb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1263) } +inst_vpsubb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1274) } +inst_vpsubb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1274) } +inst_vpsubb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1275) } +inst_vpsubb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1275) } emit_vpsubb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsubb_xmm_xmm_xmm(dst, src, src2)) } emit_vpsubb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsubb_xmm_xmm_m128(dst, src, src2)) } emit_vpsubb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsubb_ymm_ymm_ymm(dst, src, src2)) } emit_vpsubb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsubb_ymm_ymm_m256(dst, src, src2)) } -inst_vpsubw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1264) } -inst_vpsubw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1264) } -inst_vpsubw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1265) } -inst_vpsubw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1265) } +inst_vpsubw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1276) } +inst_vpsubw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1276) } +inst_vpsubw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1277) } +inst_vpsubw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1277) } emit_vpsubw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsubw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsubw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsubw_xmm_xmm_m128(dst, src, src2)) } emit_vpsubw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsubw_ymm_ymm_ymm(dst, src, src2)) } emit_vpsubw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsubw_ymm_ymm_m256(dst, src, src2)) } -inst_vpsubd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1266) } -inst_vpsubd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1266) } -inst_vpsubd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1267) } -inst_vpsubd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1267) } +inst_vpsubd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1278) } +inst_vpsubd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1278) } +inst_vpsubd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1279) } +inst_vpsubd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1279) } emit_vpsubd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsubd_xmm_xmm_xmm(dst, src, src2)) } emit_vpsubd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsubd_xmm_xmm_m128(dst, src, src2)) } emit_vpsubd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsubd_ymm_ymm_ymm(dst, src, src2)) } emit_vpsubd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsubd_ymm_ymm_m256(dst, src, src2)) } -inst_vpsubq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1268) } -inst_vpsubq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1268) } -inst_vpsubq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1269) } -inst_vpsubq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1269) } +inst_vpsubq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1280) } +inst_vpsubq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1280) } +inst_vpsubq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1281) } +inst_vpsubq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSUBQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1281) } emit_vpsubq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsubq_xmm_xmm_xmm(dst, src, src2)) } emit_vpsubq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsubq_xmm_xmm_m128(dst, src, src2)) } emit_vpsubq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsubq_ymm_ymm_ymm(dst, src, src2)) } emit_vpsubq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsubq_ymm_ymm_m256(dst, src, src2)) } -inst_vpmullw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1270) } -inst_vpmullw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1270) } -inst_vpmullw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1271) } -inst_vpmullw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1271) } +inst_vpmullw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1282) } +inst_vpmullw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1282) } +inst_vpmullw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1283) } +inst_vpmullw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1283) } emit_vpmullw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmullw_xmm_xmm_xmm(dst, src, src2)) } emit_vpmullw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmullw_xmm_xmm_m128(dst, src, src2)) } emit_vpmullw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmullw_ymm_ymm_ymm(dst, src, src2)) } emit_vpmullw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmullw_ymm_ymm_m256(dst, src, src2)) } -inst_vpmulhw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1272) } -inst_vpmulhw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1272) } -inst_vpmulhw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1273) } -inst_vpmulhw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1273) } +inst_vpmulhw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1284) } +inst_vpmulhw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1284) } +inst_vpmulhw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1285) } +inst_vpmulhw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1285) } emit_vpmulhw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmulhw_xmm_xmm_xmm(dst, src, src2)) } emit_vpmulhw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmulhw_xmm_xmm_m128(dst, src, src2)) } emit_vpmulhw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmulhw_ymm_ymm_ymm(dst, src, src2)) } emit_vpmulhw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmulhw_ymm_ymm_m256(dst, src, src2)) } -inst_vpmulhuw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1274) } -inst_vpmulhuw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1274) } -inst_vpmulhuw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1275) } -inst_vpmulhuw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1275) } +inst_vpmulhuw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1286) } +inst_vpmulhuw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1286) } +inst_vpmulhuw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1287) } +inst_vpmulhuw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1287) } emit_vpmulhuw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmulhuw_xmm_xmm_xmm(dst, src, src2)) } emit_vpmulhuw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmulhuw_xmm_xmm_m128(dst, src, src2)) } emit_vpmulhuw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmulhuw_ymm_ymm_ymm(dst, src, src2)) } emit_vpmulhuw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmulhuw_ymm_ymm_m256(dst, src, src2)) } -inst_vpmuludq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1276) } -inst_vpmuludq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1276) } -inst_vpmuludq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1277) } -inst_vpmuludq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1277) } +inst_vpmuludq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1288) } +inst_vpmuludq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1288) } +inst_vpmuludq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1289) } +inst_vpmuludq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULUDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1289) } emit_vpmuludq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmuludq_xmm_xmm_xmm(dst, src, src2)) } emit_vpmuludq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmuludq_xmm_xmm_m128(dst, src, src2)) } emit_vpmuludq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmuludq_ymm_ymm_ymm(dst, src, src2)) } emit_vpmuludq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmuludq_ymm_ymm_m256(dst, src, src2)) } -inst_vpmaddwd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1278) } -inst_vpmaddwd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1278) } -inst_vpmaddwd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1279) } -inst_vpmaddwd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1279) } +inst_vpmaddwd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1290) } +inst_vpmaddwd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1290) } +inst_vpmaddwd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1291) } +inst_vpmaddwd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1291) } emit_vpmaddwd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmaddwd_xmm_xmm_xmm(dst, src, src2)) } emit_vpmaddwd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaddwd_xmm_xmm_m128(dst, src, src2)) } emit_vpmaddwd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmaddwd_ymm_ymm_ymm(dst, src, src2)) } emit_vpmaddwd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaddwd_ymm_ymm_m256(dst, src, src2)) } -inst_vpand_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1280) } -inst_vpand_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1280) } -inst_vpand_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1281) } -inst_vpand_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1281) } +inst_vpand_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1292) } +inst_vpand_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1292) } +inst_vpand_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1293) } +inst_vpand_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPAND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1293) } emit_vpand_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpand_xmm_xmm_xmm(dst, src, src2)) } emit_vpand_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpand_xmm_xmm_m128(dst, src, src2)) } emit_vpand_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpand_ymm_ymm_ymm(dst, src, src2)) } emit_vpand_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpand_ymm_ymm_m256(dst, src, src2)) } -inst_vpandn_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1282) } -inst_vpandn_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1282) } -inst_vpandn_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1283) } -inst_vpandn_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1283) } +inst_vpandn_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1294) } +inst_vpandn_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1294) } +inst_vpandn_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1295) } +inst_vpandn_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPANDN, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1295) } emit_vpandn_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpandn_xmm_xmm_xmm(dst, src, src2)) } emit_vpandn_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpandn_xmm_xmm_m128(dst, src, src2)) } emit_vpandn_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpandn_ymm_ymm_ymm(dst, src, src2)) } emit_vpandn_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpandn_ymm_ymm_m256(dst, src, src2)) } -inst_vpor_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1284) } -inst_vpor_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1284) } -inst_vpor_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1285) } -inst_vpor_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1285) } +inst_vpor_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1296) } +inst_vpor_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1296) } +inst_vpor_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1297) } +inst_vpor_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1297) } emit_vpor_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpor_xmm_xmm_xmm(dst, src, src2)) } emit_vpor_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpor_xmm_xmm_m128(dst, src, src2)) } emit_vpor_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpor_ymm_ymm_ymm(dst, src, src2)) } emit_vpor_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpor_ymm_ymm_m256(dst, src, src2)) } -inst_vpxor_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1286) } -inst_vpxor_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1286) } -inst_vpxor_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1287) } -inst_vpxor_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1287) } +inst_vpxor_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1298) } +inst_vpxor_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1298) } +inst_vpxor_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1299) } +inst_vpxor_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPXOR, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1299) } emit_vpxor_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpxor_xmm_xmm_xmm(dst, src, src2)) } emit_vpxor_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpxor_xmm_xmm_m128(dst, src, src2)) } emit_vpxor_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpxor_ymm_ymm_ymm(dst, src, src2)) } emit_vpxor_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpxor_ymm_ymm_m256(dst, src, src2)) } -inst_vpsllw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1288) } -inst_vpsllw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1288) } -inst_vpsllw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1289) } -inst_vpsllw_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1290) } -inst_vpsllw_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1290) } -inst_vpsllw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1291) } +inst_vpsllw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1300) } +inst_vpsllw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1300) } +inst_vpsllw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1301) } +inst_vpsllw_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1302) } +inst_vpsllw_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1302) } +inst_vpsllw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1303) } emit_vpsllw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsllw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsllw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsllw_xmm_xmm_m128(dst, src, src2)) } emit_vpsllw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsllw_xmm_xmm_imm8(dst, src, imm)) } emit_vpsllw_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsllw_ymm_ymm_xmm(dst, src, src2)) } emit_vpsllw_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsllw_ymm_ymm_m128(dst, src, src2)) } emit_vpsllw_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsllw_ymm_ymm_imm8(dst, src, imm)) } -inst_vpslld_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1292) } -inst_vpslld_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1292) } -inst_vpslld_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1293) } -inst_vpslld_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1294) } -inst_vpslld_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1294) } -inst_vpslld_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1295) } +inst_vpslld_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1304) } +inst_vpslld_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1304) } +inst_vpslld_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1305) } +inst_vpslld_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1306) } +inst_vpslld_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1306) } +inst_vpslld_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1307) } emit_vpslld_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpslld_xmm_xmm_xmm(dst, src, src2)) } emit_vpslld_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpslld_xmm_xmm_m128(dst, src, src2)) } emit_vpslld_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpslld_xmm_xmm_imm8(dst, src, imm)) } emit_vpslld_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpslld_ymm_ymm_xmm(dst, src, src2)) } emit_vpslld_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpslld_ymm_ymm_m128(dst, src, src2)) } emit_vpslld_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpslld_ymm_ymm_imm8(dst, src, imm)) } -inst_vpsllq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1296) } -inst_vpsllq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1296) } -inst_vpsllq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1297) } -inst_vpsllq_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1298) } -inst_vpsllq_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1298) } -inst_vpsllq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1299) } +inst_vpsllq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1308) } +inst_vpsllq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1308) } +inst_vpsllq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1309) } +inst_vpsllq_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1310) } +inst_vpsllq_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1310) } +inst_vpsllq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1311) } emit_vpsllq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsllq_xmm_xmm_xmm(dst, src, src2)) } emit_vpsllq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsllq_xmm_xmm_m128(dst, src, src2)) } emit_vpsllq_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsllq_xmm_xmm_imm8(dst, src, imm)) } emit_vpsllq_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsllq_ymm_ymm_xmm(dst, src, src2)) } emit_vpsllq_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsllq_ymm_ymm_m128(dst, src, src2)) } emit_vpsllq_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsllq_ymm_ymm_imm8(dst, src, imm)) } -inst_vpsrlw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1300) } -inst_vpsrlw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1300) } -inst_vpsrlw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1301) } -inst_vpsrlw_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1302) } -inst_vpsrlw_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1302) } -inst_vpsrlw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1303) } +inst_vpsrlw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1312) } +inst_vpsrlw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1312) } +inst_vpsrlw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1313) } +inst_vpsrlw_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1314) } +inst_vpsrlw_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1314) } +inst_vpsrlw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1315) } emit_vpsrlw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrlw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrlw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrlw_xmm_xmm_m128(dst, src, src2)) } emit_vpsrlw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsrlw_xmm_xmm_imm8(dst, src, imm)) } emit_vpsrlw_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsrlw_ymm_ymm_xmm(dst, src, src2)) } emit_vpsrlw_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsrlw_ymm_ymm_m128(dst, src, src2)) } emit_vpsrlw_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsrlw_ymm_ymm_imm8(dst, src, imm)) } -inst_vpsrld_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1304) } -inst_vpsrld_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1304) } -inst_vpsrld_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1305) } -inst_vpsrld_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1306) } -inst_vpsrld_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1306) } -inst_vpsrld_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1307) } +inst_vpsrld_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1316) } +inst_vpsrld_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1316) } +inst_vpsrld_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1317) } +inst_vpsrld_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1318) } +inst_vpsrld_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1318) } +inst_vpsrld_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1319) } emit_vpsrld_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrld_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrld_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrld_xmm_xmm_m128(dst, src, src2)) } emit_vpsrld_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsrld_xmm_xmm_imm8(dst, src, imm)) } emit_vpsrld_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsrld_ymm_ymm_xmm(dst, src, src2)) } emit_vpsrld_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsrld_ymm_ymm_m128(dst, src, src2)) } emit_vpsrld_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsrld_ymm_ymm_imm8(dst, src, imm)) } -inst_vpsrlq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1308) } -inst_vpsrlq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1308) } -inst_vpsrlq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1309) } -inst_vpsrlq_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1310) } -inst_vpsrlq_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1310) } -inst_vpsrlq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1311) } +inst_vpsrlq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1320) } +inst_vpsrlq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1320) } +inst_vpsrlq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1321) } +inst_vpsrlq_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1322) } +inst_vpsrlq_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1322) } +inst_vpsrlq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1323) } emit_vpsrlq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrlq_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrlq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrlq_xmm_xmm_m128(dst, src, src2)) } emit_vpsrlq_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsrlq_xmm_xmm_imm8(dst, src, imm)) } emit_vpsrlq_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsrlq_ymm_ymm_xmm(dst, src, src2)) } emit_vpsrlq_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsrlq_ymm_ymm_m128(dst, src, src2)) } emit_vpsrlq_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsrlq_ymm_ymm_imm8(dst, src, imm)) } -inst_vpsraw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1312) } -inst_vpsraw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1312) } -inst_vpsraw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1313) } -inst_vpsraw_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1314) } -inst_vpsraw_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1314) } -inst_vpsraw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1315) } +inst_vpsraw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1324) } +inst_vpsraw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1324) } +inst_vpsraw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1325) } +inst_vpsraw_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1326) } +inst_vpsraw_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1326) } +inst_vpsraw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1327) } emit_vpsraw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsraw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsraw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsraw_xmm_xmm_m128(dst, src, src2)) } emit_vpsraw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsraw_xmm_xmm_imm8(dst, src, imm)) } emit_vpsraw_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsraw_ymm_ymm_xmm(dst, src, src2)) } emit_vpsraw_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsraw_ymm_ymm_m128(dst, src, src2)) } emit_vpsraw_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsraw_ymm_ymm_imm8(dst, src, imm)) } -inst_vpsrad_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1316) } -inst_vpsrad_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1316) } -inst_vpsrad_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1317) } -inst_vpsrad_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1318) } -inst_vpsrad_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1318) } -inst_vpsrad_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1319) } +inst_vpsrad_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1328) } +inst_vpsrad_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1328) } +inst_vpsrad_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1329) } +inst_vpsrad_ymm_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), {}} }, 1330) } +inst_vpsrad_ymm_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), {}} }, 1330) } +inst_vpsrad_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1331) } emit_vpsrad_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrad_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrad_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrad_xmm_xmm_m128(dst, src, src2)) } emit_vpsrad_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpsrad_xmm_xmm_imm8(dst, src, imm)) } emit_vpsrad_ymm_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM) { append(instructions, inst_vpsrad_ymm_ymm_xmm(dst, src, src2)) } emit_vpsrad_ymm_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128) { append(instructions, inst_vpsrad_ymm_ymm_m128(dst, src, src2)) } emit_vpsrad_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpsrad_ymm_ymm_imm8(dst, src, imm)) } -inst_vpcmpeqb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1320) } -inst_vpcmpeqb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1320) } -inst_vpcmpeqb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1321) } -inst_vpcmpeqb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1321) } +inst_vpcmpeqb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1332) } +inst_vpcmpeqb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1332) } +inst_vpcmpeqb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1333) } +inst_vpcmpeqb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1333) } emit_vpcmpeqb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpeqb_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpeqb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpeqb_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpeqb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpeqb_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpeqb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpeqb_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpeqw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1322) } -inst_vpcmpeqw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1322) } -inst_vpcmpeqw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1323) } -inst_vpcmpeqw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1323) } +inst_vpcmpeqw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1334) } +inst_vpcmpeqw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1334) } +inst_vpcmpeqw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1335) } +inst_vpcmpeqw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1335) } emit_vpcmpeqw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpeqw_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpeqw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpeqw_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpeqw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpeqw_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpeqw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpeqw_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpeqd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1324) } -inst_vpcmpeqd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1324) } -inst_vpcmpeqd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1325) } -inst_vpcmpeqd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1325) } +inst_vpcmpeqd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1336) } +inst_vpcmpeqd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1336) } +inst_vpcmpeqd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1337) } +inst_vpcmpeqd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1337) } emit_vpcmpeqd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpeqd_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpeqd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpeqd_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpeqd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpeqd_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpeqd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpeqd_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpeqq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1326) } -inst_vpcmpeqq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1326) } -inst_vpcmpeqq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1327) } -inst_vpcmpeqq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1327) } +inst_vpcmpeqq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1338) } +inst_vpcmpeqq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1338) } +inst_vpcmpeqq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1339) } +inst_vpcmpeqq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPEQQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1339) } emit_vpcmpeqq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpeqq_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpeqq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpeqq_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpeqq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpeqq_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpeqq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpeqq_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpgtb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1328) } -inst_vpcmpgtb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1328) } -inst_vpcmpgtb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1329) } -inst_vpcmpgtb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1329) } +inst_vpcmpgtb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1340) } +inst_vpcmpgtb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1340) } +inst_vpcmpgtb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1341) } +inst_vpcmpgtb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1341) } emit_vpcmpgtb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpgtb_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpgtb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpgtb_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpgtb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpgtb_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpgtb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpgtb_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpgtw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1330) } -inst_vpcmpgtw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1330) } -inst_vpcmpgtw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1331) } -inst_vpcmpgtw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1331) } +inst_vpcmpgtw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1342) } +inst_vpcmpgtw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1342) } +inst_vpcmpgtw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1343) } +inst_vpcmpgtw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1343) } emit_vpcmpgtw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpgtw_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpgtw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpgtw_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpgtw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpgtw_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpgtw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpgtw_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpgtd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1332) } -inst_vpcmpgtd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1332) } -inst_vpcmpgtd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1333) } -inst_vpcmpgtd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1333) } +inst_vpcmpgtd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1344) } +inst_vpcmpgtd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1344) } +inst_vpcmpgtd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1345) } +inst_vpcmpgtd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1345) } emit_vpcmpgtd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpgtd_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpgtd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpgtd_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpgtd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpgtd_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpgtd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpgtd_ymm_ymm_m256(dst, src, src2)) } -inst_vpcmpgtq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1334) } -inst_vpcmpgtq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1334) } -inst_vpcmpgtq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1335) } -inst_vpcmpgtq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1335) } +inst_vpcmpgtq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1346) } +inst_vpcmpgtq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1346) } +inst_vpcmpgtq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1347) } +inst_vpcmpgtq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPGTQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1347) } emit_vpcmpgtq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpcmpgtq_xmm_xmm_xmm(dst, src, src2)) } emit_vpcmpgtq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpcmpgtq_xmm_xmm_m128(dst, src, src2)) } emit_vpcmpgtq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpcmpgtq_ymm_ymm_ymm(dst, src, src2)) } emit_vpcmpgtq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpcmpgtq_ymm_ymm_m256(dst, src, src2)) } -inst_vpacksswb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1336) } -inst_vpacksswb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1336) } -inst_vpacksswb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1337) } -inst_vpacksswb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1337) } +inst_vpacksswb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1348) } +inst_vpacksswb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1348) } +inst_vpacksswb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1349) } +inst_vpacksswb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1349) } emit_vpacksswb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpacksswb_xmm_xmm_xmm(dst, src, src2)) } emit_vpacksswb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpacksswb_xmm_xmm_m128(dst, src, src2)) } emit_vpacksswb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpacksswb_ymm_ymm_ymm(dst, src, src2)) } emit_vpacksswb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpacksswb_ymm_ymm_m256(dst, src, src2)) } -inst_vpackssdw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1338) } -inst_vpackssdw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1338) } -inst_vpackssdw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1339) } -inst_vpackssdw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1339) } +inst_vpackssdw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1350) } +inst_vpackssdw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1350) } +inst_vpackssdw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1351) } +inst_vpackssdw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKSSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1351) } emit_vpackssdw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpackssdw_xmm_xmm_xmm(dst, src, src2)) } emit_vpackssdw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpackssdw_xmm_xmm_m128(dst, src, src2)) } emit_vpackssdw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpackssdw_ymm_ymm_ymm(dst, src, src2)) } emit_vpackssdw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpackssdw_ymm_ymm_m256(dst, src, src2)) } -inst_vpackuswb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1340) } -inst_vpackuswb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1340) } -inst_vpackuswb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1341) } -inst_vpackuswb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1341) } +inst_vpackuswb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1352) } +inst_vpackuswb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1352) } +inst_vpackuswb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1353) } +inst_vpackuswb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSWB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1353) } emit_vpackuswb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpackuswb_xmm_xmm_xmm(dst, src, src2)) } emit_vpackuswb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpackuswb_xmm_xmm_m128(dst, src, src2)) } emit_vpackuswb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpackuswb_ymm_ymm_ymm(dst, src, src2)) } emit_vpackuswb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpackuswb_ymm_ymm_m256(dst, src, src2)) } -inst_vpackusdw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1342) } -inst_vpackusdw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1342) } -inst_vpackusdw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1343) } -inst_vpackusdw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1343) } +inst_vpackusdw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1354) } +inst_vpackusdw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1354) } +inst_vpackusdw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1355) } +inst_vpackusdw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPACKUSDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1355) } emit_vpackusdw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpackusdw_xmm_xmm_xmm(dst, src, src2)) } emit_vpackusdw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpackusdw_xmm_xmm_m128(dst, src, src2)) } emit_vpackusdw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpackusdw_ymm_ymm_ymm(dst, src, src2)) } emit_vpackusdw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpackusdw_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpcklbw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1344) } -inst_vpunpcklbw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1344) } -inst_vpunpcklbw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1345) } -inst_vpunpcklbw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1345) } +inst_vpunpcklbw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1356) } +inst_vpunpcklbw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1356) } +inst_vpunpcklbw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1357) } +inst_vpunpcklbw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1357) } emit_vpunpcklbw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpcklbw_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpcklbw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpcklbw_xmm_xmm_m128(dst, src, src2)) } emit_vpunpcklbw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpcklbw_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpcklbw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpcklbw_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpcklwd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1346) } -inst_vpunpcklwd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1346) } -inst_vpunpcklwd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1347) } -inst_vpunpcklwd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1347) } +inst_vpunpcklwd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1358) } +inst_vpunpcklwd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1358) } +inst_vpunpcklwd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1359) } +inst_vpunpcklwd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1359) } emit_vpunpcklwd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpcklwd_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpcklwd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpcklwd_xmm_xmm_m128(dst, src, src2)) } emit_vpunpcklwd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpcklwd_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpcklwd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpcklwd_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpckldq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1348) } -inst_vpunpckldq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1348) } -inst_vpunpckldq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1349) } -inst_vpunpckldq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1349) } +inst_vpunpckldq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1360) } +inst_vpunpckldq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1360) } +inst_vpunpckldq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1361) } +inst_vpunpckldq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1361) } emit_vpunpckldq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpckldq_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpckldq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpckldq_xmm_xmm_m128(dst, src, src2)) } emit_vpunpckldq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpckldq_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpckldq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpckldq_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpcklqdq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1350) } -inst_vpunpcklqdq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1350) } -inst_vpunpcklqdq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1351) } -inst_vpunpcklqdq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1351) } +inst_vpunpcklqdq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1362) } +inst_vpunpcklqdq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1362) } +inst_vpunpcklqdq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1363) } +inst_vpunpcklqdq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKLQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1363) } emit_vpunpcklqdq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpcklqdq_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpcklqdq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpcklqdq_xmm_xmm_m128(dst, src, src2)) } emit_vpunpcklqdq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpcklqdq_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpcklqdq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpcklqdq_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpckhbw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1352) } -inst_vpunpckhbw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1352) } -inst_vpunpckhbw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1353) } -inst_vpunpckhbw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1353) } +inst_vpunpckhbw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1364) } +inst_vpunpckhbw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1364) } +inst_vpunpckhbw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1365) } +inst_vpunpckhbw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1365) } emit_vpunpckhbw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpckhbw_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpckhbw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpckhbw_xmm_xmm_m128(dst, src, src2)) } emit_vpunpckhbw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpckhbw_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpckhbw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpckhbw_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpckhwd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1354) } -inst_vpunpckhwd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1354) } -inst_vpunpckhwd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1355) } -inst_vpunpckhwd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1355) } +inst_vpunpckhwd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1366) } +inst_vpunpckhwd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1366) } +inst_vpunpckhwd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1367) } +inst_vpunpckhwd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHWD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1367) } emit_vpunpckhwd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpckhwd_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpckhwd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpckhwd_xmm_xmm_m128(dst, src, src2)) } emit_vpunpckhwd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpckhwd_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpckhwd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpckhwd_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpckhdq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1356) } -inst_vpunpckhdq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1356) } -inst_vpunpckhdq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1357) } -inst_vpunpckhdq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1357) } +inst_vpunpckhdq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1368) } +inst_vpunpckhdq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1368) } +inst_vpunpckhdq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1369) } +inst_vpunpckhdq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1369) } emit_vpunpckhdq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpckhdq_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpckhdq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpckhdq_xmm_xmm_m128(dst, src, src2)) } emit_vpunpckhdq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpckhdq_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpckhdq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpckhdq_ymm_ymm_m256(dst, src, src2)) } -inst_vpunpckhqdq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1358) } -inst_vpunpckhqdq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1358) } -inst_vpunpckhqdq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1359) } -inst_vpunpckhqdq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1359) } +inst_vpunpckhqdq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1370) } +inst_vpunpckhqdq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1370) } +inst_vpunpckhqdq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1371) } +inst_vpunpckhqdq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPUNPCKHQDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1371) } emit_vpunpckhqdq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpunpckhqdq_xmm_xmm_xmm(dst, src, src2)) } emit_vpunpckhqdq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpunpckhqdq_xmm_xmm_m128(dst, src, src2)) } emit_vpunpckhqdq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpunpckhqdq_ymm_ymm_ymm(dst, src, src2)) } emit_vpunpckhqdq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpunpckhqdq_ymm_ymm_m256(dst, src, src2)) } -inst_vpshufd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1360) } -inst_vpshufd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1360) } -inst_vpshufd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1361) } -inst_vpshufd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1361) } +inst_vpshufd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1372) } +inst_vpshufd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1372) } +inst_vpshufd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1373) } +inst_vpshufd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1373) } emit_vpshufd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpshufd_xmm_xmm_imm8(dst, src, imm)) } emit_vpshufd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpshufd_xmm_m128_imm8(dst, src, imm)) } emit_vpshufd_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpshufd_ymm_ymm_imm8(dst, src, imm)) } emit_vpshufd_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vpshufd_ymm_m256_imm8(dst, src, imm)) } -inst_vpshufhw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1362) } -inst_vpshufhw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1362) } -inst_vpshufhw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1363) } -inst_vpshufhw_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1363) } +inst_vpshufhw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1374) } +inst_vpshufhw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1374) } +inst_vpshufhw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1375) } +inst_vpshufhw_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFHW, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1375) } emit_vpshufhw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpshufhw_xmm_xmm_imm8(dst, src, imm)) } emit_vpshufhw_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpshufhw_xmm_m128_imm8(dst, src, imm)) } emit_vpshufhw_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpshufhw_ymm_ymm_imm8(dst, src, imm)) } emit_vpshufhw_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vpshufhw_ymm_m256_imm8(dst, src, imm)) } -inst_vpshuflw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1364) } -inst_vpshuflw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1364) } -inst_vpshuflw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1365) } -inst_vpshuflw_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1365) } +inst_vpshuflw_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1376) } +inst_vpshuflw_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1376) } +inst_vpshuflw_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1377) } +inst_vpshuflw_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFLW, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1377) } emit_vpshuflw_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vpshuflw_xmm_xmm_imm8(dst, src, imm)) } emit_vpshuflw_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vpshuflw_xmm_m128_imm8(dst, src, imm)) } emit_vpshuflw_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpshuflw_ymm_ymm_imm8(dst, src, imm)) } emit_vpshuflw_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vpshuflw_ymm_m256_imm8(dst, src, imm)) } -inst_vpextrb_r8_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRB, operand_count = 3, ops = {op_gpr8(dst), op_xmm(src), op_imm8(imm), {}} }, 1366) } -inst_vpextrb_m8_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRB, operand_count = 3, ops = {op_mem(dst.mem, 1), op_xmm(src), op_imm8(imm), {}} }, 1366) } +inst_vpextrb_r8_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRB, operand_count = 3, ops = {op_gpr8(dst), op_xmm(src), op_imm8(imm), {}} }, 1378) } +inst_vpextrb_m8_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem8, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRB, operand_count = 3, ops = {op_mem(dst.mem, 1), op_xmm(src), op_imm8(imm), {}} }, 1378) } emit_vpextrb_r8_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, src: XMM, imm: i8) { append(instructions, inst_vpextrb_r8_xmm_imm8(dst, src, imm)) } emit_vpextrb_m8_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8, src: XMM, imm: i8) { append(instructions, inst_vpextrb_m8_xmm_imm8(dst, src, imm)) } -inst_vpextrw_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRW, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 1367) } -inst_vpextrw_r16_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR16, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRW, operand_count = 3, ops = {op_gpr16(dst), op_xmm(src), op_imm8(imm), {}} }, 1368) } -inst_vpextrw_m16_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem16, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRW, operand_count = 3, ops = {op_mem(dst.mem, 2), op_xmm(src), op_imm8(imm), {}} }, 1368) } +inst_vpextrw_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRW, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 1379) } +inst_vpextrw_r16_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR16, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRW, operand_count = 3, ops = {op_gpr16(dst), op_xmm(src), op_imm8(imm), {}} }, 1380) } +inst_vpextrw_m16_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem16, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRW, operand_count = 3, ops = {op_mem(dst.mem, 2), op_xmm(src), op_imm8(imm), {}} }, 1380) } emit_vpextrw_r32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM, imm: i8) { append(instructions, inst_vpextrw_r32_xmm_imm8(dst, src, imm)) } emit_vpextrw_r16_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: XMM, imm: i8) { append(instructions, inst_vpextrw_r16_xmm_imm8(dst, src, imm)) } emit_vpextrw_m16_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: XMM, imm: i8) { append(instructions, inst_vpextrw_m16_xmm_imm8(dst, src, imm)) } -inst_vpextrd_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRD, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 1369) } -inst_vpextrd_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 1369) } +inst_vpextrd_r32_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRD, operand_count = 3, ops = {op_gpr32(dst), op_xmm(src), op_imm8(imm), {}} }, 1381) } +inst_vpextrd_m32_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem32, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRD, operand_count = 3, ops = {op_mem(dst.mem, 4), op_xmm(src), op_imm8(imm), {}} }, 1381) } emit_vpextrd_r32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM, imm: i8) { append(instructions, inst_vpextrd_r32_xmm_imm8(dst, src, imm)) } emit_vpextrd_m32_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM, imm: i8) { append(instructions, inst_vpextrd_m32_xmm_imm8(dst, src, imm)) } -inst_vpextrq_r64_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRQ, operand_count = 3, ops = {op_gpr64(dst), op_xmm(src), op_imm8(imm), {}} }, 1370) } -inst_vpextrq_m64_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRQ, operand_count = 3, ops = {op_mem(dst.mem, 8), op_xmm(src), op_imm8(imm), {}} }, 1370) } +inst_vpextrq_r64_xmm_imm8 :: #force_inline proc "contextless" (dst: GPR64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRQ, operand_count = 3, ops = {op_gpr64(dst), op_xmm(src), op_imm8(imm), {}} }, 1382) } +inst_vpextrq_m64_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXTRQ, operand_count = 3, ops = {op_mem(dst.mem, 8), op_xmm(src), op_imm8(imm), {}} }, 1382) } emit_vpextrq_r64_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: XMM, imm: i8) { append(instructions, inst_vpextrq_r64_xmm_imm8(dst, src, imm)) } emit_vpextrq_m64_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM, imm: i8) { append(instructions, inst_vpextrq_m64_xmm_imm8(dst, src, imm)) } -inst_vpinsrb_xmm_xmm_r8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr8(src2), op_imm8(imm)} }, 1371) } -inst_vpinsrb_xmm_xmm_m8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 1), op_imm8(imm)} }, 1371) } +inst_vpinsrb_xmm_xmm_r8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr8(src2), op_imm8(imm)} }, 1383) } +inst_vpinsrb_xmm_xmm_m8_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem8, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 1), op_imm8(imm)} }, 1383) } emit_vpinsrb_xmm_xmm_r8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR8, imm: i8) { append(instructions, inst_vpinsrb_xmm_xmm_r8_imm8(dst, src, src2, imm)) } emit_vpinsrb_xmm_xmm_m8_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem8, imm: i8) { append(instructions, inst_vpinsrb_xmm_xmm_m8_imm8(dst, src, src2, imm)) } -inst_vpinsrw_xmm_xmm_r16_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr16(src2), op_imm8(imm)} }, 1372) } -inst_vpinsrw_xmm_xmm_m16_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 2), op_imm8(imm)} }, 1372) } +inst_vpinsrw_xmm_xmm_r16_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr16(src2), op_imm8(imm)} }, 1384) } +inst_vpinsrw_xmm_xmm_m16_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem16, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 2), op_imm8(imm)} }, 1384) } emit_vpinsrw_xmm_xmm_r16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR16, imm: i8) { append(instructions, inst_vpinsrw_xmm_xmm_r16_imm8(dst, src, src2, imm)) } emit_vpinsrw_xmm_xmm_m16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem16, imm: i8) { append(instructions, inst_vpinsrw_xmm_xmm_m16_imm8(dst, src, src2, imm)) } -inst_vpinsrd_xmm_xmm_r32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr32(src2), op_imm8(imm)} }, 1373) } -inst_vpinsrd_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1373) } +inst_vpinsrd_xmm_xmm_r32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr32(src2), op_imm8(imm)} }, 1385) } +inst_vpinsrd_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1385) } emit_vpinsrd_xmm_xmm_r32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR32, imm: i8) { append(instructions, inst_vpinsrd_xmm_xmm_r32_imm8(dst, src, src2, imm)) } emit_vpinsrd_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vpinsrd_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vpinsrq_xmm_xmm_r64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr64(src2), op_imm8(imm)} }, 1374) } -inst_vpinsrq_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1374) } +inst_vpinsrq_xmm_xmm_r64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: GPR64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_gpr64(src2), op_imm8(imm)} }, 1386) } +inst_vpinsrq_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPINSRQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1386) } emit_vpinsrq_xmm_xmm_r64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: GPR64, imm: i8) { append(instructions, inst_vpinsrq_xmm_xmm_r64_imm8(dst, src, src2, imm)) } emit_vpinsrq_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vpinsrq_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vpmovmskb_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVMSKB, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1375) } -inst_vpmovmskb_r32_ymm :: #force_inline proc "contextless" (dst: GPR32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVMSKB, operand_count = 2, ops = {op_gpr32(dst), op_ymm(src), {}, {}} }, 1376) } +inst_vpmovmskb_r32_xmm :: #force_inline proc "contextless" (dst: GPR32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVMSKB, operand_count = 2, ops = {op_gpr32(dst), op_xmm(src), {}, {}} }, 1387) } +inst_vpmovmskb_r32_ymm :: #force_inline proc "contextless" (dst: GPR32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVMSKB, operand_count = 2, ops = {op_gpr32(dst), op_ymm(src), {}, {}} }, 1388) } emit_vpmovmskb_r32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: XMM) { append(instructions, inst_vpmovmskb_r32_xmm(dst, src)) } emit_vpmovmskb_r32_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: YMM) { append(instructions, inst_vpmovmskb_r32_ymm(dst, src)) } -inst_vptest_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1377) } -inst_vptest_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1377) } -inst_vptest_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1378) } -inst_vptest_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1378) } +inst_vptest_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1389) } +inst_vptest_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1389) } +inst_vptest_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1390) } +inst_vptest_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTEST, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1390) } emit_vptest_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vptest_xmm_xmm(dst, src)) } emit_vptest_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vptest_xmm_m128(dst, src)) } emit_vptest_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vptest_ymm_ymm(dst, src)) } emit_vptest_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vptest_ymm_m256(dst, src)) } -inst_vpshufb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1379) } -inst_vpshufb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1379) } -inst_vpshufb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1380) } -inst_vpshufb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1380) } +inst_vpshufb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1391) } +inst_vpshufb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1391) } +inst_vpshufb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1392) } +inst_vpshufb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSHUFB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1392) } emit_vpshufb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpshufb_xmm_xmm_xmm(dst, src, src2)) } emit_vpshufb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpshufb_xmm_xmm_m128(dst, src, src2)) } emit_vpshufb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpshufb_ymm_ymm_ymm(dst, src, src2)) } emit_vpshufb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpshufb_ymm_ymm_m256(dst, src, src2)) } -inst_vphaddw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1381) } -inst_vphaddw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1381) } -inst_vphaddw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1382) } -inst_vphaddw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1382) } +inst_vphaddw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1393) } +inst_vphaddw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1393) } +inst_vphaddw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1394) } +inst_vphaddw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1394) } emit_vphaddw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vphaddw_xmm_xmm_xmm(dst, src, src2)) } emit_vphaddw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vphaddw_xmm_xmm_m128(dst, src, src2)) } emit_vphaddw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vphaddw_ymm_ymm_ymm(dst, src, src2)) } emit_vphaddw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vphaddw_ymm_ymm_m256(dst, src, src2)) } -inst_vphaddd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1383) } -inst_vphaddd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1383) } -inst_vphaddd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1384) } -inst_vphaddd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1384) } +inst_vphaddd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1395) } +inst_vphaddd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1395) } +inst_vphaddd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1396) } +inst_vphaddd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1396) } emit_vphaddd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vphaddd_xmm_xmm_xmm(dst, src, src2)) } emit_vphaddd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vphaddd_xmm_xmm_m128(dst, src, src2)) } emit_vphaddd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vphaddd_ymm_ymm_ymm(dst, src, src2)) } emit_vphaddd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vphaddd_ymm_ymm_m256(dst, src, src2)) } -inst_vphaddsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1385) } -inst_vphaddsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1385) } -inst_vphaddsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1386) } -inst_vphaddsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1386) } +inst_vphaddsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1397) } +inst_vphaddsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1397) } +inst_vphaddsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1398) } +inst_vphaddsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHADDSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1398) } emit_vphaddsw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vphaddsw_xmm_xmm_xmm(dst, src, src2)) } emit_vphaddsw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vphaddsw_xmm_xmm_m128(dst, src, src2)) } emit_vphaddsw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vphaddsw_ymm_ymm_ymm(dst, src, src2)) } emit_vphaddsw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vphaddsw_ymm_ymm_m256(dst, src, src2)) } -inst_vphsubw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1387) } -inst_vphsubw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1387) } -inst_vphsubw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1388) } -inst_vphsubw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1388) } +inst_vphsubw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1399) } +inst_vphsubw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1399) } +inst_vphsubw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1400) } +inst_vphsubw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1400) } emit_vphsubw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vphsubw_xmm_xmm_xmm(dst, src, src2)) } emit_vphsubw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vphsubw_xmm_xmm_m128(dst, src, src2)) } emit_vphsubw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vphsubw_ymm_ymm_ymm(dst, src, src2)) } emit_vphsubw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vphsubw_ymm_ymm_m256(dst, src, src2)) } -inst_vphsubd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1389) } -inst_vphsubd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1389) } -inst_vphsubd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1390) } -inst_vphsubd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1390) } +inst_vphsubd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1401) } +inst_vphsubd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1401) } +inst_vphsubd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1402) } +inst_vphsubd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1402) } emit_vphsubd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vphsubd_xmm_xmm_xmm(dst, src, src2)) } emit_vphsubd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vphsubd_xmm_xmm_m128(dst, src, src2)) } emit_vphsubd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vphsubd_ymm_ymm_ymm(dst, src, src2)) } emit_vphsubd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vphsubd_ymm_ymm_m256(dst, src, src2)) } -inst_vphsubsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1391) } -inst_vphsubsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1391) } -inst_vphsubsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1392) } -inst_vphsubsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1392) } +inst_vphsubsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1403) } +inst_vphsubsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1403) } +inst_vphsubsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1404) } +inst_vphsubsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHSUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1404) } emit_vphsubsw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vphsubsw_xmm_xmm_xmm(dst, src, src2)) } emit_vphsubsw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vphsubsw_xmm_xmm_m128(dst, src, src2)) } emit_vphsubsw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vphsubsw_ymm_ymm_ymm(dst, src, src2)) } emit_vphsubsw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vphsubsw_ymm_ymm_m256(dst, src, src2)) } -inst_vpmaddubsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1393) } -inst_vpmaddubsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1393) } -inst_vpmaddubsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1394) } -inst_vpmaddubsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1394) } +inst_vpmaddubsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1405) } +inst_vpmaddubsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1405) } +inst_vpmaddubsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1406) } +inst_vpmaddubsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMADDUBSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1406) } emit_vpmaddubsw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmaddubsw_xmm_xmm_xmm(dst, src, src2)) } emit_vpmaddubsw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaddubsw_xmm_xmm_m128(dst, src, src2)) } emit_vpmaddubsw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmaddubsw_ymm_ymm_ymm(dst, src, src2)) } emit_vpmaddubsw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaddubsw_ymm_ymm_m256(dst, src, src2)) } -inst_vpmulhrsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1395) } -inst_vpmulhrsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1395) } -inst_vpmulhrsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1396) } -inst_vpmulhrsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1396) } +inst_vpmulhrsw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1407) } +inst_vpmulhrsw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1407) } +inst_vpmulhrsw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1408) } +inst_vpmulhrsw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULHRSW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1408) } emit_vpmulhrsw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmulhrsw_xmm_xmm_xmm(dst, src, src2)) } emit_vpmulhrsw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmulhrsw_xmm_xmm_m128(dst, src, src2)) } emit_vpmulhrsw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmulhrsw_ymm_ymm_ymm(dst, src, src2)) } emit_vpmulhrsw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmulhrsw_ymm_ymm_m256(dst, src, src2)) } -inst_vpsignb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1397) } -inst_vpsignb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1397) } -inst_vpsignb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1398) } -inst_vpsignb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1398) } +inst_vpsignb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1409) } +inst_vpsignb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1409) } +inst_vpsignb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1410) } +inst_vpsignb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1410) } emit_vpsignb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsignb_xmm_xmm_xmm(dst, src, src2)) } emit_vpsignb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsignb_xmm_xmm_m128(dst, src, src2)) } emit_vpsignb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsignb_ymm_ymm_ymm(dst, src, src2)) } emit_vpsignb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsignb_ymm_ymm_m256(dst, src, src2)) } -inst_vpsignw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1399) } -inst_vpsignw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1399) } -inst_vpsignw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1400) } -inst_vpsignw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1400) } +inst_vpsignw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1411) } +inst_vpsignw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1411) } +inst_vpsignw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1412) } +inst_vpsignw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGNW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1412) } emit_vpsignw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsignw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsignw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsignw_xmm_xmm_m128(dst, src, src2)) } emit_vpsignw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsignw_ymm_ymm_ymm(dst, src, src2)) } emit_vpsignw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsignw_ymm_ymm_m256(dst, src, src2)) } -inst_vpsignd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1401) } -inst_vpsignd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1401) } -inst_vpsignd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1402) } -inst_vpsignd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1402) } +inst_vpsignd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1413) } +inst_vpsignd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1413) } +inst_vpsignd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1414) } +inst_vpsignd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSIGND, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1414) } emit_vpsignd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsignd_xmm_xmm_xmm(dst, src, src2)) } emit_vpsignd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsignd_xmm_xmm_m128(dst, src, src2)) } emit_vpsignd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsignd_ymm_ymm_ymm(dst, src, src2)) } emit_vpsignd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsignd_ymm_ymm_m256(dst, src, src2)) } -inst_vpabsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1403) } -inst_vpabsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1403) } -inst_vpabsb_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1404) } -inst_vpabsb_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1404) } +inst_vpabsb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1415) } +inst_vpabsb_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1415) } +inst_vpabsb_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1416) } +inst_vpabsb_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSB, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1416) } emit_vpabsb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpabsb_xmm_xmm(dst, src)) } emit_vpabsb_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpabsb_xmm_m128(dst, src)) } emit_vpabsb_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpabsb_ymm_ymm(dst, src)) } emit_vpabsb_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpabsb_ymm_m256(dst, src)) } -inst_vpabsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1405) } -inst_vpabsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1405) } -inst_vpabsw_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1406) } -inst_vpabsw_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1406) } +inst_vpabsw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1417) } +inst_vpabsw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1417) } +inst_vpabsw_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1418) } +inst_vpabsw_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1418) } emit_vpabsw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpabsw_xmm_xmm(dst, src)) } emit_vpabsw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpabsw_xmm_m128(dst, src)) } emit_vpabsw_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpabsw_ymm_ymm(dst, src)) } emit_vpabsw_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpabsw_ymm_m256(dst, src)) } -inst_vpabsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1407) } -inst_vpabsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1407) } -inst_vpabsd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1408) } -inst_vpabsd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1408) } +inst_vpabsd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1419) } +inst_vpabsd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1419) } +inst_vpabsd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1420) } +inst_vpabsd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPABSD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1420) } emit_vpabsd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpabsd_xmm_xmm(dst, src)) } emit_vpabsd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpabsd_xmm_m128(dst, src)) } emit_vpabsd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpabsd_ymm_ymm(dst, src)) } emit_vpabsd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpabsd_ymm_m256(dst, src)) } -inst_vpalignr_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1409) } -inst_vpalignr_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1409) } -inst_vpalignr_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1410) } -inst_vpalignr_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1410) } +inst_vpalignr_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1421) } +inst_vpalignr_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1421) } +inst_vpalignr_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1422) } +inst_vpalignr_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPALIGNR, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1422) } emit_vpalignr_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpalignr_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpalignr_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpalignr_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpalignr_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpalignr_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpalignr_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpalignr_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vpblendw_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1411) } -inst_vpblendw_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1411) } -inst_vpblendw_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1412) } -inst_vpblendw_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1412) } +inst_vpblendw_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1423) } +inst_vpblendw_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1423) } +inst_vpblendw_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1424) } +inst_vpblendw_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1424) } emit_vpblendw_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpblendw_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpblendw_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpblendw_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpblendw_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpblendw_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpblendw_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpblendw_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vpblendvb_xmm_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_xmm(src3)} }, 1413) } -inst_vpblendvb_xmm_xmm_m128_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_xmm(src3)} }, 1413) } -inst_vpblendvb_ymm_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_ymm(src3)} }, 1414) } -inst_vpblendvb_ymm_ymm_m256_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_ymm(src3)} }, 1414) } +inst_vpblendvb_xmm_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_xmm(src3)} }, 1425) } +inst_vpblendvb_xmm_xmm_m128_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, src3: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_xmm(src3)} }, 1425) } +inst_vpblendvb_ymm_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_ymm(src3)} }, 1426) } +inst_vpblendvb_ymm_ymm_m256_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, src3: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDVB, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_ymm(src3)} }, 1426) } emit_vpblendvb_xmm_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, src3: XMM) { append(instructions, inst_vpblendvb_xmm_xmm_xmm_xmm(dst, src, src2, src3)) } emit_vpblendvb_xmm_xmm_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, src3: XMM) { append(instructions, inst_vpblendvb_xmm_xmm_m128_xmm(dst, src, src2, src3)) } emit_vpblendvb_ymm_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, src3: YMM) { append(instructions, inst_vpblendvb_ymm_ymm_ymm_ymm(dst, src, src2, src3)) } emit_vpblendvb_ymm_ymm_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, src3: YMM) { append(instructions, inst_vpblendvb_ymm_ymm_m256_ymm(dst, src, src2, src3)) } -inst_vmpsadbw_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1415) } -inst_vmpsadbw_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1415) } -inst_vmpsadbw_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1416) } -inst_vmpsadbw_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1416) } +inst_vmpsadbw_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1427) } +inst_vmpsadbw_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1427) } +inst_vmpsadbw_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1428) } +inst_vmpsadbw_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1428) } emit_vmpsadbw_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vmpsadbw_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vmpsadbw_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vmpsadbw_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vmpsadbw_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vmpsadbw_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vmpsadbw_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vmpsadbw_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vphminposuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1417) } -inst_vphminposuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1417) } +inst_vphminposuw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1429) } +inst_vphminposuw_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPHMINPOSUW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1429) } emit_vphminposuw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vphminposuw_xmm_xmm(dst, src)) } emit_vphminposuw_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vphminposuw_xmm_m128(dst, src)) } -inst_vpmaxsb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1418) } -inst_vpmaxsb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1418) } -inst_vpmaxsb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1419) } -inst_vpmaxsb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1419) } +inst_vpmaxsb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1430) } +inst_vpmaxsb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1430) } +inst_vpmaxsb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1431) } +inst_vpmaxsb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1431) } emit_vpmaxsb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmaxsb_xmm_xmm_xmm(dst, src, src2)) } emit_vpmaxsb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaxsb_xmm_xmm_m128(dst, src, src2)) } emit_vpmaxsb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmaxsb_ymm_ymm_ymm(dst, src, src2)) } emit_vpmaxsb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaxsb_ymm_ymm_m256(dst, src, src2)) } -inst_vpmaxsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1420) } -inst_vpmaxsd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1420) } -inst_vpmaxsd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1421) } -inst_vpmaxsd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1421) } +inst_vpmaxsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1432) } +inst_vpmaxsd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1432) } +inst_vpmaxsd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1433) } +inst_vpmaxsd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1433) } emit_vpmaxsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmaxsd_xmm_xmm_xmm(dst, src, src2)) } emit_vpmaxsd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaxsd_xmm_xmm_m128(dst, src, src2)) } emit_vpmaxsd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmaxsd_ymm_ymm_ymm(dst, src, src2)) } emit_vpmaxsd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaxsd_ymm_ymm_m256(dst, src, src2)) } -inst_vpmaxuw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1422) } -inst_vpmaxuw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1422) } -inst_vpmaxuw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1423) } -inst_vpmaxuw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1423) } +inst_vpmaxuw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1434) } +inst_vpmaxuw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1434) } +inst_vpmaxuw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1435) } +inst_vpmaxuw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1435) } emit_vpmaxuw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmaxuw_xmm_xmm_xmm(dst, src, src2)) } emit_vpmaxuw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaxuw_xmm_xmm_m128(dst, src, src2)) } emit_vpmaxuw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmaxuw_ymm_ymm_ymm(dst, src, src2)) } emit_vpmaxuw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaxuw_ymm_ymm_m256(dst, src, src2)) } -inst_vpmaxud_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1424) } -inst_vpmaxud_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1424) } -inst_vpmaxud_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1425) } -inst_vpmaxud_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1425) } +inst_vpmaxud_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1436) } +inst_vpmaxud_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1436) } +inst_vpmaxud_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1437) } +inst_vpmaxud_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMAXUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1437) } emit_vpmaxud_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmaxud_xmm_xmm_xmm(dst, src, src2)) } emit_vpmaxud_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaxud_xmm_xmm_m128(dst, src, src2)) } emit_vpmaxud_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmaxud_ymm_ymm_ymm(dst, src, src2)) } emit_vpmaxud_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaxud_ymm_ymm_m256(dst, src, src2)) } -inst_vpminsb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1426) } -inst_vpminsb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1426) } -inst_vpminsb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1427) } -inst_vpminsb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1427) } +inst_vpminsb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1438) } +inst_vpminsb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1438) } +inst_vpminsb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1439) } +inst_vpminsb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1439) } emit_vpminsb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpminsb_xmm_xmm_xmm(dst, src, src2)) } emit_vpminsb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpminsb_xmm_xmm_m128(dst, src, src2)) } emit_vpminsb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpminsb_ymm_ymm_ymm(dst, src, src2)) } emit_vpminsb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpminsb_ymm_ymm_m256(dst, src, src2)) } -inst_vpminsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1428) } -inst_vpminsd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1428) } -inst_vpminsd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1429) } -inst_vpminsd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1429) } +inst_vpminsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1440) } +inst_vpminsd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1440) } +inst_vpminsd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1441) } +inst_vpminsd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1441) } emit_vpminsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpminsd_xmm_xmm_xmm(dst, src, src2)) } emit_vpminsd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpminsd_xmm_xmm_m128(dst, src, src2)) } emit_vpminsd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpminsd_ymm_ymm_ymm(dst, src, src2)) } emit_vpminsd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpminsd_ymm_ymm_m256(dst, src, src2)) } -inst_vpminuw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1430) } -inst_vpminuw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1430) } -inst_vpminuw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1431) } -inst_vpminuw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1431) } +inst_vpminuw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1442) } +inst_vpminuw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1442) } +inst_vpminuw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1443) } +inst_vpminuw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1443) } emit_vpminuw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpminuw_xmm_xmm_xmm(dst, src, src2)) } emit_vpminuw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpminuw_xmm_xmm_m128(dst, src, src2)) } emit_vpminuw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpminuw_ymm_ymm_ymm(dst, src, src2)) } emit_vpminuw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpminuw_ymm_ymm_m256(dst, src, src2)) } -inst_vpminud_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1432) } -inst_vpminud_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1432) } -inst_vpminud_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1433) } -inst_vpminud_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1433) } +inst_vpminud_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1444) } +inst_vpminud_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1444) } +inst_vpminud_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1445) } +inst_vpminud_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMINUD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1445) } emit_vpminud_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpminud_xmm_xmm_xmm(dst, src, src2)) } emit_vpminud_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpminud_xmm_xmm_m128(dst, src, src2)) } emit_vpminud_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpminud_ymm_ymm_ymm(dst, src, src2)) } emit_vpminud_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpminud_ymm_ymm_m256(dst, src, src2)) } -inst_vpmovsxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1434) } -inst_vpmovsxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1434) } -inst_vpmovsxbw_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1435) } -inst_vpmovsxbw_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1435) } +inst_vpmovsxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1446) } +inst_vpmovsxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1446) } +inst_vpmovsxbw_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1447) } +inst_vpmovsxbw_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1447) } emit_vpmovsxbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsxbw_xmm_xmm(dst, src)) } emit_vpmovsxbw_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpmovsxbw_xmm_m64(dst, src)) } emit_vpmovsxbw_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovsxbw_ymm_xmm(dst, src)) } emit_vpmovsxbw_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vpmovsxbw_ymm_m128(dst, src)) } -inst_vpmovsxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1436) } -inst_vpmovsxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1436) } -inst_vpmovsxbd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1437) } -inst_vpmovsxbd_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1437) } +inst_vpmovsxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1448) } +inst_vpmovsxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1448) } +inst_vpmovsxbd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1449) } +inst_vpmovsxbd_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1449) } emit_vpmovsxbd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsxbd_xmm_xmm(dst, src)) } emit_vpmovsxbd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vpmovsxbd_xmm_m32(dst, src)) } emit_vpmovsxbd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovsxbd_ymm_xmm(dst, src)) } emit_vpmovsxbd_ymm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem64) { append(instructions, inst_vpmovsxbd_ymm_m64(dst, src)) } -inst_vpmovsxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1438) } -inst_vpmovsxbq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1439) } -inst_vpmovsxbq_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1439) } +inst_vpmovsxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1450) } +inst_vpmovsxbq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1451) } +inst_vpmovsxbq_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXBQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1451) } emit_vpmovsxbq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsxbq_xmm_xmm(dst, src)) } emit_vpmovsxbq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovsxbq_ymm_xmm(dst, src)) } emit_vpmovsxbq_ymm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem32) { append(instructions, inst_vpmovsxbq_ymm_m32(dst, src)) } -inst_vpmovsxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1440) } -inst_vpmovsxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1440) } -inst_vpmovsxwd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1441) } -inst_vpmovsxwd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1441) } +inst_vpmovsxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1452) } +inst_vpmovsxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1452) } +inst_vpmovsxwd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1453) } +inst_vpmovsxwd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1453) } emit_vpmovsxwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsxwd_xmm_xmm(dst, src)) } emit_vpmovsxwd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpmovsxwd_xmm_m64(dst, src)) } emit_vpmovsxwd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovsxwd_ymm_xmm(dst, src)) } emit_vpmovsxwd_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vpmovsxwd_ymm_m128(dst, src)) } -inst_vpmovsxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1442) } -inst_vpmovsxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1442) } -inst_vpmovsxwq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1443) } -inst_vpmovsxwq_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1443) } +inst_vpmovsxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1454) } +inst_vpmovsxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1454) } +inst_vpmovsxwq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1455) } +inst_vpmovsxwq_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXWQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1455) } emit_vpmovsxwq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsxwq_xmm_xmm(dst, src)) } emit_vpmovsxwq_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vpmovsxwq_xmm_m32(dst, src)) } emit_vpmovsxwq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovsxwq_ymm_xmm(dst, src)) } emit_vpmovsxwq_ymm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem64) { append(instructions, inst_vpmovsxwq_ymm_m64(dst, src)) } -inst_vpmovsxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1444) } -inst_vpmovsxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1444) } -inst_vpmovsxdq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1445) } -inst_vpmovsxdq_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1445) } +inst_vpmovsxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1456) } +inst_vpmovsxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1456) } +inst_vpmovsxdq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1457) } +inst_vpmovsxdq_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSXDQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1457) } emit_vpmovsxdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsxdq_xmm_xmm(dst, src)) } emit_vpmovsxdq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpmovsxdq_xmm_m64(dst, src)) } emit_vpmovsxdq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovsxdq_ymm_xmm(dst, src)) } emit_vpmovsxdq_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vpmovsxdq_ymm_m128(dst, src)) } -inst_vpmovzxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1446) } -inst_vpmovzxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1446) } -inst_vpmovzxbw_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1447) } -inst_vpmovzxbw_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1447) } +inst_vpmovzxbw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1458) } +inst_vpmovzxbw_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1458) } +inst_vpmovzxbw_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1459) } +inst_vpmovzxbw_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBW, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1459) } emit_vpmovzxbw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovzxbw_xmm_xmm(dst, src)) } emit_vpmovzxbw_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpmovzxbw_xmm_m64(dst, src)) } emit_vpmovzxbw_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovzxbw_ymm_xmm(dst, src)) } emit_vpmovzxbw_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vpmovzxbw_ymm_m128(dst, src)) } -inst_vpmovzxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1448) } -inst_vpmovzxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1448) } -inst_vpmovzxbd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1449) } -inst_vpmovzxbd_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1449) } +inst_vpmovzxbd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1460) } +inst_vpmovzxbd_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1460) } +inst_vpmovzxbd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1461) } +inst_vpmovzxbd_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1461) } emit_vpmovzxbd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovzxbd_xmm_xmm(dst, src)) } emit_vpmovzxbd_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vpmovzxbd_xmm_m32(dst, src)) } emit_vpmovzxbd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovzxbd_ymm_xmm(dst, src)) } emit_vpmovzxbd_ymm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem64) { append(instructions, inst_vpmovzxbd_ymm_m64(dst, src)) } -inst_vpmovzxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1450) } -inst_vpmovzxbq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1451) } -inst_vpmovzxbq_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1451) } +inst_vpmovzxbq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1462) } +inst_vpmovzxbq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1463) } +inst_vpmovzxbq_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXBQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1463) } emit_vpmovzxbq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovzxbq_xmm_xmm(dst, src)) } emit_vpmovzxbq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovzxbq_ymm_xmm(dst, src)) } emit_vpmovzxbq_ymm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem32) { append(instructions, inst_vpmovzxbq_ymm_m32(dst, src)) } -inst_vpmovzxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1452) } -inst_vpmovzxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1452) } -inst_vpmovzxwd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1453) } -inst_vpmovzxwd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1453) } +inst_vpmovzxwd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1464) } +inst_vpmovzxwd_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1464) } +inst_vpmovzxwd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1465) } +inst_vpmovzxwd_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1465) } emit_vpmovzxwd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovzxwd_xmm_xmm(dst, src)) } emit_vpmovzxwd_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpmovzxwd_xmm_m64(dst, src)) } emit_vpmovzxwd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovzxwd_ymm_xmm(dst, src)) } emit_vpmovzxwd_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vpmovzxwd_ymm_m128(dst, src)) } -inst_vpmovzxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1454) } -inst_vpmovzxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1454) } -inst_vpmovzxwq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1455) } -inst_vpmovzxwq_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1455) } +inst_vpmovzxwq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1466) } +inst_vpmovzxwq_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1466) } +inst_vpmovzxwq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1467) } +inst_vpmovzxwq_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXWQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1467) } emit_vpmovzxwq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovzxwq_xmm_xmm(dst, src)) } emit_vpmovzxwq_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vpmovzxwq_xmm_m32(dst, src)) } emit_vpmovzxwq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovzxwq_ymm_xmm(dst, src)) } emit_vpmovzxwq_ymm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem64) { append(instructions, inst_vpmovzxwq_ymm_m64(dst, src)) } -inst_vpmovzxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1456) } -inst_vpmovzxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1456) } -inst_vpmovzxdq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1457) } -inst_vpmovzxdq_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1457) } +inst_vpmovzxdq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1468) } +inst_vpmovzxdq_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1468) } +inst_vpmovzxdq_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1469) } +inst_vpmovzxdq_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVZXDQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1469) } emit_vpmovzxdq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovzxdq_xmm_xmm(dst, src)) } emit_vpmovzxdq_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vpmovzxdq_xmm_m64(dst, src)) } emit_vpmovzxdq_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vpmovzxdq_ymm_xmm(dst, src)) } emit_vpmovzxdq_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vpmovzxdq_ymm_m128(dst, src)) } -inst_vpmuldq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1458) } -inst_vpmuldq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1458) } -inst_vpmuldq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1459) } -inst_vpmuldq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1459) } +inst_vpmuldq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1470) } +inst_vpmuldq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1470) } +inst_vpmuldq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1471) } +inst_vpmuldq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULDQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1471) } emit_vpmuldq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmuldq_xmm_xmm_xmm(dst, src, src2)) } emit_vpmuldq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmuldq_xmm_xmm_m128(dst, src, src2)) } emit_vpmuldq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmuldq_ymm_ymm_ymm(dst, src, src2)) } emit_vpmuldq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmuldq_ymm_ymm_m256(dst, src, src2)) } -inst_vpmulld_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1460) } -inst_vpmulld_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1460) } -inst_vpmulld_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1461) } -inst_vpmulld_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1461) } +inst_vpmulld_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1472) } +inst_vpmulld_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1472) } +inst_vpmulld_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1473) } +inst_vpmulld_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1473) } emit_vpmulld_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmulld_xmm_xmm_xmm(dst, src, src2)) } emit_vpmulld_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmulld_xmm_xmm_m128(dst, src, src2)) } emit_vpmulld_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmulld_ymm_ymm_ymm(dst, src, src2)) } emit_vpmulld_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmulld_ymm_ymm_m256(dst, src, src2)) } -inst_vmaskmovdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1462) } +inst_vmaskmovdqu_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVDQU, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1474) } emit_vmaskmovdqu_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmaskmovdqu_xmm_xmm(dst, src)) } -inst_vpclmulqdq_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1463) } -inst_vpclmulqdq_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1463) } -inst_vpclmulqdq_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1464) } -inst_vpclmulqdq_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1464) } +inst_vpclmulqdq_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1475) } +inst_vpclmulqdq_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1475) } +inst_vpclmulqdq_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1476) } +inst_vpclmulqdq_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCLMULQDQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1476) } emit_vpclmulqdq_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpclmulqdq_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpclmulqdq_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpclmulqdq_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpclmulqdq_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpclmulqdq_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpclmulqdq_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpclmulqdq_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vaesdec_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDEC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1465) } -inst_vaesdec_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDEC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1465) } +inst_vaesdec_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDEC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1477) } +inst_vaesdec_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDEC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1477) } emit_vaesdec_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaesdec_xmm_xmm_xmm(dst, src, src2)) } emit_vaesdec_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaesdec_xmm_xmm_m128(dst, src, src2)) } -inst_vaesdeclast_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDECLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1466) } -inst_vaesdeclast_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDECLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1466) } +inst_vaesdeclast_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDECLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1478) } +inst_vaesdeclast_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESDECLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1478) } emit_vaesdeclast_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaesdeclast_xmm_xmm_xmm(dst, src, src2)) } emit_vaesdeclast_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaesdeclast_xmm_xmm_m128(dst, src, src2)) } -inst_vaesenc_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1467) } -inst_vaesenc_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1467) } +inst_vaesenc_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1479) } +inst_vaesenc_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENC, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1479) } emit_vaesenc_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaesenc_xmm_xmm_xmm(dst, src, src2)) } emit_vaesenc_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaesenc_xmm_xmm_m128(dst, src, src2)) } -inst_vaesenclast_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENCLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1468) } -inst_vaesenclast_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENCLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1468) } +inst_vaesenclast_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENCLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1480) } +inst_vaesenclast_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESENCLAST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1480) } emit_vaesenclast_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vaesenclast_xmm_xmm_xmm(dst, src, src2)) } emit_vaesenclast_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vaesenclast_xmm_xmm_m128(dst, src, src2)) } -inst_vaesimc_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESIMC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1469) } -inst_vaesimc_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESIMC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1469) } +inst_vaesimc_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESIMC, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1481) } +inst_vaesimc_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESIMC, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1481) } emit_vaesimc_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vaesimc_xmm_xmm(dst, src)) } emit_vaesimc_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vaesimc_xmm_m128(dst, src)) } -inst_vaeskeygenassist_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1470) } -inst_vaeskeygenassist_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1470) } +inst_vaeskeygenassist_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1482) } +inst_vaeskeygenassist_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VAESKEYGENASSIST, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1482) } emit_vaeskeygenassist_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vaeskeygenassist_xmm_xmm_imm8(dst, src, imm)) } emit_vaeskeygenassist_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vaeskeygenassist_xmm_m128_imm8(dst, src, imm)) } -inst_vbroadcastss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1471) } -inst_vbroadcastss_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1472) } -inst_vbroadcastss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1473) } -inst_vbroadcastss_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1474) } +inst_vbroadcastss_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 4), {}, {}} }, 1483) } +inst_vbroadcastss_ymm_m32 :: #force_inline proc "contextless" (dst: YMM, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 4), {}, {}} }, 1484) } +inst_vbroadcastss_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1485) } +inst_vbroadcastss_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSS, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1486) } emit_vbroadcastss_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem32) { append(instructions, inst_vbroadcastss_xmm_m32(dst, src)) } emit_vbroadcastss_ymm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem32) { append(instructions, inst_vbroadcastss_ymm_m32(dst, src)) } emit_vbroadcastss_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vbroadcastss_xmm_xmm(dst, src)) } emit_vbroadcastss_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vbroadcastss_ymm_xmm(dst, src)) } -inst_vbroadcastsd_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1475) } -inst_vbroadcastsd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1476) } +inst_vbroadcastsd_ymm_m64 :: #force_inline proc "contextless" (dst: YMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 8), {}, {}} }, 1487) } +inst_vbroadcastsd_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTSD, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1488) } emit_vbroadcastsd_ymm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem64) { append(instructions, inst_vbroadcastsd_ymm_m64(dst, src)) } emit_vbroadcastsd_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vbroadcastsd_ymm_xmm(dst, src)) } -inst_vbroadcastf128_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTF128, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1477) } +inst_vbroadcastf128_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTF128, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1489) } emit_vbroadcastf128_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vbroadcastf128_ymm_m128(dst, src)) } -inst_vextractf128_xmm_ymm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTF128, operand_count = 3, ops = {op_xmm(dst), op_ymm(src), op_imm8(imm), {}} }, 1478) } -inst_vextractf128_m128_ymm_imm8 :: #force_inline proc "contextless" (dst: Mem128, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTF128, operand_count = 3, ops = {op_mem(dst.mem, 16), op_ymm(src), op_imm8(imm), {}} }, 1478) } +inst_vextractf128_xmm_ymm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTF128, operand_count = 3, ops = {op_xmm(dst), op_ymm(src), op_imm8(imm), {}} }, 1490) } +inst_vextractf128_m128_ymm_imm8 :: #force_inline proc "contextless" (dst: Mem128, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTF128, operand_count = 3, ops = {op_mem(dst.mem, 16), op_ymm(src), op_imm8(imm), {}} }, 1490) } emit_vextractf128_xmm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM, imm: i8) { append(instructions, inst_vextractf128_xmm_ymm_imm8(dst, src, imm)) } emit_vextractf128_m128_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM, imm: i8) { append(instructions, inst_vextractf128_m128_ymm_imm8(dst, src, imm)) } -inst_vinsertf128_ymm_ymm_xmm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTF128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), op_imm8(imm)} }, 1479) } -inst_vinsertf128_ymm_ymm_m128_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTF128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1479) } +inst_vinsertf128_ymm_ymm_xmm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTF128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), op_imm8(imm)} }, 1491) } +inst_vinsertf128_ymm_ymm_m128_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTF128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1491) } emit_vinsertf128_ymm_ymm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM, imm: i8) { append(instructions, inst_vinsertf128_ymm_ymm_xmm_imm8(dst, src, src2, imm)) } emit_vinsertf128_ymm_ymm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128, imm: i8) { append(instructions, inst_vinsertf128_ymm_ymm_m128_imm8(dst, src, src2, imm)) } -inst_vperm2f128_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2F128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1480) } -inst_vperm2f128_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2F128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1480) } +inst_vperm2f128_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2F128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1492) } +inst_vperm2f128_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2F128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1492) } emit_vperm2f128_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vperm2f128_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vperm2f128_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vperm2f128_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vmaskmovps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1481) } -inst_vmaskmovps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1482) } -inst_vmaskmovps_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1483) } -inst_vmaskmovps_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1484) } +inst_vmaskmovps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1493) } +inst_vmaskmovps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1494) } +inst_vmaskmovps_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1495) } +inst_vmaskmovps_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPS, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1496) } emit_vmaskmovps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vmaskmovps_xmm_xmm_m128(dst, src, src2)) } emit_vmaskmovps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vmaskmovps_ymm_ymm_m256(dst, src, src2)) } emit_vmaskmovps_m128_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM, src2: XMM) { append(instructions, inst_vmaskmovps_m128_xmm_xmm(dst, src, src2)) } emit_vmaskmovps_m256_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM, src2: YMM) { append(instructions, inst_vmaskmovps_m256_ymm_ymm(dst, src, src2)) } -inst_vmaskmovpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1485) } -inst_vmaskmovpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1486) } -inst_vmaskmovpd_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1487) } -inst_vmaskmovpd_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1488) } +inst_vmaskmovpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1497) } +inst_vmaskmovpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1498) } +inst_vmaskmovpd_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1499) } +inst_vmaskmovpd_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMASKMOVPD, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1500) } emit_vmaskmovpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vmaskmovpd_xmm_xmm_m128(dst, src, src2)) } emit_vmaskmovpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vmaskmovpd_ymm_ymm_m256(dst, src, src2)) } emit_vmaskmovpd_m128_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM, src2: XMM) { append(instructions, inst_vmaskmovpd_m128_xmm_xmm(dst, src, src2)) } emit_vmaskmovpd_m256_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM, src2: YMM) { append(instructions, inst_vmaskmovpd_m256_ymm_ymm(dst, src, src2)) } -inst_vtestps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1489) } -inst_vtestps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1489) } -inst_vtestps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1490) } -inst_vtestps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1490) } +inst_vtestps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1501) } +inst_vtestps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1501) } +inst_vtestps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1502) } +inst_vtestps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1502) } emit_vtestps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vtestps_xmm_xmm(dst, src)) } emit_vtestps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vtestps_xmm_m128(dst, src)) } emit_vtestps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vtestps_ymm_ymm(dst, src)) } emit_vtestps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vtestps_ymm_m256(dst, src)) } -inst_vtestpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1491) } -inst_vtestpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1491) } -inst_vtestpd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1492) } -inst_vtestpd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1492) } +inst_vtestpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1503) } +inst_vtestpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1503) } +inst_vtestpd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1504) } +inst_vtestpd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VTESTPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1504) } emit_vtestpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vtestpd_xmm_xmm(dst, src)) } emit_vtestpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vtestpd_xmm_m128(dst, src)) } emit_vtestpd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vtestpd_ymm_ymm(dst, src)) } emit_vtestpd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vtestpd_ymm_m256(dst, src)) } -inst_vzeroall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VZEROALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 1493) } +inst_vzeroall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VZEROALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 1505) } emit_vzeroall_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vzeroall_none()) } -inst_vzeroupper_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VZEROUPPER, operand_count = 0, ops = {{}, {}, {}, {}} }, 1494) } +inst_vzeroupper_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VZEROUPPER, operand_count = 0, ops = {{}, {}, {}, {}} }, 1506) } emit_vzeroupper_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vzeroupper_none()) } -inst_vbroadcasti128_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTI128, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1495) } +inst_vbroadcasti128_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBROADCASTI128, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1507) } emit_vbroadcasti128_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vbroadcasti128_ymm_m128(dst, src)) } -inst_vextracti128_xmm_ymm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTI128, operand_count = 3, ops = {op_xmm(dst), op_ymm(src), op_imm8(imm), {}} }, 1496) } -inst_vextracti128_m128_ymm_imm8 :: #force_inline proc "contextless" (dst: Mem128, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTI128, operand_count = 3, ops = {op_mem(dst.mem, 16), op_ymm(src), op_imm8(imm), {}} }, 1496) } +inst_vextracti128_xmm_ymm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTI128, operand_count = 3, ops = {op_xmm(dst), op_ymm(src), op_imm8(imm), {}} }, 1508) } +inst_vextracti128_m128_ymm_imm8 :: #force_inline proc "contextless" (dst: Mem128, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXTRACTI128, operand_count = 3, ops = {op_mem(dst.mem, 16), op_ymm(src), op_imm8(imm), {}} }, 1508) } emit_vextracti128_xmm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM, imm: i8) { append(instructions, inst_vextracti128_xmm_ymm_imm8(dst, src, imm)) } emit_vextracti128_m128_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM, imm: i8) { append(instructions, inst_vextracti128_m128_ymm_imm8(dst, src, imm)) } -inst_vinserti128_ymm_ymm_xmm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTI128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), op_imm8(imm)} }, 1497) } -inst_vinserti128_ymm_ymm_m128_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTI128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1497) } +inst_vinserti128_ymm_ymm_xmm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTI128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_xmm(src2), op_imm8(imm)} }, 1509) } +inst_vinserti128_ymm_ymm_m128_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VINSERTI128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1509) } emit_vinserti128_ymm_ymm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: XMM, imm: i8) { append(instructions, inst_vinserti128_ymm_ymm_xmm_imm8(dst, src, src2, imm)) } emit_vinserti128_ymm_ymm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem128, imm: i8) { append(instructions, inst_vinserti128_ymm_ymm_m128_imm8(dst, src, src2, imm)) } -inst_vperm2i128_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2I128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1498) } -inst_vperm2i128_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2I128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1498) } +inst_vperm2i128_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2I128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1510) } +inst_vperm2i128_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERM2I128, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1510) } emit_vperm2i128_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vperm2i128_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vperm2i128_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vperm2i128_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vpermd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1499) } -inst_vpermd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1499) } +inst_vpermd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1511) } +inst_vpermd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1511) } emit_vpermd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermd_ymm_ymm_ymm(dst, src, src2)) } emit_vpermd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermd_ymm_ymm_m256(dst, src, src2)) } -inst_vpermps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1500) } -inst_vpermps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1500) } +inst_vpermps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1512) } +inst_vpermps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1512) } emit_vpermps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermps_ymm_ymm_ymm(dst, src, src2)) } emit_vpermps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermps_ymm_ymm_m256(dst, src, src2)) } -inst_vpermq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1501) } -inst_vpermq_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1501) } +inst_vpermq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1513) } +inst_vpermq_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1513) } emit_vpermq_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpermq_ymm_ymm_imm8(dst, src, imm)) } emit_vpermq_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vpermq_ymm_m256_imm8(dst, src, imm)) } -inst_vpermpd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1502) } -inst_vpermpd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1502) } +inst_vpermpd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1514) } +inst_vpermpd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1514) } emit_vpermpd_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vpermpd_ymm_ymm_imm8(dst, src, imm)) } emit_vpermpd_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vpermpd_ymm_m256_imm8(dst, src, imm)) } -inst_vpblendd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1503) } -inst_vpblendd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1503) } -inst_vpblendd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1504) } -inst_vpblendd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1504) } +inst_vpblendd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1515) } +inst_vpblendd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1515) } +inst_vpblendd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1516) } +inst_vpblendd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1516) } emit_vpblendd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpblendd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpblendd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpblendd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpblendd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpblendd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpblendd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpblendd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } -inst_vpsllvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1505) } -inst_vpsllvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1505) } -inst_vpsllvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1506) } -inst_vpsllvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1506) } +inst_vpsllvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1517) } +inst_vpsllvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1517) } +inst_vpsllvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1518) } +inst_vpsllvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1518) } emit_vpsllvd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsllvd_xmm_xmm_xmm(dst, src, src2)) } emit_vpsllvd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsllvd_xmm_xmm_m128(dst, src, src2)) } emit_vpsllvd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsllvd_ymm_ymm_ymm(dst, src, src2)) } emit_vpsllvd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsllvd_ymm_ymm_m256(dst, src, src2)) } -inst_vpsllvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1507) } -inst_vpsllvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1507) } -inst_vpsllvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1508) } -inst_vpsllvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1508) } +inst_vpsllvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1519) } +inst_vpsllvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1519) } +inst_vpsllvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1520) } +inst_vpsllvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1520) } emit_vpsllvq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsllvq_xmm_xmm_xmm(dst, src, src2)) } emit_vpsllvq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsllvq_xmm_xmm_m128(dst, src, src2)) } emit_vpsllvq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsllvq_ymm_ymm_ymm(dst, src, src2)) } emit_vpsllvq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsllvq_ymm_ymm_m256(dst, src, src2)) } -inst_vpsrlvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1509) } -inst_vpsrlvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1509) } -inst_vpsrlvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1510) } -inst_vpsrlvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1510) } +inst_vpsrlvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1521) } +inst_vpsrlvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1521) } +inst_vpsrlvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1522) } +inst_vpsrlvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1522) } emit_vpsrlvd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrlvd_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrlvd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrlvd_xmm_xmm_m128(dst, src, src2)) } emit_vpsrlvd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsrlvd_ymm_ymm_ymm(dst, src, src2)) } emit_vpsrlvd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsrlvd_ymm_ymm_m256(dst, src, src2)) } -inst_vpsrlvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1511) } -inst_vpsrlvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1511) } -inst_vpsrlvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1512) } -inst_vpsrlvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1512) } +inst_vpsrlvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1523) } +inst_vpsrlvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1523) } +inst_vpsrlvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1524) } +inst_vpsrlvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1524) } emit_vpsrlvq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrlvq_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrlvq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrlvq_xmm_xmm_m128(dst, src, src2)) } emit_vpsrlvq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsrlvq_ymm_ymm_ymm(dst, src, src2)) } emit_vpsrlvq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsrlvq_ymm_ymm_m256(dst, src, src2)) } -inst_vpsravd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1513) } -inst_vpsravd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1513) } -inst_vpsravd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1514) } -inst_vpsravd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1514) } +inst_vpsravd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1525) } +inst_vpsravd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1525) } +inst_vpsravd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1526) } +inst_vpsravd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1526) } emit_vpsravd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsravd_xmm_xmm_xmm(dst, src, src2)) } emit_vpsravd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsravd_xmm_xmm_m128(dst, src, src2)) } emit_vpsravd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsravd_ymm_ymm_ymm(dst, src, src2)) } emit_vpsravd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsravd_ymm_ymm_m256(dst, src, src2)) } -inst_vpmaskmovd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1515) } -inst_vpmaskmovd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1516) } -inst_vpmaskmovd_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1517) } -inst_vpmaskmovd_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1518) } +inst_vpmaskmovd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1527) } +inst_vpmaskmovd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1528) } +inst_vpmaskmovd_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1529) } +inst_vpmaskmovd_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVD, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1530) } emit_vpmaskmovd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaskmovd_xmm_xmm_m128(dst, src, src2)) } emit_vpmaskmovd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaskmovd_ymm_ymm_m256(dst, src, src2)) } emit_vpmaskmovd_m128_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM, src2: XMM) { append(instructions, inst_vpmaskmovd_m128_xmm_xmm(dst, src, src2)) } emit_vpmaskmovd_m256_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM, src2: YMM) { append(instructions, inst_vpmaskmovd_m256_ymm_ymm(dst, src, src2)) } -inst_vpmaskmovq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1519) } -inst_vpmaskmovq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1520) } -inst_vpmaskmovq_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1521) } -inst_vpmaskmovq_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1522) } +inst_vpmaskmovq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1531) } +inst_vpmaskmovq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1532) } +inst_vpmaskmovq_m128_xmm_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_mem(dst.mem, 16), op_xmm(src), op_xmm(src2), {}} }, 1533) } +inst_vpmaskmovq_m256_ymm_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMASKMOVQ, operand_count = 3, ops = {op_mem(dst.mem, 32), op_ymm(src), op_ymm(src2), {}} }, 1534) } emit_vpmaskmovq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmaskmovq_xmm_xmm_m128(dst, src, src2)) } emit_vpmaskmovq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmaskmovq_ymm_ymm_m256(dst, src, src2)) } emit_vpmaskmovq_m128_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM, src2: XMM) { append(instructions, inst_vpmaskmovq_m128_xmm_xmm(dst, src, src2)) } emit_vpmaskmovq_m256_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM, src2: YMM) { append(instructions, inst_vpmaskmovq_m256_ymm_ymm(dst, src, src2)) } -inst_vgatherdps_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1523) } -inst_vgatherdps_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1524) } +inst_vgatherdps_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1535) } +inst_vgatherdps_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1536) } emit_vgatherdps_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vgatherdps_xmm_m_xmm(dst, src, src2)) } emit_vgatherdps_ymm_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Memory, src2: YMM) { append(instructions, inst_vgatherdps_ymm_m_ymm(dst, src, src2)) } -inst_vgatherdpd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1525) } -inst_vgatherdpd_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1526) } +inst_vgatherdpd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1537) } +inst_vgatherdpd_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERDPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1538) } emit_vgatherdpd_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vgatherdpd_xmm_m_xmm(dst, src, src2)) } emit_vgatherdpd_ymm_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Memory, src2: YMM) { append(instructions, inst_vgatherdpd_ymm_m_ymm(dst, src, src2)) } -inst_vgatherqps_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERQPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1527) } +inst_vgatherqps_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERQPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1539) } emit_vgatherqps_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vgatherqps_xmm_m_xmm(dst, src, src2)) } -inst_vgatherqpd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERQPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1529) } -inst_vgatherqpd_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERQPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1530) } +inst_vgatherqpd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERQPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1541) } +inst_vgatherqpd_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGATHERQPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1542) } emit_vgatherqpd_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vgatherqpd_xmm_m_xmm(dst, src, src2)) } emit_vgatherqpd_ymm_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Memory, src2: YMM) { append(instructions, inst_vgatherqpd_ymm_m_ymm(dst, src, src2)) } -inst_vpgatherdd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1531) } -inst_vpgatherdd_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDD, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1532) } +inst_vpgatherdd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1543) } +inst_vpgatherdd_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDD, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1544) } emit_vpgatherdd_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vpgatherdd_xmm_m_xmm(dst, src, src2)) } emit_vpgatherdd_ymm_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Memory, src2: YMM) { append(instructions, inst_vpgatherdd_ymm_m_ymm(dst, src, src2)) } -inst_vpgatherdq_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1533) } -inst_vpgatherdq_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1534) } +inst_vpgatherdq_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1545) } +inst_vpgatherdq_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERDQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1546) } emit_vpgatherdq_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vpgatherdq_xmm_m_xmm(dst, src, src2)) } emit_vpgatherdq_ymm_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Memory, src2: YMM) { append(instructions, inst_vpgatherdq_ymm_m_ymm(dst, src, src2)) } -inst_vpgatherqd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERQD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1535) } +inst_vpgatherqd_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERQD, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1547) } emit_vpgatherqd_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vpgatherqd_xmm_m_xmm(dst, src, src2)) } -inst_vpgatherqq_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERQQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1537) } -inst_vpgatherqq_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERQQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1538) } +inst_vpgatherqq_xmm_m_xmm :: #force_inline proc "contextless" (dst: XMM, src: Memory, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERQQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src, 0), op_xmm(src2), {}} }, 1549) } +inst_vpgatherqq_ymm_m_ymm :: #force_inline proc "contextless" (dst: YMM, src: Memory, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPGATHERQQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src, 0), op_ymm(src2), {}} }, 1550) } emit_vpgatherqq_xmm_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Memory, src2: XMM) { append(instructions, inst_vpgatherqq_xmm_m_xmm(dst, src, src2)) } emit_vpgatherqq_ymm_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Memory, src2: YMM) { append(instructions, inst_vpgatherqq_ymm_m_ymm(dst, src, src2)) } -inst_vfmadd132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1539) } -inst_vfmadd132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1539) } -inst_vfmadd132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1540) } -inst_vfmadd132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1540) } +inst_vfmadd132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1551) } +inst_vfmadd132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1551) } +inst_vfmadd132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1552) } +inst_vfmadd132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1552) } emit_vfmadd132ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd132ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd132ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmadd132ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmadd132ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmadd132ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmadd132ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmadd132ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmadd213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1541) } -inst_vfmadd213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1541) } -inst_vfmadd213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1542) } -inst_vfmadd213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1542) } +inst_vfmadd213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1553) } +inst_vfmadd213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1553) } +inst_vfmadd213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1554) } +inst_vfmadd213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1554) } emit_vfmadd213ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd213ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd213ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmadd213ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmadd213ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmadd213ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmadd213ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmadd213ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmadd231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1543) } -inst_vfmadd231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1543) } -inst_vfmadd231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1544) } -inst_vfmadd231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1544) } +inst_vfmadd231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1555) } +inst_vfmadd231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1555) } +inst_vfmadd231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1556) } +inst_vfmadd231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1556) } emit_vfmadd231ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd231ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd231ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmadd231ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmadd231ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmadd231ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmadd231ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmadd231ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmadd132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1545) } -inst_vfmadd132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1545) } -inst_vfmadd132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1546) } -inst_vfmadd132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1546) } +inst_vfmadd132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1557) } +inst_vfmadd132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1557) } +inst_vfmadd132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1558) } +inst_vfmadd132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1558) } emit_vfmadd132pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd132pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd132pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmadd132pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmadd132pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmadd132pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmadd132pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmadd132pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmadd213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1547) } -inst_vfmadd213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1547) } -inst_vfmadd213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1548) } -inst_vfmadd213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1548) } +inst_vfmadd213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1559) } +inst_vfmadd213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1559) } +inst_vfmadd213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1560) } +inst_vfmadd213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1560) } emit_vfmadd213pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd213pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd213pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmadd213pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmadd213pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmadd213pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmadd213pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmadd213pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmadd231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1549) } -inst_vfmadd231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1549) } -inst_vfmadd231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1550) } -inst_vfmadd231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1550) } +inst_vfmadd231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1561) } +inst_vfmadd231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1561) } +inst_vfmadd231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1562) } +inst_vfmadd231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1562) } emit_vfmadd231pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd231pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd231pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmadd231pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmadd231pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmadd231pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmadd231pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmadd231pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmadd132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1551) } -inst_vfmadd132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1551) } +inst_vfmadd132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1563) } +inst_vfmadd132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1563) } emit_vfmadd132ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd132ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd132ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfmadd132ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfmadd213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1552) } -inst_vfmadd213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1552) } +inst_vfmadd213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1564) } +inst_vfmadd213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1564) } emit_vfmadd213ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd213ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd213ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfmadd213ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfmadd231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1553) } -inst_vfmadd231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1553) } +inst_vfmadd231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1565) } +inst_vfmadd231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1565) } emit_vfmadd231ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd231ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd231ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfmadd231ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfmadd132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1554) } -inst_vfmadd132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1554) } +inst_vfmadd132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1566) } +inst_vfmadd132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1566) } emit_vfmadd132sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd132sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd132sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfmadd132sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfmadd213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1555) } -inst_vfmadd213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1555) } +inst_vfmadd213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1567) } +inst_vfmadd213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1567) } emit_vfmadd213sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd213sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd213sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfmadd213sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfmadd231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1556) } -inst_vfmadd231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1556) } +inst_vfmadd231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1568) } +inst_vfmadd231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1568) } emit_vfmadd231sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmadd231sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmadd231sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfmadd231sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfmsub132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1557) } -inst_vfmsub132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1557) } -inst_vfmsub132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1558) } -inst_vfmsub132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1558) } +inst_vfmsub132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1569) } +inst_vfmsub132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1569) } +inst_vfmsub132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1570) } +inst_vfmsub132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1570) } emit_vfmsub132ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub132ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub132ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsub132ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmsub132ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsub132ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsub132ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsub132ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsub213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1559) } -inst_vfmsub213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1559) } -inst_vfmsub213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1560) } -inst_vfmsub213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1560) } +inst_vfmsub213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1571) } +inst_vfmsub213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1571) } +inst_vfmsub213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1572) } +inst_vfmsub213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1572) } emit_vfmsub213ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub213ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub213ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsub213ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmsub213ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsub213ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsub213ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsub213ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsub231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1561) } -inst_vfmsub231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1561) } -inst_vfmsub231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1562) } -inst_vfmsub231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1562) } +inst_vfmsub231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1573) } +inst_vfmsub231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1573) } +inst_vfmsub231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1574) } +inst_vfmsub231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1574) } emit_vfmsub231ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub231ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub231ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsub231ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmsub231ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsub231ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsub231ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsub231ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsub132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1563) } -inst_vfmsub132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1563) } -inst_vfmsub132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1564) } -inst_vfmsub132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1564) } +inst_vfmsub132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1575) } +inst_vfmsub132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1575) } +inst_vfmsub132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1576) } +inst_vfmsub132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1576) } emit_vfmsub132pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub132pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub132pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsub132pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmsub132pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsub132pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsub132pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsub132pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsub213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1565) } -inst_vfmsub213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1565) } -inst_vfmsub213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1566) } -inst_vfmsub213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1566) } +inst_vfmsub213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1577) } +inst_vfmsub213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1577) } +inst_vfmsub213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1578) } +inst_vfmsub213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1578) } emit_vfmsub213pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub213pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub213pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsub213pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmsub213pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsub213pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsub213pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsub213pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsub231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1567) } -inst_vfmsub231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1567) } -inst_vfmsub231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1568) } -inst_vfmsub231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1568) } +inst_vfmsub231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1579) } +inst_vfmsub231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1579) } +inst_vfmsub231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1580) } +inst_vfmsub231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1580) } emit_vfmsub231pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub231pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub231pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsub231pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmsub231pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsub231pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsub231pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsub231pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsub132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1569) } -inst_vfmsub132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1569) } +inst_vfmsub132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1581) } +inst_vfmsub132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1581) } emit_vfmsub132ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub132ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub132ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfmsub132ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfmsub213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1570) } -inst_vfmsub213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1570) } +inst_vfmsub213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1582) } +inst_vfmsub213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1582) } emit_vfmsub213ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub213ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub213ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfmsub213ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfmsub231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1571) } -inst_vfmsub231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1571) } +inst_vfmsub231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1583) } +inst_vfmsub231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1583) } emit_vfmsub231ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub231ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub231ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfmsub231ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfmsub132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1572) } -inst_vfmsub132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1572) } +inst_vfmsub132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1584) } +inst_vfmsub132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1584) } emit_vfmsub132sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub132sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub132sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfmsub132sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfmsub213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1573) } -inst_vfmsub213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1573) } +inst_vfmsub213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1585) } +inst_vfmsub213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1585) } emit_vfmsub213sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub213sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub213sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfmsub213sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfmsub231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1574) } -inst_vfmsub231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1574) } +inst_vfmsub231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1586) } +inst_vfmsub231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1586) } emit_vfmsub231sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsub231sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsub231sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfmsub231sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfnmadd132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1575) } -inst_vfnmadd132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1575) } -inst_vfnmadd132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1576) } -inst_vfnmadd132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1576) } +inst_vfnmadd132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1587) } +inst_vfnmadd132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1587) } +inst_vfnmadd132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1588) } +inst_vfnmadd132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1588) } emit_vfnmadd132ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd132ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd132ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmadd132ps_xmm_xmm_m128(dst, src, src2)) } emit_vfnmadd132ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmadd132ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmadd132ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmadd132ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmadd213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1577) } -inst_vfnmadd213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1577) } -inst_vfnmadd213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1578) } -inst_vfnmadd213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1578) } +inst_vfnmadd213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1589) } +inst_vfnmadd213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1589) } +inst_vfnmadd213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1590) } +inst_vfnmadd213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1590) } emit_vfnmadd213ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd213ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd213ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmadd213ps_xmm_xmm_m128(dst, src, src2)) } emit_vfnmadd213ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmadd213ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmadd213ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmadd213ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmadd231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1579) } -inst_vfnmadd231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1579) } -inst_vfnmadd231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1580) } -inst_vfnmadd231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1580) } +inst_vfnmadd231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1591) } +inst_vfnmadd231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1591) } +inst_vfnmadd231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1592) } +inst_vfnmadd231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1592) } emit_vfnmadd231ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd231ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd231ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmadd231ps_xmm_xmm_m128(dst, src, src2)) } emit_vfnmadd231ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmadd231ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmadd231ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmadd231ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmadd132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1581) } -inst_vfnmadd132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1581) } -inst_vfnmadd132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1582) } -inst_vfnmadd132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1582) } +inst_vfnmadd132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1593) } +inst_vfnmadd132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1593) } +inst_vfnmadd132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1594) } +inst_vfnmadd132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1594) } emit_vfnmadd132pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd132pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd132pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmadd132pd_xmm_xmm_m128(dst, src, src2)) } emit_vfnmadd132pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmadd132pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmadd132pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmadd132pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmadd213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1583) } -inst_vfnmadd213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1583) } -inst_vfnmadd213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1584) } -inst_vfnmadd213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1584) } +inst_vfnmadd213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1595) } +inst_vfnmadd213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1595) } +inst_vfnmadd213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1596) } +inst_vfnmadd213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1596) } emit_vfnmadd213pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd213pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd213pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmadd213pd_xmm_xmm_m128(dst, src, src2)) } emit_vfnmadd213pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmadd213pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmadd213pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmadd213pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmadd231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1585) } -inst_vfnmadd231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1585) } -inst_vfnmadd231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1586) } -inst_vfnmadd231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1586) } +inst_vfnmadd231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1597) } +inst_vfnmadd231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1597) } +inst_vfnmadd231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1598) } +inst_vfnmadd231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1598) } emit_vfnmadd231pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd231pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd231pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmadd231pd_xmm_xmm_m128(dst, src, src2)) } emit_vfnmadd231pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmadd231pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmadd231pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmadd231pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmadd132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1587) } -inst_vfnmadd132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1587) } +inst_vfnmadd132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1599) } +inst_vfnmadd132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1599) } emit_vfnmadd132ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd132ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd132ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfnmadd132ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfnmadd213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1588) } -inst_vfnmadd213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1588) } +inst_vfnmadd213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1600) } +inst_vfnmadd213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1600) } emit_vfnmadd213ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd213ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd213ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfnmadd213ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfnmadd231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1589) } -inst_vfnmadd231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1589) } +inst_vfnmadd231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1601) } +inst_vfnmadd231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1601) } emit_vfnmadd231ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd231ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd231ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfnmadd231ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfnmadd132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1590) } -inst_vfnmadd132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1590) } +inst_vfnmadd132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1602) } +inst_vfnmadd132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1602) } emit_vfnmadd132sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd132sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd132sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfnmadd132sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfnmadd213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1591) } -inst_vfnmadd213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1591) } +inst_vfnmadd213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1603) } +inst_vfnmadd213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1603) } emit_vfnmadd213sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd213sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd213sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfnmadd213sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfnmadd231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1592) } -inst_vfnmadd231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1592) } +inst_vfnmadd231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1604) } +inst_vfnmadd231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMADD231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1604) } emit_vfnmadd231sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmadd231sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmadd231sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfnmadd231sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfnmsub132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1593) } -inst_vfnmsub132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1593) } -inst_vfnmsub132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1594) } -inst_vfnmsub132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1594) } +inst_vfnmsub132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1605) } +inst_vfnmsub132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1605) } +inst_vfnmsub132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1606) } +inst_vfnmsub132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1606) } emit_vfnmsub132ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub132ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub132ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmsub132ps_xmm_xmm_m128(dst, src, src2)) } emit_vfnmsub132ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmsub132ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmsub132ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmsub132ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmsub213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1595) } -inst_vfnmsub213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1595) } -inst_vfnmsub213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1596) } -inst_vfnmsub213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1596) } +inst_vfnmsub213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1607) } +inst_vfnmsub213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1607) } +inst_vfnmsub213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1608) } +inst_vfnmsub213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1608) } emit_vfnmsub213ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub213ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub213ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmsub213ps_xmm_xmm_m128(dst, src, src2)) } emit_vfnmsub213ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmsub213ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmsub213ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmsub213ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmsub231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1597) } -inst_vfnmsub231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1597) } -inst_vfnmsub231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1598) } -inst_vfnmsub231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1598) } +inst_vfnmsub231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1609) } +inst_vfnmsub231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1609) } +inst_vfnmsub231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1610) } +inst_vfnmsub231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1610) } emit_vfnmsub231ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub231ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub231ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmsub231ps_xmm_xmm_m128(dst, src, src2)) } emit_vfnmsub231ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmsub231ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmsub231ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmsub231ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmsub132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1599) } -inst_vfnmsub132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1599) } -inst_vfnmsub132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1600) } -inst_vfnmsub132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1600) } +inst_vfnmsub132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1611) } +inst_vfnmsub132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1611) } +inst_vfnmsub132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1612) } +inst_vfnmsub132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1612) } emit_vfnmsub132pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub132pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub132pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmsub132pd_xmm_xmm_m128(dst, src, src2)) } emit_vfnmsub132pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmsub132pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmsub132pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmsub132pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmsub213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1601) } -inst_vfnmsub213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1601) } -inst_vfnmsub213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1602) } -inst_vfnmsub213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1602) } +inst_vfnmsub213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1613) } +inst_vfnmsub213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1613) } +inst_vfnmsub213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1614) } +inst_vfnmsub213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1614) } emit_vfnmsub213pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub213pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub213pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmsub213pd_xmm_xmm_m128(dst, src, src2)) } emit_vfnmsub213pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmsub213pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmsub213pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmsub213pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmsub231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1603) } -inst_vfnmsub231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1603) } -inst_vfnmsub231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1604) } -inst_vfnmsub231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1604) } +inst_vfnmsub231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1615) } +inst_vfnmsub231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1615) } +inst_vfnmsub231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1616) } +inst_vfnmsub231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1616) } emit_vfnmsub231pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub231pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub231pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfnmsub231pd_xmm_xmm_m128(dst, src, src2)) } emit_vfnmsub231pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfnmsub231pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfnmsub231pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfnmsub231pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfnmsub132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1605) } -inst_vfnmsub132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1605) } +inst_vfnmsub132ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1617) } +inst_vfnmsub132ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1617) } emit_vfnmsub132ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub132ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub132ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfnmsub132ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfnmsub213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1606) } -inst_vfnmsub213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1606) } +inst_vfnmsub213ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1618) } +inst_vfnmsub213ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1618) } emit_vfnmsub213ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub213ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub213ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfnmsub213ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfnmsub231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1607) } -inst_vfnmsub231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1607) } +inst_vfnmsub231ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1619) } +inst_vfnmsub231ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1619) } emit_vfnmsub231ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub231ss_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub231ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vfnmsub231ss_xmm_xmm_m32(dst, src, src2)) } -inst_vfnmsub132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1608) } -inst_vfnmsub132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1608) } +inst_vfnmsub132sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1620) } +inst_vfnmsub132sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB132SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1620) } emit_vfnmsub132sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub132sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub132sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfnmsub132sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfnmsub213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1609) } -inst_vfnmsub213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1609) } +inst_vfnmsub213sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1621) } +inst_vfnmsub213sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB213SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1621) } emit_vfnmsub213sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub213sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub213sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfnmsub213sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfnmsub231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1610) } -inst_vfnmsub231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1610) } +inst_vfnmsub231sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1622) } +inst_vfnmsub231sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VFNMSUB231SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1622) } emit_vfnmsub231sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfnmsub231sd_xmm_xmm_xmm(dst, src, src2)) } emit_vfnmsub231sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vfnmsub231sd_xmm_xmm_m64(dst, src, src2)) } -inst_vfmaddsub132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1611) } -inst_vfmaddsub132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1611) } -inst_vfmaddsub132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1612) } -inst_vfmaddsub132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1612) } +inst_vfmaddsub132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1623) } +inst_vfmaddsub132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1623) } +inst_vfmaddsub132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1624) } +inst_vfmaddsub132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1624) } emit_vfmaddsub132ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmaddsub132ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmaddsub132ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmaddsub132ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmaddsub132ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmaddsub132ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmaddsub132ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmaddsub132ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmaddsub213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1613) } -inst_vfmaddsub213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1613) } -inst_vfmaddsub213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1614) } -inst_vfmaddsub213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1614) } +inst_vfmaddsub213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1625) } +inst_vfmaddsub213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1625) } +inst_vfmaddsub213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1626) } +inst_vfmaddsub213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1626) } emit_vfmaddsub213ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmaddsub213ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmaddsub213ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmaddsub213ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmaddsub213ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmaddsub213ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmaddsub213ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmaddsub213ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmaddsub231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1615) } -inst_vfmaddsub231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1615) } -inst_vfmaddsub231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1616) } -inst_vfmaddsub231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1616) } +inst_vfmaddsub231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1627) } +inst_vfmaddsub231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1627) } +inst_vfmaddsub231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1628) } +inst_vfmaddsub231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1628) } emit_vfmaddsub231ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmaddsub231ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmaddsub231ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmaddsub231ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmaddsub231ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmaddsub231ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmaddsub231ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmaddsub231ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmaddsub132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1617) } -inst_vfmaddsub132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1617) } -inst_vfmaddsub132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1618) } -inst_vfmaddsub132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1618) } +inst_vfmaddsub132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1629) } +inst_vfmaddsub132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1629) } +inst_vfmaddsub132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1630) } +inst_vfmaddsub132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1630) } emit_vfmaddsub132pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmaddsub132pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmaddsub132pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmaddsub132pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmaddsub132pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmaddsub132pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmaddsub132pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmaddsub132pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmaddsub213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1619) } -inst_vfmaddsub213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1619) } -inst_vfmaddsub213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1620) } -inst_vfmaddsub213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1620) } +inst_vfmaddsub213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1631) } +inst_vfmaddsub213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1631) } +inst_vfmaddsub213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1632) } +inst_vfmaddsub213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1632) } emit_vfmaddsub213pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmaddsub213pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmaddsub213pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmaddsub213pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmaddsub213pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmaddsub213pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmaddsub213pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmaddsub213pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmaddsub231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1621) } -inst_vfmaddsub231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1621) } -inst_vfmaddsub231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1622) } -inst_vfmaddsub231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1622) } +inst_vfmaddsub231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1633) } +inst_vfmaddsub231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1633) } +inst_vfmaddsub231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1634) } +inst_vfmaddsub231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMADDSUB231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1634) } emit_vfmaddsub231pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmaddsub231pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmaddsub231pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmaddsub231pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmaddsub231pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmaddsub231pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmaddsub231pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmaddsub231pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsubadd132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1623) } -inst_vfmsubadd132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1623) } -inst_vfmsubadd132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1624) } -inst_vfmsubadd132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1624) } +inst_vfmsubadd132ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1635) } +inst_vfmsubadd132ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1635) } +inst_vfmsubadd132ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1636) } +inst_vfmsubadd132ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1636) } emit_vfmsubadd132ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsubadd132ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsubadd132ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsubadd132ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmsubadd132ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsubadd132ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsubadd132ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsubadd132ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsubadd213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1625) } -inst_vfmsubadd213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1625) } -inst_vfmsubadd213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1626) } -inst_vfmsubadd213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1626) } +inst_vfmsubadd213ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1637) } +inst_vfmsubadd213ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1637) } +inst_vfmsubadd213ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1638) } +inst_vfmsubadd213ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1638) } emit_vfmsubadd213ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsubadd213ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsubadd213ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsubadd213ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmsubadd213ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsubadd213ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsubadd213ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsubadd213ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsubadd231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1627) } -inst_vfmsubadd231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1627) } -inst_vfmsubadd231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1628) } -inst_vfmsubadd231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1628) } +inst_vfmsubadd231ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1639) } +inst_vfmsubadd231ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1639) } +inst_vfmsubadd231ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1640) } +inst_vfmsubadd231ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1640) } emit_vfmsubadd231ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsubadd231ps_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsubadd231ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsubadd231ps_xmm_xmm_m128(dst, src, src2)) } emit_vfmsubadd231ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsubadd231ps_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsubadd231ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsubadd231ps_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsubadd132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1629) } -inst_vfmsubadd132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1629) } -inst_vfmsubadd132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1630) } -inst_vfmsubadd132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1630) } +inst_vfmsubadd132pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1641) } +inst_vfmsubadd132pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1641) } +inst_vfmsubadd132pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1642) } +inst_vfmsubadd132pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD132PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1642) } emit_vfmsubadd132pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsubadd132pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsubadd132pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsubadd132pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmsubadd132pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsubadd132pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsubadd132pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsubadd132pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsubadd213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1631) } -inst_vfmsubadd213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1631) } -inst_vfmsubadd213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1632) } -inst_vfmsubadd213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1632) } +inst_vfmsubadd213pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1643) } +inst_vfmsubadd213pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1643) } +inst_vfmsubadd213pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1644) } +inst_vfmsubadd213pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD213PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1644) } emit_vfmsubadd213pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsubadd213pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsubadd213pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsubadd213pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmsubadd213pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsubadd213pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsubadd213pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsubadd213pd_ymm_ymm_m256(dst, src, src2)) } -inst_vfmsubadd231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1633) } -inst_vfmsubadd231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1633) } -inst_vfmsubadd231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1634) } -inst_vfmsubadd231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1634) } +inst_vfmsubadd231pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1645) } +inst_vfmsubadd231pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1645) } +inst_vfmsubadd231pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1646) } +inst_vfmsubadd231pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VFMSUBADD231PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1646) } emit_vfmsubadd231pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vfmsubadd231pd_xmm_xmm_xmm(dst, src, src2)) } emit_vfmsubadd231pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vfmsubadd231pd_xmm_xmm_m128(dst, src, src2)) } emit_vfmsubadd231pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vfmsubadd231pd_ymm_ymm_ymm(dst, src, src2)) } emit_vfmsubadd231pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vfmsubadd231pd_ymm_ymm_m256(dst, src, src2)) } -inst_vcvtph2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1635) } -inst_vcvtph2ps_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1635) } -inst_vcvtph2ps_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1636) } -inst_vcvtph2ps_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1636) } -inst_vcvtph2ps_zmm_ymm :: #force_inline proc "contextless" (dst: ZMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_zmm(dst), op_ymm(src), {}, {}} }, 1637) } -inst_vcvtph2ps_zmm_m256 :: #force_inline proc "contextless" (dst: ZMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 32), {}, {}} }, 1637) } +inst_vcvtph2ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1647) } +inst_vcvtph2ps_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 8), {}, {}} }, 1647) } +inst_vcvtph2ps_ymm_xmm :: #force_inline proc "contextless" (dst: YMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_ymm(dst), op_xmm(src), {}, {}} }, 1648) } +inst_vcvtph2ps_ymm_m128 :: #force_inline proc "contextless" (dst: YMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 16), {}, {}} }, 1648) } +inst_vcvtph2ps_zmm_ymm :: #force_inline proc "contextless" (dst: ZMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_zmm(dst), op_ymm(src), {}, {}} }, 1649) } +inst_vcvtph2ps_zmm_m256 :: #force_inline proc "contextless" (dst: ZMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPH2PS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 32), {}, {}} }, 1649) } emit_vcvtph2ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcvtph2ps_xmm_xmm(dst, src)) } emit_vcvtph2ps_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem64) { append(instructions, inst_vcvtph2ps_xmm_m64(dst, src)) } emit_vcvtph2ps_ymm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: XMM) { append(instructions, inst_vcvtph2ps_ymm_xmm(dst, src)) } emit_vcvtph2ps_ymm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem128) { append(instructions, inst_vcvtph2ps_ymm_m128(dst, src)) } emit_vcvtph2ps_zmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: YMM) { append(instructions, inst_vcvtph2ps_zmm_ymm(dst, src)) } emit_vcvtph2ps_zmm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem256) { append(instructions, inst_vcvtph2ps_zmm_m256(dst, src)) } -inst_vcvtps2ph_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1638) } -inst_vcvtps2ph_m64_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_mem(dst.mem, 8), op_xmm(src), op_imm8(imm), {}} }, 1638) } -inst_vcvtps2ph_xmm_ymm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_xmm(dst), op_ymm(src), op_imm8(imm), {}} }, 1639) } -inst_vcvtps2ph_m128_ymm_imm8 :: #force_inline proc "contextless" (dst: Mem128, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_mem(dst.mem, 16), op_ymm(src), op_imm8(imm), {}} }, 1639) } -inst_vcvtps2ph_ymm_zmm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_ymm(dst), op_zmm(src), op_imm8(imm), {}} }, 1640) } -inst_vcvtps2ph_m256_zmm_imm8 :: #force_inline proc "contextless" (dst: Mem256, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_mem(dst.mem, 32), op_zmm(src), op_imm8(imm), {}} }, 1640) } +inst_vcvtps2ph_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1650) } +inst_vcvtps2ph_m64_xmm_imm8 :: #force_inline proc "contextless" (dst: Mem64, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_mem(dst.mem, 8), op_xmm(src), op_imm8(imm), {}} }, 1650) } +inst_vcvtps2ph_xmm_ymm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_xmm(dst), op_ymm(src), op_imm8(imm), {}} }, 1651) } +inst_vcvtps2ph_m128_ymm_imm8 :: #force_inline proc "contextless" (dst: Mem128, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_mem(dst.mem, 16), op_ymm(src), op_imm8(imm), {}} }, 1651) } +inst_vcvtps2ph_ymm_zmm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_ymm(dst), op_zmm(src), op_imm8(imm), {}} }, 1652) } +inst_vcvtps2ph_m256_zmm_imm8 :: #force_inline proc "contextless" (dst: Mem256, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VCVTPS2PH, operand_count = 3, ops = {op_mem(dst.mem, 32), op_zmm(src), op_imm8(imm), {}} }, 1652) } emit_vcvtps2ph_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vcvtps2ph_xmm_xmm_imm8(dst, src, imm)) } emit_vcvtps2ph_m64_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM, imm: i8) { append(instructions, inst_vcvtps2ph_m64_xmm_imm8(dst, src, imm)) } emit_vcvtps2ph_xmm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM, imm: i8) { append(instructions, inst_vcvtps2ph_xmm_ymm_imm8(dst, src, imm)) } emit_vcvtps2ph_m128_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM, imm: i8) { append(instructions, inst_vcvtps2ph_m128_ymm_imm8(dst, src, imm)) } emit_vcvtps2ph_ymm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM, imm: i8) { append(instructions, inst_vcvtps2ph_ymm_zmm_imm8(dst, src, imm)) } emit_vcvtps2ph_m256_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM, imm: i8) { append(instructions, inst_vcvtps2ph_m256_zmm_imm8(dst, src, imm)) } -inst_vmovdqa32_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1641) } -inst_vmovdqa32_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1641) } -inst_vmovdqa32_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1642) } -inst_vmovdqa32_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1643) } -inst_vmovdqa32_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1643) } -inst_vmovdqa32_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1644) } -inst_vmovdqa32_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1645) } -inst_vmovdqa32_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1645) } -inst_vmovdqa32_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1646) } +inst_vmovdqa32_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1653) } +inst_vmovdqa32_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1653) } +inst_vmovdqa32_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1654) } +inst_vmovdqa32_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1655) } +inst_vmovdqa32_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1655) } +inst_vmovdqa32_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1656) } +inst_vmovdqa32_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1657) } +inst_vmovdqa32_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1657) } +inst_vmovdqa32_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA32, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1658) } emit_vmovdqa32_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqa32_xmm_xmm(dst, src)) } emit_vmovdqa32_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqa32_xmm_m128(dst, src)) } emit_vmovdqa32_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqa32_m128_xmm(dst, src)) } @@ -5463,15 +5495,15 @@ emit_vmovdqa32_m256_ymm :: #force_inline proc(instructions: ^[dynami emit_vmovdqa32_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vmovdqa32_zmm_zmm(dst, src)) } emit_vmovdqa32_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vmovdqa32_zmm_m512(dst, src)) } emit_vmovdqa32_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vmovdqa32_m512_zmm(dst, src)) } -inst_vmovdqa64_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1647) } -inst_vmovdqa64_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1647) } -inst_vmovdqa64_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1648) } -inst_vmovdqa64_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1649) } -inst_vmovdqa64_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1649) } -inst_vmovdqa64_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1650) } -inst_vmovdqa64_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1651) } -inst_vmovdqa64_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1651) } -inst_vmovdqa64_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1652) } +inst_vmovdqa64_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1659) } +inst_vmovdqa64_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1659) } +inst_vmovdqa64_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1660) } +inst_vmovdqa64_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1661) } +inst_vmovdqa64_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1661) } +inst_vmovdqa64_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1662) } +inst_vmovdqa64_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1663) } +inst_vmovdqa64_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1663) } +inst_vmovdqa64_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQA64, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1664) } emit_vmovdqa64_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqa64_xmm_xmm(dst, src)) } emit_vmovdqa64_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqa64_xmm_m128(dst, src)) } emit_vmovdqa64_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqa64_m128_xmm(dst, src)) } @@ -5481,15 +5513,15 @@ emit_vmovdqa64_m256_ymm :: #force_inline proc(instructions: ^[dynami emit_vmovdqa64_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vmovdqa64_zmm_zmm(dst, src)) } emit_vmovdqa64_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vmovdqa64_zmm_m512(dst, src)) } emit_vmovdqa64_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vmovdqa64_m512_zmm(dst, src)) } -inst_vmovdqu8_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1653) } -inst_vmovdqu8_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1653) } -inst_vmovdqu8_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1654) } -inst_vmovdqu8_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1655) } -inst_vmovdqu8_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1655) } -inst_vmovdqu8_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1656) } -inst_vmovdqu8_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1657) } -inst_vmovdqu8_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1657) } -inst_vmovdqu8_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1658) } +inst_vmovdqu8_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1665) } +inst_vmovdqu8_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1665) } +inst_vmovdqu8_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1666) } +inst_vmovdqu8_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1667) } +inst_vmovdqu8_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1667) } +inst_vmovdqu8_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1668) } +inst_vmovdqu8_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1669) } +inst_vmovdqu8_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1669) } +inst_vmovdqu8_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU8, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1670) } emit_vmovdqu8_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqu8_xmm_xmm(dst, src)) } emit_vmovdqu8_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqu8_xmm_m128(dst, src)) } emit_vmovdqu8_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqu8_m128_xmm(dst, src)) } @@ -5499,15 +5531,15 @@ emit_vmovdqu8_m256_ymm :: #force_inline proc(instructions: ^[dynami emit_vmovdqu8_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vmovdqu8_zmm_zmm(dst, src)) } emit_vmovdqu8_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vmovdqu8_zmm_m512(dst, src)) } emit_vmovdqu8_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vmovdqu8_m512_zmm(dst, src)) } -inst_vmovdqu16_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1659) } -inst_vmovdqu16_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1659) } -inst_vmovdqu16_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1660) } -inst_vmovdqu16_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1661) } -inst_vmovdqu16_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1661) } -inst_vmovdqu16_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1662) } -inst_vmovdqu16_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1663) } -inst_vmovdqu16_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1663) } -inst_vmovdqu16_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1664) } +inst_vmovdqu16_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1671) } +inst_vmovdqu16_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1671) } +inst_vmovdqu16_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1672) } +inst_vmovdqu16_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1673) } +inst_vmovdqu16_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1673) } +inst_vmovdqu16_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1674) } +inst_vmovdqu16_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1675) } +inst_vmovdqu16_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1675) } +inst_vmovdqu16_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU16, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1676) } emit_vmovdqu16_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqu16_xmm_xmm(dst, src)) } emit_vmovdqu16_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqu16_xmm_m128(dst, src)) } emit_vmovdqu16_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqu16_m128_xmm(dst, src)) } @@ -5517,15 +5549,15 @@ emit_vmovdqu16_m256_ymm :: #force_inline proc(instructions: ^[dynami emit_vmovdqu16_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vmovdqu16_zmm_zmm(dst, src)) } emit_vmovdqu16_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vmovdqu16_zmm_m512(dst, src)) } emit_vmovdqu16_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vmovdqu16_m512_zmm(dst, src)) } -inst_vmovdqu32_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1665) } -inst_vmovdqu32_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1665) } -inst_vmovdqu32_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1666) } -inst_vmovdqu32_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1667) } -inst_vmovdqu32_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1667) } -inst_vmovdqu32_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1668) } -inst_vmovdqu32_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1669) } -inst_vmovdqu32_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1669) } -inst_vmovdqu32_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1670) } +inst_vmovdqu32_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1677) } +inst_vmovdqu32_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1677) } +inst_vmovdqu32_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1678) } +inst_vmovdqu32_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1679) } +inst_vmovdqu32_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1679) } +inst_vmovdqu32_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1680) } +inst_vmovdqu32_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1681) } +inst_vmovdqu32_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1681) } +inst_vmovdqu32_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU32, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1682) } emit_vmovdqu32_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqu32_xmm_xmm(dst, src)) } emit_vmovdqu32_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqu32_xmm_m128(dst, src)) } emit_vmovdqu32_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqu32_m128_xmm(dst, src)) } @@ -5535,15 +5567,15 @@ emit_vmovdqu32_m256_ymm :: #force_inline proc(instructions: ^[dynami emit_vmovdqu32_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vmovdqu32_zmm_zmm(dst, src)) } emit_vmovdqu32_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vmovdqu32_zmm_m512(dst, src)) } emit_vmovdqu32_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vmovdqu32_m512_zmm(dst, src)) } -inst_vmovdqu64_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1671) } -inst_vmovdqu64_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1671) } -inst_vmovdqu64_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1672) } -inst_vmovdqu64_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1673) } -inst_vmovdqu64_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1673) } -inst_vmovdqu64_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1674) } -inst_vmovdqu64_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1675) } -inst_vmovdqu64_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1675) } -inst_vmovdqu64_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1676) } +inst_vmovdqu64_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1683) } +inst_vmovdqu64_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1683) } +inst_vmovdqu64_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1684) } +inst_vmovdqu64_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1685) } +inst_vmovdqu64_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1685) } +inst_vmovdqu64_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1686) } +inst_vmovdqu64_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1687) } +inst_vmovdqu64_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1687) } +inst_vmovdqu64_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VMOVDQU64, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1688) } emit_vmovdqu64_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vmovdqu64_xmm_xmm(dst, src)) } emit_vmovdqu64_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vmovdqu64_xmm_m128(dst, src)) } emit_vmovdqu64_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vmovdqu64_m128_xmm(dst, src)) } @@ -5553,2086 +5585,2086 @@ emit_vmovdqu64_m256_ymm :: #force_inline proc(instructions: ^[dynami emit_vmovdqu64_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vmovdqu64_zmm_zmm(dst, src)) } emit_vmovdqu64_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vmovdqu64_zmm_m512(dst, src)) } emit_vmovdqu64_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vmovdqu64_m512_zmm(dst, src)) } -inst_vpblendmb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1677) } -inst_vpblendmb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1677) } -inst_vpblendmb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1678) } -inst_vpblendmb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1678) } -inst_vpblendmb_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1679) } -inst_vpblendmb_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1679) } +inst_vpblendmb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1689) } +inst_vpblendmb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1689) } +inst_vpblendmb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1690) } +inst_vpblendmb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1690) } +inst_vpblendmb_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1691) } +inst_vpblendmb_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1691) } emit_vpblendmb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpblendmb_xmm_xmm_xmm(dst, src, src2)) } emit_vpblendmb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpblendmb_xmm_xmm_m128(dst, src, src2)) } emit_vpblendmb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpblendmb_ymm_ymm_ymm(dst, src, src2)) } emit_vpblendmb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpblendmb_ymm_ymm_m256(dst, src, src2)) } emit_vpblendmb_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpblendmb_zmm_zmm_zmm(dst, src, src2)) } emit_vpblendmb_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpblendmb_zmm_zmm_m512(dst, src, src2)) } -inst_vpblendmw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1680) } -inst_vpblendmw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1680) } -inst_vpblendmw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1681) } -inst_vpblendmw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1681) } -inst_vpblendmw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1682) } -inst_vpblendmw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1682) } +inst_vpblendmw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1692) } +inst_vpblendmw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1692) } +inst_vpblendmw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1693) } +inst_vpblendmw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1693) } +inst_vpblendmw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1694) } +inst_vpblendmw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1694) } emit_vpblendmw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpblendmw_xmm_xmm_xmm(dst, src, src2)) } emit_vpblendmw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpblendmw_xmm_xmm_m128(dst, src, src2)) } emit_vpblendmw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpblendmw_ymm_ymm_ymm(dst, src, src2)) } emit_vpblendmw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpblendmw_ymm_ymm_m256(dst, src, src2)) } emit_vpblendmw_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpblendmw_zmm_zmm_zmm(dst, src, src2)) } emit_vpblendmw_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpblendmw_zmm_zmm_m512(dst, src, src2)) } -inst_vpblendmd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1683) } -inst_vpblendmd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1683) } -inst_vpblendmd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1684) } -inst_vpblendmd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1684) } -inst_vpblendmd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1685) } -inst_vpblendmd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1685) } +inst_vpblendmd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1695) } +inst_vpblendmd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1695) } +inst_vpblendmd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1696) } +inst_vpblendmd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1696) } +inst_vpblendmd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1697) } +inst_vpblendmd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1697) } emit_vpblendmd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpblendmd_xmm_xmm_xmm(dst, src, src2)) } emit_vpblendmd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpblendmd_xmm_xmm_m128(dst, src, src2)) } emit_vpblendmd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpblendmd_ymm_ymm_ymm(dst, src, src2)) } emit_vpblendmd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpblendmd_ymm_ymm_m256(dst, src, src2)) } emit_vpblendmd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpblendmd_zmm_zmm_zmm(dst, src, src2)) } emit_vpblendmd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpblendmd_zmm_zmm_m512(dst, src, src2)) } -inst_vpblendmq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1686) } -inst_vpblendmq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1686) } -inst_vpblendmq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1687) } -inst_vpblendmq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1687) } -inst_vpblendmq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1688) } -inst_vpblendmq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1688) } +inst_vpblendmq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1698) } +inst_vpblendmq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1698) } +inst_vpblendmq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1699) } +inst_vpblendmq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1699) } +inst_vpblendmq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1700) } +inst_vpblendmq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPBLENDMQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1700) } emit_vpblendmq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpblendmq_xmm_xmm_xmm(dst, src, src2)) } emit_vpblendmq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpblendmq_xmm_xmm_m128(dst, src, src2)) } emit_vpblendmq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpblendmq_ymm_ymm_ymm(dst, src, src2)) } emit_vpblendmq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpblendmq_ymm_ymm_m256(dst, src, src2)) } emit_vpblendmq_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpblendmq_zmm_zmm_zmm(dst, src, src2)) } emit_vpblendmq_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpblendmq_zmm_zmm_m512(dst, src, src2)) } -inst_vblendmps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1689) } -inst_vblendmps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1689) } -inst_vblendmps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1690) } -inst_vblendmps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1690) } -inst_vblendmps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1691) } -inst_vblendmps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1691) } +inst_vblendmps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1701) } +inst_vblendmps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1701) } +inst_vblendmps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1702) } +inst_vblendmps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1702) } +inst_vblendmps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1703) } +inst_vblendmps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1703) } emit_vblendmps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vblendmps_xmm_xmm_xmm(dst, src, src2)) } emit_vblendmps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vblendmps_xmm_xmm_m128(dst, src, src2)) } emit_vblendmps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vblendmps_ymm_ymm_ymm(dst, src, src2)) } emit_vblendmps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vblendmps_ymm_ymm_m256(dst, src, src2)) } emit_vblendmps_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vblendmps_zmm_zmm_zmm(dst, src, src2)) } emit_vblendmps_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vblendmps_zmm_zmm_m512(dst, src, src2)) } -inst_vblendmpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1692) } -inst_vblendmpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1692) } -inst_vblendmpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1693) } -inst_vblendmpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1693) } -inst_vblendmpd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1694) } -inst_vblendmpd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1694) } +inst_vblendmpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1704) } +inst_vblendmpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1704) } +inst_vblendmpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1705) } +inst_vblendmpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1705) } +inst_vblendmpd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1706) } +inst_vblendmpd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VBLENDMPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1706) } emit_vblendmpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vblendmpd_xmm_xmm_xmm(dst, src, src2)) } emit_vblendmpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vblendmpd_xmm_xmm_m128(dst, src, src2)) } emit_vblendmpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vblendmpd_ymm_ymm_ymm(dst, src, src2)) } emit_vblendmpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vblendmpd_ymm_ymm_m256(dst, src, src2)) } emit_vblendmpd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vblendmpd_zmm_zmm_zmm(dst, src, src2)) } emit_vblendmpd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vblendmpd_zmm_zmm_m512(dst, src, src2)) } -inst_vpcmpb_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1695) } -inst_vpcmpb_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1695) } -inst_vpcmpb_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1696) } -inst_vpcmpb_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1696) } -inst_vpcmpb_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1697) } -inst_vpcmpb_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1697) } +inst_vpcmpb_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1707) } +inst_vpcmpb_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1707) } +inst_vpcmpb_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1708) } +inst_vpcmpb_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1708) } +inst_vpcmpb_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1709) } +inst_vpcmpb_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1709) } emit_vpcmpb_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpb_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpb_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpb_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpb_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpb_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpb_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpb_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpb_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpb_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpb_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpb_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpub_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1698) } -inst_vpcmpub_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1698) } -inst_vpcmpub_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1699) } -inst_vpcmpub_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1699) } -inst_vpcmpub_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1700) } -inst_vpcmpub_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1700) } +inst_vpcmpub_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1710) } +inst_vpcmpub_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1710) } +inst_vpcmpub_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1711) } +inst_vpcmpub_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1711) } +inst_vpcmpub_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1712) } +inst_vpcmpub_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUB, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1712) } emit_vpcmpub_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpub_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpub_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpub_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpub_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpub_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpub_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpub_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpub_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpub_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpub_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpub_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpw_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1701) } -inst_vpcmpw_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1701) } -inst_vpcmpw_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1702) } -inst_vpcmpw_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1702) } -inst_vpcmpw_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1703) } -inst_vpcmpw_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1703) } +inst_vpcmpw_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1713) } +inst_vpcmpw_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1713) } +inst_vpcmpw_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1714) } +inst_vpcmpw_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1714) } +inst_vpcmpw_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1715) } +inst_vpcmpw_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1715) } emit_vpcmpw_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpw_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpw_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpw_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpw_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpw_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpw_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpw_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpw_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpw_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpw_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpw_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpuw_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1704) } -inst_vpcmpuw_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1704) } -inst_vpcmpuw_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1705) } -inst_vpcmpuw_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1705) } -inst_vpcmpuw_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1706) } -inst_vpcmpuw_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1706) } +inst_vpcmpuw_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1716) } +inst_vpcmpuw_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1716) } +inst_vpcmpuw_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1717) } +inst_vpcmpuw_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1717) } +inst_vpcmpuw_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1718) } +inst_vpcmpuw_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUW, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1718) } emit_vpcmpuw_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpuw_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpuw_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpuw_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpuw_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpuw_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpuw_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpuw_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpuw_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpuw_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpuw_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpuw_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpd_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1707) } -inst_vpcmpd_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1707) } -inst_vpcmpd_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1708) } -inst_vpcmpd_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1708) } -inst_vpcmpd_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1709) } -inst_vpcmpd_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1709) } +inst_vpcmpd_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1719) } +inst_vpcmpd_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1719) } +inst_vpcmpd_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1720) } +inst_vpcmpd_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1720) } +inst_vpcmpd_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1721) } +inst_vpcmpd_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1721) } emit_vpcmpd_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpd_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpd_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpd_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpd_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpd_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpd_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpd_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpd_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpd_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpd_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpd_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpud_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1710) } -inst_vpcmpud_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1710) } -inst_vpcmpud_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1711) } -inst_vpcmpud_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1711) } -inst_vpcmpud_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1712) } -inst_vpcmpud_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1712) } +inst_vpcmpud_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1722) } +inst_vpcmpud_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1722) } +inst_vpcmpud_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1723) } +inst_vpcmpud_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1723) } +inst_vpcmpud_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1724) } +inst_vpcmpud_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUD, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1724) } emit_vpcmpud_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpud_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpud_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpud_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpud_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpud_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpud_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpud_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpud_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpud_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpud_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpud_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpq_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1713) } -inst_vpcmpq_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1713) } -inst_vpcmpq_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1714) } -inst_vpcmpq_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1714) } -inst_vpcmpq_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1715) } -inst_vpcmpq_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1715) } +inst_vpcmpq_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1725) } +inst_vpcmpq_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1725) } +inst_vpcmpq_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1726) } +inst_vpcmpq_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1726) } +inst_vpcmpq_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1727) } +inst_vpcmpq_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1727) } emit_vpcmpq_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpq_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpq_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpq_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpq_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpq_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpq_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpq_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpq_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpq_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpq_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpq_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpcmpuq_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1716) } -inst_vpcmpuq_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1716) } -inst_vpcmpuq_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1717) } -inst_vpcmpuq_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1717) } -inst_vpcmpuq_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1718) } -inst_vpcmpuq_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1718) } +inst_vpcmpuq_k_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1728) } +inst_vpcmpuq_k_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1728) } +inst_vpcmpuq_k_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1729) } +inst_vpcmpuq_k_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1729) } +inst_vpcmpuq_k_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1730) } +inst_vpcmpuq_k_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCMPUQ, operand_count = 4, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1730) } emit_vpcmpuq_k_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpcmpuq_k_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpcmpuq_k_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpcmpuq_k_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpcmpuq_k_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpcmpuq_k_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpcmpuq_k_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpcmpuq_k_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpcmpuq_k_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpcmpuq_k_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpcmpuq_k_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpcmpuq_k_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vptestmb_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1719) } -inst_vptestmb_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1719) } -inst_vptestmb_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1720) } -inst_vptestmb_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1720) } -inst_vptestmb_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1721) } -inst_vptestmb_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1721) } +inst_vptestmb_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1731) } +inst_vptestmb_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1731) } +inst_vptestmb_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1732) } +inst_vptestmb_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1732) } +inst_vptestmb_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1733) } +inst_vptestmb_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1733) } emit_vptestmb_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestmb_k_xmm_xmm(dst, src, src2)) } emit_vptestmb_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestmb_k_xmm_m128(dst, src, src2)) } emit_vptestmb_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestmb_k_ymm_ymm(dst, src, src2)) } emit_vptestmb_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestmb_k_ymm_m256(dst, src, src2)) } emit_vptestmb_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestmb_k_zmm_zmm(dst, src, src2)) } emit_vptestmb_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestmb_k_zmm_m512(dst, src, src2)) } -inst_vptestmw_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1722) } -inst_vptestmw_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1722) } -inst_vptestmw_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1723) } -inst_vptestmw_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1723) } -inst_vptestmw_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1724) } -inst_vptestmw_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1724) } +inst_vptestmw_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1734) } +inst_vptestmw_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1734) } +inst_vptestmw_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1735) } +inst_vptestmw_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1735) } +inst_vptestmw_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1736) } +inst_vptestmw_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1736) } emit_vptestmw_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestmw_k_xmm_xmm(dst, src, src2)) } emit_vptestmw_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestmw_k_xmm_m128(dst, src, src2)) } emit_vptestmw_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestmw_k_ymm_ymm(dst, src, src2)) } emit_vptestmw_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestmw_k_ymm_m256(dst, src, src2)) } emit_vptestmw_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestmw_k_zmm_zmm(dst, src, src2)) } emit_vptestmw_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestmw_k_zmm_m512(dst, src, src2)) } -inst_vptestmd_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1725) } -inst_vptestmd_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1725) } -inst_vptestmd_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1726) } -inst_vptestmd_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1726) } -inst_vptestmd_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1727) } -inst_vptestmd_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1727) } +inst_vptestmd_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1737) } +inst_vptestmd_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1737) } +inst_vptestmd_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1738) } +inst_vptestmd_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1738) } +inst_vptestmd_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1739) } +inst_vptestmd_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1739) } emit_vptestmd_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestmd_k_xmm_xmm(dst, src, src2)) } emit_vptestmd_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestmd_k_xmm_m128(dst, src, src2)) } emit_vptestmd_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestmd_k_ymm_ymm(dst, src, src2)) } emit_vptestmd_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestmd_k_ymm_m256(dst, src, src2)) } emit_vptestmd_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestmd_k_zmm_zmm(dst, src, src2)) } emit_vptestmd_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestmd_k_zmm_m512(dst, src, src2)) } -inst_vptestmq_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1728) } -inst_vptestmq_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1728) } -inst_vptestmq_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1729) } -inst_vptestmq_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1729) } -inst_vptestmq_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1730) } -inst_vptestmq_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1730) } +inst_vptestmq_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1740) } +inst_vptestmq_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1740) } +inst_vptestmq_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1741) } +inst_vptestmq_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1741) } +inst_vptestmq_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1742) } +inst_vptestmq_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1742) } emit_vptestmq_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestmq_k_xmm_xmm(dst, src, src2)) } emit_vptestmq_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestmq_k_xmm_m128(dst, src, src2)) } emit_vptestmq_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestmq_k_ymm_ymm(dst, src, src2)) } emit_vptestmq_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestmq_k_ymm_m256(dst, src, src2)) } emit_vptestmq_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestmq_k_zmm_zmm(dst, src, src2)) } emit_vptestmq_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestmq_k_zmm_m512(dst, src, src2)) } -inst_vptestnmb_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1731) } -inst_vptestnmb_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1731) } -inst_vptestnmb_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1732) } -inst_vptestnmb_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1732) } -inst_vptestnmb_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1733) } -inst_vptestnmb_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1733) } +inst_vptestnmb_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1743) } +inst_vptestnmb_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1743) } +inst_vptestnmb_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1744) } +inst_vptestnmb_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1744) } +inst_vptestnmb_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1745) } +inst_vptestnmb_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMB, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1745) } emit_vptestnmb_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestnmb_k_xmm_xmm(dst, src, src2)) } emit_vptestnmb_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestnmb_k_xmm_m128(dst, src, src2)) } emit_vptestnmb_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestnmb_k_ymm_ymm(dst, src, src2)) } emit_vptestnmb_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestnmb_k_ymm_m256(dst, src, src2)) } emit_vptestnmb_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestnmb_k_zmm_zmm(dst, src, src2)) } emit_vptestnmb_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestnmb_k_zmm_m512(dst, src, src2)) } -inst_vptestnmw_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1734) } -inst_vptestnmw_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1734) } -inst_vptestnmw_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1735) } -inst_vptestnmw_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1735) } -inst_vptestnmw_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1736) } -inst_vptestnmw_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1736) } +inst_vptestnmw_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1746) } +inst_vptestnmw_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1746) } +inst_vptestnmw_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1747) } +inst_vptestnmw_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1747) } +inst_vptestnmw_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1748) } +inst_vptestnmw_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMW, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1748) } emit_vptestnmw_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestnmw_k_xmm_xmm(dst, src, src2)) } emit_vptestnmw_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestnmw_k_xmm_m128(dst, src, src2)) } emit_vptestnmw_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestnmw_k_ymm_ymm(dst, src, src2)) } emit_vptestnmw_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestnmw_k_ymm_m256(dst, src, src2)) } emit_vptestnmw_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestnmw_k_zmm_zmm(dst, src, src2)) } emit_vptestnmw_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestnmw_k_zmm_m512(dst, src, src2)) } -inst_vptestnmd_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1737) } -inst_vptestnmd_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1737) } -inst_vptestnmd_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1738) } -inst_vptestnmd_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1738) } -inst_vptestnmd_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1739) } -inst_vptestnmd_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1739) } +inst_vptestnmd_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1749) } +inst_vptestnmd_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1749) } +inst_vptestnmd_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1750) } +inst_vptestnmd_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1750) } +inst_vptestnmd_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1751) } +inst_vptestnmd_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1751) } emit_vptestnmd_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestnmd_k_xmm_xmm(dst, src, src2)) } emit_vptestnmd_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestnmd_k_xmm_m128(dst, src, src2)) } emit_vptestnmd_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestnmd_k_ymm_ymm(dst, src, src2)) } emit_vptestnmd_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestnmd_k_ymm_m256(dst, src, src2)) } emit_vptestnmd_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestnmd_k_zmm_zmm(dst, src, src2)) } emit_vptestnmd_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestnmd_k_zmm_m512(dst, src, src2)) } -inst_vptestnmq_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1740) } -inst_vptestnmq_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1740) } -inst_vptestnmq_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1741) } -inst_vptestnmq_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1741) } -inst_vptestnmq_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1742) } -inst_vptestnmq_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1742) } +inst_vptestnmq_k_xmm_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_xmm(src2), {}} }, 1752) } +inst_vptestnmq_k_xmm_m128 :: #force_inline proc "contextless" (dst: KREG, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1752) } +inst_vptestnmq_k_ymm_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_ymm(src2), {}} }, 1753) } +inst_vptestnmq_k_ymm_m256 :: #force_inline proc "contextless" (dst: KREG, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1753) } +inst_vptestnmq_k_zmm_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_zmm(src2), {}} }, 1754) } +inst_vptestnmq_k_zmm_m512 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTESTNMQ, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1754) } emit_vptestnmq_k_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: XMM) { append(instructions, inst_vptestnmq_k_xmm_xmm(dst, src, src2)) } emit_vptestnmq_k_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, src2: Mem128) { append(instructions, inst_vptestnmq_k_xmm_m128(dst, src, src2)) } emit_vptestnmq_k_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: YMM) { append(instructions, inst_vptestnmq_k_ymm_ymm(dst, src, src2)) } emit_vptestnmq_k_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, src2: Mem256) { append(instructions, inst_vptestnmq_k_ymm_m256(dst, src, src2)) } emit_vptestnmq_k_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: ZMM) { append(instructions, inst_vptestnmq_k_zmm_zmm(dst, src, src2)) } emit_vptestnmq_k_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, src2: Mem512) { append(instructions, inst_vptestnmq_k_zmm_m512(dst, src, src2)) } -inst_vpcompressd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1743) } -inst_vpcompressd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1743) } -inst_vpcompressd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1744) } -inst_vpcompressd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1744) } -inst_vpcompressd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1745) } -inst_vpcompressd_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1745) } +inst_vpcompressd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1755) } +inst_vpcompressd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1755) } +inst_vpcompressd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1756) } +inst_vpcompressd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1756) } +inst_vpcompressd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1757) } +inst_vpcompressd_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSD, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1757) } emit_vpcompressd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpcompressd_xmm_xmm(dst, src)) } emit_vpcompressd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vpcompressd_m128_xmm(dst, src)) } emit_vpcompressd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpcompressd_ymm_ymm(dst, src)) } emit_vpcompressd_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vpcompressd_m256_ymm(dst, src)) } emit_vpcompressd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vpcompressd_zmm_zmm(dst, src)) } emit_vpcompressd_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vpcompressd_m512_zmm(dst, src)) } -inst_vpcompressq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1746) } -inst_vpcompressq_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1746) } -inst_vpcompressq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1747) } -inst_vpcompressq_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1747) } -inst_vpcompressq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1748) } -inst_vpcompressq_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1748) } +inst_vpcompressq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1758) } +inst_vpcompressq_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1758) } +inst_vpcompressq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1759) } +inst_vpcompressq_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1759) } +inst_vpcompressq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1760) } +inst_vpcompressq_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCOMPRESSQ, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1760) } emit_vpcompressq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpcompressq_xmm_xmm(dst, src)) } emit_vpcompressq_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vpcompressq_m128_xmm(dst, src)) } emit_vpcompressq_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpcompressq_ymm_ymm(dst, src)) } emit_vpcompressq_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vpcompressq_m256_ymm(dst, src)) } emit_vpcompressq_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vpcompressq_zmm_zmm(dst, src)) } emit_vpcompressq_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vpcompressq_m512_zmm(dst, src)) } -inst_vcompressps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1749) } -inst_vcompressps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1749) } -inst_vcompressps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1750) } -inst_vcompressps_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1750) } -inst_vcompressps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1751) } -inst_vcompressps_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1751) } +inst_vcompressps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1761) } +inst_vcompressps_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1761) } +inst_vcompressps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1762) } +inst_vcompressps_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1762) } +inst_vcompressps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1763) } +inst_vcompressps_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPS, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1763) } emit_vcompressps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcompressps_xmm_xmm(dst, src)) } emit_vcompressps_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vcompressps_m128_xmm(dst, src)) } emit_vcompressps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vcompressps_ymm_ymm(dst, src)) } emit_vcompressps_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vcompressps_m256_ymm(dst, src)) } emit_vcompressps_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vcompressps_zmm_zmm(dst, src)) } emit_vcompressps_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vcompressps_m512_zmm(dst, src)) } -inst_vcompresspd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1752) } -inst_vcompresspd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1752) } -inst_vcompresspd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1753) } -inst_vcompresspd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1753) } -inst_vcompresspd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1754) } -inst_vcompresspd_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1754) } +inst_vcompresspd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1764) } +inst_vcompresspd_m128_xmm :: #force_inline proc "contextless" (dst: Mem128, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_xmm(src), {}, {}} }, 1764) } +inst_vcompresspd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1765) } +inst_vcompresspd_m256_ymm :: #force_inline proc "contextless" (dst: Mem256, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_ymm(src), {}, {}} }, 1765) } +inst_vcompresspd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1766) } +inst_vcompresspd_m512_zmm :: #force_inline proc "contextless" (dst: Mem512, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VCOMPRESSPD, operand_count = 2, ops = {op_mem(dst.mem, 64), op_zmm(src), {}, {}} }, 1766) } emit_vcompresspd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vcompresspd_xmm_xmm(dst, src)) } emit_vcompresspd_m128_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: XMM) { append(instructions, inst_vcompresspd_m128_xmm(dst, src)) } emit_vcompresspd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vcompresspd_ymm_ymm(dst, src)) } emit_vcompresspd_m256_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: YMM) { append(instructions, inst_vcompresspd_m256_ymm(dst, src)) } emit_vcompresspd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vcompresspd_zmm_zmm(dst, src)) } emit_vcompresspd_m512_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512, src: ZMM) { append(instructions, inst_vcompresspd_m512_zmm(dst, src)) } -inst_vpexpandd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1755) } -inst_vpexpandd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1755) } -inst_vpexpandd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1756) } -inst_vpexpandd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1756) } -inst_vpexpandd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1757) } -inst_vpexpandd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1757) } +inst_vpexpandd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1767) } +inst_vpexpandd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1767) } +inst_vpexpandd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1768) } +inst_vpexpandd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1768) } +inst_vpexpandd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1769) } +inst_vpexpandd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1769) } emit_vpexpandd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpexpandd_xmm_xmm(dst, src)) } emit_vpexpandd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpexpandd_xmm_m128(dst, src)) } emit_vpexpandd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpexpandd_ymm_ymm(dst, src)) } emit_vpexpandd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpexpandd_ymm_m256(dst, src)) } emit_vpexpandd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vpexpandd_zmm_zmm(dst, src)) } emit_vpexpandd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vpexpandd_zmm_m512(dst, src)) } -inst_vpexpandq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1758) } -inst_vpexpandq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1758) } -inst_vpexpandq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1759) } -inst_vpexpandq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1759) } -inst_vpexpandq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1760) } -inst_vpexpandq_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1760) } +inst_vpexpandq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1770) } +inst_vpexpandq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1770) } +inst_vpexpandq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1771) } +inst_vpexpandq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1771) } +inst_vpexpandq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1772) } +inst_vpexpandq_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPEXPANDQ, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1772) } emit_vpexpandq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpexpandq_xmm_xmm(dst, src)) } emit_vpexpandq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpexpandq_xmm_m128(dst, src)) } emit_vpexpandq_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpexpandq_ymm_ymm(dst, src)) } emit_vpexpandq_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpexpandq_ymm_m256(dst, src)) } emit_vpexpandq_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vpexpandq_zmm_zmm(dst, src)) } emit_vpexpandq_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vpexpandq_zmm_m512(dst, src)) } -inst_vexpandps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1761) } -inst_vexpandps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1761) } -inst_vexpandps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1762) } -inst_vexpandps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1762) } -inst_vexpandps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1763) } -inst_vexpandps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1763) } +inst_vexpandps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1773) } +inst_vexpandps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1773) } +inst_vexpandps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1774) } +inst_vexpandps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1774) } +inst_vexpandps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1775) } +inst_vexpandps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1775) } emit_vexpandps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vexpandps_xmm_xmm(dst, src)) } emit_vexpandps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vexpandps_xmm_m128(dst, src)) } emit_vexpandps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vexpandps_ymm_ymm(dst, src)) } emit_vexpandps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vexpandps_ymm_m256(dst, src)) } emit_vexpandps_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vexpandps_zmm_zmm(dst, src)) } emit_vexpandps_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vexpandps_zmm_m512(dst, src)) } -inst_vexpandpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1764) } -inst_vexpandpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1764) } -inst_vexpandpd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1765) } -inst_vexpandpd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1765) } -inst_vexpandpd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1766) } -inst_vexpandpd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1766) } +inst_vexpandpd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1776) } +inst_vexpandpd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1776) } +inst_vexpandpd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1777) } +inst_vexpandpd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1777) } +inst_vexpandpd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1778) } +inst_vexpandpd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VEXPANDPD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1778) } emit_vexpandpd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vexpandpd_xmm_xmm(dst, src)) } emit_vexpandpd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vexpandpd_xmm_m128(dst, src)) } emit_vexpandpd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vexpandpd_ymm_ymm(dst, src)) } emit_vexpandpd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vexpandpd_ymm_m256(dst, src)) } emit_vexpandpd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vexpandpd_zmm_zmm(dst, src)) } emit_vexpandpd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vexpandpd_zmm_m512(dst, src)) } -inst_vpconflictd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1767) } -inst_vpconflictd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1767) } -inst_vpconflictd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1768) } -inst_vpconflictd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1768) } -inst_vpconflictd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1769) } -inst_vpconflictd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1769) } +inst_vpconflictd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1779) } +inst_vpconflictd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1779) } +inst_vpconflictd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1780) } +inst_vpconflictd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1780) } +inst_vpconflictd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1781) } +inst_vpconflictd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1781) } emit_vpconflictd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpconflictd_xmm_xmm(dst, src)) } emit_vpconflictd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpconflictd_xmm_m128(dst, src)) } emit_vpconflictd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpconflictd_ymm_ymm(dst, src)) } emit_vpconflictd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpconflictd_ymm_m256(dst, src)) } emit_vpconflictd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vpconflictd_zmm_zmm(dst, src)) } emit_vpconflictd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vpconflictd_zmm_m512(dst, src)) } -inst_vpconflictq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1770) } -inst_vpconflictq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1770) } -inst_vpconflictq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1771) } -inst_vpconflictq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1771) } -inst_vpconflictq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1772) } -inst_vpconflictq_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1772) } +inst_vpconflictq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1782) } +inst_vpconflictq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1782) } +inst_vpconflictq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1783) } +inst_vpconflictq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1783) } +inst_vpconflictq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1784) } +inst_vpconflictq_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPCONFLICTQ, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1784) } emit_vpconflictq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpconflictq_xmm_xmm(dst, src)) } emit_vpconflictq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vpconflictq_xmm_m128(dst, src)) } emit_vpconflictq_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vpconflictq_ymm_ymm(dst, src)) } emit_vpconflictq_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vpconflictq_ymm_m256(dst, src)) } emit_vpconflictq_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vpconflictq_zmm_zmm(dst, src)) } emit_vpconflictq_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vpconflictq_zmm_m512(dst, src)) } -inst_vplzcntd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1773) } -inst_vplzcntd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1773) } -inst_vplzcntd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1774) } -inst_vplzcntd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1774) } -inst_vplzcntd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1775) } -inst_vplzcntd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1775) } +inst_vplzcntd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1785) } +inst_vplzcntd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1785) } +inst_vplzcntd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1786) } +inst_vplzcntd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1786) } +inst_vplzcntd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1787) } +inst_vplzcntd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1787) } emit_vplzcntd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vplzcntd_xmm_xmm(dst, src)) } emit_vplzcntd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vplzcntd_xmm_m128(dst, src)) } emit_vplzcntd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vplzcntd_ymm_ymm(dst, src)) } emit_vplzcntd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vplzcntd_ymm_m256(dst, src)) } emit_vplzcntd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vplzcntd_zmm_zmm(dst, src)) } emit_vplzcntd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vplzcntd_zmm_m512(dst, src)) } -inst_vplzcntq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1776) } -inst_vplzcntq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1776) } -inst_vplzcntq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1777) } -inst_vplzcntq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1777) } -inst_vplzcntq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1778) } -inst_vplzcntq_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1778) } +inst_vplzcntq_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1788) } +inst_vplzcntq_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1788) } +inst_vplzcntq_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1789) } +inst_vplzcntq_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1789) } +inst_vplzcntq_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1790) } +inst_vplzcntq_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPLZCNTQ, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1790) } emit_vplzcntq_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vplzcntq_xmm_xmm(dst, src)) } emit_vplzcntq_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vplzcntq_xmm_m128(dst, src)) } emit_vplzcntq_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vplzcntq_ymm_ymm(dst, src)) } emit_vplzcntq_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vplzcntq_ymm_m256(dst, src)) } emit_vplzcntq_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vplzcntq_zmm_zmm(dst, src)) } emit_vplzcntq_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vplzcntq_zmm_m512(dst, src)) } -inst_vpermi2b_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1779) } -inst_vpermi2b_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1779) } -inst_vpermi2b_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1780) } -inst_vpermi2b_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1780) } -inst_vpermi2b_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1781) } -inst_vpermi2b_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1781) } +inst_vpermi2b_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1791) } +inst_vpermi2b_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1791) } +inst_vpermi2b_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1792) } +inst_vpermi2b_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1792) } +inst_vpermi2b_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1793) } +inst_vpermi2b_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1793) } emit_vpermi2b_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermi2b_xmm_xmm_xmm(dst, src, src2)) } emit_vpermi2b_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermi2b_xmm_xmm_m128(dst, src, src2)) } emit_vpermi2b_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermi2b_ymm_ymm_ymm(dst, src, src2)) } emit_vpermi2b_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermi2b_ymm_ymm_m256(dst, src, src2)) } emit_vpermi2b_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermi2b_zmm_zmm_zmm(dst, src, src2)) } emit_vpermi2b_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermi2b_zmm_zmm_m512(dst, src, src2)) } -inst_vpermi2w_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1782) } -inst_vpermi2w_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1782) } -inst_vpermi2w_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1783) } -inst_vpermi2w_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1783) } -inst_vpermi2w_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1784) } -inst_vpermi2w_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1784) } +inst_vpermi2w_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1794) } +inst_vpermi2w_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1794) } +inst_vpermi2w_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1795) } +inst_vpermi2w_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1795) } +inst_vpermi2w_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1796) } +inst_vpermi2w_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1796) } emit_vpermi2w_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermi2w_xmm_xmm_xmm(dst, src, src2)) } emit_vpermi2w_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermi2w_xmm_xmm_m128(dst, src, src2)) } emit_vpermi2w_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermi2w_ymm_ymm_ymm(dst, src, src2)) } emit_vpermi2w_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermi2w_ymm_ymm_m256(dst, src, src2)) } emit_vpermi2w_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermi2w_zmm_zmm_zmm(dst, src, src2)) } emit_vpermi2w_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermi2w_zmm_zmm_m512(dst, src, src2)) } -inst_vpermi2d_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1785) } -inst_vpermi2d_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1785) } -inst_vpermi2d_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1786) } -inst_vpermi2d_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1786) } -inst_vpermi2d_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1787) } -inst_vpermi2d_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1787) } +inst_vpermi2d_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1797) } +inst_vpermi2d_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1797) } +inst_vpermi2d_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1798) } +inst_vpermi2d_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1798) } +inst_vpermi2d_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1799) } +inst_vpermi2d_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1799) } emit_vpermi2d_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermi2d_xmm_xmm_xmm(dst, src, src2)) } emit_vpermi2d_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermi2d_xmm_xmm_m128(dst, src, src2)) } emit_vpermi2d_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermi2d_ymm_ymm_ymm(dst, src, src2)) } emit_vpermi2d_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermi2d_ymm_ymm_m256(dst, src, src2)) } emit_vpermi2d_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermi2d_zmm_zmm_zmm(dst, src, src2)) } emit_vpermi2d_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermi2d_zmm_zmm_m512(dst, src, src2)) } -inst_vpermi2q_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1788) } -inst_vpermi2q_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1788) } -inst_vpermi2q_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1789) } -inst_vpermi2q_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1789) } -inst_vpermi2q_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1790) } -inst_vpermi2q_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1790) } +inst_vpermi2q_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1800) } +inst_vpermi2q_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1800) } +inst_vpermi2q_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1801) } +inst_vpermi2q_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1801) } +inst_vpermi2q_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1802) } +inst_vpermi2q_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1802) } emit_vpermi2q_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermi2q_xmm_xmm_xmm(dst, src, src2)) } emit_vpermi2q_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermi2q_xmm_xmm_m128(dst, src, src2)) } emit_vpermi2q_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermi2q_ymm_ymm_ymm(dst, src, src2)) } emit_vpermi2q_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermi2q_ymm_ymm_m256(dst, src, src2)) } emit_vpermi2q_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermi2q_zmm_zmm_zmm(dst, src, src2)) } emit_vpermi2q_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermi2q_zmm_zmm_m512(dst, src, src2)) } -inst_vpermi2ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1791) } -inst_vpermi2ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1791) } -inst_vpermi2ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1792) } -inst_vpermi2ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1792) } -inst_vpermi2ps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1793) } -inst_vpermi2ps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1793) } +inst_vpermi2ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1803) } +inst_vpermi2ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1803) } +inst_vpermi2ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1804) } +inst_vpermi2ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1804) } +inst_vpermi2ps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1805) } +inst_vpermi2ps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1805) } emit_vpermi2ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermi2ps_xmm_xmm_xmm(dst, src, src2)) } emit_vpermi2ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermi2ps_xmm_xmm_m128(dst, src, src2)) } emit_vpermi2ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermi2ps_ymm_ymm_ymm(dst, src, src2)) } emit_vpermi2ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermi2ps_ymm_ymm_m256(dst, src, src2)) } emit_vpermi2ps_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermi2ps_zmm_zmm_zmm(dst, src, src2)) } emit_vpermi2ps_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermi2ps_zmm_zmm_m512(dst, src, src2)) } -inst_vpermi2pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1794) } -inst_vpermi2pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1794) } -inst_vpermi2pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1795) } -inst_vpermi2pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1795) } -inst_vpermi2pd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1796) } -inst_vpermi2pd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1796) } +inst_vpermi2pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1806) } +inst_vpermi2pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1806) } +inst_vpermi2pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1807) } +inst_vpermi2pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1807) } +inst_vpermi2pd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1808) } +inst_vpermi2pd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMI2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1808) } emit_vpermi2pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermi2pd_xmm_xmm_xmm(dst, src, src2)) } emit_vpermi2pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermi2pd_xmm_xmm_m128(dst, src, src2)) } emit_vpermi2pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermi2pd_ymm_ymm_ymm(dst, src, src2)) } emit_vpermi2pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermi2pd_ymm_ymm_m256(dst, src, src2)) } emit_vpermi2pd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermi2pd_zmm_zmm_zmm(dst, src, src2)) } emit_vpermi2pd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermi2pd_zmm_zmm_m512(dst, src, src2)) } -inst_vpermt2b_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1797) } -inst_vpermt2b_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1797) } -inst_vpermt2b_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1798) } -inst_vpermt2b_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1798) } -inst_vpermt2b_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1799) } -inst_vpermt2b_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1799) } +inst_vpermt2b_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1809) } +inst_vpermt2b_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1809) } +inst_vpermt2b_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1810) } +inst_vpermt2b_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1810) } +inst_vpermt2b_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1811) } +inst_vpermt2b_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2B, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1811) } emit_vpermt2b_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermt2b_xmm_xmm_xmm(dst, src, src2)) } emit_vpermt2b_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermt2b_xmm_xmm_m128(dst, src, src2)) } emit_vpermt2b_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermt2b_ymm_ymm_ymm(dst, src, src2)) } emit_vpermt2b_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermt2b_ymm_ymm_m256(dst, src, src2)) } emit_vpermt2b_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermt2b_zmm_zmm_zmm(dst, src, src2)) } emit_vpermt2b_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermt2b_zmm_zmm_m512(dst, src, src2)) } -inst_vpermt2w_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1800) } -inst_vpermt2w_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1800) } -inst_vpermt2w_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1801) } -inst_vpermt2w_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1801) } -inst_vpermt2w_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1802) } -inst_vpermt2w_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1802) } +inst_vpermt2w_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1812) } +inst_vpermt2w_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1812) } +inst_vpermt2w_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1813) } +inst_vpermt2w_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1813) } +inst_vpermt2w_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1814) } +inst_vpermt2w_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2W, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1814) } emit_vpermt2w_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermt2w_xmm_xmm_xmm(dst, src, src2)) } emit_vpermt2w_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermt2w_xmm_xmm_m128(dst, src, src2)) } emit_vpermt2w_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermt2w_ymm_ymm_ymm(dst, src, src2)) } emit_vpermt2w_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermt2w_ymm_ymm_m256(dst, src, src2)) } emit_vpermt2w_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermt2w_zmm_zmm_zmm(dst, src, src2)) } emit_vpermt2w_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermt2w_zmm_zmm_m512(dst, src, src2)) } -inst_vpermt2d_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1803) } -inst_vpermt2d_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1803) } -inst_vpermt2d_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1804) } -inst_vpermt2d_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1804) } -inst_vpermt2d_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1805) } -inst_vpermt2d_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1805) } +inst_vpermt2d_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1815) } +inst_vpermt2d_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1815) } +inst_vpermt2d_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1816) } +inst_vpermt2d_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1816) } +inst_vpermt2d_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1817) } +inst_vpermt2d_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2D, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1817) } emit_vpermt2d_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermt2d_xmm_xmm_xmm(dst, src, src2)) } emit_vpermt2d_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermt2d_xmm_xmm_m128(dst, src, src2)) } emit_vpermt2d_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermt2d_ymm_ymm_ymm(dst, src, src2)) } emit_vpermt2d_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermt2d_ymm_ymm_m256(dst, src, src2)) } emit_vpermt2d_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermt2d_zmm_zmm_zmm(dst, src, src2)) } emit_vpermt2d_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermt2d_zmm_zmm_m512(dst, src, src2)) } -inst_vpermt2q_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1806) } -inst_vpermt2q_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1806) } -inst_vpermt2q_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1807) } -inst_vpermt2q_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1807) } -inst_vpermt2q_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1808) } -inst_vpermt2q_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1808) } +inst_vpermt2q_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1818) } +inst_vpermt2q_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1818) } +inst_vpermt2q_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1819) } +inst_vpermt2q_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1819) } +inst_vpermt2q_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1820) } +inst_vpermt2q_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2Q, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1820) } emit_vpermt2q_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermt2q_xmm_xmm_xmm(dst, src, src2)) } emit_vpermt2q_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermt2q_xmm_xmm_m128(dst, src, src2)) } emit_vpermt2q_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermt2q_ymm_ymm_ymm(dst, src, src2)) } emit_vpermt2q_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermt2q_ymm_ymm_m256(dst, src, src2)) } emit_vpermt2q_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermt2q_zmm_zmm_zmm(dst, src, src2)) } emit_vpermt2q_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermt2q_zmm_zmm_m512(dst, src, src2)) } -inst_vpermt2ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1809) } -inst_vpermt2ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1809) } -inst_vpermt2ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1810) } -inst_vpermt2ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1810) } -inst_vpermt2ps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1811) } -inst_vpermt2ps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1811) } +inst_vpermt2ps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1821) } +inst_vpermt2ps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1821) } +inst_vpermt2ps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1822) } +inst_vpermt2ps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1822) } +inst_vpermt2ps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1823) } +inst_vpermt2ps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1823) } emit_vpermt2ps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermt2ps_xmm_xmm_xmm(dst, src, src2)) } emit_vpermt2ps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermt2ps_xmm_xmm_m128(dst, src, src2)) } emit_vpermt2ps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermt2ps_ymm_ymm_ymm(dst, src, src2)) } emit_vpermt2ps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermt2ps_ymm_ymm_m256(dst, src, src2)) } emit_vpermt2ps_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermt2ps_zmm_zmm_zmm(dst, src, src2)) } emit_vpermt2ps_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermt2ps_zmm_zmm_m512(dst, src, src2)) } -inst_vpermt2pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1812) } -inst_vpermt2pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1812) } -inst_vpermt2pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1813) } -inst_vpermt2pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1813) } -inst_vpermt2pd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1814) } -inst_vpermt2pd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1814) } +inst_vpermt2pd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1824) } +inst_vpermt2pd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1824) } +inst_vpermt2pd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1825) } +inst_vpermt2pd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1825) } +inst_vpermt2pd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1826) } +inst_vpermt2pd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMT2PD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1826) } emit_vpermt2pd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermt2pd_xmm_xmm_xmm(dst, src, src2)) } emit_vpermt2pd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermt2pd_xmm_xmm_m128(dst, src, src2)) } emit_vpermt2pd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermt2pd_ymm_ymm_ymm(dst, src, src2)) } emit_vpermt2pd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermt2pd_ymm_ymm_m256(dst, src, src2)) } emit_vpermt2pd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermt2pd_zmm_zmm_zmm(dst, src, src2)) } emit_vpermt2pd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermt2pd_zmm_zmm_m512(dst, src, src2)) } -inst_vpermb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1815) } -inst_vpermb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1815) } -inst_vpermb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1816) } -inst_vpermb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1816) } -inst_vpermb_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1817) } -inst_vpermb_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1817) } +inst_vpermb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1827) } +inst_vpermb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1827) } +inst_vpermb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1828) } +inst_vpermb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1828) } +inst_vpermb_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1829) } +inst_vpermb_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1829) } emit_vpermb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermb_xmm_xmm_xmm(dst, src, src2)) } emit_vpermb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermb_xmm_xmm_m128(dst, src, src2)) } emit_vpermb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermb_ymm_ymm_ymm(dst, src, src2)) } emit_vpermb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermb_ymm_ymm_m256(dst, src, src2)) } emit_vpermb_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermb_zmm_zmm_zmm(dst, src, src2)) } emit_vpermb_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermb_zmm_zmm_m512(dst, src, src2)) } -inst_vpermw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1818) } -inst_vpermw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1818) } -inst_vpermw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1819) } -inst_vpermw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1819) } -inst_vpermw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1820) } -inst_vpermw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1820) } +inst_vpermw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1830) } +inst_vpermw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1830) } +inst_vpermw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1831) } +inst_vpermw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1831) } +inst_vpermw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1832) } +inst_vpermw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPERMW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1832) } emit_vpermw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpermw_xmm_xmm_xmm(dst, src, src2)) } emit_vpermw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpermw_xmm_xmm_m128(dst, src, src2)) } emit_vpermw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpermw_ymm_ymm_ymm(dst, src, src2)) } emit_vpermw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpermw_ymm_ymm_m256(dst, src, src2)) } emit_vpermw_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpermw_zmm_zmm_zmm(dst, src, src2)) } emit_vpermw_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpermw_zmm_zmm_m512(dst, src, src2)) } -inst_vpmovb2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVB2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1821) } -inst_vpmovb2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVB2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1822) } -inst_vpmovb2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVB2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1823) } +inst_vpmovb2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVB2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1833) } +inst_vpmovb2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVB2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1834) } +inst_vpmovb2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVB2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1835) } emit_vpmovb2m_k_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM) { append(instructions, inst_vpmovb2m_k_xmm(dst, src)) } emit_vpmovb2m_k_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM) { append(instructions, inst_vpmovb2m_k_ymm(dst, src)) } emit_vpmovb2m_k_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM) { append(instructions, inst_vpmovb2m_k_zmm(dst, src)) } -inst_vpmovw2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVW2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1824) } -inst_vpmovw2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVW2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1825) } -inst_vpmovw2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVW2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1826) } +inst_vpmovw2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVW2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1836) } +inst_vpmovw2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVW2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1837) } +inst_vpmovw2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVW2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1838) } emit_vpmovw2m_k_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM) { append(instructions, inst_vpmovw2m_k_xmm(dst, src)) } emit_vpmovw2m_k_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM) { append(instructions, inst_vpmovw2m_k_ymm(dst, src)) } emit_vpmovw2m_k_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM) { append(instructions, inst_vpmovw2m_k_zmm(dst, src)) } -inst_vpmovd2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVD2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1827) } -inst_vpmovd2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVD2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1828) } -inst_vpmovd2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVD2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1829) } +inst_vpmovd2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVD2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1839) } +inst_vpmovd2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVD2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1840) } +inst_vpmovd2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVD2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1841) } emit_vpmovd2m_k_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM) { append(instructions, inst_vpmovd2m_k_xmm(dst, src)) } emit_vpmovd2m_k_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM) { append(instructions, inst_vpmovd2m_k_ymm(dst, src)) } emit_vpmovd2m_k_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM) { append(instructions, inst_vpmovd2m_k_zmm(dst, src)) } -inst_vpmovq2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQ2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1830) } -inst_vpmovq2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQ2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1831) } -inst_vpmovq2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQ2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1832) } +inst_vpmovq2m_k_xmm :: #force_inline proc "contextless" (dst: KREG, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQ2M, operand_count = 2, ops = {op_kreg(dst), op_xmm(src), {}, {}} }, 1842) } +inst_vpmovq2m_k_ymm :: #force_inline proc "contextless" (dst: KREG, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQ2M, operand_count = 2, ops = {op_kreg(dst), op_ymm(src), {}, {}} }, 1843) } +inst_vpmovq2m_k_zmm :: #force_inline proc "contextless" (dst: KREG, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQ2M, operand_count = 2, ops = {op_kreg(dst), op_zmm(src), {}, {}} }, 1844) } emit_vpmovq2m_k_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM) { append(instructions, inst_vpmovq2m_k_xmm(dst, src)) } emit_vpmovq2m_k_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM) { append(instructions, inst_vpmovq2m_k_ymm(dst, src)) } emit_vpmovq2m_k_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM) { append(instructions, inst_vpmovq2m_k_zmm(dst, src)) } -inst_vpmovm2b_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2B, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1833) } -inst_vpmovm2b_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2B, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1834) } -inst_vpmovm2b_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2B, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1835) } +inst_vpmovm2b_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2B, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1845) } +inst_vpmovm2b_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2B, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1846) } +inst_vpmovm2b_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2B, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1847) } emit_vpmovm2b_xmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: KREG) { append(instructions, inst_vpmovm2b_xmm_k(dst, src)) } emit_vpmovm2b_ymm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: KREG) { append(instructions, inst_vpmovm2b_ymm_k(dst, src)) } emit_vpmovm2b_zmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: KREG) { append(instructions, inst_vpmovm2b_zmm_k(dst, src)) } -inst_vpmovm2w_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2W, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1836) } -inst_vpmovm2w_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2W, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1837) } -inst_vpmovm2w_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2W, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1838) } +inst_vpmovm2w_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2W, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1848) } +inst_vpmovm2w_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2W, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1849) } +inst_vpmovm2w_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2W, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1850) } emit_vpmovm2w_xmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: KREG) { append(instructions, inst_vpmovm2w_xmm_k(dst, src)) } emit_vpmovm2w_ymm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: KREG) { append(instructions, inst_vpmovm2w_ymm_k(dst, src)) } emit_vpmovm2w_zmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: KREG) { append(instructions, inst_vpmovm2w_zmm_k(dst, src)) } -inst_vpmovm2d_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2D, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1839) } -inst_vpmovm2d_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2D, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1840) } -inst_vpmovm2d_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2D, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1841) } +inst_vpmovm2d_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2D, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1851) } +inst_vpmovm2d_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2D, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1852) } +inst_vpmovm2d_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2D, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1853) } emit_vpmovm2d_xmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: KREG) { append(instructions, inst_vpmovm2d_xmm_k(dst, src)) } emit_vpmovm2d_ymm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: KREG) { append(instructions, inst_vpmovm2d_ymm_k(dst, src)) } emit_vpmovm2d_zmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: KREG) { append(instructions, inst_vpmovm2d_zmm_k(dst, src)) } -inst_vpmovm2q_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2Q, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1842) } -inst_vpmovm2q_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2Q, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1843) } -inst_vpmovm2q_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2Q, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1844) } +inst_vpmovm2q_xmm_k :: #force_inline proc "contextless" (dst: XMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2Q, operand_count = 2, ops = {op_xmm(dst), op_kreg(src), {}, {}} }, 1854) } +inst_vpmovm2q_ymm_k :: #force_inline proc "contextless" (dst: YMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2Q, operand_count = 2, ops = {op_ymm(dst), op_kreg(src), {}, {}} }, 1855) } +inst_vpmovm2q_zmm_k :: #force_inline proc "contextless" (dst: ZMM, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVM2Q, operand_count = 2, ops = {op_zmm(dst), op_kreg(src), {}, {}} }, 1856) } emit_vpmovm2q_xmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: KREG) { append(instructions, inst_vpmovm2q_xmm_k(dst, src)) } emit_vpmovm2q_ymm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: KREG) { append(instructions, inst_vpmovm2q_ymm_k(dst, src)) } emit_vpmovm2q_zmm_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: KREG) { append(instructions, inst_vpmovm2q_zmm_k(dst, src)) } -inst_vpmovqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1845) } -inst_vpmovqb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1845) } -inst_vpmovqb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1846) } -inst_vpmovqb_m32_ymm :: #force_inline proc "contextless" (dst: Mem32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_ymm(src), {}, {}} }, 1846) } -inst_vpmovqb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1847) } -inst_vpmovqb_m64_zmm :: #force_inline proc "contextless" (dst: Mem64, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_zmm(src), {}, {}} }, 1847) } +inst_vpmovqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1857) } +inst_vpmovqb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1857) } +inst_vpmovqb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1858) } +inst_vpmovqb_m32_ymm :: #force_inline proc "contextless" (dst: Mem32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_ymm(src), {}, {}} }, 1858) } +inst_vpmovqb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1859) } +inst_vpmovqb_m64_zmm :: #force_inline proc "contextless" (dst: Mem64, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_zmm(src), {}, {}} }, 1859) } emit_vpmovqb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovqb_xmm_xmm(dst, src)) } emit_vpmovqb_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovqb_m32_xmm(dst, src)) } emit_vpmovqb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovqb_xmm_ymm(dst, src)) } emit_vpmovqb_m32_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: YMM) { append(instructions, inst_vpmovqb_m32_ymm(dst, src)) } emit_vpmovqb_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovqb_xmm_zmm(dst, src)) } emit_vpmovqb_m64_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: ZMM) { append(instructions, inst_vpmovqb_m64_zmm(dst, src)) } -inst_vpmovsqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1848) } -inst_vpmovsqb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1848) } -inst_vpmovsqb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1849) } -inst_vpmovsqb_m32_ymm :: #force_inline proc "contextless" (dst: Mem32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_ymm(src), {}, {}} }, 1849) } -inst_vpmovsqb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1850) } -inst_vpmovsqb_m64_zmm :: #force_inline proc "contextless" (dst: Mem64, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_zmm(src), {}, {}} }, 1850) } +inst_vpmovsqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1860) } +inst_vpmovsqb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1860) } +inst_vpmovsqb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1861) } +inst_vpmovsqb_m32_ymm :: #force_inline proc "contextless" (dst: Mem32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_ymm(src), {}, {}} }, 1861) } +inst_vpmovsqb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1862) } +inst_vpmovsqb_m64_zmm :: #force_inline proc "contextless" (dst: Mem64, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_zmm(src), {}, {}} }, 1862) } emit_vpmovsqb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsqb_xmm_xmm(dst, src)) } emit_vpmovsqb_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovsqb_m32_xmm(dst, src)) } emit_vpmovsqb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovsqb_xmm_ymm(dst, src)) } emit_vpmovsqb_m32_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: YMM) { append(instructions, inst_vpmovsqb_m32_ymm(dst, src)) } emit_vpmovsqb_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovsqb_xmm_zmm(dst, src)) } emit_vpmovsqb_m64_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: ZMM) { append(instructions, inst_vpmovsqb_m64_zmm(dst, src)) } -inst_vpmovusqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1851) } -inst_vpmovusqb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1851) } -inst_vpmovusqb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1852) } -inst_vpmovusqb_m32_ymm :: #force_inline proc "contextless" (dst: Mem32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_ymm(src), {}, {}} }, 1852) } -inst_vpmovusqb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1853) } -inst_vpmovusqb_m64_zmm :: #force_inline proc "contextless" (dst: Mem64, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_zmm(src), {}, {}} }, 1853) } +inst_vpmovusqb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1863) } +inst_vpmovusqb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1863) } +inst_vpmovusqb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1864) } +inst_vpmovusqb_m32_ymm :: #force_inline proc "contextless" (dst: Mem32, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_ymm(src), {}, {}} }, 1864) } +inst_vpmovusqb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1865) } +inst_vpmovusqb_m64_zmm :: #force_inline proc "contextless" (dst: Mem64, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_zmm(src), {}, {}} }, 1865) } emit_vpmovusqb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovusqb_xmm_xmm(dst, src)) } emit_vpmovusqb_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovusqb_m32_xmm(dst, src)) } emit_vpmovusqb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovusqb_xmm_ymm(dst, src)) } emit_vpmovusqb_m32_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: YMM) { append(instructions, inst_vpmovusqb_m32_ymm(dst, src)) } emit_vpmovusqb_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovusqb_xmm_zmm(dst, src)) } emit_vpmovusqb_m64_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: ZMM) { append(instructions, inst_vpmovusqb_m64_zmm(dst, src)) } -inst_vpmovqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1854) } -inst_vpmovqw_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1854) } -inst_vpmovqw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1855) } -inst_vpmovqw_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1855) } -inst_vpmovqw_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1856) } -inst_vpmovqw_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1856) } +inst_vpmovqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1866) } +inst_vpmovqw_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1866) } +inst_vpmovqw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1867) } +inst_vpmovqw_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1867) } +inst_vpmovqw_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1868) } +inst_vpmovqw_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1868) } emit_vpmovqw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovqw_xmm_xmm(dst, src)) } emit_vpmovqw_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovqw_m32_xmm(dst, src)) } emit_vpmovqw_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovqw_xmm_ymm(dst, src)) } emit_vpmovqw_m64_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: YMM) { append(instructions, inst_vpmovqw_m64_ymm(dst, src)) } emit_vpmovqw_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovqw_xmm_zmm(dst, src)) } emit_vpmovqw_m128_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: ZMM) { append(instructions, inst_vpmovqw_m128_zmm(dst, src)) } -inst_vpmovsqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1857) } -inst_vpmovsqw_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1857) } -inst_vpmovsqw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1858) } -inst_vpmovsqw_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1858) } -inst_vpmovsqw_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1859) } -inst_vpmovsqw_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1859) } +inst_vpmovsqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1869) } +inst_vpmovsqw_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1869) } +inst_vpmovsqw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1870) } +inst_vpmovsqw_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1870) } +inst_vpmovsqw_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1871) } +inst_vpmovsqw_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1871) } emit_vpmovsqw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsqw_xmm_xmm(dst, src)) } emit_vpmovsqw_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovsqw_m32_xmm(dst, src)) } emit_vpmovsqw_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovsqw_xmm_ymm(dst, src)) } emit_vpmovsqw_m64_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: YMM) { append(instructions, inst_vpmovsqw_m64_ymm(dst, src)) } emit_vpmovsqw_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovsqw_xmm_zmm(dst, src)) } emit_vpmovsqw_m128_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: ZMM) { append(instructions, inst_vpmovsqw_m128_zmm(dst, src)) } -inst_vpmovusqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1860) } -inst_vpmovusqw_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1860) } -inst_vpmovusqw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1861) } -inst_vpmovusqw_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1861) } -inst_vpmovusqw_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1862) } -inst_vpmovusqw_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1862) } +inst_vpmovusqw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1872) } +inst_vpmovusqw_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1872) } +inst_vpmovusqw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1873) } +inst_vpmovusqw_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1873) } +inst_vpmovusqw_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1874) } +inst_vpmovusqw_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1874) } emit_vpmovusqw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovusqw_xmm_xmm(dst, src)) } emit_vpmovusqw_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovusqw_m32_xmm(dst, src)) } emit_vpmovusqw_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovusqw_xmm_ymm(dst, src)) } emit_vpmovusqw_m64_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: YMM) { append(instructions, inst_vpmovusqw_m64_ymm(dst, src)) } emit_vpmovusqw_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovusqw_xmm_zmm(dst, src)) } emit_vpmovusqw_m128_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: ZMM) { append(instructions, inst_vpmovusqw_m128_zmm(dst, src)) } -inst_vpmovqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1863) } -inst_vpmovqd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1863) } -inst_vpmovqd_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1864) } -inst_vpmovqd_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1864) } -inst_vpmovqd_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1865) } -inst_vpmovqd_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1865) } +inst_vpmovqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1875) } +inst_vpmovqd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1875) } +inst_vpmovqd_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1876) } +inst_vpmovqd_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1876) } +inst_vpmovqd_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1877) } +inst_vpmovqd_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVQD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1877) } emit_vpmovqd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovqd_xmm_xmm(dst, src)) } emit_vpmovqd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovqd_m64_xmm(dst, src)) } emit_vpmovqd_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovqd_xmm_ymm(dst, src)) } emit_vpmovqd_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovqd_m128_ymm(dst, src)) } emit_vpmovqd_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovqd_ymm_zmm(dst, src)) } emit_vpmovqd_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovqd_m256_zmm(dst, src)) } -inst_vpmovsqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1866) } -inst_vpmovsqd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1866) } -inst_vpmovsqd_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1867) } -inst_vpmovsqd_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1867) } -inst_vpmovsqd_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1868) } -inst_vpmovsqd_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1868) } +inst_vpmovsqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1878) } +inst_vpmovsqd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1878) } +inst_vpmovsqd_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1879) } +inst_vpmovsqd_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1879) } +inst_vpmovsqd_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1880) } +inst_vpmovsqd_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSQD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1880) } emit_vpmovsqd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsqd_xmm_xmm(dst, src)) } emit_vpmovsqd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovsqd_m64_xmm(dst, src)) } emit_vpmovsqd_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovsqd_xmm_ymm(dst, src)) } emit_vpmovsqd_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovsqd_m128_ymm(dst, src)) } emit_vpmovsqd_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovsqd_ymm_zmm(dst, src)) } emit_vpmovsqd_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovsqd_m256_zmm(dst, src)) } -inst_vpmovusqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1869) } -inst_vpmovusqd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1869) } -inst_vpmovusqd_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1870) } -inst_vpmovusqd_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1870) } -inst_vpmovusqd_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1871) } -inst_vpmovusqd_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1871) } +inst_vpmovusqd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1881) } +inst_vpmovusqd_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1881) } +inst_vpmovusqd_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1882) } +inst_vpmovusqd_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1882) } +inst_vpmovusqd_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1883) } +inst_vpmovusqd_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSQD, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1883) } emit_vpmovusqd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovusqd_xmm_xmm(dst, src)) } emit_vpmovusqd_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovusqd_m64_xmm(dst, src)) } emit_vpmovusqd_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovusqd_xmm_ymm(dst, src)) } emit_vpmovusqd_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovusqd_m128_ymm(dst, src)) } emit_vpmovusqd_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovusqd_ymm_zmm(dst, src)) } emit_vpmovusqd_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovusqd_m256_zmm(dst, src)) } -inst_vpmovdb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1872) } -inst_vpmovdb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1872) } -inst_vpmovdb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1873) } -inst_vpmovdb_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1873) } -inst_vpmovdb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1874) } -inst_vpmovdb_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1874) } +inst_vpmovdb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1884) } +inst_vpmovdb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1884) } +inst_vpmovdb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1885) } +inst_vpmovdb_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1885) } +inst_vpmovdb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1886) } +inst_vpmovdb_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1886) } emit_vpmovdb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovdb_xmm_xmm(dst, src)) } emit_vpmovdb_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovdb_m32_xmm(dst, src)) } emit_vpmovdb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovdb_xmm_ymm(dst, src)) } emit_vpmovdb_m64_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: YMM) { append(instructions, inst_vpmovdb_m64_ymm(dst, src)) } emit_vpmovdb_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovdb_xmm_zmm(dst, src)) } emit_vpmovdb_m128_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: ZMM) { append(instructions, inst_vpmovdb_m128_zmm(dst, src)) } -inst_vpmovsdb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1875) } -inst_vpmovsdb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1875) } -inst_vpmovsdb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1876) } -inst_vpmovsdb_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1876) } -inst_vpmovsdb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1877) } -inst_vpmovsdb_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1877) } +inst_vpmovsdb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1887) } +inst_vpmovsdb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1887) } +inst_vpmovsdb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1888) } +inst_vpmovsdb_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1888) } +inst_vpmovsdb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1889) } +inst_vpmovsdb_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1889) } emit_vpmovsdb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsdb_xmm_xmm(dst, src)) } emit_vpmovsdb_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovsdb_m32_xmm(dst, src)) } emit_vpmovsdb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovsdb_xmm_ymm(dst, src)) } emit_vpmovsdb_m64_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: YMM) { append(instructions, inst_vpmovsdb_m64_ymm(dst, src)) } emit_vpmovsdb_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovsdb_xmm_zmm(dst, src)) } emit_vpmovsdb_m128_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: ZMM) { append(instructions, inst_vpmovsdb_m128_zmm(dst, src)) } -inst_vpmovusdb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1878) } -inst_vpmovusdb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1878) } -inst_vpmovusdb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1879) } -inst_vpmovusdb_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1879) } -inst_vpmovusdb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1880) } -inst_vpmovusdb_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1880) } +inst_vpmovusdb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1890) } +inst_vpmovusdb_m32_xmm :: #force_inline proc "contextless" (dst: Mem32, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_mem(dst.mem, 4), op_xmm(src), {}, {}} }, 1890) } +inst_vpmovusdb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1891) } +inst_vpmovusdb_m64_ymm :: #force_inline proc "contextless" (dst: Mem64, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_ymm(src), {}, {}} }, 1891) } +inst_vpmovusdb_xmm_zmm :: #force_inline proc "contextless" (dst: XMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_xmm(dst), op_zmm(src), {}, {}} }, 1892) } +inst_vpmovusdb_m128_zmm :: #force_inline proc "contextless" (dst: Mem128, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_zmm(src), {}, {}} }, 1892) } emit_vpmovusdb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovusdb_xmm_xmm(dst, src)) } emit_vpmovusdb_m32_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: XMM) { append(instructions, inst_vpmovusdb_m32_xmm(dst, src)) } emit_vpmovusdb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovusdb_xmm_ymm(dst, src)) } emit_vpmovusdb_m64_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: YMM) { append(instructions, inst_vpmovusdb_m64_ymm(dst, src)) } emit_vpmovusdb_xmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: ZMM) { append(instructions, inst_vpmovusdb_xmm_zmm(dst, src)) } emit_vpmovusdb_m128_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: ZMM) { append(instructions, inst_vpmovusdb_m128_zmm(dst, src)) } -inst_vpmovdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1881) } -inst_vpmovdw_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1881) } -inst_vpmovdw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1882) } -inst_vpmovdw_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1882) } -inst_vpmovdw_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1883) } -inst_vpmovdw_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1883) } +inst_vpmovdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1893) } +inst_vpmovdw_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1893) } +inst_vpmovdw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1894) } +inst_vpmovdw_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1894) } +inst_vpmovdw_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1895) } +inst_vpmovdw_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVDW, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1895) } emit_vpmovdw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovdw_xmm_xmm(dst, src)) } emit_vpmovdw_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovdw_m64_xmm(dst, src)) } emit_vpmovdw_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovdw_xmm_ymm(dst, src)) } emit_vpmovdw_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovdw_m128_ymm(dst, src)) } emit_vpmovdw_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovdw_ymm_zmm(dst, src)) } emit_vpmovdw_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovdw_m256_zmm(dst, src)) } -inst_vpmovsdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1884) } -inst_vpmovsdw_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1884) } -inst_vpmovsdw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1885) } -inst_vpmovsdw_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1885) } -inst_vpmovsdw_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1886) } -inst_vpmovsdw_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1886) } +inst_vpmovsdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1896) } +inst_vpmovsdw_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1896) } +inst_vpmovsdw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1897) } +inst_vpmovsdw_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1897) } +inst_vpmovsdw_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1898) } +inst_vpmovsdw_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSDW, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1898) } emit_vpmovsdw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovsdw_xmm_xmm(dst, src)) } emit_vpmovsdw_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovsdw_m64_xmm(dst, src)) } emit_vpmovsdw_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovsdw_xmm_ymm(dst, src)) } emit_vpmovsdw_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovsdw_m128_ymm(dst, src)) } emit_vpmovsdw_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovsdw_ymm_zmm(dst, src)) } emit_vpmovsdw_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovsdw_m256_zmm(dst, src)) } -inst_vpmovusdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1887) } -inst_vpmovusdw_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1887) } -inst_vpmovusdw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1888) } -inst_vpmovusdw_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1888) } -inst_vpmovusdw_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1889) } -inst_vpmovusdw_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1889) } +inst_vpmovusdw_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1899) } +inst_vpmovusdw_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1899) } +inst_vpmovusdw_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1900) } +inst_vpmovusdw_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1900) } +inst_vpmovusdw_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1901) } +inst_vpmovusdw_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSDW, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1901) } emit_vpmovusdw_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovusdw_xmm_xmm(dst, src)) } emit_vpmovusdw_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovusdw_m64_xmm(dst, src)) } emit_vpmovusdw_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovusdw_xmm_ymm(dst, src)) } emit_vpmovusdw_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovusdw_m128_ymm(dst, src)) } emit_vpmovusdw_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovusdw_ymm_zmm(dst, src)) } emit_vpmovusdw_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovusdw_m256_zmm(dst, src)) } -inst_vpmovwb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1890) } -inst_vpmovwb_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1890) } -inst_vpmovwb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1891) } -inst_vpmovwb_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1891) } -inst_vpmovwb_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1892) } -inst_vpmovwb_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1892) } +inst_vpmovwb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1902) } +inst_vpmovwb_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1902) } +inst_vpmovwb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1903) } +inst_vpmovwb_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1903) } +inst_vpmovwb_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1904) } +inst_vpmovwb_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVWB, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1904) } emit_vpmovwb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovwb_xmm_xmm(dst, src)) } emit_vpmovwb_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovwb_m64_xmm(dst, src)) } emit_vpmovwb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovwb_xmm_ymm(dst, src)) } emit_vpmovwb_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovwb_m128_ymm(dst, src)) } emit_vpmovwb_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovwb_ymm_zmm(dst, src)) } emit_vpmovwb_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovwb_m256_zmm(dst, src)) } -inst_vpmovswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1893) } -inst_vpmovswb_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1893) } -inst_vpmovswb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1894) } -inst_vpmovswb_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1894) } -inst_vpmovswb_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1895) } -inst_vpmovswb_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1895) } +inst_vpmovswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1905) } +inst_vpmovswb_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1905) } +inst_vpmovswb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1906) } +inst_vpmovswb_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1906) } +inst_vpmovswb_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1907) } +inst_vpmovswb_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVSWB, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1907) } emit_vpmovswb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovswb_xmm_xmm(dst, src)) } emit_vpmovswb_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovswb_m64_xmm(dst, src)) } emit_vpmovswb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovswb_xmm_ymm(dst, src)) } emit_vpmovswb_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovswb_m128_ymm(dst, src)) } emit_vpmovswb_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovswb_ymm_zmm(dst, src)) } emit_vpmovswb_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovswb_m256_zmm(dst, src)) } -inst_vpmovuswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1896) } -inst_vpmovuswb_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1896) } -inst_vpmovuswb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1897) } -inst_vpmovuswb_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1897) } -inst_vpmovuswb_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1898) } -inst_vpmovuswb_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1898) } +inst_vpmovuswb_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1908) } +inst_vpmovuswb_m64_xmm :: #force_inline proc "contextless" (dst: Mem64, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_mem(dst.mem, 8), op_xmm(src), {}, {}} }, 1908) } +inst_vpmovuswb_xmm_ymm :: #force_inline proc "contextless" (dst: XMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_xmm(dst), op_ymm(src), {}, {}} }, 1909) } +inst_vpmovuswb_m128_ymm :: #force_inline proc "contextless" (dst: Mem128, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_mem(dst.mem, 16), op_ymm(src), {}, {}} }, 1909) } +inst_vpmovuswb_ymm_zmm :: #force_inline proc "contextless" (dst: YMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_ymm(dst), op_zmm(src), {}, {}} }, 1910) } +inst_vpmovuswb_m256_zmm :: #force_inline proc "contextless" (dst: Mem256, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMOVUSWB, operand_count = 2, ops = {op_mem(dst.mem, 32), op_zmm(src), {}, {}} }, 1910) } emit_vpmovuswb_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vpmovuswb_xmm_xmm(dst, src)) } emit_vpmovuswb_m64_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: XMM) { append(instructions, inst_vpmovuswb_m64_xmm(dst, src)) } emit_vpmovuswb_xmm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: YMM) { append(instructions, inst_vpmovuswb_xmm_ymm(dst, src)) } emit_vpmovuswb_m128_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128, src: YMM) { append(instructions, inst_vpmovuswb_m128_ymm(dst, src)) } emit_vpmovuswb_ymm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: ZMM) { append(instructions, inst_vpmovuswb_ymm_zmm(dst, src)) } emit_vpmovuswb_m256_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem256, src: ZMM) { append(instructions, inst_vpmovuswb_m256_zmm(dst, src)) } -inst_vprold_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1899) } -inst_vprold_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1899) } -inst_vprold_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1900) } -inst_vprold_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1900) } -inst_vprold_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1901) } -inst_vprold_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1901) } +inst_vprold_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1911) } +inst_vprold_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1911) } +inst_vprold_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1912) } +inst_vprold_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1912) } +inst_vprold_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1913) } +inst_vprold_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1913) } emit_vprold_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vprold_xmm_xmm_imm8(dst, src, imm)) } emit_vprold_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vprold_xmm_m128_imm8(dst, src, imm)) } emit_vprold_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vprold_ymm_ymm_imm8(dst, src, imm)) } emit_vprold_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vprold_ymm_m256_imm8(dst, src, imm)) } emit_vprold_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vprold_zmm_zmm_imm8(dst, src, imm)) } emit_vprold_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vprold_zmm_m512_imm8(dst, src, imm)) } -inst_vprolq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1902) } -inst_vprolq_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1902) } -inst_vprolq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1903) } -inst_vprolq_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1903) } -inst_vprolq_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1904) } -inst_vprolq_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1904) } +inst_vprolq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1914) } +inst_vprolq_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1914) } +inst_vprolq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1915) } +inst_vprolq_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1915) } +inst_vprolq_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1916) } +inst_vprolq_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLQ, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1916) } emit_vprolq_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vprolq_xmm_xmm_imm8(dst, src, imm)) } emit_vprolq_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vprolq_xmm_m128_imm8(dst, src, imm)) } emit_vprolq_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vprolq_ymm_ymm_imm8(dst, src, imm)) } emit_vprolq_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vprolq_ymm_m256_imm8(dst, src, imm)) } emit_vprolq_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vprolq_zmm_zmm_imm8(dst, src, imm)) } emit_vprolq_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vprolq_zmm_m512_imm8(dst, src, imm)) } -inst_vprolvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1905) } -inst_vprolvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1905) } -inst_vprolvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1906) } -inst_vprolvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1906) } -inst_vprolvd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1907) } -inst_vprolvd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1907) } +inst_vprolvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1917) } +inst_vprolvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1917) } +inst_vprolvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1918) } +inst_vprolvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1918) } +inst_vprolvd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1919) } +inst_vprolvd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1919) } emit_vprolvd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vprolvd_xmm_xmm_xmm(dst, src, src2)) } emit_vprolvd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vprolvd_xmm_xmm_m128(dst, src, src2)) } emit_vprolvd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vprolvd_ymm_ymm_ymm(dst, src, src2)) } emit_vprolvd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vprolvd_ymm_ymm_m256(dst, src, src2)) } emit_vprolvd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vprolvd_zmm_zmm_zmm(dst, src, src2)) } emit_vprolvd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vprolvd_zmm_zmm_m512(dst, src, src2)) } -inst_vprolvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1908) } -inst_vprolvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1908) } -inst_vprolvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1909) } -inst_vprolvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1909) } -inst_vprolvq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1910) } -inst_vprolvq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1910) } +inst_vprolvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1920) } +inst_vprolvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1920) } +inst_vprolvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1921) } +inst_vprolvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1921) } +inst_vprolvq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1922) } +inst_vprolvq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPROLVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1922) } emit_vprolvq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vprolvq_xmm_xmm_xmm(dst, src, src2)) } emit_vprolvq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vprolvq_xmm_xmm_m128(dst, src, src2)) } emit_vprolvq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vprolvq_ymm_ymm_ymm(dst, src, src2)) } emit_vprolvq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vprolvq_ymm_ymm_m256(dst, src, src2)) } emit_vprolvq_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vprolvq_zmm_zmm_zmm(dst, src, src2)) } emit_vprolvq_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vprolvq_zmm_zmm_m512(dst, src, src2)) } -inst_vprord_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1911) } -inst_vprord_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1911) } -inst_vprord_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1912) } -inst_vprord_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1912) } -inst_vprord_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1913) } -inst_vprord_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1913) } +inst_vprord_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1923) } +inst_vprord_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1923) } +inst_vprord_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1924) } +inst_vprord_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1924) } +inst_vprord_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1925) } +inst_vprord_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1925) } emit_vprord_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vprord_xmm_xmm_imm8(dst, src, imm)) } emit_vprord_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vprord_xmm_m128_imm8(dst, src, imm)) } emit_vprord_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vprord_ymm_ymm_imm8(dst, src, imm)) } emit_vprord_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vprord_ymm_m256_imm8(dst, src, imm)) } emit_vprord_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vprord_zmm_zmm_imm8(dst, src, imm)) } emit_vprord_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vprord_zmm_m512_imm8(dst, src, imm)) } -inst_vprorq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1914) } -inst_vprorq_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1914) } -inst_vprorq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1915) } -inst_vprorq_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1915) } -inst_vprorq_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1916) } -inst_vprorq_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1916) } +inst_vprorq_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1926) } +inst_vprorq_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1926) } +inst_vprorq_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1927) } +inst_vprorq_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1927) } +inst_vprorq_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1928) } +inst_vprorq_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORQ, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1928) } emit_vprorq_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vprorq_xmm_xmm_imm8(dst, src, imm)) } emit_vprorq_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vprorq_xmm_m128_imm8(dst, src, imm)) } emit_vprorq_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vprorq_ymm_ymm_imm8(dst, src, imm)) } emit_vprorq_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vprorq_ymm_m256_imm8(dst, src, imm)) } emit_vprorq_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vprorq_zmm_zmm_imm8(dst, src, imm)) } emit_vprorq_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vprorq_zmm_m512_imm8(dst, src, imm)) } -inst_vprorvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1917) } -inst_vprorvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1917) } -inst_vprorvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1918) } -inst_vprorvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1918) } -inst_vprorvd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1919) } -inst_vprorvd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1919) } +inst_vprorvd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1929) } +inst_vprorvd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1929) } +inst_vprorvd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1930) } +inst_vprorvd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1930) } +inst_vprorvd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1931) } +inst_vprorvd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1931) } emit_vprorvd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vprorvd_xmm_xmm_xmm(dst, src, src2)) } emit_vprorvd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vprorvd_xmm_xmm_m128(dst, src, src2)) } emit_vprorvd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vprorvd_ymm_ymm_ymm(dst, src, src2)) } emit_vprorvd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vprorvd_ymm_ymm_m256(dst, src, src2)) } emit_vprorvd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vprorvd_zmm_zmm_zmm(dst, src, src2)) } emit_vprorvd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vprorvd_zmm_zmm_m512(dst, src, src2)) } -inst_vprorvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1920) } -inst_vprorvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1920) } -inst_vprorvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1921) } -inst_vprorvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1921) } -inst_vprorvq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1922) } -inst_vprorvq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1922) } +inst_vprorvq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1932) } +inst_vprorvq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1932) } +inst_vprorvq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1933) } +inst_vprorvq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1933) } +inst_vprorvq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1934) } +inst_vprorvq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPRORVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1934) } emit_vprorvq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vprorvq_xmm_xmm_xmm(dst, src, src2)) } emit_vprorvq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vprorvq_xmm_xmm_m128(dst, src, src2)) } emit_vprorvq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vprorvq_ymm_ymm_ymm(dst, src, src2)) } emit_vprorvq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vprorvq_ymm_ymm_m256(dst, src, src2)) } emit_vprorvq_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vprorvq_zmm_zmm_zmm(dst, src, src2)) } emit_vprorvq_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vprorvq_zmm_zmm_m512(dst, src, src2)) } -inst_vpscatterdd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1923) } -inst_vpscatterdd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1924) } -inst_vpscatterdd_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDD, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1925) } +inst_vpscatterdd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1935) } +inst_vpscatterdd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1936) } +inst_vpscatterdd_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDD, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1937) } emit_vpscatterdd_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vpscatterdd_m_xmm(dst, src)) } emit_vpscatterdd_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vpscatterdd_m_ymm(dst, src)) } emit_vpscatterdd_m_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: ZMM) { append(instructions, inst_vpscatterdd_m_zmm(dst, src)) } -inst_vpscatterdq_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDQ, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1926) } -inst_vpscatterdq_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDQ, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1927) } -inst_vpscatterdq_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDQ, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1928) } +inst_vpscatterdq_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDQ, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1938) } +inst_vpscatterdq_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDQ, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1939) } +inst_vpscatterdq_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERDQ, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1940) } emit_vpscatterdq_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vpscatterdq_m_xmm(dst, src)) } emit_vpscatterdq_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vpscatterdq_m_ymm(dst, src)) } emit_vpscatterdq_m_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: ZMM) { append(instructions, inst_vpscatterdq_m_zmm(dst, src)) } -inst_vpscatterqd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1929) } -inst_vpscatterqd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1931) } +inst_vpscatterqd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1941) } +inst_vpscatterqd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1943) } emit_vpscatterqd_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vpscatterqd_m_xmm(dst, src)) } emit_vpscatterqd_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vpscatterqd_m_ymm(dst, src)) } -inst_vpscatterqq_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQQ, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1932) } -inst_vpscatterqq_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQQ, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1933) } -inst_vpscatterqq_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQQ, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1934) } +inst_vpscatterqq_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQQ, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1944) } +inst_vpscatterqq_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQQ, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1945) } +inst_vpscatterqq_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSCATTERQQ, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1946) } emit_vpscatterqq_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vpscatterqq_m_xmm(dst, src)) } emit_vpscatterqq_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vpscatterqq_m_ymm(dst, src)) } emit_vpscatterqq_m_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: ZMM) { append(instructions, inst_vpscatterqq_m_zmm(dst, src)) } -inst_vscatterdps_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPS, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1935) } -inst_vscatterdps_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPS, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1936) } -inst_vscatterdps_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPS, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1937) } +inst_vscatterdps_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPS, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1947) } +inst_vscatterdps_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPS, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1948) } +inst_vscatterdps_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPS, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1949) } emit_vscatterdps_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vscatterdps_m_xmm(dst, src)) } emit_vscatterdps_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vscatterdps_m_ymm(dst, src)) } emit_vscatterdps_m_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: ZMM) { append(instructions, inst_vscatterdps_m_zmm(dst, src)) } -inst_vscatterdpd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1938) } -inst_vscatterdpd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1939) } -inst_vscatterdpd_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPD, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1940) } +inst_vscatterdpd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1950) } +inst_vscatterdpd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1951) } +inst_vscatterdpd_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERDPD, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1952) } emit_vscatterdpd_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vscatterdpd_m_xmm(dst, src)) } emit_vscatterdpd_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vscatterdpd_m_ymm(dst, src)) } emit_vscatterdpd_m_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: ZMM) { append(instructions, inst_vscatterdpd_m_zmm(dst, src)) } -inst_vscatterqps_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPS, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1941) } -inst_vscatterqps_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPS, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1943) } +inst_vscatterqps_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPS, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1953) } +inst_vscatterqps_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPS, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1955) } emit_vscatterqps_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vscatterqps_m_xmm(dst, src)) } emit_vscatterqps_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vscatterqps_m_ymm(dst, src)) } -inst_vscatterqpd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1944) } -inst_vscatterqpd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1945) } -inst_vscatterqpd_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPD, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1946) } +inst_vscatterqpd_m_xmm :: #force_inline proc "contextless" (dst: Memory, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPD, operand_count = 2, ops = {op_mem(dst, 0), op_xmm(src), {}, {}} }, 1956) } +inst_vscatterqpd_m_ymm :: #force_inline proc "contextless" (dst: Memory, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPD, operand_count = 2, ops = {op_mem(dst, 0), op_ymm(src), {}, {}} }, 1957) } +inst_vscatterqpd_m_zmm :: #force_inline proc "contextless" (dst: Memory, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCATTERQPD, operand_count = 2, ops = {op_mem(dst, 0), op_zmm(src), {}, {}} }, 1958) } emit_vscatterqpd_m_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: XMM) { append(instructions, inst_vscatterqpd_m_xmm(dst, src)) } emit_vscatterqpd_m_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: YMM) { append(instructions, inst_vscatterqpd_m_ymm(dst, src)) } emit_vscatterqpd_m_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory, src: ZMM) { append(instructions, inst_vscatterqpd_m_zmm(dst, src)) } -inst_vpsravq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1947) } -inst_vpsravq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1947) } -inst_vpsravq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1948) } -inst_vpsravq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1948) } -inst_vpsravq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1949) } -inst_vpsravq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1949) } +inst_vpsravq_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1959) } +inst_vpsravq_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1959) } +inst_vpsravq_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1960) } +inst_vpsravq_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1960) } +inst_vpsravq_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1961) } +inst_vpsravq_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVQ, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1961) } emit_vpsravq_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsravq_xmm_xmm_xmm(dst, src, src2)) } emit_vpsravq_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsravq_xmm_xmm_m128(dst, src, src2)) } emit_vpsravq_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsravq_ymm_ymm_ymm(dst, src, src2)) } emit_vpsravq_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsravq_ymm_ymm_m256(dst, src, src2)) } emit_vpsravq_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpsravq_zmm_zmm_zmm(dst, src, src2)) } emit_vpsravq_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpsravq_zmm_zmm_m512(dst, src, src2)) } -inst_vpsravw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1950) } -inst_vpsravw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1950) } -inst_vpsravw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1951) } -inst_vpsravw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1951) } -inst_vpsravw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1952) } -inst_vpsravw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1952) } +inst_vpsravw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1962) } +inst_vpsravw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1962) } +inst_vpsravw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1963) } +inst_vpsravw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1963) } +inst_vpsravw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1964) } +inst_vpsravw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRAVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1964) } emit_vpsravw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsravw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsravw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsravw_xmm_xmm_m128(dst, src, src2)) } emit_vpsravw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsravw_ymm_ymm_ymm(dst, src, src2)) } emit_vpsravw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsravw_ymm_ymm_m256(dst, src, src2)) } emit_vpsravw_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpsravw_zmm_zmm_zmm(dst, src, src2)) } emit_vpsravw_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpsravw_zmm_zmm_m512(dst, src, src2)) } -inst_vpsllvw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1953) } -inst_vpsllvw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1953) } -inst_vpsllvw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1954) } -inst_vpsllvw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1954) } -inst_vpsllvw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1955) } -inst_vpsllvw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1955) } +inst_vpsllvw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1965) } +inst_vpsllvw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1965) } +inst_vpsllvw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1966) } +inst_vpsllvw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1966) } +inst_vpsllvw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1967) } +inst_vpsllvw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSLLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1967) } emit_vpsllvw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsllvw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsllvw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsllvw_xmm_xmm_m128(dst, src, src2)) } emit_vpsllvw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsllvw_ymm_ymm_ymm(dst, src, src2)) } emit_vpsllvw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsllvw_ymm_ymm_m256(dst, src, src2)) } emit_vpsllvw_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpsllvw_zmm_zmm_zmm(dst, src, src2)) } emit_vpsllvw_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpsllvw_zmm_zmm_m512(dst, src, src2)) } -inst_vpsrlvw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1956) } -inst_vpsrlvw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1956) } -inst_vpsrlvw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1957) } -inst_vpsrlvw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1957) } -inst_vpsrlvw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1958) } -inst_vpsrlvw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1958) } +inst_vpsrlvw_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1968) } +inst_vpsrlvw_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1968) } +inst_vpsrlvw_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 1969) } +inst_vpsrlvw_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 1969) } +inst_vpsrlvw_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 1970) } +inst_vpsrlvw_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPSRLVW, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 1970) } emit_vpsrlvw_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpsrlvw_xmm_xmm_xmm(dst, src, src2)) } emit_vpsrlvw_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpsrlvw_xmm_xmm_m128(dst, src, src2)) } emit_vpsrlvw_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpsrlvw_ymm_ymm_ymm(dst, src, src2)) } emit_vpsrlvw_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpsrlvw_ymm_ymm_m256(dst, src, src2)) } emit_vpsrlvw_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpsrlvw_zmm_zmm_zmm(dst, src, src2)) } emit_vpsrlvw_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpsrlvw_zmm_zmm_m512(dst, src, src2)) } -inst_vrangeps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1959) } -inst_vrangeps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1959) } -inst_vrangeps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1960) } -inst_vrangeps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1960) } -inst_vrangeps_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1961) } -inst_vrangeps_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1961) } +inst_vrangeps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1971) } +inst_vrangeps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1971) } +inst_vrangeps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1972) } +inst_vrangeps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1972) } +inst_vrangeps_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1973) } +inst_vrangeps_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1973) } emit_vrangeps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vrangeps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vrangeps_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vrangeps_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vrangeps_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vrangeps_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vrangeps_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vrangeps_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vrangeps_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vrangeps_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vrangeps_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vrangeps_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vrangepd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1962) } -inst_vrangepd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1962) } -inst_vrangepd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1963) } -inst_vrangepd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1963) } -inst_vrangepd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1964) } -inst_vrangepd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1964) } +inst_vrangepd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1974) } +inst_vrangepd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 1974) } +inst_vrangepd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 1975) } +inst_vrangepd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 1975) } +inst_vrangepd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 1976) } +inst_vrangepd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGEPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 1976) } emit_vrangepd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vrangepd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vrangepd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vrangepd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vrangepd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vrangepd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vrangepd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vrangepd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vrangepd_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vrangepd_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vrangepd_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vrangepd_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vrangess_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1965) } -inst_vrangess_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1965) } +inst_vrangess_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1977) } +inst_vrangess_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1977) } emit_vrangess_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vrangess_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vrangess_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vrangess_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vrangesd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1966) } -inst_vrangesd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1966) } +inst_vrangesd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1978) } +inst_vrangesd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRANGESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1978) } emit_vrangesd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vrangesd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vrangesd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vrangesd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vreduceps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1967) } -inst_vreduceps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1967) } -inst_vreduceps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1968) } -inst_vreduceps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1968) } -inst_vreduceps_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1969) } -inst_vreduceps_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1969) } +inst_vreduceps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1979) } +inst_vreduceps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1979) } +inst_vreduceps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1980) } +inst_vreduceps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1980) } +inst_vreduceps_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1981) } +inst_vreduceps_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPS, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1981) } emit_vreduceps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vreduceps_xmm_xmm_imm8(dst, src, imm)) } emit_vreduceps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vreduceps_xmm_m128_imm8(dst, src, imm)) } emit_vreduceps_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vreduceps_ymm_ymm_imm8(dst, src, imm)) } emit_vreduceps_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vreduceps_ymm_m256_imm8(dst, src, imm)) } emit_vreduceps_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vreduceps_zmm_zmm_imm8(dst, src, imm)) } emit_vreduceps_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vreduceps_zmm_m512_imm8(dst, src, imm)) } -inst_vreducepd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1970) } -inst_vreducepd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1970) } -inst_vreducepd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1971) } -inst_vreducepd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1971) } -inst_vreducepd_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1972) } -inst_vreducepd_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1972) } +inst_vreducepd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1982) } +inst_vreducepd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1982) } +inst_vreducepd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1983) } +inst_vreducepd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1983) } +inst_vreducepd_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1984) } +inst_vreducepd_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCEPD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1984) } emit_vreducepd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vreducepd_xmm_xmm_imm8(dst, src, imm)) } emit_vreducepd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vreducepd_xmm_m128_imm8(dst, src, imm)) } emit_vreducepd_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vreducepd_ymm_ymm_imm8(dst, src, imm)) } emit_vreducepd_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vreducepd_ymm_m256_imm8(dst, src, imm)) } emit_vreducepd_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vreducepd_zmm_zmm_imm8(dst, src, imm)) } emit_vreducepd_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vreducepd_zmm_m512_imm8(dst, src, imm)) } -inst_vreducess_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1973) } -inst_vreducess_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1973) } +inst_vreducess_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1985) } +inst_vreducess_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1985) } emit_vreducess_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vreducess_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vreducess_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vreducess_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vreducesd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1974) } -inst_vreducesd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1974) } +inst_vreducesd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1986) } +inst_vreducesd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VREDUCESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1986) } emit_vreducesd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vreducesd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vreducesd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vreducesd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vrndscaleps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1975) } -inst_vrndscaleps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1975) } -inst_vrndscaleps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1976) } -inst_vrndscaleps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1976) } -inst_vrndscaleps_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1977) } -inst_vrndscaleps_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1977) } +inst_vrndscaleps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1987) } +inst_vrndscaleps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1987) } +inst_vrndscaleps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1988) } +inst_vrndscaleps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1988) } +inst_vrndscaleps_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1989) } +inst_vrndscaleps_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPS, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1989) } emit_vrndscaleps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vrndscaleps_xmm_xmm_imm8(dst, src, imm)) } emit_vrndscaleps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vrndscaleps_xmm_m128_imm8(dst, src, imm)) } emit_vrndscaleps_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vrndscaleps_ymm_ymm_imm8(dst, src, imm)) } emit_vrndscaleps_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vrndscaleps_ymm_m256_imm8(dst, src, imm)) } emit_vrndscaleps_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vrndscaleps_zmm_zmm_imm8(dst, src, imm)) } emit_vrndscaleps_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vrndscaleps_zmm_m512_imm8(dst, src, imm)) } -inst_vrndscalepd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1978) } -inst_vrndscalepd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1978) } -inst_vrndscalepd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1979) } -inst_vrndscalepd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1979) } -inst_vrndscalepd_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1980) } -inst_vrndscalepd_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1980) } +inst_vrndscalepd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 1990) } +inst_vrndscalepd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 1990) } +inst_vrndscalepd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 1991) } +inst_vrndscalepd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 1991) } +inst_vrndscalepd_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 1992) } +inst_vrndscalepd_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALEPD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 1992) } emit_vrndscalepd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vrndscalepd_xmm_xmm_imm8(dst, src, imm)) } emit_vrndscalepd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vrndscalepd_xmm_m128_imm8(dst, src, imm)) } emit_vrndscalepd_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vrndscalepd_ymm_ymm_imm8(dst, src, imm)) } emit_vrndscalepd_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vrndscalepd_ymm_m256_imm8(dst, src, imm)) } emit_vrndscalepd_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vrndscalepd_zmm_zmm_imm8(dst, src, imm)) } emit_vrndscalepd_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vrndscalepd_zmm_m512_imm8(dst, src, imm)) } -inst_vrndscaless_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1981) } -inst_vrndscaless_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1981) } +inst_vrndscaless_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1993) } +inst_vrndscaless_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 1993) } emit_vrndscaless_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vrndscaless_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vrndscaless_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vrndscaless_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vrndscalesd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1982) } -inst_vrndscalesd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1982) } +inst_vrndscalesd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 1994) } +inst_vrndscalesd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VRNDSCALESD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 1994) } emit_vrndscalesd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vrndscalesd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vrndscalesd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vrndscalesd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vrsqrt14ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1983) } -inst_vrsqrt14ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1983) } -inst_vrsqrt14ps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1984) } -inst_vrsqrt14ps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1984) } -inst_vrsqrt14ps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1985) } -inst_vrsqrt14ps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1985) } +inst_vrsqrt14ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1995) } +inst_vrsqrt14ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1995) } +inst_vrsqrt14ps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1996) } +inst_vrsqrt14ps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1996) } +inst_vrsqrt14ps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1997) } +inst_vrsqrt14ps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1997) } emit_vrsqrt14ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vrsqrt14ps_xmm_xmm(dst, src)) } emit_vrsqrt14ps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vrsqrt14ps_xmm_m128(dst, src)) } emit_vrsqrt14ps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vrsqrt14ps_ymm_ymm(dst, src)) } emit_vrsqrt14ps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vrsqrt14ps_ymm_m256(dst, src)) } emit_vrsqrt14ps_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vrsqrt14ps_zmm_zmm(dst, src)) } emit_vrsqrt14ps_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vrsqrt14ps_zmm_m512(dst, src)) } -inst_vrsqrt14pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1986) } -inst_vrsqrt14pd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1986) } -inst_vrsqrt14pd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1987) } -inst_vrsqrt14pd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1987) } -inst_vrsqrt14pd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1988) } -inst_vrsqrt14pd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1988) } +inst_vrsqrt14pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1998) } +inst_vrsqrt14pd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1998) } +inst_vrsqrt14pd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1999) } +inst_vrsqrt14pd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1999) } +inst_vrsqrt14pd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2000) } +inst_vrsqrt14pd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14PD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2000) } emit_vrsqrt14pd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vrsqrt14pd_xmm_xmm(dst, src)) } emit_vrsqrt14pd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vrsqrt14pd_xmm_m128(dst, src)) } emit_vrsqrt14pd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vrsqrt14pd_ymm_ymm(dst, src)) } emit_vrsqrt14pd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vrsqrt14pd_ymm_m256(dst, src)) } emit_vrsqrt14pd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vrsqrt14pd_zmm_zmm(dst, src)) } emit_vrsqrt14pd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vrsqrt14pd_zmm_m512(dst, src)) } -inst_vrsqrt14ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1989) } -inst_vrsqrt14ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1989) } +inst_vrsqrt14ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2001) } +inst_vrsqrt14ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 2001) } emit_vrsqrt14ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vrsqrt14ss_xmm_xmm_xmm(dst, src, src2)) } emit_vrsqrt14ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vrsqrt14ss_xmm_xmm_m32(dst, src, src2)) } -inst_vrsqrt14sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1990) } -inst_vrsqrt14sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1990) } +inst_vrsqrt14sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2002) } +inst_vrsqrt14sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VRSQRT14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 2002) } emit_vrsqrt14sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vrsqrt14sd_xmm_xmm_xmm(dst, src, src2)) } emit_vrsqrt14sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vrsqrt14sd_xmm_xmm_m64(dst, src, src2)) } -inst_vrcp14ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1991) } -inst_vrcp14ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1991) } -inst_vrcp14ps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1992) } -inst_vrcp14ps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1992) } -inst_vrcp14ps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1993) } -inst_vrcp14ps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1993) } +inst_vrcp14ps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 2003) } +inst_vrcp14ps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 2003) } +inst_vrcp14ps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 2004) } +inst_vrcp14ps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 2004) } +inst_vrcp14ps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2005) } +inst_vrcp14ps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2005) } emit_vrcp14ps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vrcp14ps_xmm_xmm(dst, src)) } emit_vrcp14ps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vrcp14ps_xmm_m128(dst, src)) } emit_vrcp14ps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vrcp14ps_ymm_ymm(dst, src)) } emit_vrcp14ps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vrcp14ps_ymm_m256(dst, src)) } emit_vrcp14ps_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vrcp14ps_zmm_zmm(dst, src)) } emit_vrcp14ps_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vrcp14ps_zmm_m512(dst, src)) } -inst_vrcp14pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 1994) } -inst_vrcp14pd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 1994) } -inst_vrcp14pd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 1995) } -inst_vrcp14pd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 1995) } -inst_vrcp14pd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 1996) } -inst_vrcp14pd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 1996) } +inst_vrcp14pd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 2006) } +inst_vrcp14pd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 2006) } +inst_vrcp14pd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 2007) } +inst_vrcp14pd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 2007) } +inst_vrcp14pd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2008) } +inst_vrcp14pd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14PD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2008) } emit_vrcp14pd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vrcp14pd_xmm_xmm(dst, src)) } emit_vrcp14pd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vrcp14pd_xmm_m128(dst, src)) } emit_vrcp14pd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vrcp14pd_ymm_ymm(dst, src)) } emit_vrcp14pd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vrcp14pd_ymm_m256(dst, src)) } emit_vrcp14pd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vrcp14pd_zmm_zmm(dst, src)) } emit_vrcp14pd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vrcp14pd_zmm_m512(dst, src)) } -inst_vrcp14ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1997) } -inst_vrcp14ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 1997) } +inst_vrcp14ss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2009) } +inst_vrcp14ss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 2009) } emit_vrcp14ss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vrcp14ss_xmm_xmm_xmm(dst, src, src2)) } emit_vrcp14ss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vrcp14ss_xmm_xmm_m32(dst, src, src2)) } -inst_vrcp14sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1998) } -inst_vrcp14sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 1998) } +inst_vrcp14sd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2010) } +inst_vrcp14sd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VRCP14SD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 2010) } emit_vrcp14sd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vrcp14sd_xmm_xmm_xmm(dst, src, src2)) } emit_vrcp14sd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vrcp14sd_xmm_xmm_m64(dst, src, src2)) } -inst_vscalefps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 1999) } -inst_vscalefps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 1999) } -inst_vscalefps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2000) } -inst_vscalefps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2000) } -inst_vscalefps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2001) } -inst_vscalefps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2001) } +inst_vscalefps_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2011) } +inst_vscalefps_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2011) } +inst_vscalefps_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2012) } +inst_vscalefps_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2012) } +inst_vscalefps_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2013) } +inst_vscalefps_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2013) } emit_vscalefps_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vscalefps_xmm_xmm_xmm(dst, src, src2)) } emit_vscalefps_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vscalefps_xmm_xmm_m128(dst, src, src2)) } emit_vscalefps_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vscalefps_ymm_ymm_ymm(dst, src, src2)) } emit_vscalefps_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vscalefps_ymm_ymm_m256(dst, src, src2)) } emit_vscalefps_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vscalefps_zmm_zmm_zmm(dst, src, src2)) } emit_vscalefps_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vscalefps_zmm_zmm_m512(dst, src, src2)) } -inst_vscalefpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2002) } -inst_vscalefpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2002) } -inst_vscalefpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2003) } -inst_vscalefpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2003) } -inst_vscalefpd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2004) } -inst_vscalefpd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2004) } +inst_vscalefpd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2014) } +inst_vscalefpd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2014) } +inst_vscalefpd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2015) } +inst_vscalefpd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2015) } +inst_vscalefpd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2016) } +inst_vscalefpd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2016) } emit_vscalefpd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vscalefpd_xmm_xmm_xmm(dst, src, src2)) } emit_vscalefpd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vscalefpd_xmm_xmm_m128(dst, src, src2)) } emit_vscalefpd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vscalefpd_ymm_ymm_ymm(dst, src, src2)) } emit_vscalefpd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vscalefpd_ymm_ymm_m256(dst, src, src2)) } emit_vscalefpd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vscalefpd_zmm_zmm_zmm(dst, src, src2)) } emit_vscalefpd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vscalefpd_zmm_zmm_m512(dst, src, src2)) } -inst_vscalefss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2005) } -inst_vscalefss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 2005) } +inst_vscalefss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2017) } +inst_vscalefss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 2017) } emit_vscalefss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vscalefss_xmm_xmm_xmm(dst, src, src2)) } emit_vscalefss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vscalefss_xmm_xmm_m32(dst, src, src2)) } -inst_vscalefsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2006) } -inst_vscalefsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 2006) } +inst_vscalefsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2018) } +inst_vscalefsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VSCALEFSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 2018) } emit_vscalefsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vscalefsd_xmm_xmm_xmm(dst, src, src2)) } emit_vscalefsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vscalefsd_xmm_xmm_m64(dst, src, src2)) } -inst_vgetexpps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 2007) } -inst_vgetexpps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 2007) } -inst_vgetexpps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 2008) } -inst_vgetexpps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 2008) } -inst_vgetexpps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2009) } -inst_vgetexpps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2009) } +inst_vgetexpps_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 2019) } +inst_vgetexpps_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 2019) } +inst_vgetexpps_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 2020) } +inst_vgetexpps_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 2020) } +inst_vgetexpps_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2021) } +inst_vgetexpps_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPS, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2021) } emit_vgetexpps_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vgetexpps_xmm_xmm(dst, src)) } emit_vgetexpps_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vgetexpps_xmm_m128(dst, src)) } emit_vgetexpps_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vgetexpps_ymm_ymm(dst, src)) } emit_vgetexpps_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vgetexpps_ymm_m256(dst, src)) } emit_vgetexpps_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vgetexpps_zmm_zmm(dst, src)) } emit_vgetexpps_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vgetexpps_zmm_m512(dst, src)) } -inst_vgetexppd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 2010) } -inst_vgetexppd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 2010) } -inst_vgetexppd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 2011) } -inst_vgetexppd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 2011) } -inst_vgetexppd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2012) } -inst_vgetexppd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2012) } +inst_vgetexppd_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_xmm(dst), op_xmm(src), {}, {}} }, 2022) } +inst_vgetexppd_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_xmm(dst), op_mem(src.mem, 16), {}, {}} }, 2022) } +inst_vgetexppd_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_ymm(dst), op_ymm(src), {}, {}} }, 2023) } +inst_vgetexppd_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_ymm(dst), op_mem(src.mem, 32), {}, {}} }, 2023) } +inst_vgetexppd_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_zmm(dst), op_zmm(src), {}, {}} }, 2024) } +inst_vgetexppd_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPPD, operand_count = 2, ops = {op_zmm(dst), op_mem(src.mem, 64), {}, {}} }, 2024) } emit_vgetexppd_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM) { append(instructions, inst_vgetexppd_xmm_xmm(dst, src)) } emit_vgetexppd_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128) { append(instructions, inst_vgetexppd_xmm_m128(dst, src)) } emit_vgetexppd_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM) { append(instructions, inst_vgetexppd_ymm_ymm(dst, src)) } emit_vgetexppd_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256) { append(instructions, inst_vgetexppd_ymm_m256(dst, src)) } emit_vgetexppd_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM) { append(instructions, inst_vgetexppd_zmm_zmm(dst, src)) } emit_vgetexppd_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512) { append(instructions, inst_vgetexppd_zmm_m512(dst, src)) } -inst_vgetexpss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2013) } -inst_vgetexpss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 2013) } +inst_vgetexpss_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2025) } +inst_vgetexpss_xmm_xmm_m32 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), {}} }, 2025) } emit_vgetexpss_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vgetexpss_xmm_xmm_xmm(dst, src, src2)) } emit_vgetexpss_xmm_xmm_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32) { append(instructions, inst_vgetexpss_xmm_xmm_m32(dst, src, src2)) } -inst_vgetexpsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2014) } -inst_vgetexpsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 2014) } +inst_vgetexpsd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2026) } +inst_vgetexpsd_xmm_xmm_m64 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETEXPSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), {}} }, 2026) } emit_vgetexpsd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vgetexpsd_xmm_xmm_xmm(dst, src, src2)) } emit_vgetexpsd_xmm_xmm_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64) { append(instructions, inst_vgetexpsd_xmm_xmm_m64(dst, src, src2)) } -inst_vgetmantps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 2015) } -inst_vgetmantps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2015) } -inst_vgetmantps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 2016) } -inst_vgetmantps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2016) } -inst_vgetmantps_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 2017) } -inst_vgetmantps_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2017) } +inst_vgetmantps_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 2027) } +inst_vgetmantps_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2027) } +inst_vgetmantps_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 2028) } +inst_vgetmantps_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2028) } +inst_vgetmantps_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 2029) } +inst_vgetmantps_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPS, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2029) } emit_vgetmantps_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vgetmantps_xmm_xmm_imm8(dst, src, imm)) } emit_vgetmantps_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vgetmantps_xmm_m128_imm8(dst, src, imm)) } emit_vgetmantps_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vgetmantps_ymm_ymm_imm8(dst, src, imm)) } emit_vgetmantps_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vgetmantps_ymm_m256_imm8(dst, src, imm)) } emit_vgetmantps_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vgetmantps_zmm_zmm_imm8(dst, src, imm)) } emit_vgetmantps_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vgetmantps_zmm_m512_imm8(dst, src, imm)) } -inst_vgetmantpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 2018) } -inst_vgetmantpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2018) } -inst_vgetmantpd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 2019) } -inst_vgetmantpd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2019) } -inst_vgetmantpd_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 2020) } -inst_vgetmantpd_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2020) } +inst_vgetmantpd_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_imm8(imm), {}} }, 2030) } +inst_vgetmantpd_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_xmm(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2030) } +inst_vgetmantpd_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_imm8(imm), {}} }, 2031) } +inst_vgetmantpd_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_ymm(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2031) } +inst_vgetmantpd_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_imm8(imm), {}} }, 2032) } +inst_vgetmantpd_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTPD, operand_count = 3, ops = {op_zmm(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2032) } emit_vgetmantpd_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, imm: i8) { append(instructions, inst_vgetmantpd_xmm_xmm_imm8(dst, src, imm)) } emit_vgetmantpd_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: Mem128, imm: i8) { append(instructions, inst_vgetmantpd_xmm_m128_imm8(dst, src, imm)) } emit_vgetmantpd_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, imm: i8) { append(instructions, inst_vgetmantpd_ymm_ymm_imm8(dst, src, imm)) } emit_vgetmantpd_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: Mem256, imm: i8) { append(instructions, inst_vgetmantpd_ymm_m256_imm8(dst, src, imm)) } emit_vgetmantpd_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, imm: i8) { append(instructions, inst_vgetmantpd_zmm_zmm_imm8(dst, src, imm)) } emit_vgetmantpd_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: Mem512, imm: i8) { append(instructions, inst_vgetmantpd_zmm_m512_imm8(dst, src, imm)) } -inst_vgetmantss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2021) } -inst_vgetmantss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 2021) } +inst_vgetmantss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2033) } +inst_vgetmantss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 2033) } emit_vgetmantss_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vgetmantss_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vgetmantss_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vgetmantss_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vgetmantsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2022) } -inst_vgetmantsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 2022) } +inst_vgetmantsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2034) } +inst_vgetmantsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VGETMANTSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 2034) } emit_vgetmantsd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vgetmantsd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vgetmantsd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vgetmantsd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vfixupimmps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2023) } -inst_vfixupimmps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2023) } -inst_vfixupimmps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2024) } -inst_vfixupimmps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2024) } -inst_vfixupimmps_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2025) } -inst_vfixupimmps_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2025) } +inst_vfixupimmps_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2035) } +inst_vfixupimmps_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2035) } +inst_vfixupimmps_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2036) } +inst_vfixupimmps_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2036) } +inst_vfixupimmps_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2037) } +inst_vfixupimmps_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPS, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2037) } emit_vfixupimmps_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vfixupimmps_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vfixupimmps_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vfixupimmps_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vfixupimmps_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vfixupimmps_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vfixupimmps_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vfixupimmps_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vfixupimmps_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vfixupimmps_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vfixupimmps_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vfixupimmps_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vfixupimmpd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2026) } -inst_vfixupimmpd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2026) } -inst_vfixupimmpd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2027) } -inst_vfixupimmpd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2027) } -inst_vfixupimmpd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2028) } -inst_vfixupimmpd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2028) } +inst_vfixupimmpd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2038) } +inst_vfixupimmpd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2038) } +inst_vfixupimmpd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2039) } +inst_vfixupimmpd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2039) } +inst_vfixupimmpd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2040) } +inst_vfixupimmpd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMPD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2040) } emit_vfixupimmpd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vfixupimmpd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vfixupimmpd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vfixupimmpd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vfixupimmpd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vfixupimmpd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vfixupimmpd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vfixupimmpd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vfixupimmpd_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vfixupimmpd_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vfixupimmpd_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vfixupimmpd_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vfixupimmss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2029) } -inst_vfixupimmss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 2029) } +inst_vfixupimmss_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2041) } +inst_vfixupimmss_xmm_xmm_m32_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSS, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 4), op_imm8(imm)} }, 2041) } emit_vfixupimmss_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vfixupimmss_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vfixupimmss_xmm_xmm_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem32, imm: i8) { append(instructions, inst_vfixupimmss_xmm_xmm_m32_imm8(dst, src, src2, imm)) } -inst_vfixupimmsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2030) } -inst_vfixupimmsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 2030) } +inst_vfixupimmsd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2042) } +inst_vfixupimmsd_xmm_xmm_m64_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFIXUPIMMSD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 8), op_imm8(imm)} }, 2042) } emit_vfixupimmsd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vfixupimmsd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vfixupimmsd_xmm_xmm_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem64, imm: i8) { append(instructions, inst_vfixupimmsd_xmm_xmm_m64_imm8(dst, src, src2, imm)) } -inst_vfpclassps_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2031) } -inst_vfpclassps_k_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2031) } -inst_vfpclassps_k_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_imm8(imm), {}} }, 2032) } -inst_vfpclassps_k_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2032) } -inst_vfpclassps_k_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_imm8(imm), {}} }, 2033) } -inst_vfpclassps_k_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2033) } +inst_vfpclassps_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2043) } +inst_vfpclassps_k_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2043) } +inst_vfpclassps_k_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_imm8(imm), {}} }, 2044) } +inst_vfpclassps_k_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2044) } +inst_vfpclassps_k_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_imm8(imm), {}} }, 2045) } +inst_vfpclassps_k_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2045) } emit_vfpclassps_k_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, imm: i8) { append(instructions, inst_vfpclassps_k_xmm_imm8(dst, src, imm)) } emit_vfpclassps_k_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem128, imm: i8) { append(instructions, inst_vfpclassps_k_m128_imm8(dst, src, imm)) } emit_vfpclassps_k_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, imm: i8) { append(instructions, inst_vfpclassps_k_ymm_imm8(dst, src, imm)) } emit_vfpclassps_k_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem256, imm: i8) { append(instructions, inst_vfpclassps_k_m256_imm8(dst, src, imm)) } emit_vfpclassps_k_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, imm: i8) { append(instructions, inst_vfpclassps_k_zmm_imm8(dst, src, imm)) } emit_vfpclassps_k_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem512, imm: i8) { append(instructions, inst_vfpclassps_k_m512_imm8(dst, src, imm)) } -inst_vfpclasspd_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2034) } -inst_vfpclasspd_k_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2034) } -inst_vfpclasspd_k_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_imm8(imm), {}} }, 2035) } -inst_vfpclasspd_k_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2035) } -inst_vfpclasspd_k_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_imm8(imm), {}} }, 2036) } -inst_vfpclasspd_k_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2036) } +inst_vfpclasspd_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2046) } +inst_vfpclasspd_k_m128_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 16), op_imm8(imm), {}} }, 2046) } +inst_vfpclasspd_k_ymm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_ymm(src), op_imm8(imm), {}} }, 2047) } +inst_vfpclasspd_k_m256_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 32), op_imm8(imm), {}} }, 2047) } +inst_vfpclasspd_k_zmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_zmm(src), op_imm8(imm), {}} }, 2048) } +inst_vfpclasspd_k_m512_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSPD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 64), op_imm8(imm), {}} }, 2048) } emit_vfpclasspd_k_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, imm: i8) { append(instructions, inst_vfpclasspd_k_xmm_imm8(dst, src, imm)) } emit_vfpclasspd_k_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem128, imm: i8) { append(instructions, inst_vfpclasspd_k_m128_imm8(dst, src, imm)) } emit_vfpclasspd_k_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: YMM, imm: i8) { append(instructions, inst_vfpclasspd_k_ymm_imm8(dst, src, imm)) } emit_vfpclasspd_k_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem256, imm: i8) { append(instructions, inst_vfpclasspd_k_m256_imm8(dst, src, imm)) } emit_vfpclasspd_k_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: ZMM, imm: i8) { append(instructions, inst_vfpclasspd_k_zmm_imm8(dst, src, imm)) } emit_vfpclasspd_k_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem512, imm: i8) { append(instructions, inst_vfpclasspd_k_m512_imm8(dst, src, imm)) } -inst_vfpclassss_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSS, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2037) } -inst_vfpclassss_k_m32_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 2037) } +inst_vfpclassss_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSS, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2049) } +inst_vfpclassss_k_m32_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem32, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSS, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 4), op_imm8(imm), {}} }, 2049) } emit_vfpclassss_k_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, imm: i8) { append(instructions, inst_vfpclassss_k_xmm_imm8(dst, src, imm)) } emit_vfpclassss_k_m32_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem32, imm: i8) { append(instructions, inst_vfpclassss_k_m32_imm8(dst, src, imm)) } -inst_vfpclasssd_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2038) } -inst_vfpclasssd_k_m64_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 2038) } +inst_vfpclasssd_k_xmm_imm8 :: #force_inline proc "contextless" (dst: KREG, src: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSD, operand_count = 3, ops = {op_kreg(dst), op_xmm(src), op_imm8(imm), {}} }, 2050) } +inst_vfpclasssd_k_m64_imm8 :: #force_inline proc "contextless" (dst: KREG, src: Mem64, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VFPCLASSSD, operand_count = 3, ops = {op_kreg(dst), op_mem(src.mem, 8), op_imm8(imm), {}} }, 2050) } emit_vfpclasssd_k_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: XMM, imm: i8) { append(instructions, inst_vfpclasssd_k_xmm_imm8(dst, src, imm)) } emit_vfpclasssd_k_m64_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem64, imm: i8) { append(instructions, inst_vfpclasssd_k_m64_imm8(dst, src, imm)) } -inst_valignq_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2039) } -inst_valignq_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2039) } -inst_valignq_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2040) } -inst_valignq_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2040) } -inst_valignq_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2041) } -inst_valignq_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2041) } +inst_valignq_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2051) } +inst_valignq_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2051) } +inst_valignq_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2052) } +inst_valignq_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2052) } +inst_valignq_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2053) } +inst_valignq_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGNQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2053) } emit_valignq_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_valignq_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_valignq_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_valignq_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_valignq_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_valignq_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_valignq_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_valignq_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_valignq_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_valignq_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_valignq_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_valignq_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_valignd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2042) } -inst_valignd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2042) } -inst_valignd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2043) } -inst_valignd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2043) } -inst_valignd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2044) } -inst_valignd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2044) } +inst_valignd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2054) } +inst_valignd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2054) } +inst_valignd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2055) } +inst_valignd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2055) } +inst_valignd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2056) } +inst_valignd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VALIGND, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2056) } emit_valignd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_valignd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_valignd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_valignd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_valignd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_valignd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_valignd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_valignd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_valignd_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_valignd_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_valignd_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_valignd_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vdbpsadbw_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2045) } -inst_vdbpsadbw_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2045) } -inst_vdbpsadbw_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2046) } -inst_vdbpsadbw_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2046) } -inst_vdbpsadbw_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2047) } -inst_vdbpsadbw_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2047) } +inst_vdbpsadbw_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2057) } +inst_vdbpsadbw_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2057) } +inst_vdbpsadbw_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2058) } +inst_vdbpsadbw_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2058) } +inst_vdbpsadbw_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2059) } +inst_vdbpsadbw_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VDBPSADBW, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2059) } emit_vdbpsadbw_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vdbpsadbw_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vdbpsadbw_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vdbpsadbw_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vdbpsadbw_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vdbpsadbw_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vdbpsadbw_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vdbpsadbw_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vdbpsadbw_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vdbpsadbw_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vdbpsadbw_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vdbpsadbw_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpternlogd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2048) } -inst_vpternlogd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2048) } -inst_vpternlogd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2049) } -inst_vpternlogd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2049) } -inst_vpternlogd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2050) } -inst_vpternlogd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2050) } +inst_vpternlogd_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2060) } +inst_vpternlogd_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2060) } +inst_vpternlogd_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2061) } +inst_vpternlogd_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2061) } +inst_vpternlogd_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2062) } +inst_vpternlogd_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGD, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2062) } emit_vpternlogd_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpternlogd_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpternlogd_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpternlogd_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpternlogd_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpternlogd_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpternlogd_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpternlogd_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpternlogd_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpternlogd_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpternlogd_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpternlogd_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpternlogq_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2051) } -inst_vpternlogq_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2051) } -inst_vpternlogq_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2052) } -inst_vpternlogq_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2052) } -inst_vpternlogq_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2053) } -inst_vpternlogq_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2053) } +inst_vpternlogq_xmm_xmm_xmm_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), op_imm8(imm)} }, 2063) } +inst_vpternlogq_xmm_xmm_m128_imm8 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), op_imm8(imm)} }, 2063) } +inst_vpternlogq_ymm_ymm_ymm_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), op_imm8(imm)} }, 2064) } +inst_vpternlogq_ymm_ymm_m256_imm8 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), op_imm8(imm)} }, 2064) } +inst_vpternlogq_zmm_zmm_zmm_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), op_imm8(imm)} }, 2065) } +inst_vpternlogq_zmm_zmm_m512_imm8 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .VPTERNLOGQ, operand_count = 4, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), op_imm8(imm)} }, 2065) } emit_vpternlogq_xmm_xmm_xmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM, imm: i8) { append(instructions, inst_vpternlogq_xmm_xmm_xmm_imm8(dst, src, src2, imm)) } emit_vpternlogq_xmm_xmm_m128_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128, imm: i8) { append(instructions, inst_vpternlogq_xmm_xmm_m128_imm8(dst, src, src2, imm)) } emit_vpternlogq_ymm_ymm_ymm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM, imm: i8) { append(instructions, inst_vpternlogq_ymm_ymm_ymm_imm8(dst, src, src2, imm)) } emit_vpternlogq_ymm_ymm_m256_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256, imm: i8) { append(instructions, inst_vpternlogq_ymm_ymm_m256_imm8(dst, src, src2, imm)) } emit_vpternlogq_zmm_zmm_zmm_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM, imm: i8) { append(instructions, inst_vpternlogq_zmm_zmm_zmm_imm8(dst, src, src2, imm)) } emit_vpternlogq_zmm_zmm_m512_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512, imm: i8) { append(instructions, inst_vpternlogq_zmm_zmm_m512_imm8(dst, src, src2, imm)) } -inst_vpdpwssd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2054) } -inst_vpdpwssd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2054) } -inst_vpdpwssd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2055) } -inst_vpdpwssd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2055) } -inst_vpdpwssd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2056) } -inst_vpdpwssd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2056) } +inst_vpdpwssd_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2066) } +inst_vpdpwssd_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2066) } +inst_vpdpwssd_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2067) } +inst_vpdpwssd_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2067) } +inst_vpdpwssd_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2068) } +inst_vpdpwssd_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPDPWSSD, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2068) } emit_vpdpwssd_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpdpwssd_xmm_xmm_xmm(dst, src, src2)) } emit_vpdpwssd_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpdpwssd_xmm_xmm_m128(dst, src, src2)) } emit_vpdpwssd_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpdpwssd_ymm_ymm_ymm(dst, src, src2)) } emit_vpdpwssd_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpdpwssd_ymm_ymm_m256(dst, src, src2)) } emit_vpdpwssd_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpdpwssd_zmm_zmm_zmm(dst, src, src2)) } emit_vpdpwssd_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpdpwssd_zmm_zmm_m512(dst, src, src2)) } -inst_vpmultishiftqb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2057) } -inst_vpmultishiftqb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2057) } -inst_vpmultishiftqb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2058) } -inst_vpmultishiftqb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2058) } -inst_vpmultishiftqb_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2059) } -inst_vpmultishiftqb_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2059) } +inst_vpmultishiftqb_xmm_xmm_xmm :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: XMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_xmm(src2), {}} }, 2069) } +inst_vpmultishiftqb_xmm_xmm_m128 :: #force_inline proc "contextless" (dst: XMM, src: XMM, src2: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_xmm(dst), op_xmm(src), op_mem(src2.mem, 16), {}} }, 2069) } +inst_vpmultishiftqb_ymm_ymm_ymm :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: YMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_ymm(src2), {}} }, 2070) } +inst_vpmultishiftqb_ymm_ymm_m256 :: #force_inline proc "contextless" (dst: YMM, src: YMM, src2: Mem256) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_ymm(dst), op_ymm(src), op_mem(src2.mem, 32), {}} }, 2070) } +inst_vpmultishiftqb_zmm_zmm_zmm :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: ZMM) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_zmm(src2), {}} }, 2071) } +inst_vpmultishiftqb_zmm_zmm_m512 :: #force_inline proc "contextless" (dst: ZMM, src: ZMM, src2: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .VPMULTISHIFTQB, operand_count = 3, ops = {op_zmm(dst), op_zmm(src), op_mem(src2.mem, 64), {}} }, 2071) } emit_vpmultishiftqb_xmm_xmm_xmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: XMM) { append(instructions, inst_vpmultishiftqb_xmm_xmm_xmm(dst, src, src2)) } emit_vpmultishiftqb_xmm_xmm_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: XMM, src: XMM, src2: Mem128) { append(instructions, inst_vpmultishiftqb_xmm_xmm_m128(dst, src, src2)) } emit_vpmultishiftqb_ymm_ymm_ymm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: YMM) { append(instructions, inst_vpmultishiftqb_ymm_ymm_ymm(dst, src, src2)) } emit_vpmultishiftqb_ymm_ymm_m256 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: YMM, src: YMM, src2: Mem256) { append(instructions, inst_vpmultishiftqb_ymm_ymm_m256(dst, src, src2)) } emit_vpmultishiftqb_zmm_zmm_zmm :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: ZMM) { append(instructions, inst_vpmultishiftqb_zmm_zmm_zmm(dst, src, src2)) } emit_vpmultishiftqb_zmm_zmm_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ZMM, src: ZMM, src2: Mem512) { append(instructions, inst_vpmultishiftqb_zmm_zmm_m512(dst, src, src2)) } -inst_kaddw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2060) } +inst_kaddw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2072) } emit_kaddw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kaddw_k_k_k(dst, src, src2)) } -inst_kaddb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2061) } +inst_kaddb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2073) } emit_kaddb_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kaddb_k_k_k(dst, src, src2)) } -inst_kaddq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2062) } +inst_kaddq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2074) } emit_kaddq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kaddq_k_k_k(dst, src, src2)) } -inst_kaddd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2063) } +inst_kaddd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KADDD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2075) } emit_kaddd_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kaddd_k_k_k(dst, src, src2)) } -inst_kandw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2064) } +inst_kandw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2076) } emit_kandw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandw_k_k_k(dst, src, src2)) } -inst_kandb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2065) } +inst_kandb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2077) } emit_kandb_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandb_k_k_k(dst, src, src2)) } -inst_kandq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2066) } +inst_kandq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2078) } emit_kandq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandq_k_k_k(dst, src, src2)) } -inst_kandd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2067) } +inst_kandd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2079) } emit_kandd_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandd_k_k_k(dst, src, src2)) } -inst_kandnw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDNW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2068) } +inst_kandnw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDNW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2080) } emit_kandnw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandnw_k_k_k(dst, src, src2)) } -inst_kandnb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDNB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2069) } +inst_kandnb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDNB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2081) } emit_kandnb_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandnb_k_k_k(dst, src, src2)) } -inst_kandnq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDNQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2070) } +inst_kandnq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDNQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2082) } emit_kandnq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandnq_k_k_k(dst, src, src2)) } -inst_kandnd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDND, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2071) } +inst_kandnd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KANDND, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2083) } emit_kandnd_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kandnd_k_k_k(dst, src, src2)) } -inst_kmovw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2072) } -inst_kmovw_k_m16 :: #force_inline proc "contextless" (dst: KREG, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 2), {}, {}} }, 2072) } -inst_kmovw_m16_k :: #force_inline proc "contextless" (dst: Mem16, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_mem(dst.mem, 2), op_kreg(src), {}, {}} }, 2073) } -inst_kmovw_k_r32 :: #force_inline proc "contextless" (dst: KREG, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_kreg(dst), op_gpr32(src), {}, {}} }, 2074) } -inst_kmovw_r32_k :: #force_inline proc "contextless" (dst: GPR32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_gpr32(dst), op_kreg(src), {}, {}} }, 2075) } +inst_kmovw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2084) } +inst_kmovw_k_m16 :: #force_inline proc "contextless" (dst: KREG, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 2), {}, {}} }, 2084) } +inst_kmovw_m16_k :: #force_inline proc "contextless" (dst: Mem16, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_mem(dst.mem, 2), op_kreg(src), {}, {}} }, 2085) } +inst_kmovw_k_r32 :: #force_inline proc "contextless" (dst: KREG, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_kreg(dst), op_gpr32(src), {}, {}} }, 2086) } +inst_kmovw_r32_k :: #force_inline proc "contextless" (dst: GPR32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVW, operand_count = 2, ops = {op_gpr32(dst), op_kreg(src), {}, {}} }, 2087) } emit_kmovw_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kmovw_k_k(dst, src)) } emit_kmovw_k_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem16) { append(instructions, inst_kmovw_k_m16(dst, src)) } emit_kmovw_m16_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: KREG) { append(instructions, inst_kmovw_m16_k(dst, src)) } emit_kmovw_k_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: GPR32) { append(instructions, inst_kmovw_k_r32(dst, src)) } emit_kmovw_r32_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: KREG) { append(instructions, inst_kmovw_r32_k(dst, src)) } -inst_kmovb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2076) } -inst_kmovb_k_m8 :: #force_inline proc "contextless" (dst: KREG, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 1), {}, {}} }, 2076) } -inst_kmovb_m8_k :: #force_inline proc "contextless" (dst: Mem8, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_mem(dst.mem, 1), op_kreg(src), {}, {}} }, 2077) } -inst_kmovb_k_r32 :: #force_inline proc "contextless" (dst: KREG, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_kreg(dst), op_gpr32(src), {}, {}} }, 2078) } -inst_kmovb_r32_k :: #force_inline proc "contextless" (dst: GPR32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_gpr32(dst), op_kreg(src), {}, {}} }, 2079) } +inst_kmovb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2088) } +inst_kmovb_k_m8 :: #force_inline proc "contextless" (dst: KREG, src: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 1), {}, {}} }, 2088) } +inst_kmovb_m8_k :: #force_inline proc "contextless" (dst: Mem8, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_mem(dst.mem, 1), op_kreg(src), {}, {}} }, 2089) } +inst_kmovb_k_r32 :: #force_inline proc "contextless" (dst: KREG, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_kreg(dst), op_gpr32(src), {}, {}} }, 2090) } +inst_kmovb_r32_k :: #force_inline proc "contextless" (dst: GPR32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVB, operand_count = 2, ops = {op_gpr32(dst), op_kreg(src), {}, {}} }, 2091) } emit_kmovb_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kmovb_k_k(dst, src)) } emit_kmovb_k_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem8) { append(instructions, inst_kmovb_k_m8(dst, src)) } emit_kmovb_m8_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8, src: KREG) { append(instructions, inst_kmovb_m8_k(dst, src)) } emit_kmovb_k_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: GPR32) { append(instructions, inst_kmovb_k_r32(dst, src)) } emit_kmovb_r32_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: KREG) { append(instructions, inst_kmovb_r32_k(dst, src)) } -inst_kmovq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2080) } -inst_kmovq_k_m64 :: #force_inline proc "contextless" (dst: KREG, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 8), {}, {}} }, 2080) } -inst_kmovq_m64_k :: #force_inline proc "contextless" (dst: Mem64, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_kreg(src), {}, {}} }, 2081) } -inst_kmovq_k_r64 :: #force_inline proc "contextless" (dst: KREG, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_kreg(dst), op_gpr64(src), {}, {}} }, 2082) } -inst_kmovq_r64_k :: #force_inline proc "contextless" (dst: GPR64, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_gpr64(dst), op_kreg(src), {}, {}} }, 2083) } +inst_kmovq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2092) } +inst_kmovq_k_m64 :: #force_inline proc "contextless" (dst: KREG, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 8), {}, {}} }, 2092) } +inst_kmovq_m64_k :: #force_inline proc "contextless" (dst: Mem64, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_kreg(src), {}, {}} }, 2093) } +inst_kmovq_k_r64 :: #force_inline proc "contextless" (dst: KREG, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_kreg(dst), op_gpr64(src), {}, {}} }, 2094) } +inst_kmovq_r64_k :: #force_inline proc "contextless" (dst: GPR64, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVQ, operand_count = 2, ops = {op_gpr64(dst), op_kreg(src), {}, {}} }, 2095) } emit_kmovq_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kmovq_k_k(dst, src)) } emit_kmovq_k_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem64) { append(instructions, inst_kmovq_k_m64(dst, src)) } emit_kmovq_m64_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: KREG) { append(instructions, inst_kmovq_m64_k(dst, src)) } emit_kmovq_k_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: GPR64) { append(instructions, inst_kmovq_k_r64(dst, src)) } emit_kmovq_r64_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: KREG) { append(instructions, inst_kmovq_r64_k(dst, src)) } -inst_kmovd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2084) } -inst_kmovd_k_m32 :: #force_inline proc "contextless" (dst: KREG, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 4), {}, {}} }, 2084) } -inst_kmovd_m32_k :: #force_inline proc "contextless" (dst: Mem32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_kreg(src), {}, {}} }, 2085) } -inst_kmovd_k_r32 :: #force_inline proc "contextless" (dst: KREG, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_kreg(dst), op_gpr32(src), {}, {}} }, 2086) } -inst_kmovd_r32_k :: #force_inline proc "contextless" (dst: GPR32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_gpr32(dst), op_kreg(src), {}, {}} }, 2087) } +inst_kmovd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2096) } +inst_kmovd_k_m32 :: #force_inline proc "contextless" (dst: KREG, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_kreg(dst), op_mem(src.mem, 4), {}, {}} }, 2096) } +inst_kmovd_m32_k :: #force_inline proc "contextless" (dst: Mem32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_kreg(src), {}, {}} }, 2097) } +inst_kmovd_k_r32 :: #force_inline proc "contextless" (dst: KREG, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_kreg(dst), op_gpr32(src), {}, {}} }, 2098) } +inst_kmovd_r32_k :: #force_inline proc "contextless" (dst: GPR32, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KMOVD, operand_count = 2, ops = {op_gpr32(dst), op_kreg(src), {}, {}} }, 2099) } emit_kmovd_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kmovd_k_k(dst, src)) } emit_kmovd_k_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: Mem32) { append(instructions, inst_kmovd_k_m32(dst, src)) } emit_kmovd_m32_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: KREG) { append(instructions, inst_kmovd_m32_k(dst, src)) } emit_kmovd_k_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: GPR32) { append(instructions, inst_kmovd_k_r32(dst, src)) } emit_kmovd_r32_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: KREG) { append(instructions, inst_kmovd_r32_k(dst, src)) } -inst_knotw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2088) } +inst_knotw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2100) } emit_knotw_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_knotw_k_k(dst, src)) } -inst_knotb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2089) } +inst_knotb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2101) } emit_knotb_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_knotb_k_k(dst, src)) } -inst_knotq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2090) } +inst_knotq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2102) } emit_knotq_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_knotq_k_k(dst, src)) } -inst_knotd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2091) } +inst_knotd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KNOTD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2103) } emit_knotd_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_knotd_k_k(dst, src)) } -inst_korw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2092) } +inst_korw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2104) } emit_korw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_korw_k_k_k(dst, src, src2)) } -inst_korb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2093) } +inst_korb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2105) } emit_korb_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_korb_k_k_k(dst, src, src2)) } -inst_korq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2094) } +inst_korq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2106) } emit_korq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_korq_k_k_k(dst, src, src2)) } -inst_kord_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2095) } +inst_kord_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2107) } emit_kord_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kord_k_k_k(dst, src, src2)) } -inst_kortestw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2096) } +inst_kortestw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2108) } emit_kortestw_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kortestw_k_k(dst, src)) } -inst_kortestb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2097) } +inst_kortestb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2109) } emit_kortestb_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kortestb_k_k(dst, src)) } -inst_kortestq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2098) } +inst_kortestq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2110) } emit_kortestq_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kortestq_k_k(dst, src)) } -inst_kortestd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2099) } +inst_kortestd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KORTESTD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2111) } emit_kortestd_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_kortestd_k_k(dst, src)) } -inst_kshiftlw_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2100) } +inst_kshiftlw_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2112) } emit_kshiftlw_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftlw_k_k_imm8(dst, src, imm)) } -inst_kshiftlb_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2101) } +inst_kshiftlb_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2113) } emit_kshiftlb_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftlb_k_k_imm8(dst, src, imm)) } -inst_kshiftlq_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2102) } +inst_kshiftlq_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2114) } emit_kshiftlq_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftlq_k_k_imm8(dst, src, imm)) } -inst_kshiftld_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2103) } +inst_kshiftld_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTLD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2115) } emit_kshiftld_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftld_k_k_imm8(dst, src, imm)) } -inst_kshiftrw_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2104) } +inst_kshiftrw_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2116) } emit_kshiftrw_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftrw_k_k_imm8(dst, src, imm)) } -inst_kshiftrb_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2105) } +inst_kshiftrb_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2117) } emit_kshiftrb_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftrb_k_k_imm8(dst, src, imm)) } -inst_kshiftrq_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2106) } +inst_kshiftrq_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2118) } emit_kshiftrq_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftrq_k_k_imm8(dst, src, imm)) } -inst_kshiftrd_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2107) } +inst_kshiftrd_k_k_imm8 :: #force_inline proc "contextless" (dst: KREG, src: KREG, imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .KSHIFTRD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_imm8(imm), {}} }, 2119) } emit_kshiftrd_k_k_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, imm: i8) { append(instructions, inst_kshiftrd_k_k_imm8(dst, src, imm)) } -inst_ktestw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2108) } +inst_ktestw_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTW, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2120) } emit_ktestw_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_ktestw_k_k(dst, src)) } -inst_ktestb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2109) } +inst_ktestb_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTB, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2121) } emit_ktestb_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_ktestb_k_k(dst, src)) } -inst_ktestq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2110) } +inst_ktestq_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTQ, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2122) } emit_ktestq_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_ktestq_k_k(dst, src)) } -inst_ktestd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2111) } +inst_ktestd_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KTESTD, operand_count = 2, ops = {op_kreg(dst), op_kreg(src), {}, {}} }, 2123) } emit_ktestd_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG) { append(instructions, inst_ktestd_k_k(dst, src)) } -inst_kunpckbw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KUNPCKBW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2112) } +inst_kunpckbw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KUNPCKBW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2124) } emit_kunpckbw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kunpckbw_k_k_k(dst, src, src2)) } -inst_kunpckwd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KUNPCKWD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2113) } +inst_kunpckwd_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KUNPCKWD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2125) } emit_kunpckwd_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kunpckwd_k_k_k(dst, src, src2)) } -inst_kunpckdq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KUNPCKDQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2114) } +inst_kunpckdq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KUNPCKDQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2126) } emit_kunpckdq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kunpckdq_k_k_k(dst, src, src2)) } -inst_kxnorw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2115) } +inst_kxnorw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2127) } emit_kxnorw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxnorw_k_k_k(dst, src, src2)) } -inst_kxnorb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2116) } +inst_kxnorb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2128) } emit_kxnorb_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxnorb_k_k_k(dst, src, src2)) } -inst_kxnorq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2117) } +inst_kxnorq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2129) } emit_kxnorq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxnorq_k_k_k(dst, src, src2)) } -inst_kxnord_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2118) } +inst_kxnord_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXNORD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2130) } emit_kxnord_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxnord_k_k_k(dst, src, src2)) } -inst_kxorw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2119) } +inst_kxorw_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORW, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2131) } emit_kxorw_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxorw_k_k_k(dst, src, src2)) } -inst_kxorb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2120) } +inst_kxorb_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORB, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2132) } emit_kxorb_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxorb_k_k_k(dst, src, src2)) } -inst_kxorq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2121) } +inst_kxorq_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORQ, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2133) } emit_kxorq_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxorq_k_k_k(dst, src, src2)) } -inst_kxord_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2122) } +inst_kxord_k_k_k :: #force_inline proc "contextless" (dst: KREG, src: KREG, src2: KREG) -> Instruction { return with_hint(Instruction{ mnemonic = .KXORD, operand_count = 3, ops = {op_kreg(dst), op_kreg(src), op_kreg(src2), {}} }, 2134) } emit_kxord_k_k_k :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: KREG, src: KREG, src2: KREG) { append(instructions, inst_kxord_k_k_k(dst, src, src2)) } -inst_fadd_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FADD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2123) } -inst_fadd_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FADD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2124) } -inst_fadd_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FADD, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2125) } +inst_fadd_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FADD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2135) } +inst_fadd_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FADD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2136) } +inst_fadd_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FADD, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2137) } emit_fadd_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fadd_m32(dst)) } emit_fadd_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fadd_m64(dst)) } emit_fadd_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fadd_st(dst)) } -inst_faddp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FADDP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2127) } -inst_faddp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FADDP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2128) } +inst_faddp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FADDP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2139) } +inst_faddp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FADDP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2140) } emit_faddp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_faddp_st(dst)) } emit_faddp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_faddp_none()) } -inst_fiadd_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIADD, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2129) } -inst_fiadd_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIADD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2130) } +inst_fiadd_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIADD, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2141) } +inst_fiadd_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIADD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2142) } emit_fiadd_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fiadd_m16(dst)) } emit_fiadd_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fiadd_m32(dst)) } -inst_fsub_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUB, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2131) } -inst_fsub_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUB, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2132) } -inst_fsub_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUB, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2133) } +inst_fsub_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUB, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2143) } +inst_fsub_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUB, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2144) } +inst_fsub_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUB, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2145) } emit_fsub_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fsub_m32(dst)) } emit_fsub_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fsub_m64(dst)) } emit_fsub_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fsub_st(dst)) } -inst_fsubp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2135) } -inst_fsubp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2136) } +inst_fsubp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2147) } +inst_fsubp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2148) } emit_fsubp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fsubp_st(dst)) } emit_fsubp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fsubp_none()) } -inst_fisub_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUB, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2137) } -inst_fisub_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUB, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2138) } +inst_fisub_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUB, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2149) } +inst_fisub_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUB, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2150) } emit_fisub_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fisub_m16(dst)) } emit_fisub_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fisub_m32(dst)) } -inst_fsubr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2139) } -inst_fsubr_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2140) } -inst_fsubr_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBR, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2141) } +inst_fsubr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2151) } +inst_fsubr_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2152) } +inst_fsubr_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBR, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2153) } emit_fsubr_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fsubr_m32(dst)) } emit_fsubr_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fsubr_m64(dst)) } emit_fsubr_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fsubr_st(dst)) } -inst_fsubrp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBRP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2143) } -inst_fsubrp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBRP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2144) } +inst_fsubrp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBRP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2155) } +inst_fsubrp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSUBRP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2156) } emit_fsubrp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fsubrp_st(dst)) } emit_fsubrp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fsubrp_none()) } -inst_fisubr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUBR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2145) } -inst_fisubr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUBR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2146) } +inst_fisubr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUBR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2157) } +inst_fisubr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISUBR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2158) } emit_fisubr_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fisubr_m16(dst)) } emit_fisubr_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fisubr_m32(dst)) } -inst_fmul_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FMUL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2147) } -inst_fmul_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FMUL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2148) } -inst_fmul_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FMUL, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2149) } +inst_fmul_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FMUL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2159) } +inst_fmul_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FMUL, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2160) } +inst_fmul_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FMUL, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2161) } emit_fmul_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fmul_m32(dst)) } emit_fmul_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fmul_m64(dst)) } emit_fmul_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fmul_st(dst)) } -inst_fmulp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FMULP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2151) } -inst_fmulp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FMULP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2152) } +inst_fmulp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FMULP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2163) } +inst_fmulp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FMULP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2164) } emit_fmulp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fmulp_st(dst)) } emit_fmulp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fmulp_none()) } -inst_fimul_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIMUL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2153) } -inst_fimul_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIMUL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2154) } +inst_fimul_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIMUL, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2165) } +inst_fimul_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIMUL, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2166) } emit_fimul_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fimul_m16(dst)) } emit_fimul_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fimul_m32(dst)) } -inst_fdiv_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIV, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2155) } -inst_fdiv_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIV, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2156) } -inst_fdiv_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIV, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2157) } +inst_fdiv_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIV, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2167) } +inst_fdiv_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIV, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2168) } +inst_fdiv_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIV, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2169) } emit_fdiv_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fdiv_m32(dst)) } emit_fdiv_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fdiv_m64(dst)) } emit_fdiv_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fdiv_st(dst)) } -inst_fdivp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2159) } -inst_fdivp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2160) } +inst_fdivp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2171) } +inst_fdivp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2172) } emit_fdivp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fdivp_st(dst)) } emit_fdivp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fdivp_none()) } -inst_fidiv_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIV, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2161) } -inst_fidiv_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIV, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2162) } +inst_fidiv_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIV, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2173) } +inst_fidiv_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIV, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2174) } emit_fidiv_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fidiv_m16(dst)) } emit_fidiv_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fidiv_m32(dst)) } -inst_fdivr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2163) } -inst_fdivr_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2164) } -inst_fdivr_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVR, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2165) } +inst_fdivr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2175) } +inst_fdivr_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2176) } +inst_fdivr_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVR, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2177) } emit_fdivr_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fdivr_m32(dst)) } emit_fdivr_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fdivr_m64(dst)) } emit_fdivr_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fdivr_st(dst)) } -inst_fdivrp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVRP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2167) } -inst_fdivrp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVRP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2168) } +inst_fdivrp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVRP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2179) } +inst_fdivrp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FDIVRP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2180) } emit_fdivrp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fdivrp_st(dst)) } emit_fdivrp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fdivrp_none()) } -inst_fidivr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIVR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2169) } -inst_fidivr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIVR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2170) } +inst_fidivr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIVR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2181) } +inst_fidivr_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIDIVR, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2182) } emit_fidivr_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fidivr_m16(dst)) } emit_fidivr_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fidivr_m32(dst)) } -inst_fsqrt_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSQRT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2171) } +inst_fsqrt_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSQRT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2183) } emit_fsqrt_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fsqrt_none()) } -inst_fabs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FABS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2172) } +inst_fabs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FABS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2184) } emit_fabs_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fabs_none()) } -inst_fchs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCHS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2173) } +inst_fchs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCHS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2185) } emit_fchs_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fchs_none()) } -inst_fprem_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPREM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2174) } +inst_fprem_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPREM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2186) } emit_fprem_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fprem_none()) } -inst_fprem1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPREM1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2175) } +inst_fprem1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPREM1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2187) } emit_fprem1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fprem1_none()) } -inst_frndint_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FRNDINT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2176) } +inst_frndint_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FRNDINT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2188) } emit_frndint_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_frndint_none()) } -inst_fscale_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSCALE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2177) } +inst_fscale_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSCALE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2189) } emit_fscale_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fscale_none()) } -inst_fxtract_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FXTRACT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2178) } +inst_fxtract_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FXTRACT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2190) } emit_fxtract_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fxtract_none()) } -inst_fxam_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FXAM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2179) } +inst_fxam_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FXAM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2191) } emit_fxam_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fxam_none()) } -inst_fld_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2180) } -inst_fld_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2181) } -inst_fld_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2182) } -inst_fld_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2183) } +inst_fld_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2192) } +inst_fld_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2193) } +inst_fld_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2194) } +inst_fld_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FLD, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2195) } emit_fld_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fld_m32(dst)) } emit_fld_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fld_m64(dst)) } emit_fld_m80 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem80) { append(instructions, inst_fld_m80(dst)) } emit_fld_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fld_st(dst)) } -inst_fild_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FILD, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2184) } -inst_fild_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FILD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2185) } -inst_fild_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FILD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2186) } +inst_fild_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FILD, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2196) } +inst_fild_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FILD, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2197) } +inst_fild_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FILD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2198) } emit_fild_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fild_m16(dst)) } emit_fild_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fild_m32(dst)) } emit_fild_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fild_m64(dst)) } -inst_fbld_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FBLD, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2187) } +inst_fbld_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FBLD, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2199) } emit_fbld_m80 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem80) { append(instructions, inst_fbld_m80(dst)) } -inst_fst_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FST, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2188) } -inst_fst_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FST, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2189) } -inst_fst_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FST, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2190) } +inst_fst_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FST, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2200) } +inst_fst_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FST, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2201) } +inst_fst_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FST, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2202) } emit_fst_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fst_m32(dst)) } emit_fst_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fst_m64(dst)) } emit_fst_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fst_st(dst)) } -inst_fstp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2191) } -inst_fstp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2192) } -inst_fstp_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2193) } -inst_fstp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2194) } +inst_fstp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2203) } +inst_fstp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2204) } +inst_fstp_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2205) } +inst_fstp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2206) } emit_fstp_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fstp_m32(dst)) } emit_fstp_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fstp_m64(dst)) } emit_fstp_m80 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem80) { append(instructions, inst_fstp_m80(dst)) } emit_fstp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fstp_st(dst)) } -inst_fist_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIST, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2195) } -inst_fist_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIST, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2196) } +inst_fist_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FIST, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2207) } +inst_fist_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FIST, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2208) } emit_fist_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fist_m16(dst)) } emit_fist_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fist_m32(dst)) } -inst_fistp_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2197) } -inst_fistp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2198) } -inst_fistp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2199) } +inst_fistp_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2209) } +inst_fistp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2210) } +inst_fistp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2211) } emit_fistp_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fistp_m16(dst)) } emit_fistp_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fistp_m32(dst)) } emit_fistp_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fistp_m64(dst)) } -inst_fisttp_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTTP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2200) } -inst_fisttp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTTP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2201) } -inst_fisttp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTTP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2202) } +inst_fisttp_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTTP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2212) } +inst_fisttp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTTP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2213) } +inst_fisttp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FISTTP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2214) } emit_fisttp_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fisttp_m16(dst)) } emit_fisttp_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fisttp_m32(dst)) } emit_fisttp_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fisttp_m64(dst)) } -inst_fbstp_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FBSTP, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2203) } +inst_fbstp_m80 :: #force_inline proc "contextless" (dst: Mem80) -> Instruction { return with_hint(Instruction{ mnemonic = .FBSTP, operand_count = 1, ops = {op_mem(dst.mem, 10), {}, {}, {}} }, 2215) } emit_fbstp_m80 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem80) { append(instructions, inst_fbstp_m80(dst)) } -inst_fxch_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FXCH, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2204) } -inst_fxch_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FXCH, operand_count = 0, ops = {{}, {}, {}, {}} }, 2205) } +inst_fxch_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FXCH, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2216) } +inst_fxch_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FXCH, operand_count = 0, ops = {{}, {}, {}, {}} }, 2217) } emit_fxch_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fxch_st(dst)) } emit_fxch_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fxch_none()) } -inst_fcmovb_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVB, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2206) } +inst_fcmovb_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVB, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2218) } emit_fcmovb_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovb_st(dst)) } -inst_fcmove_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2207) } +inst_fcmove_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2219) } emit_fcmove_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmove_st(dst)) } -inst_fcmovbe_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVBE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2208) } +inst_fcmovbe_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVBE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2220) } emit_fcmovbe_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovbe_st(dst)) } -inst_fcmovu_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVU, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2209) } +inst_fcmovu_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVU, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2221) } emit_fcmovu_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovu_st(dst)) } -inst_fcmovnb_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNB, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2210) } +inst_fcmovnb_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNB, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2222) } emit_fcmovnb_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovnb_st(dst)) } -inst_fcmovne_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2211) } +inst_fcmovne_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2223) } emit_fcmovne_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovne_st(dst)) } -inst_fcmovnbe_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNBE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2212) } +inst_fcmovnbe_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNBE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2224) } emit_fcmovnbe_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovnbe_st(dst)) } -inst_fcmovnu_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNU, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2213) } +inst_fcmovnu_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCMOVNU, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2225) } emit_fcmovnu_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcmovnu_st(dst)) } -inst_fcom_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2214) } -inst_fcom_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2215) } -inst_fcom_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2216) } -inst_fcom_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2217) } +inst_fcom_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2226) } +inst_fcom_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2227) } +inst_fcom_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2228) } +inst_fcom_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2229) } emit_fcom_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fcom_m32(dst)) } emit_fcom_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fcom_m64(dst)) } emit_fcom_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcom_st(dst)) } emit_fcom_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fcom_none()) } -inst_fcomp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2218) } -inst_fcomp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2219) } -inst_fcomp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2220) } -inst_fcomp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2221) } +inst_fcomp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2230) } +inst_fcomp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2231) } +inst_fcomp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2232) } +inst_fcomp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2233) } emit_fcomp_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_fcomp_m32(dst)) } emit_fcomp_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_fcomp_m64(dst)) } emit_fcomp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcomp_st(dst)) } emit_fcomp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fcomp_none()) } -inst_fcompp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMPP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2222) } +inst_fcompp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMPP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2234) } emit_fcompp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fcompp_none()) } -inst_ficom_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOM, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2223) } -inst_ficom_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOM, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2224) } +inst_ficom_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOM, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2235) } +inst_ficom_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOM, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2236) } emit_ficom_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_ficom_m16(dst)) } emit_ficom_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_ficom_m32(dst)) } -inst_ficomp_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOMP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2225) } -inst_ficomp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOMP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2226) } +inst_ficomp_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOMP, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2237) } +inst_ficomp_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .FICOMP, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2238) } emit_ficomp_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_ficomp_m16(dst)) } emit_ficomp_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_ficomp_m32(dst)) } -inst_fcomi_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMI, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2227) } +inst_fcomi_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMI, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2239) } emit_fcomi_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcomi_st(dst)) } -inst_fcomip_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMIP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2228) } +inst_fcomip_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FCOMIP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2240) } emit_fcomip_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fcomip_st(dst)) } -inst_fucomi_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMI, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2229) } +inst_fucomi_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMI, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2241) } emit_fucomi_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fucomi_st(dst)) } -inst_fucomip_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMIP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2230) } +inst_fucomip_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMIP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2242) } emit_fucomip_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fucomip_st(dst)) } -inst_fucom_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOM, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2231) } -inst_fucom_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2232) } +inst_fucom_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOM, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2243) } +inst_fucom_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2244) } emit_fucom_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fucom_st(dst)) } emit_fucom_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fucom_none()) } -inst_fucomp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2233) } -inst_fucomp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2234) } +inst_fucomp_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2245) } +inst_fucomp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2246) } emit_fucomp_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_fucomp_st(dst)) } emit_fucomp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fucomp_none()) } -inst_fucompp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMPP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2235) } +inst_fucompp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FUCOMPP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2247) } emit_fucompp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fucompp_none()) } -inst_ftst_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FTST, operand_count = 0, ops = {{}, {}, {}, {}} }, 2236) } +inst_ftst_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FTST, operand_count = 0, ops = {{}, {}, {}, {}} }, 2248) } emit_ftst_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_ftst_none()) } -inst_fldz_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDZ, operand_count = 0, ops = {{}, {}, {}, {}} }, 2237) } +inst_fldz_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDZ, operand_count = 0, ops = {{}, {}, {}, {}} }, 2249) } emit_fldz_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fldz_none()) } -inst_fld1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLD1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2238) } +inst_fld1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLD1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2250) } emit_fld1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fld1_none()) } -inst_fldpi_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDPI, operand_count = 0, ops = {{}, {}, {}, {}} }, 2239) } +inst_fldpi_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDPI, operand_count = 0, ops = {{}, {}, {}, {}} }, 2251) } emit_fldpi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fldpi_none()) } -inst_fldl2t_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDL2T, operand_count = 0, ops = {{}, {}, {}, {}} }, 2240) } +inst_fldl2t_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDL2T, operand_count = 0, ops = {{}, {}, {}, {}} }, 2252) } emit_fldl2t_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fldl2t_none()) } -inst_fldl2e_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDL2E, operand_count = 0, ops = {{}, {}, {}, {}} }, 2241) } +inst_fldl2e_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDL2E, operand_count = 0, ops = {{}, {}, {}, {}} }, 2253) } emit_fldl2e_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fldl2e_none()) } -inst_fldlg2_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDLG2, operand_count = 0, ops = {{}, {}, {}, {}} }, 2242) } +inst_fldlg2_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDLG2, operand_count = 0, ops = {{}, {}, {}, {}} }, 2254) } emit_fldlg2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fldlg2_none()) } -inst_fldln2_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDLN2, operand_count = 0, ops = {{}, {}, {}, {}} }, 2243) } +inst_fldln2_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FLDLN2, operand_count = 0, ops = {{}, {}, {}, {}} }, 2255) } emit_fldln2_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fldln2_none()) } -inst_fsin_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSIN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2244) } +inst_fsin_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSIN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2256) } emit_fsin_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fsin_none()) } -inst_fcos_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2245) } +inst_fcos_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCOS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2257) } emit_fcos_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fcos_none()) } -inst_fsincos_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSINCOS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2246) } +inst_fsincos_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FSINCOS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2258) } emit_fsincos_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fsincos_none()) } -inst_fptan_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPTAN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2247) } +inst_fptan_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPTAN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2259) } emit_fptan_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fptan_none()) } -inst_fpatan_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPATAN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2248) } +inst_fpatan_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FPATAN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2260) } emit_fpatan_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fpatan_none()) } -inst_f2xm1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .F2XM1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2249) } +inst_f2xm1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .F2XM1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2261) } emit_f2xm1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_f2xm1_none()) } -inst_fyl2x_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FYL2X, operand_count = 0, ops = {{}, {}, {}, {}} }, 2250) } +inst_fyl2x_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FYL2X, operand_count = 0, ops = {{}, {}, {}, {}} }, 2262) } emit_fyl2x_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fyl2x_none()) } -inst_fyl2xp1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FYL2XP1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2251) } +inst_fyl2xp1_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FYL2XP1, operand_count = 0, ops = {{}, {}, {}, {}} }, 2263) } emit_fyl2xp1_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fyl2xp1_none()) } -inst_finit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FINIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2252) } +inst_finit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FINIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2264) } emit_finit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_finit_none()) } -inst_fninit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FNINIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2253) } +inst_fninit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FNINIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2265) } emit_fninit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fninit_none()) } -inst_fincstp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FINCSTP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2254) } +inst_fincstp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FINCSTP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2266) } emit_fincstp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fincstp_none()) } -inst_fdecstp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FDECSTP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2255) } +inst_fdecstp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FDECSTP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2267) } emit_fdecstp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fdecstp_none()) } -inst_ffree_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FFREE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2256) } +inst_ffree_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FFREE, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2268) } emit_ffree_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_ffree_st(dst)) } -inst_ffreep_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FFREEP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2257) } +inst_ffreep_st :: #force_inline proc "contextless" (dst: ST) -> Instruction { return with_hint(Instruction{ mnemonic = .FFREEP, operand_count = 1, ops = {op_st(dst), {}, {}, {}} }, 2269) } emit_ffreep_st :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: ST) { append(instructions, inst_ffreep_st(dst)) } -inst_fnop_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FNOP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2258) } +inst_fnop_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FNOP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2270) } emit_fnop_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fnop_none()) } -inst_fwait_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FWAIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2259) } +inst_fwait_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FWAIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2271) } emit_fwait_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fwait_none()) } -inst_fclex_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCLEX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2260) } +inst_fclex_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FCLEX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2272) } emit_fclex_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fclex_none()) } -inst_fnclex_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FNCLEX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2261) } +inst_fnclex_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .FNCLEX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2273) } emit_fnclex_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_fnclex_none()) } -inst_fstcw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTCW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2262) } +inst_fstcw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTCW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2274) } emit_fstcw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fstcw_m16(dst)) } -inst_fnstcw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSTCW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2263) } +inst_fnstcw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSTCW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2275) } emit_fnstcw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fnstcw_m16(dst)) } -inst_fldcw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FLDCW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2264) } +inst_fldcw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FLDCW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2276) } emit_fldcw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fldcw_m16(dst)) } -inst_fstenv_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTENV, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2265) } +inst_fstenv_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTENV, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2277) } emit_fstenv_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_fstenv_m(dst)) } -inst_fnstenv_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSTENV, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2266) } +inst_fnstenv_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSTENV, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2278) } emit_fnstenv_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_fnstenv_m(dst)) } -inst_fldenv_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FLDENV, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2267) } +inst_fldenv_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FLDENV, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2279) } emit_fldenv_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_fldenv_m(dst)) } -inst_fsave_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FSAVE, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2268) } +inst_fsave_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FSAVE, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2280) } emit_fsave_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_fsave_m(dst)) } -inst_fnsave_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSAVE, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2269) } +inst_fnsave_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSAVE, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2281) } emit_fnsave_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_fnsave_m(dst)) } -inst_frstor_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FRSTOR, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2270) } +inst_frstor_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .FRSTOR, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2282) } emit_frstor_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_frstor_m(dst)) } -inst_fstsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2271) } +inst_fstsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FSTSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2283) } emit_fstsw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fstsw_m16(dst)) } -inst_fnstsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSTSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2273) } +inst_fnstsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .FNSTSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2285) } emit_fnstsw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_fnstsw_m16(dst)) } -inst_fxsave_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXSAVE, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2275) } +inst_fxsave_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXSAVE, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2287) } emit_fxsave_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512) { append(instructions, inst_fxsave_m512(dst)) } -inst_fxsave64_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXSAVE64, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2276) } +inst_fxsave64_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXSAVE64, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2288) } emit_fxsave64_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512) { append(instructions, inst_fxsave64_m512(dst)) } -inst_fxrstor_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXRSTOR, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2277) } +inst_fxrstor_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXRSTOR, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2289) } emit_fxrstor_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512) { append(instructions, inst_fxrstor_m512(dst)) } -inst_fxrstor64_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXRSTOR64, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2278) } +inst_fxrstor64_m512 :: #force_inline proc "contextless" (dst: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .FXRSTOR64, operand_count = 1, ops = {op_mem(dst.mem, 64), {}, {}, {}} }, 2290) } emit_fxrstor64_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem512) { append(instructions, inst_fxrstor64_m512(dst)) } -inst_lgdt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .LGDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2279) } +inst_lgdt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .LGDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2291) } emit_lgdt_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_lgdt_m(dst)) } -inst_sgdt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .SGDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2281) } +inst_sgdt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .SGDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2293) } emit_sgdt_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_sgdt_m(dst)) } -inst_lidt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .LIDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2283) } +inst_lidt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .LIDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2295) } emit_lidt_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_lidt_m(dst)) } -inst_sidt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .SIDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2285) } +inst_sidt_m :: #force_inline proc "contextless" (dst: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .SIDT, operand_count = 1, ops = {op_mem(dst, 0), {}, {}, {}} }, 2297) } emit_sidt_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Memory) { append(instructions, inst_sidt_m(dst)) } -inst_lldt_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LLDT, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2287) } -inst_lldt_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LLDT, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2287) } +inst_lldt_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LLDT, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2299) } +inst_lldt_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LLDT, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2299) } emit_lldt_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_lldt_r16(dst)) } emit_lldt_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_lldt_m16(dst)) } -inst_sldt_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2288) } -inst_sldt_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2288) } -inst_sldt_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2289) } -inst_sldt_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2290) } +inst_sldt_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2300) } +inst_sldt_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2300) } +inst_sldt_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2301) } +inst_sldt_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SLDT, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2302) } emit_sldt_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_sldt_r16(dst)) } emit_sldt_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_sldt_m16(dst)) } emit_sldt_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_sldt_r32(dst)) } emit_sldt_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_sldt_r64(dst)) } -inst_ltr_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LTR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2291) } -inst_ltr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LTR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2291) } +inst_ltr_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LTR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2303) } +inst_ltr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LTR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2303) } emit_ltr_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_ltr_r16(dst)) } emit_ltr_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_ltr_m16(dst)) } -inst_str_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2292) } -inst_str_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2292) } -inst_str_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2293) } -inst_str_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2294) } +inst_str_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2304) } +inst_str_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2304) } +inst_str_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2305) } +inst_str_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .STR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2306) } emit_str_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_str_r16(dst)) } emit_str_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_str_m16(dst)) } emit_str_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_str_r32(dst)) } emit_str_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_str_r64(dst)) } -inst_lmsw_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LMSW, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2295) } -inst_lmsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LMSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2295) } +inst_lmsw_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LMSW, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2307) } +inst_lmsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LMSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2307) } emit_lmsw_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_lmsw_r16(dst)) } emit_lmsw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_lmsw_m16(dst)) } -inst_smsw_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2296) } -inst_smsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2296) } -inst_smsw_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2297) } -inst_smsw_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2298) } +inst_smsw_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2308) } +inst_smsw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2308) } +inst_smsw_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2309) } +inst_smsw_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .SMSW, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2310) } emit_smsw_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_smsw_r16(dst)) } emit_smsw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_smsw_m16(dst)) } emit_smsw_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_smsw_r32(dst)) } emit_smsw_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_smsw_r64(dst)) } -inst_clts_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLTS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2299) } +inst_clts_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLTS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2311) } emit_clts_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clts_none()) } -inst_arpl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ARPL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2300) } -inst_arpl_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ARPL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2300) } +inst_arpl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ARPL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2312) } +inst_arpl_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .ARPL, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2312) } emit_arpl_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_arpl_r16_r16(dst, src)) } emit_arpl_m16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16) { append(instructions, inst_arpl_m16_r16(dst, src)) } -inst_lar_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2301) } -inst_lar_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 2301) } -inst_lar_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2302) } -inst_lar_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2302) } -inst_lar_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2303) } -inst_lar_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2303) } +inst_lar_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2313) } +inst_lar_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 2313) } +inst_lar_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2314) } +inst_lar_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2314) } +inst_lar_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2315) } +inst_lar_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .LAR, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2315) } emit_lar_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_lar_r16_r16(dst, src)) } emit_lar_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_lar_r16_m16(dst, src)) } emit_lar_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_lar_r32_r32(dst, src)) } emit_lar_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_lar_r32_m32(dst, src)) } emit_lar_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_lar_r64_r64(dst, src)) } emit_lar_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_lar_r64_m64(dst, src)) } -inst_lsl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2304) } -inst_lsl_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 2304) } -inst_lsl_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2305) } -inst_lsl_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2305) } -inst_lsl_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2306) } -inst_lsl_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2306) } +inst_lsl_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2316) } +inst_lsl_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 2316) } +inst_lsl_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2317) } +inst_lsl_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2317) } +inst_lsl_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2318) } +inst_lsl_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .LSL, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2318) } emit_lsl_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_lsl_r16_r16(dst, src)) } emit_lsl_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_lsl_r16_m16(dst, src)) } emit_lsl_r32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: GPR32) { append(instructions, inst_lsl_r32_r32(dst, src)) } emit_lsl_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_lsl_r32_m32(dst, src)) } emit_lsl_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_lsl_r64_r64(dst, src)) } emit_lsl_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_lsl_r64_m64(dst, src)) } -inst_verr_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2307) } -inst_verr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2307) } +inst_verr_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERR, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2319) } +inst_verr_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERR, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2319) } emit_verr_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_verr_r16(dst)) } emit_verr_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_verr_m16(dst)) } -inst_verw_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERW, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2308) } -inst_verw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2308) } +inst_verw_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERW, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2320) } +inst_verw_m16 :: #force_inline proc "contextless" (dst: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .VERW, operand_count = 1, ops = {op_mem(dst.mem, 2), {}, {}, {}} }, 2320) } emit_verw_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_verw_r16(dst)) } emit_verw_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16) { append(instructions, inst_verw_m16(dst)) } -inst_invd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INVD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2309) } +inst_invd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INVD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2321) } emit_invd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_invd_none()) } -inst_wbinvd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WBINVD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2310) } +inst_wbinvd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WBINVD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2322) } emit_wbinvd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wbinvd_none()) } -inst_invlpg_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .INVLPG, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2311) } +inst_invlpg_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .INVLPG, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2323) } emit_invlpg_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_invlpg_m8(dst)) } -inst_invpcid_r32_m128 :: #force_inline proc "contextless" (dst: GPR32, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVPCID, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 16), {}, {}} }, 2312) } -inst_invpcid_r64_m128 :: #force_inline proc "contextless" (dst: GPR64, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVPCID, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 16), {}, {}} }, 2313) } +inst_invpcid_r32_m128 :: #force_inline proc "contextless" (dst: GPR32, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVPCID, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 16), {}, {}} }, 2324) } +inst_invpcid_r64_m128 :: #force_inline proc "contextless" (dst: GPR64, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVPCID, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 16), {}, {}} }, 2325) } emit_invpcid_r32_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem128) { append(instructions, inst_invpcid_r32_m128(dst, src)) } emit_invpcid_r64_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem128) { append(instructions, inst_invpcid_r64_m128(dst, src)) } -inst_rsm_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RSM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2314) } +inst_rsm_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RSM, operand_count = 0, ops = {{}, {}, {}, {}} }, 2326) } emit_rsm_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rsm_none()) } -inst_rdmsr_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDMSR, operand_count = 0, ops = {{}, {}, {}, {}} }, 2315) } +inst_rdmsr_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDMSR, operand_count = 0, ops = {{}, {}, {}, {}} }, 2327) } emit_rdmsr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rdmsr_none()) } -inst_wrmsr_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WRMSR, operand_count = 0, ops = {{}, {}, {}, {}} }, 2316) } +inst_wrmsr_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WRMSR, operand_count = 0, ops = {{}, {}, {}, {}} }, 2328) } emit_wrmsr_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wrmsr_none()) } -inst_vmcall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMCALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 2317) } +inst_vmcall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMCALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 2329) } emit_vmcall_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmcall_none()) } -inst_vmlaunch_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMLAUNCH, operand_count = 0, ops = {{}, {}, {}, {}} }, 2318) } +inst_vmlaunch_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMLAUNCH, operand_count = 0, ops = {{}, {}, {}, {}} }, 2330) } emit_vmlaunch_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmlaunch_none()) } -inst_vmresume_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMRESUME, operand_count = 0, ops = {{}, {}, {}, {}} }, 2319) } +inst_vmresume_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMRESUME, operand_count = 0, ops = {{}, {}, {}, {}} }, 2331) } emit_vmresume_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmresume_none()) } -inst_vmxoff_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMXOFF, operand_count = 0, ops = {{}, {}, {}, {}} }, 2320) } +inst_vmxoff_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMXOFF, operand_count = 0, ops = {{}, {}, {}, {}} }, 2332) } emit_vmxoff_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmxoff_none()) } -inst_vmxon_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMXON, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2321) } +inst_vmxon_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMXON, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2333) } emit_vmxon_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_vmxon_m64(dst)) } -inst_vmclear_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMCLEAR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2322) } +inst_vmclear_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMCLEAR, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2334) } emit_vmclear_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_vmclear_m64(dst)) } -inst_vmptrld_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPTRLD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2323) } +inst_vmptrld_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPTRLD, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2335) } emit_vmptrld_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_vmptrld_m64(dst)) } -inst_vmptrst_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPTRST, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2324) } +inst_vmptrst_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMPTRST, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2336) } emit_vmptrst_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_vmptrst_m64(dst)) } -inst_vmread_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMREAD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2325) } -inst_vmread_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMREAD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2325) } +inst_vmread_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMREAD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2337) } +inst_vmread_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMREAD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2337) } emit_vmread_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_vmread_r64_r64(dst, src)) } emit_vmread_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_vmread_m64_r64(dst, src)) } -inst_vmwrite_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMWRITE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2326) } -inst_vmwrite_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMWRITE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2326) } +inst_vmwrite_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMWRITE, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2338) } +inst_vmwrite_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .VMWRITE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2338) } emit_vmwrite_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_vmwrite_r64_r64(dst, src)) } emit_vmwrite_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_vmwrite_r64_m64(dst, src)) } -inst_vmfunc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMFUNC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2327) } +inst_vmfunc_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMFUNC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2339) } emit_vmfunc_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmfunc_none()) } -inst_invept_r64_m128 :: #force_inline proc "contextless" (dst: GPR64, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVEPT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 16), {}, {}} }, 2328) } +inst_invept_r64_m128 :: #force_inline proc "contextless" (dst: GPR64, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVEPT, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 16), {}, {}} }, 2340) } emit_invept_r64_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem128) { append(instructions, inst_invept_r64_m128(dst, src)) } -inst_invvpid_r64_m128 :: #force_inline proc "contextless" (dst: GPR64, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVVPID, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 16), {}, {}} }, 2329) } +inst_invvpid_r64_m128 :: #force_inline proc "contextless" (dst: GPR64, src: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .INVVPID, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 16), {}, {}} }, 2341) } emit_invvpid_r64_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem128) { append(instructions, inst_invvpid_r64_m128(dst, src)) } -inst_encls_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENCLS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2330) } +inst_encls_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENCLS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2342) } emit_encls_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_encls_none()) } -inst_enclu_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENCLU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2331) } +inst_enclu_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENCLU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2343) } emit_enclu_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_enclu_none()) } -inst_enclv_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENCLV, operand_count = 0, ops = {{}, {}, {}, {}} }, 2332) } +inst_enclv_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENCLV, operand_count = 0, ops = {{}, {}, {}, {}} }, 2344) } emit_enclv_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_enclv_none()) } -inst_rdpkru_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDPKRU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2333) } +inst_rdpkru_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDPKRU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2345) } emit_rdpkru_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rdpkru_none()) } -inst_wrpkru_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WRPKRU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2334) } +inst_wrpkru_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WRPKRU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2346) } emit_wrpkru_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wrpkru_none()) } -inst_incsspd_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .INCSSPD, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2335) } +inst_incsspd_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .INCSSPD, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2347) } emit_incsspd_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_incsspd_r32(dst)) } -inst_incsspq_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .INCSSPQ, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2336) } +inst_incsspq_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .INCSSPQ, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2348) } emit_incsspq_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_incsspq_r64(dst)) } -inst_rdsspd_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSSPD, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2337) } +inst_rdsspd_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSSPD, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2349) } emit_rdsspd_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_rdsspd_r32(dst)) } -inst_rdsspq_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSSPQ, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2338) } +inst_rdsspq_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSSPQ, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2350) } emit_rdsspq_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_rdsspq_r64(dst)) } -inst_saveprevssp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SAVEPREVSSP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2339) } +inst_saveprevssp_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SAVEPREVSSP, operand_count = 0, ops = {{}, {}, {}, {}} }, 2351) } emit_saveprevssp_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_saveprevssp_none()) } -inst_rstorssp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .RSTORSSP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2340) } +inst_rstorssp_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .RSTORSSP, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2352) } emit_rstorssp_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_rstorssp_m64(dst)) } -inst_wrssd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRSSD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2341) } +inst_wrssd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRSSD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2353) } emit_wrssd_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_wrssd_m32_r32(dst, src)) } -inst_wrssq_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRSSQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2342) } +inst_wrssq_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRSSQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2354) } emit_wrssq_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_wrssq_m64_r64(dst, src)) } -inst_wrussd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRUSSD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2343) } +inst_wrussd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRUSSD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2355) } emit_wrussd_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_wrussd_m32_r32(dst, src)) } -inst_wrussq_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRUSSQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2344) } +inst_wrussq_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRUSSQ, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2356) } emit_wrussq_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_wrussq_m64_r64(dst, src)) } -inst_setssbsy_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SETSSBSY, operand_count = 0, ops = {{}, {}, {}, {}} }, 2345) } +inst_setssbsy_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SETSSBSY, operand_count = 0, ops = {{}, {}, {}, {}} }, 2357) } emit_setssbsy_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_setssbsy_none()) } -inst_clrssbsy_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CLRSSBSY, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2346) } +inst_clrssbsy_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CLRSSBSY, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2358) } emit_clrssbsy_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_clrssbsy_m64(dst)) } -inst_endbr64_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENDBR64, operand_count = 0, ops = {{}, {}, {}, {}} }, 2347) } +inst_endbr64_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENDBR64, operand_count = 0, ops = {{}, {}, {}, {}} }, 2359) } emit_endbr64_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_endbr64_none()) } -inst_endbr32_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENDBR32, operand_count = 0, ops = {{}, {}, {}, {}} }, 2348) } +inst_endbr32_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .ENDBR32, operand_count = 0, ops = {{}, {}, {}, {}} }, 2360) } emit_endbr32_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_endbr32_none()) } -inst_xsave_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2349) } +inst_xsave_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2361) } emit_xsave_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsave_m8(dst)) } -inst_xsave64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVE64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2350) } +inst_xsave64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVE64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2362) } emit_xsave64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsave64_m8(dst)) } -inst_xrstor_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTOR, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2351) } +inst_xrstor_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTOR, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2363) } emit_xrstor_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xrstor_m8(dst)) } -inst_xrstor64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTOR64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2352) } +inst_xrstor64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTOR64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2364) } emit_xrstor64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xrstor64_m8(dst)) } -inst_xsaveopt_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEOPT, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2353) } +inst_xsaveopt_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEOPT, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2365) } emit_xsaveopt_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsaveopt_m8(dst)) } -inst_xsaveopt64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEOPT64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2354) } +inst_xsaveopt64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEOPT64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2366) } emit_xsaveopt64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsaveopt64_m8(dst)) } -inst_xsavec_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEC, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2355) } +inst_xsavec_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEC, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2367) } emit_xsavec_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsavec_m8(dst)) } -inst_xsavec64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEC64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2356) } +inst_xsavec64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVEC64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2368) } emit_xsavec64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsavec64_m8(dst)) } -inst_xsaves_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVES, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2357) } +inst_xsaves_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVES, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2369) } emit_xsaves_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsaves_m8(dst)) } -inst_xsaves64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVES64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2358) } +inst_xsaves64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XSAVES64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2370) } emit_xsaves64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xsaves64_m8(dst)) } -inst_xrstors_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTORS, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2359) } +inst_xrstors_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTORS, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2371) } emit_xrstors_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xrstors_m8(dst)) } -inst_xrstors64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTORS64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2360) } +inst_xrstors64_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .XRSTORS64, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2372) } emit_xrstors64_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_xrstors64_m8(dst)) } -inst_prefetcht0_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHT0, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2361) } +inst_prefetcht0_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHT0, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2373) } emit_prefetcht0_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_prefetcht0_m8(dst)) } -inst_prefetcht1_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHT1, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2362) } +inst_prefetcht1_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHT1, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2374) } emit_prefetcht1_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_prefetcht1_m8(dst)) } -inst_prefetcht2_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHT2, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2363) } +inst_prefetcht2_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHT2, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2375) } emit_prefetcht2_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_prefetcht2_m8(dst)) } -inst_prefetchnta_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHNTA, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2364) } +inst_prefetchnta_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHNTA, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2376) } emit_prefetchnta_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_prefetchnta_m8(dst)) } -inst_prefetchw_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHW, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2365) } +inst_prefetchw_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCHW, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2377) } emit_prefetchw_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_prefetchw_m8(dst)) } -inst_clflushopt_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLFLUSHOPT, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2366) } +inst_clflushopt_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLFLUSHOPT, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2378) } emit_clflushopt_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_clflushopt_m8(dst)) } -inst_clwb_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLWB, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2367) } +inst_clwb_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLWB, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2379) } emit_clwb_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_clwb_m8(dst)) } -inst_cldemote_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLDEMOTE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2368) } +inst_cldemote_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .CLDEMOTE, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2380) } emit_cldemote_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_cldemote_m8(dst)) } -inst_bswap_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSWAP, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2369) } -inst_bswap_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSWAP, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2370) } +inst_bswap_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .BSWAP, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2381) } +inst_bswap_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .BSWAP, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2382) } emit_bswap_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_bswap_r32(dst)) } emit_bswap_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_bswap_r64(dst)) } -inst_cmpxchg_r8_r8 :: #force_inline proc "contextless" (dst: GPR8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr8(dst), op_gpr8(src), {}, {}} }, 2371) } -inst_cmpxchg_m8_r8 :: #force_inline proc "contextless" (dst: Mem8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 1), op_gpr8(src), {}, {}} }, 2371) } -inst_cmpxchg_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2372) } -inst_cmpxchg_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2372) } -inst_cmpxchg_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2373) } -inst_cmpxchg_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2373) } -inst_cmpxchg_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2374) } -inst_cmpxchg_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2374) } +inst_cmpxchg_r8_r8 :: #force_inline proc "contextless" (dst: GPR8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr8(dst), op_gpr8(src), {}, {}} }, 2383) } +inst_cmpxchg_m8_r8 :: #force_inline proc "contextless" (dst: Mem8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 1), op_gpr8(src), {}, {}} }, 2383) } +inst_cmpxchg_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2384) } +inst_cmpxchg_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2384) } +inst_cmpxchg_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2385) } +inst_cmpxchg_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2385) } +inst_cmpxchg_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2386) } +inst_cmpxchg_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2386) } emit_cmpxchg_r8_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, src: GPR8) { append(instructions, inst_cmpxchg_r8_r8(dst, src)) } emit_cmpxchg_m8_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8, src: GPR8) { append(instructions, inst_cmpxchg_m8_r8(dst, src)) } emit_cmpxchg_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_cmpxchg_r16_r16(dst, src)) } @@ -7641,18 +7673,18 @@ emit_cmpxchg_r32_r32 :: #force_inline proc(instructions: ^[dynami emit_cmpxchg_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_cmpxchg_m32_r32(dst, src)) } emit_cmpxchg_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_cmpxchg_r64_r64(dst, src)) } emit_cmpxchg_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_cmpxchg_m64_r64(dst, src)) } -inst_cmpxchg8b_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG8B, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2375) } +inst_cmpxchg8b_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG8B, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2387) } emit_cmpxchg8b_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_cmpxchg8b_m64(dst)) } -inst_cmpxchg16b_m128 :: #force_inline proc "contextless" (dst: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG16B, operand_count = 1, ops = {op_mem(dst.mem, 16), {}, {}, {}} }, 2376) } +inst_cmpxchg16b_m128 :: #force_inline proc "contextless" (dst: Mem128) -> Instruction { return with_hint(Instruction{ mnemonic = .CMPXCHG16B, operand_count = 1, ops = {op_mem(dst.mem, 16), {}, {}, {}} }, 2388) } emit_cmpxchg16b_m128 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem128) { append(instructions, inst_cmpxchg16b_m128(dst)) } -inst_xadd_r8_r8 :: #force_inline proc "contextless" (dst: GPR8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr8(dst), op_gpr8(src), {}, {}} }, 2377) } -inst_xadd_m8_r8 :: #force_inline proc "contextless" (dst: Mem8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 1), op_gpr8(src), {}, {}} }, 2377) } -inst_xadd_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2378) } -inst_xadd_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2378) } -inst_xadd_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2379) } -inst_xadd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2379) } -inst_xadd_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2380) } -inst_xadd_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2380) } +inst_xadd_r8_r8 :: #force_inline proc "contextless" (dst: GPR8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr8(dst), op_gpr8(src), {}, {}} }, 2389) } +inst_xadd_m8_r8 :: #force_inline proc "contextless" (dst: Mem8, src: GPR8) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 1), op_gpr8(src), {}, {}} }, 2389) } +inst_xadd_r16_r16 :: #force_inline proc "contextless" (dst: GPR16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr16(dst), op_gpr16(src), {}, {}} }, 2390) } +inst_xadd_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2390) } +inst_xadd_r32_r32 :: #force_inline proc "contextless" (dst: GPR32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr32(dst), op_gpr32(src), {}, {}} }, 2391) } +inst_xadd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2391) } +inst_xadd_r64_r64 :: #force_inline proc "contextless" (dst: GPR64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_gpr64(dst), op_gpr64(src), {}, {}} }, 2392) } +inst_xadd_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .XADD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2392) } emit_xadd_r8_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR8, src: GPR8) { append(instructions, inst_xadd_r8_r8(dst, src)) } emit_xadd_m8_r8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8, src: GPR8) { append(instructions, inst_xadd_m8_r8(dst, src)) } emit_xadd_r16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: GPR16) { append(instructions, inst_xadd_r16_r16(dst, src)) } @@ -7661,157 +7693,161 @@ emit_xadd_r32_r32 :: #force_inline proc(instructions: ^[dynami emit_xadd_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_xadd_m32_r32(dst, src)) } emit_xadd_r64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: GPR64) { append(instructions, inst_xadd_r64_r64(dst, src)) } emit_xadd_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_xadd_m64_r64(dst, src)) } -inst_bound_r16_m :: #force_inline proc "contextless" (dst: GPR16, src: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .BOUND, operand_count = 2, ops = {op_gpr16(dst), op_mem(src, 0), {}, {}} }, 2381) } -inst_bound_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BOUND, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2382) } +inst_bound_r16_m :: #force_inline proc "contextless" (dst: GPR16, src: Memory) -> Instruction { return with_hint(Instruction{ mnemonic = .BOUND, operand_count = 2, ops = {op_gpr16(dst), op_mem(src, 0), {}, {}} }, 2393) } +inst_bound_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .BOUND, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2394) } emit_bound_r16_m :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Memory) { append(instructions, inst_bound_r16_m(dst, src)) } emit_bound_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_bound_r32_m32(dst, src)) } -inst_enter_imm16_imm8 :: #force_inline proc "contextless" (imm: i16, imm2: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ENTER, operand_count = 2, ops = {op_imm16(imm), op_imm8(imm2), {}, {}} }, 2383) } +inst_enter_imm16_imm8 :: #force_inline proc "contextless" (imm: i16, imm2: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .ENTER, operand_count = 2, ops = {op_imm16(imm), op_imm8(imm2), {}, {}} }, 2395) } emit_enter_imm16_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i16, imm2: i8) { append(instructions, inst_enter_imm16_imm8(imm, imm2)) } -inst_leave_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LEAVE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2384) } +inst_leave_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .LEAVE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2396) } emit_leave_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_leave_none()) } -inst_xlat_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XLAT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2385) } +inst_xlat_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XLAT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2397) } emit_xlat_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xlat_none()) } -inst_xlatb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XLATB, operand_count = 0, ops = {{}, {}, {}, {}} }, 2386) } +inst_xlatb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XLATB, operand_count = 0, ops = {{}, {}, {}, {}} }, 2398) } emit_xlatb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xlatb_none()) } -inst_movbe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 2387) } -inst_movbe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2388) } -inst_movbe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2389) } -inst_movbe_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2390) } -inst_movbe_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2391) } -inst_movbe_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2392) } +inst_movbe_r16_m16 :: #force_inline proc "contextless" (dst: GPR16, src: Mem16) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_gpr16(dst), op_mem(src.mem, 2), {}, {}} }, 2399) } +inst_movbe_r32_m32 :: #force_inline proc "contextless" (dst: GPR32, src: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_gpr32(dst), op_mem(src.mem, 4), {}, {}} }, 2400) } +inst_movbe_r64_m64 :: #force_inline proc "contextless" (dst: GPR64, src: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 8), {}, {}} }, 2401) } +inst_movbe_m16_r16 :: #force_inline proc "contextless" (dst: Mem16, src: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_mem(dst.mem, 2), op_gpr16(src), {}, {}} }, 2402) } +inst_movbe_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2403) } +inst_movbe_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVBE, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2404) } emit_movbe_r16_m16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16, src: Mem16) { append(instructions, inst_movbe_r16_m16(dst, src)) } emit_movbe_r32_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32, src: Mem32) { append(instructions, inst_movbe_r32_m32(dst, src)) } emit_movbe_r64_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem64) { append(instructions, inst_movbe_r64_m64(dst, src)) } emit_movbe_m16_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem16, src: GPR16) { append(instructions, inst_movbe_m16_r16(dst, src)) } emit_movbe_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_movbe_m32_r32(dst, src)) } emit_movbe_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_movbe_m64_r64(dst, src)) } -inst_rdrand_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RDRAND, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2393) } -inst_rdrand_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDRAND, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2394) } -inst_rdrand_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDRAND, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2395) } +inst_rdrand_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RDRAND, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2405) } +inst_rdrand_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDRAND, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2406) } +inst_rdrand_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDRAND, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2407) } emit_rdrand_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_rdrand_r16(dst)) } emit_rdrand_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_rdrand_r32(dst)) } emit_rdrand_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_rdrand_r64(dst)) } -inst_rdseed_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSEED, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2396) } -inst_rdseed_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSEED, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2397) } -inst_rdseed_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSEED, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2398) } +inst_rdseed_r16 :: #force_inline proc "contextless" (dst: GPR16) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSEED, operand_count = 1, ops = {op_gpr16(dst), {}, {}, {}} }, 2408) } +inst_rdseed_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSEED, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2409) } +inst_rdseed_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDSEED, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2410) } emit_rdseed_r16 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR16) { append(instructions, inst_rdseed_r16(dst)) } emit_rdseed_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_rdseed_r32(dst)) } emit_rdseed_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_rdseed_r64(dst)) } -inst_swapgs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SWAPGS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2399) } +inst_swapgs_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SWAPGS, operand_count = 0, ops = {{}, {}, {}, {}} }, 2411) } emit_swapgs_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_swapgs_none()) } -inst_monitor_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MONITOR, operand_count = 0, ops = {{}, {}, {}, {}} }, 2400) } +inst_monitor_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MONITOR, operand_count = 0, ops = {{}, {}, {}, {}} }, 2412) } emit_monitor_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_monitor_none()) } -inst_mwait_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MWAIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2401) } +inst_mwait_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MWAIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2413) } emit_mwait_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_mwait_none()) } -inst_clac_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLAC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2402) } +inst_clac_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLAC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2414) } emit_clac_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clac_none()) } -inst_stac_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STAC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2403) } +inst_stac_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STAC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2415) } emit_stac_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stac_none()) } -inst_rdfsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDFSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2404) } -inst_rdfsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDFSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2405) } +inst_rdfsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDFSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2416) } +inst_rdfsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDFSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2417) } emit_rdfsbase_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_rdfsbase_r32(dst)) } emit_rdfsbase_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_rdfsbase_r64(dst)) } -inst_rdgsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDGSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2406) } -inst_rdgsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDGSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2407) } +inst_rdgsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .RDGSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2418) } +inst_rdgsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDGSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2419) } emit_rdgsbase_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_rdgsbase_r32(dst)) } emit_rdgsbase_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_rdgsbase_r64(dst)) } -inst_wrfsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRFSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2408) } -inst_wrfsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRFSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2409) } +inst_wrfsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRFSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2420) } +inst_wrfsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRFSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2421) } emit_wrfsbase_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_wrfsbase_r32(dst)) } emit_wrfsbase_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_wrfsbase_r64(dst)) } -inst_wrgsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRGSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2410) } -inst_wrgsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRGSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2411) } +inst_wrgsbase_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .WRGSBASE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2422) } +inst_wrgsbase_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .WRGSBASE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2423) } emit_wrgsbase_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_wrgsbase_r32(dst)) } emit_wrgsbase_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_wrgsbase_r64(dst)) } -inst_ptwrite_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2412) } -inst_ptwrite_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2412) } -inst_ptwrite_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2413) } -inst_ptwrite_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2413) } +inst_ptwrite_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2424) } +inst_ptwrite_m32 :: #force_inline proc "contextless" (dst: Mem32) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_mem(dst.mem, 4), {}, {}, {}} }, 2424) } +inst_ptwrite_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2425) } +inst_ptwrite_m64 :: #force_inline proc "contextless" (dst: Mem64) -> Instruction { return with_hint(Instruction{ mnemonic = .PTWRITE, operand_count = 1, ops = {op_mem(dst.mem, 8), {}, {}, {}} }, 2425) } emit_ptwrite_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_ptwrite_r32(dst)) } emit_ptwrite_m32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32) { append(instructions, inst_ptwrite_m32(dst)) } emit_ptwrite_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_ptwrite_r64(dst)) } emit_ptwrite_m64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64) { append(instructions, inst_ptwrite_m64(dst)) } -inst_rdpid_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDPID, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2414) } +inst_rdpid_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .RDPID, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2426) } emit_rdpid_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_rdpid_r64(dst)) } -inst_wbnoinvd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WBNOINVD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2415) } +inst_wbnoinvd_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .WBNOINVD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2427) } emit_wbnoinvd_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_wbnoinvd_none()) } -inst_serialize_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SERIALIZE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2416) } +inst_serialize_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SERIALIZE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2428) } emit_serialize_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_serialize_none()) } -inst_prefetch_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCH, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2417) } +inst_prefetch_m8 :: #force_inline proc "contextless" (dst: Mem8) -> Instruction { return with_hint(Instruction{ mnemonic = .PREFETCH, operand_count = 1, ops = {op_mem(dst.mem, 1), {}, {}, {}} }, 2429) } emit_prefetch_m8 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem8) { append(instructions, inst_prefetch_m8(dst)) } -inst_tpause_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .TPAUSE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2418) } +inst_in_imm8 :: #force_inline proc "contextless" (imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .IN, operand_count = 1, ops = {op_imm8(imm), {}, {}, {}} }, 2430) } +emit_in_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i8) { append(instructions, inst_in_imm8(imm)) } +inst_out_imm8 :: #force_inline proc "contextless" (imm: i8) -> Instruction { return with_hint(Instruction{ mnemonic = .OUT, operand_count = 1, ops = {op_imm8(imm), {}, {}, {}} }, 2436) } +emit_out_imm8 :: #force_inline proc(instructions: ^[dynamic]Instruction, imm: i8) { append(instructions, inst_out_imm8(imm)) } +inst_tpause_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .TPAUSE, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2442) } emit_tpause_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_tpause_r32(dst)) } -inst_umonitor_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .UMONITOR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2419) } +inst_umonitor_r64 :: #force_inline proc "contextless" (dst: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .UMONITOR, operand_count = 1, ops = {op_gpr64(dst), {}, {}, {}} }, 2443) } emit_umonitor_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64) { append(instructions, inst_umonitor_r64(dst)) } -inst_umwait_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .UMWAIT, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2420) } +inst_umwait_r32 :: #force_inline proc "contextless" (dst: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .UMWAIT, operand_count = 1, ops = {op_gpr32(dst), {}, {}, {}} }, 2444) } emit_umwait_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR32) { append(instructions, inst_umwait_r32(dst)) } -inst_movdiri_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDIRI, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2421) } -inst_movdiri_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDIRI, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2422) } +inst_movdiri_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDIRI, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2445) } +inst_movdiri_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDIRI, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2446) } emit_movdiri_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_movdiri_m32_r32(dst, src)) } emit_movdiri_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_movdiri_m64_r64(dst, src)) } -inst_movdir64b_r64_m512 :: #force_inline proc "contextless" (dst: GPR64, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDIR64B, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 64), {}, {}} }, 2423) } +inst_movdir64b_r64_m512 :: #force_inline proc "contextless" (dst: GPR64, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .MOVDIR64B, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 64), {}, {}} }, 2447) } emit_movdir64b_r64_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem512) { append(instructions, inst_movdir64b_r64_m512(dst, src)) } -inst_enqcmd_r64_m512 :: #force_inline proc "contextless" (dst: GPR64, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .ENQCMD, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 64), {}, {}} }, 2424) } +inst_enqcmd_r64_m512 :: #force_inline proc "contextless" (dst: GPR64, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .ENQCMD, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 64), {}, {}} }, 2448) } emit_enqcmd_r64_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem512) { append(instructions, inst_enqcmd_r64_m512(dst, src)) } -inst_enqcmds_r64_m512 :: #force_inline proc "contextless" (dst: GPR64, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .ENQCMDS, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 64), {}, {}} }, 2425) } +inst_enqcmds_r64_m512 :: #force_inline proc "contextless" (dst: GPR64, src: Mem512) -> Instruction { return with_hint(Instruction{ mnemonic = .ENQCMDS, operand_count = 2, ops = {op_gpr64(dst), op_mem(src.mem, 64), {}, {}} }, 2449) } emit_enqcmds_r64_m512 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: GPR64, src: Mem512) { append(instructions, inst_enqcmds_r64_m512(dst, src)) } -inst_aadd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AADD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2426) } -inst_aadd_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AADD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2427) } +inst_aadd_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AADD, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2450) } +inst_aadd_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AADD, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2451) } emit_aadd_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_aadd_m32_r32(dst, src)) } emit_aadd_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_aadd_m64_r64(dst, src)) } -inst_aand_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AAND, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2428) } -inst_aand_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AAND, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2429) } +inst_aand_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AAND, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2452) } +inst_aand_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AAND, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2453) } emit_aand_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_aand_m32_r32(dst, src)) } emit_aand_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_aand_m64_r64(dst, src)) } -inst_aor_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AOR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2430) } -inst_aor_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AOR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2431) } +inst_aor_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AOR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2454) } +inst_aor_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AOR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2455) } emit_aor_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_aor_m32_r32(dst, src)) } emit_aor_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_aor_m64_r64(dst, src)) } -inst_axor_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AXOR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2432) } -inst_axor_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AXOR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2433) } +inst_axor_m32_r32 :: #force_inline proc "contextless" (dst: Mem32, src: GPR32) -> Instruction { return with_hint(Instruction{ mnemonic = .AXOR, operand_count = 2, ops = {op_mem(dst.mem, 4), op_gpr32(src), {}, {}} }, 2456) } +inst_axor_m64_r64 :: #force_inline proc "contextless" (dst: Mem64, src: GPR64) -> Instruction { return with_hint(Instruction{ mnemonic = .AXOR, operand_count = 2, ops = {op_mem(dst.mem, 8), op_gpr64(src), {}, {}} }, 2457) } emit_axor_m32_r32 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem32, src: GPR32) { append(instructions, inst_axor_m32_r32(dst, src)) } emit_axor_m64_r64 :: #force_inline proc(instructions: ^[dynamic]Instruction, dst: Mem64, src: GPR64) { append(instructions, inst_axor_m64_r64(dst, src)) } -inst_xend_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XEND, operand_count = 0, ops = {{}, {}, {}, {}} }, 2434) } +inst_xend_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XEND, operand_count = 0, ops = {{}, {}, {}, {}} }, 2458) } emit_xend_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xend_none()) } -inst_xtest_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XTEST, operand_count = 0, ops = {{}, {}, {}, {}} }, 2435) } +inst_xtest_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .XTEST, operand_count = 0, ops = {{}, {}, {}, {}} }, 2459) } emit_xtest_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_xtest_none()) } -inst_vmrun_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMRUN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2436) } +inst_vmrun_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMRUN, operand_count = 0, ops = {{}, {}, {}, {}} }, 2460) } emit_vmrun_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmrun_none()) } -inst_vmmcall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMMCALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 2437) } +inst_vmmcall_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMMCALL, operand_count = 0, ops = {{}, {}, {}, {}} }, 2461) } emit_vmmcall_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmmcall_none()) } -inst_vmload_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMLOAD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2438) } +inst_vmload_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMLOAD, operand_count = 0, ops = {{}, {}, {}, {}} }, 2462) } emit_vmload_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmload_none()) } -inst_vmsave_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMSAVE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2439) } +inst_vmsave_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .VMSAVE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2463) } emit_vmsave_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_vmsave_none()) } -inst_stgi_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STGI, operand_count = 0, ops = {{}, {}, {}, {}} }, 2440) } +inst_stgi_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .STGI, operand_count = 0, ops = {{}, {}, {}, {}} }, 2464) } emit_stgi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_stgi_none()) } -inst_clgi_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLGI, operand_count = 0, ops = {{}, {}, {}, {}} }, 2441) } +inst_clgi_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLGI, operand_count = 0, ops = {{}, {}, {}, {}} }, 2465) } emit_clgi_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clgi_none()) } -inst_skinit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SKINIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2442) } +inst_skinit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .SKINIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2466) } emit_skinit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_skinit_none()) } -inst_invlpga_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INVLPGA, operand_count = 0, ops = {{}, {}, {}, {}} }, 2443) } +inst_invlpga_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INVLPGA, operand_count = 0, ops = {{}, {}, {}, {}} }, 2467) } emit_invlpga_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_invlpga_none()) } -inst_invlpgb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INVLPGB, operand_count = 0, ops = {{}, {}, {}, {}} }, 2444) } +inst_invlpgb_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .INVLPGB, operand_count = 0, ops = {{}, {}, {}, {}} }, 2468) } emit_invlpgb_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_invlpgb_none()) } -inst_tlbsync_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .TLBSYNC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2445) } +inst_tlbsync_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .TLBSYNC, operand_count = 0, ops = {{}, {}, {}, {}} }, 2469) } emit_tlbsync_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_tlbsync_none()) } -inst_pvalidate_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PVALIDATE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2446) } +inst_pvalidate_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PVALIDATE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2470) } emit_pvalidate_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_pvalidate_none()) } -inst_rmpadjust_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RMPADJUST, operand_count = 0, ops = {{}, {}, {}, {}} }, 2447) } +inst_rmpadjust_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RMPADJUST, operand_count = 0, ops = {{}, {}, {}, {}} }, 2471) } emit_rmpadjust_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rmpadjust_none()) } -inst_rmpupdate_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RMPUPDATE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2448) } +inst_rmpupdate_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RMPUPDATE, operand_count = 0, ops = {{}, {}, {}, {}} }, 2472) } emit_rmpupdate_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rmpupdate_none()) } -inst_psmash_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PSMASH, operand_count = 0, ops = {{}, {}, {}, {}} }, 2449) } +inst_psmash_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .PSMASH, operand_count = 0, ops = {{}, {}, {}, {}} }, 2473) } emit_psmash_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_psmash_none()) } -inst_clzero_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLZERO, operand_count = 0, ops = {{}, {}, {}, {}} }, 2450) } +inst_clzero_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .CLZERO, operand_count = 0, ops = {{}, {}, {}, {}} }, 2474) } emit_clzero_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_clzero_none()) } -inst_monitorx_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MONITORX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2451) } +inst_monitorx_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MONITORX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2475) } emit_monitorx_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_monitorx_none()) } -inst_mwaitx_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MWAITX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2452) } +inst_mwaitx_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MWAITX, operand_count = 0, ops = {{}, {}, {}, {}} }, 2476) } emit_mwaitx_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_mwaitx_none()) } -inst_rdpru_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDPRU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2453) } +inst_rdpru_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .RDPRU, operand_count = 0, ops = {{}, {}, {}, {}} }, 2477) } emit_rdpru_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_rdpru_none()) } -inst_mcommit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MCOMMIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2454) } +inst_mcommit_none :: #force_inline proc "contextless" () -> Instruction { return with_hint(Instruction{ mnemonic = .MCOMMIT, operand_count = 0, ops = {{}, {}, {}, {}} }, 2478) } emit_mcommit_none :: #force_inline proc(instructions: ^[dynamic]Instruction) { append(instructions, inst_mcommit_none()) } // ============================================================================= @@ -7876,6 +7912,8 @@ inst_shr :: proc{ inst_shr_r8, inst_shr_m8, inst emit_shr :: proc{ emit_shr_r8, emit_shr_m8, emit_shr_r8_imm8, emit_shr_m8_imm8, emit_shr_r16, emit_shr_m16, emit_shr_r16_imm8, emit_shr_m16_imm8, emit_shr_r32, emit_shr_m32, emit_shr_r32_imm8, emit_shr_m32_imm8, emit_shr_r64, emit_shr_m64, emit_shr_r64_imm8, emit_shr_m64_imm8 } inst_sar :: proc{ inst_sar_r8, inst_sar_m8, inst_sar_r8_imm8, inst_sar_m8_imm8, inst_sar_r16, inst_sar_m16, inst_sar_r16_imm8, inst_sar_m16_imm8, inst_sar_r32, inst_sar_m32, inst_sar_r32_imm8, inst_sar_m32_imm8, inst_sar_r64, inst_sar_m64, inst_sar_r64_imm8, inst_sar_m64_imm8 } emit_sar :: proc{ emit_sar_r8, emit_sar_m8, emit_sar_r8_imm8, emit_sar_m8_imm8, emit_sar_r16, emit_sar_m16, emit_sar_r16_imm8, emit_sar_m16_imm8, emit_sar_r32, emit_sar_m32, emit_sar_r32_imm8, emit_sar_m32_imm8, emit_sar_r64, emit_sar_m64, emit_sar_r64_imm8, emit_sar_m64_imm8 } +inst_sal :: proc{ inst_sal_r8, inst_sal_m8, inst_sal_r8_imm8, inst_sal_m8_imm8, inst_sal_r16, inst_sal_m16, inst_sal_r16_imm8, inst_sal_m16_imm8, inst_sal_r32, inst_sal_m32, inst_sal_r32_imm8, inst_sal_m32_imm8, inst_sal_r64, inst_sal_m64, inst_sal_r64_imm8, inst_sal_m64_imm8 } +emit_sal :: proc{ emit_sal_r8, emit_sal_m8, emit_sal_r8_imm8, emit_sal_m8_imm8, emit_sal_r16, emit_sal_m16, emit_sal_r16_imm8, emit_sal_m16_imm8, emit_sal_r32, emit_sal_m32, emit_sal_r32_imm8, emit_sal_m32_imm8, emit_sal_r64, emit_sal_m64, emit_sal_r64_imm8, emit_sal_m64_imm8 } inst_rol :: proc{ inst_rol_r8, inst_rol_m8, inst_rol_r8_imm8, inst_rol_m8_imm8, inst_rol_r16, inst_rol_m16, inst_rol_r16_imm8, inst_rol_m16_imm8, inst_rol_r32, inst_rol_m32, inst_rol_r32_imm8, inst_rol_m32_imm8, inst_rol_r64, inst_rol_m64, inst_rol_r64_imm8, inst_rol_m64_imm8 } emit_rol :: proc{ emit_rol_r8, emit_rol_m8, emit_rol_r8_imm8, emit_rol_m8_imm8, emit_rol_r16, emit_rol_m16, emit_rol_r16_imm8, emit_rol_m16_imm8, emit_rol_r32, emit_rol_m32, emit_rol_r32_imm8, emit_rol_m32_imm8, emit_rol_r64, emit_rol_m64, emit_rol_r64_imm8, emit_rol_m64_imm8 } inst_ror :: proc{ inst_ror_r8, inst_ror_m8, inst_ror_r8_imm8, inst_ror_m8_imm8, inst_ror_r16, inst_ror_m16, inst_ror_r16_imm8, inst_ror_m16_imm8, inst_ror_r32, inst_ror_m32, inst_ror_r32_imm8, inst_ror_m32_imm8, inst_ror_r64, inst_ror_m64, inst_ror_r64_imm8, inst_ror_m64_imm8 } @@ -10230,6 +10268,10 @@ inst_serialize :: inst_serialize_none emit_serialize :: emit_serialize_none inst_prefetch :: inst_prefetch_m8 emit_prefetch :: emit_prefetch_m8 +inst_in :: inst_in_imm8 +emit_in :: emit_in_imm8 +inst_out :: inst_out_imm8 +emit_out :: emit_out_imm8 inst_tpause :: inst_tpause_r32 emit_tpause :: emit_tpause_r32 inst_umonitor :: inst_umonitor_r64 @@ -10294,3 +10336,6 @@ inst_rdpru :: inst_rdpru_none emit_rdpru :: emit_rdpru_none inst_mcommit :: inst_mcommit_none emit_mcommit :: emit_mcommit_none + +// The ENCODE_RUNS layout these hints were generated against — see the note in the generator. +BUILDER_TABLE_FINGERPRINT :: u64(0xecfb0a3d7397cdbe) diff --git a/core/rexcode/isa/x86/tablegen/cpp-compiler/cpp-gen.odin b/core/rexcode/isa/x86/tablegen/cpp-compiler/cpp-gen.odin index 0ee411f3d..7e78e220e 100644 --- a/core/rexcode/isa/x86/tablegen/cpp-compiler/cpp-gen.odin +++ b/core/rexcode/isa/x86/tablegen/cpp-compiler/cpp-gen.odin @@ -133,6 +133,71 @@ main :: proc() { strings.write_string(&sb, "\t};\n") } } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum OperandType : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in type_of(gen.Encoding{}.ops[0]) { + fmt.sbprintf(&sb, "\t\tOP_%s,\n", op) + } + + } + strings.write_string(&sb, "\n\n") + { + strings.write_string(&sb, "\tenum OperandEncoding : u8 {\n") + defer strings.write_string(&sb, "\t};\n") + for op in Operand_Encoding { + fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) + } + + } + strings.write_string(&sb, "\n") + strings.write_string(&sb, "\ttypedef u32 EncodingFlags; // cannot use a C++ bit field to due lack of portability\n") + strings.write_string(&sb, "\n") + { + defer strings.write_string(&sb, "\tGB_STATIC_ASSERT(gb_size_of(Encoding) == 16);\n") + + strings.write_string(&sb, "\t#pragma pack(push, 1)\n") + defer strings.write_string(&sb, "\t#pragma pack(pop)\n") + strings.write_string(&sb, "\tstruct Encoding {\n") + defer strings.write_string(&sb, "\t};\n") + strings.write_string(&sb, """ + Mnemonic mnemonic; + OperandType ops[4]; + OperandEncoding enc[4]; + u8 opcode; + u8 ext; + EncodingFlags flags; + \n + """) + Encoding_Flags :: type_of(gen.Encoding{}.flags) + + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "has_implicit") + strings.write_string(&sb, "\t\tbool has_implicit () const { ") + fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + strings.write_string(&sb, " }\n") + } + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "explicit_count") + bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "explicit_count") + strings.write_string(&sb, "\t\tu8 explicit_count() const { ") + fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) + strings.write_string(&sb, " }\n") + } + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "lock_ok") + strings.write_string(&sb, "\t\tbool lock_ok () const { ") + fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + strings.write_string(&sb, " }\n") + } + { + bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "rep_ok") + strings.write_string(&sb, "\t\tbool rep_ok () const { ") + fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) + strings.write_string(&sb, " }\n") + } + } strings.write_string(&sb, "\n"); strings.write_string(&sb, """ enum ClobberFlags : u16 { @@ -153,6 +218,7 @@ main :: proc() { case ClobberFlag_CF: return \"c\"; case ClobberFlag_PF: return \"p\"; case ClobberFlag_AF: return \"a\"; case ClobberFlag_ZF: return \"z\"; case ClobberFlag_SF: return \"s\"; case ClobberFlag_OF: return \"o\"; + case ClobberFlag_DF: return \"d\"; case ClobberFlag_IF: return \"i\"; } return \"?\"; } @@ -309,6 +375,9 @@ main :: proc() { ClobberFlags flags_rd_call() const { return flags_rd; } + ClobberFlags flags_wr_call() const { + return flags_wr; + } bool implies_clobber_flags() const { u16 const FLAGS_MASK = ClobberFlag_CF|ClobberFlag_PF|ClobberFlag_AF| @@ -347,7 +416,7 @@ main :: proc() { bool has_halt() const { return (cast(u16)side_effects & SideEffectFlag_HALT) != 0; } - bool is_conditional() const { + bool is_conditional(struct Encoding const &valid_form) const { return has_control() && (cast(u16)flags_rd != 0); } bool is_nondeterministic() const { @@ -360,6 +429,14 @@ main :: proc() { u16 implicit = cast(u16)implicit_rd | cast(u16)implicit_wr; return (implicit & (ClobberReg_RSP|ClobberReg_RSI|ClobberReg_RDI|ClobberReg_RBX)) != 0; } + + bool is_status_snapshot() const { + u16 flags = cast(u16)this->flags_rd_call(); + u16 const STATUS_FLAGS = ClobberFlag_CF | ClobberFlag_PF | ClobberFlag_AF | + ClobberFlag_ZF | ClobberFlag_SF | ClobberFlag_OF; + return ((flags & ClobberFlag_IF) != 0) || + (gb_count_set_bits(flags & STATUS_FLAGS) >= 4); + } }; void clobber_implicit_regs(StringSet *clobber_registers_set, u16 implicit_regs) { @@ -420,71 +497,7 @@ main :: proc() { strings.write_string(&sb, "\tstatic u16 const register_codes [REG_COUNT];\n") strings.write_string(&sb, "\tstatic String const register_strings[REG_COUNT];\n") - strings.write_string(&sb, "\n\n") - { - strings.write_string(&sb, "\tenum OperandType : u8 {\n") - defer strings.write_string(&sb, "\t};\n") - for op in type_of(gen.Encoding{}.ops[0]) { - fmt.sbprintf(&sb, "\t\tOP_%s,\n", op) - } - } - strings.write_string(&sb, "\n\n") - { - strings.write_string(&sb, "\tenum OperandEncoding : u8 {\n") - defer strings.write_string(&sb, "\t};\n") - for op in Operand_Encoding { - fmt.sbprintf(&sb, "\t\tENC_%s,\n", op) - } - - } - strings.write_string(&sb, "\n") - strings.write_string(&sb, "\ttypedef u32 EncodingFlags; // cannot use a C++ bit field to due lack of portability\n") - strings.write_string(&sb, "\n") - { - defer strings.write_string(&sb, "\tGB_STATIC_ASSERT(gb_size_of(Encoding) == 16);\n") - - strings.write_string(&sb, "\t#pragma pack(push, 1)\n") - defer strings.write_string(&sb, "\t#pragma pack(pop)\n") - strings.write_string(&sb, "\tstruct Encoding {\n") - defer strings.write_string(&sb, "\t};\n") - strings.write_string(&sb, """ - Mnemonic mnemonic; - OperandType ops[4]; - OperandEncoding enc[4]; - u8 opcode; - u8 ext; - EncodingFlags flags; - \n - """) - Encoding_Flags :: type_of(gen.Encoding{}.flags) - - { - bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "has_implicit") - strings.write_string(&sb, "\t\tbool has_implicit () const { ") - fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) - strings.write_string(&sb, " }\n") - } - { - bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "explicit_count") - bit_size := intrinsics.type_field_bit_size(Encoding_Flags, "explicit_count") - strings.write_string(&sb, "\t\tu8 explicit_count() const { ") - fmt.sbprintf(&sb, "return cast(u8)((flags>>%du)&((1u<<%d)-1));", bit_offset, bit_size) - strings.write_string(&sb, " }\n") - } - { - bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "lock_ok") - strings.write_string(&sb, "\t\tbool lock_ok () const { ") - fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) - strings.write_string(&sb, " }\n") - } - { - bit_offset := intrinsics.type_field_bit_offset(Encoding_Flags, "rep_ok") - strings.write_string(&sb, "\t\tbool rep_ok () const { ") - fmt.sbprintf(&sb, "return ((flags>>%du)&1) != 0;", bit_offset) - strings.write_string(&sb, " }\n") - } - } strings.write_string(&sb, "\n\n") { strings.write_string(&sb, "\t// Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS.\n") @@ -592,6 +605,11 @@ main :: proc() { return 0; } + bool reg_is_segment(/*Register*/ u16 r) { + auto c = reg_class(register_codes[r]); + return c == REG_CLASS_SEG; + } + bool integer_reg_width_is_exact() const { return true; } @@ -776,6 +794,24 @@ main :: proc() { } return 0; // OP_M (sizeless), OP_K (opmask width is data-dependent), OP_ONE_IMPL, moffs, ptr, sreg/cr/dr, etc. } + + bool target_has_feature(u64 enabled_features, u32 f) const { + return true; + } + char const *feature_name(u32 f) const { + return ""; + } + u16 operand_type_transfer_bytes(OperandType t) const { + gb_unused(t); + return 0; + } + bool operand_type_is_lane(OperandType t) const { + return false; + } + + String feature_name_from_form(Encoding const &form) const { + return {}; + } """) strings.write_string(&sb, "\n\n") @@ -798,6 +834,27 @@ main :: proc() { } return -1; } + + // Transfer size (bytes) a memory form's scaled index must match: + // shift == log2(bytes). Derived from the widest register operand in the form + // (the data being loaded/stored). 0 => no such constraint. Generic across ISAs. + u16 form_transfer_bytes(Encoding const &form) const { + u16 widest = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) { + break; + } + AsmOperandKind k = kind_from_operand_type(t); + if (k == AsmOperand_Register) { + u16 w = operand_type_bit_width(t); + if (w > widest) { + widest = w; + } + } + } + return cast(u16)(widest / 8); + } """) strings.write_string(&sb, "\n\n") diff --git a/core/rexcode/isa/x86/tablegen/gen.odin b/core/rexcode/isa/x86/tablegen/gen.odin index 41346c4ff..7b8b47275 100644 --- a/core/rexcode/isa/x86/tablegen/gen.odin +++ b/core/rexcode/isa/x86/tablegen/gen.odin @@ -267,6 +267,9 @@ emit_decode_tables :: proc() -> (n_legacy, n_vex, n_evex: int) { } } } + drop_aliased(&legacy) + drop_aliased(&vex) + drop_aliased(&evex) slice.sort_by(legacy[:], entry_less) slice.sort_by(vex[:], entry_less) slice.sort_by(evex[:], entry_less) @@ -290,6 +293,73 @@ emit_decode_tables :: proc() -> (n_legacy, n_vex, n_evex: int) { return len(legacy), len(vex), len(evex) } +/* + Several mnemonics can name ONE encoding (SHL and SAL are both /4 in the shift + group; JE and JZ are both 0x74). The decoder reads bytes, so it cannot tell + them apart and must simply print one name -- which means the choice has to be + declared, or it falls out of wherever the entry lands in the sort below. + + lib.MNEMONIC_ALIASES declares it. An alias entry is dropped here, before the + tables are written, so the name never reaches the decoder at all; it stays + fully encodable, since ENCODE_FORMS is built from the same table separately. + + The drop is CONDITIONAL on the canonical name covering the byte-identical + encoding. That is what keeps the rule safe for a mnemonic that is an alias at + one opcode and the only name at another: MOV aliases MOVABS at the `A0`-`A3` + moffs and `B8+r` imm64 forms, and dropping it unconditionally would leave + `88`/`89` -- ordinary register MOV -- with no decode entry at all. +*/ +drop_aliased :: proc(entries: ^[dynamic]Collected_Entry) { + Key :: struct { + esc: lib.Escape, + prefix: u8, + opcode: u8, + ext: u8, + ops: [4]lib.Operand_Type, + enc: [4]lib.Operand_Encoding, + flags: lib.Encoding_Flags, + vex_w: lib.VEX_W, + vex_l: lib.VEX_L, + } + key_of :: proc(e: Collected_Entry) -> Key { + return Key{e.esc, e.prefix, e.opcode, e.ext, e.ops, e.enc, e.flags, e.vex_w, e.vex_l} + } + /* Which mnemonics each indistinguishable encoding is spelled by. */ + names := make(map[Key][dynamic]lib.Mnemonic) + defer { + for _, list in names { delete(list) } + delete(names) + } + for e in entries { + key := key_of(e) + list, present := &names[key] + if !present { + names[key] = make([dynamic]lib.Mnemonic) + list = &names[key] + } + append(list, e.mnemonic) + } + + kept := 0 + for e in entries { + drop := false + for entry in lib.MNEMONIC_ALIASES { + if entry.alias != e.mnemonic { continue } + for spelling in names[key_of(e)] { + if spelling == entry.canonical { + drop = true + break + } + } + if drop { break } + } + if drop { continue } + entries[kept] = e + kept += 1 + } + resize(entries, kept) +} + entry_less :: proc(a, b: Collected_Entry) -> bool { if a.esc != b.esc { return int(a.esc) < int(b.esc) } if a.prefix != b.prefix { return a.prefix < b.prefix } @@ -470,6 +540,12 @@ write_flags :: proc(sb: ^strings.Builder, enc: union{lib.Encoding, Collected_Ent if flags.rep_ok { append(&parts, "rep_ok=true") } if flags.modrm_reg_ext { append(&parts, "modrm_reg_ext=true") } if flags.mode_32_only { append(&parts, "mode_32_only=true") } + if flags.addr_size != .DEFAULT { append(&parts, fmt.tprintf("addr_size=.%v", flags.addr_size)) } + /* EVERY Encoding_Flags field must be listed above. This enumerates the + struct by hand, so a field added there and forgotten here is silently + dropped from the generated tables -- the flag reads back as its zero value + and the instruction is quietly mis-modelled, with nothing to see in the + diff but its absence. `addr_size` was added and did exactly that. */ switch e in enc { case lib.Encoding: diff --git a/core/rexcode/isa/x86/tablegen/generated/decode_tables.odin b/core/rexcode/isa/x86/tablegen/generated/decode_tables.odin index 7dec7ce02..9e62a84bb 100644 --- a/core/rexcode/isa/x86/tablegen/generated/decode_tables.odin +++ b/core/rexcode/isa/x86/tablegen/generated/decode_tables.odin @@ -144,27 +144,27 @@ SIB_TABLE := [256]lib.SIB_Info{ } @(rodata) -LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ +LEGACY_DECODE_ENTRIES := [1231]lib.Decode_Entry{ {.NONE, 0, 0x00, 0xFF, .ADD, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x01, 0xFF, .ADD, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x01, 0xFF, .ADD, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x01, 0xFF, .ADD, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x01, 0xFF, .ADD, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x02, 0xFF, .ADD, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x03, 0xFF, .ADD, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x03, 0xFF, .ADD, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x03, 0xFF, .ADD, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x04, 0xFF, .ADD, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0x05, 0xFF, .ADD, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x05, 0xFF, .ADD, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, + {.NONE, 0, 0x05, 0xFF, .ADD, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x05, 0xFF, .ADD, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x08, 0xFF, .OR, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x09, 0xFF, .OR, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x09, 0xFF, .OR, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x09, 0xFF, .OR, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x09, 0xFF, .OR, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x0A, 0xFF, .OR, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x0B, 0xFF, .OR, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x0B, 0xFF, .OR, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x0B, 0xFF, .OR, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x0B, 0xFF, .OR, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x0C, 0xFF, .OR, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x0D, 0xFF, .OR, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x0D, 0xFF, .OR, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, @@ -182,115 +182,101 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0x15, 0xFF, .ADC, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x15, 0xFF, .ADC, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x18, 0xFF, .SBB, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x19, 0xFF, .SBB, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x19, 0xFF, .SBB, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x19, 0xFF, .SBB, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x19, 0xFF, .SBB, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x1A, 0xFF, .SBB, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x1B, 0xFF, .SBB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x1B, 0xFF, .SBB, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x1B, 0xFF, .SBB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x1B, 0xFF, .SBB, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x1C, 0xFF, .SBB, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0x1D, 0xFF, .SBB, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x1D, 0xFF, .SBB, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, + {.NONE, 0, 0x1D, 0xFF, .SBB, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x1D, 0xFF, .SBB, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x20, 0xFF, .AND, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x21, 0xFF, .AND, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x21, 0xFF, .AND, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x21, 0xFF, .AND, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x21, 0xFF, .AND, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x22, 0xFF, .AND, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x23, 0xFF, .AND, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x23, 0xFF, .AND, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x23, 0xFF, .AND, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x23, 0xFF, .AND, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x24, 0xFF, .AND, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, + {.NONE, 0, 0x25, 0xFF, .AND, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x25, 0xFF, .AND, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x25, 0xFF, .AND, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0x25, 0xFF, .AND, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x28, 0xFF, .SUB, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x29, 0xFF, .SUB, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x29, 0xFF, .SUB, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x29, 0xFF, .SUB, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x2A, 0xFF, .SUB, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x2B, 0xFF, .SUB, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x2B, 0xFF, .SUB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x2B, 0xFF, .SUB, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x2B, 0xFF, .SUB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x2C, 0xFF, .SUB, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x2D, 0xFF, .SUB, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x2D, 0xFF, .SUB, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x2D, 0xFF, .SUB, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x30, 0xFF, .XOR, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x31, 0xFF, .XOR, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x31, 0xFF, .XOR, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x31, 0xFF, .XOR, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x31, 0xFF, .XOR, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x31, 0xFF, .XOR, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x32, 0xFF, .XOR, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x33, 0xFF, .XOR, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x33, 0xFF, .XOR, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x33, 0xFF, .XOR, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x34, 0xFF, .XOR, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0x35, 0xFF, .XOR, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x35, 0xFF, .XOR, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x35, 0xFF, .XOR, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, + {.NONE, 0, 0x35, 0xFF, .XOR, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x38, 0xFF, .CMP, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x39, 0xFF, .CMP, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x39, 0xFF, .CMP, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x39, 0xFF, .CMP, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x39, 0xFF, .CMP, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x3A, 0xFF, .CMP, {.R8, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x3B, 0xFF, .CMP, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x3B, 0xFF, .CMP, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x3B, 0xFF, .CMP, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x3B, 0xFF, .CMP, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x3C, 0xFF, .CMP, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0x3D, 0xFF, .CMP, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x3D, 0xFF, .CMP, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, + {.NONE, 0, 0x3D, 0xFF, .CMP, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x3D, 0xFF, .CMP, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0x40, 0xFF, .INC, {.R16, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {mode_32_only=true, op_count=1}}, {.NONE, 0, 0x40, 0xFF, .INC, {.R32, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {mode_32_only=true, op_count=1}}, + {.NONE, 0, 0x40, 0xFF, .INC, {.R16, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {mode_32_only=true, op_count=1}}, {.NONE, 0, 0x48, 0xFF, .DEC, {.R16, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {mode_32_only=true, op_count=1}}, {.NONE, 0, 0x48, 0xFF, .DEC, {.R32, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {mode_32_only=true, op_count=1}}, - {.NONE, 0, 0x50, 0xFF, .PUSH, {.R16, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x50, 0xFF, .PUSH, {.R64, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {default_64=true, op_count=1}}, - {.NONE, 0, 0x58, 0xFF, .POP, {.R64, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {default_64=true, op_count=1}}, + {.NONE, 0, 0x50, 0xFF, .PUSH, {.R16, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x58, 0xFF, .POP, {.R16, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, + {.NONE, 0, 0x58, 0xFF, .POP, {.R64, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {default_64=true, op_count=1}}, {.NONE, 0, 0x62, 0xFF, .BOUND, {.R32, .M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {mode_32_only=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x62, 0xFF, .BOUND, {.R16, .M16_16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {mode_32_only=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x63, 0xFF, .MOVSXD, {.R64, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x63, 0xFF, .ARPL, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x68, 0xFF, .PUSH, {.IMM16, .NONE, .NONE, .NONE}, {.IW, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x68, 0xFF, .PUSH, {.IMM32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {op_count=1}}, + {.NONE, 0, 0x68, 0xFF, .PUSH, {.IMM16, .NONE, .NONE, .NONE}, {.IW, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x69, 0xFF, .IMUL, {.R32, .RM32, .IMM32, .NONE}, {.REG, .MR, .ID, .NONE}, {op_count=3, needs_modrm=true}}, {.NONE, 0, 0x69, 0xFF, .IMUL, {.R16, .RM16, .IMM16, .NONE}, {.REG, .MR, .IW, .NONE}, {op_count=3, needs_modrm=true}}, {.NONE, 0, 0x69, 0xFF, .IMUL, {.R64, .RM64, .IMM32, .NONE}, {.REG, .MR, .ID, .NONE}, {force_rex_w=true, op_count=3, needs_modrm=true}}, {.NONE, 0, 0x6A, 0xFF, .PUSH, {.IMM8SX, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, + {.NONE, 0, 0x6B, 0xFF, .IMUL, {.R32, .RM32, .IMM8SX, .NONE}, {.REG, .MR, .IB, .NONE}, {op_count=3, needs_modrm=true}}, {.NONE, 0, 0x6B, 0xFF, .IMUL, {.R16, .RM16, .IMM8SX, .NONE}, {.REG, .MR, .IB, .NONE}, {op_count=3, needs_modrm=true}}, {.NONE, 0, 0x6B, 0xFF, .IMUL, {.R64, .RM64, .IMM8SX, .NONE}, {.REG, .MR, .IB, .NONE}, {force_rex_w=true, op_count=3, needs_modrm=true}}, - {.NONE, 0, 0x6B, 0xFF, .IMUL, {.R32, .RM32, .IMM8SX, .NONE}, {.REG, .MR, .IB, .NONE}, {op_count=3, needs_modrm=true}}, {.NONE, 0, 0x70, 0xFF, .JO, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x71, 0xFF, .JNO, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x72, 0xFF, .JNAE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x72, 0xFF, .JC, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x72, 0xFF, .JB, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x73, 0xFF, .JAE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x73, 0xFF, .JNB, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x73, 0xFF, .JNC, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x74, 0xFF, .JE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x74, 0xFF, .JZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x75, 0xFF, .JNZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x75, 0xFF, .JNE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x76, 0xFF, .JBE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x76, 0xFF, .JNA, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x77, 0xFF, .JNBE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x77, 0xFF, .JA, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x78, 0xFF, .JS, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x79, 0xFF, .JNS, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x7A, 0xFF, .JPE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x7A, 0xFF, .JP, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x7B, 0xFF, .JNP, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x7B, 0xFF, .JPO, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x7C, 0xFF, .JNGE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x7C, 0xFF, .JL, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x7D, 0xFF, .JNL, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x7D, 0xFF, .JGE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x7E, 0xFF, .JLE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x7E, 0xFF, .JNG, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0x7F, 0xFF, .JNLE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x7F, 0xFF, .JG, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0x80, 0x00, .ADD, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x80, 0x01, .OR, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, @@ -301,60 +287,60 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0x80, 0x06, .XOR, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x80, 0x07, .CMP, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x00, .ADD, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x00, .ADD, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x00, .ADD, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x01, .OR, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x01, .OR, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x00, .ADD, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x01, .OR, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x01, .OR, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x01, .OR, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x02, .ADC, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x02, .ADC, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x02, .ADC, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x02, .ADC, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x03, .SBB, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x03, .SBB, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x03, .SBB, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x03, .SBB, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x03, .SBB, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x04, .AND, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x04, .AND, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x04, .AND, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x05, .SUB, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x05, .SUB, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x05, .SUB, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x05, .SUB, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x06, .XOR, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x06, .XOR, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x06, .XOR, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x06, .XOR, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x06, .XOR, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x81, 0x07, .CMP, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x07, .CMP, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x81, 0x07, .CMP, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x81, 0x07, .CMP, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x00, .ADD, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x00, .ADD, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x00, .ADD, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x00, .ADD, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x00, .ADD, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x01, .OR, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x01, .OR, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x01, .OR, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x01, .OR, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x02, .ADC, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x02, .ADC, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x02, .ADC, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x03, .SBB, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x03, .SBB, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x02, .ADC, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x02, .ADC, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x03, .SBB, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x04, .AND, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x03, .SBB, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x03, .SBB, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x04, .AND, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x04, .AND, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x04, .AND, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x05, .SUB, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x05, .SUB, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x05, .SUB, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x05, .SUB, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x83, 0x06, .XOR, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x06, .XOR, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x83, 0x06, .XOR, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x06, .XOR, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x07, .CMP, {.RM32, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x07, .CMP, {.RM64, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x83, 0x07, .CMP, {.RM16, .IMM8SX, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x84, 0xFF, .TEST, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x85, 0xFF, .TEST, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x85, 0xFF, .TEST, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x85, 0xFF, .TEST, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x85, 0xFF, .TEST, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x86, 0xFF, .XCHG, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x87, 0xFF, .XCHG, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x87, 0xFF, .XCHG, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0x87, 0xFF, .XCHG, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x87, 0xFF, .XCHG, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x88, 0xFF, .MOV, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x89, 0xFF, .MOV, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, @@ -369,71 +355,57 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0x8D, 0xFF, .LEA, {.R64, .M, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0x8D, 0xFF, .LEA, {.R16, .M, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x8D, 0xFF, .LEA, {.R32, .M, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x8E, 0xFF, .MOV, {.SREG, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x8E, 0xFF, .MOV, {.SREG, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {force_rex_w=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0x8F, 0x00, .POP, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0x8E, 0xFF, .MOV, {.SREG, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {op_count=2, needs_modrm=true}}, {.NONE, 0, 0x8F, 0x00, .POP, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {default_64=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0x8F, 0x00, .POP, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0x90, 0xFF, .XCHG, {.EAX_IMPL, .R32, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x90, 0xFF, .XCHG, {.AX_IMPL, .R16, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0x90, 0xFF, .XCHG, {.RAX_IMPL, .R64, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0x90, 0xFF, .NOP, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, + {.NONE, 0, 0x98, 0xFF, .CWDE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x98, 0xFF, .CDQE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true}}, {.NONE, 0, 0x98, 0xFF, .CBW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true}}, - {.NONE, 0, 0x98, 0xFF, .CWDE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, + {.NONE, 0, 0x99, 0xFF, .CQO, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true}}, {.NONE, 0, 0x99, 0xFF, .CDQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x99, 0xFF, .CWD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true}}, - {.NONE, 0, 0x99, 0xFF, .CQO, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true}}, {.NONE, 0, 0x9B, 0xFF, .WAIT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, - {.NONE, 0, 0x9B, 0xFF, .FWAIT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x9C, 0xFF, .PUSHFQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {default_64=true}}, - {.NONE, 0, 0x9C, 0xFF, .PUSHFD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x9C, 0xFF, .PUSHF, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true}}, - {.NONE, 0, 0x9D, 0xFF, .POPFD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, + {.NONE, 0, 0x9C, 0xFF, .PUSHFD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x9D, 0xFF, .POPFQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {default_64=true}}, + {.NONE, 0, 0x9D, 0xFF, .POPFD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x9D, 0xFF, .POPF, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true}}, {.NONE, 0, 0x9E, 0xFF, .SAHF, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0x9F, 0xFF, .LAHF, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xA0, 0xFF, .MOVABS, {.AL_IMPL, .MOFFS8, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA0, 0xFF, .MOV, {.AL_IMPL, .MOFFS8, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA1, 0xFF, .MOVABS, {.EAX_IMPL, .MOFFS32, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA1, 0xFF, .MOVABS, {.AX_IMPL, .MOFFS16, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA1, 0xFF, .MOVABS, {.RAX_IMPL, .MOFFS64, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, - {.NONE, 0, 0xA1, 0xFF, .MOV, {.EAX_IMPL, .MOFFS32, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA1, 0xFF, .MOV, {.AX_IMPL, .MOFFS16, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA1, 0xFF, .MOV, {.RAX_IMPL, .MOFFS64, .NONE, .NONE}, {.IMPL, .IQ, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0xA2, 0xFF, .MOVABS, {.MOFFS8, .AL_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA2, 0xFF, .MOV, {.MOFFS8, .AL_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA3, 0xFF, .MOVABS, {.MOFFS16, .AX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA3, 0xFF, .MOVABS, {.MOFFS64, .RAX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0xA3, 0xFF, .MOVABS, {.MOFFS32, .EAX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA3, 0xFF, .MOV, {.MOFFS16, .AX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA3, 0xFF, .MOV, {.MOFFS32, .EAX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA3, 0xFF, .MOV, {.MOFFS64, .RAX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, - {.NONE, 0, 0xA4, 0xFF, .MOVS, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, + {.NONE, 0, 0xA3, 0xFF, .MOVABS, {.MOFFS16, .AX_IMPL, .NONE, .NONE}, {.IQ, .IMPL, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA4, 0xFF, .MOVSB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, - {.NONE, 0, 0xA5, 0xFF, .MOVSW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, {.NONE, 0, 0xA5, 0xFF, .MOVSQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true, rep_ok=true}}, {.NONE, 0, 0xA5, 0xFF, .MOVSD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, + {.NONE, 0, 0xA5, 0xFF, .MOVSW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, {.NONE, 0, 0xA6, 0xFF, .CMPSB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, - {.NONE, 0, 0xA6, 0xFF, .CMPS, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, {.NONE, 0, 0xA7, 0xFF, .CMPSW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, - {.NONE, 0, 0xA7, 0xFF, .CMPSQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true, rep_ok=true}}, {.NONE, 0, 0xA7, 0xFF, .CMPSD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, + {.NONE, 0, 0xA7, 0xFF, .CMPSQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true, rep_ok=true}}, {.NONE, 0, 0xA8, 0xFF, .TEST, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA9, 0xFF, .TEST, {.AX_IMPL, .IMM16, .NONE, .NONE}, {.IMPL, .IW, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xA9, 0xFF, .TEST, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xA9, 0xFF, .TEST, {.RAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, - {.NONE, 0, 0xAA, 0xFF, .STOS, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, + {.NONE, 0, 0xA9, 0xFF, .TEST, {.EAX_IMPL, .IMM32, .NONE, .NONE}, {.IMPL, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xAA, 0xFF, .STOSB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, - {.NONE, 0, 0xAB, 0xFF, .STOSW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, {.NONE, 0, 0xAB, 0xFF, .STOSD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, + {.NONE, 0, 0xAB, 0xFF, .STOSW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, {.NONE, 0, 0xAB, 0xFF, .STOSQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true, rep_ok=true}}, {.NONE, 0, 0xAC, 0xFF, .LODSB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, - {.NONE, 0, 0xAC, 0xFF, .LODS, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, - {.NONE, 0, 0xAD, 0xFF, .LODSQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true, rep_ok=true}}, {.NONE, 0, 0xAD, 0xFF, .LODSD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, {.NONE, 0, 0xAD, 0xFF, .LODSW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, - {.NONE, 0, 0xAE, 0xFF, .SCAS, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, + {.NONE, 0, 0xAD, 0xFF, .LODSQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true, rep_ok=true}}, {.NONE, 0, 0xAE, 0xFF, .SCASB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, {.NONE, 0, 0xAF, 0xFF, .SCASD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {rep_ok=true}}, {.NONE, 0, 0xAF, 0xFF, .SCASW, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true, rep_ok=true}}, @@ -442,119 +414,105 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xB8, 0xFF, .MOVABS, {.R64, .IMM64, .NONE, .NONE}, {.OP_R, .IQ, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0xB8, 0xFF, .MOV, {.R32, .IMM32, .NONE, .NONE}, {.OP_R, .ID, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xB8, 0xFF, .MOV, {.R16, .IMM16, .NONE, .NONE}, {.OP_R, .IW, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xB8, 0xFF, .MOV, {.R64, .IMM64, .NONE, .NONE}, {.OP_R, .IQ, .NONE, .NONE}, {force_rex_w=true, op_count=2}}, {.NONE, 0, 0xC0, 0x00, .ROL, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC0, 0x01, .ROR, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC0, 0x02, .RCL, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC0, 0x03, .RCR, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC0, 0x04, .SHL, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC0, 0x04, .SAL, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC0, 0x05, .SHR, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC0, 0x07, .SAR, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x00, .ROL, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x00, .ROL, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x00, .ROL, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC1, 0x01, .ROR, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x01, .ROR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x01, .ROR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x01, .ROR, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x02, .RCL, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x02, .RCL, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x02, .RCL, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC1, 0x02, .RCL, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x03, .RCR, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x03, .RCR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x03, .RCR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x04, .SAL, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x04, .SAL, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x04, .SAL, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x04, .SHL, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x04, .SHL, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC1, 0x03, .RCR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x04, .SHL, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC1, 0x04, .SHL, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC1, 0x04, .SHL, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x05, .SHR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x05, .SHR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x05, .SHR, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC1, 0x07, .SAR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x07, .SAR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC1, 0x07, .SAR, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC1, 0x07, .SAR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC2, 0xFF, .RET, {.IMM16, .NONE, .NONE, .NONE}, {.IW, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xC3, 0xFF, .RET, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xC6, 0x00, .MOV, {.RM8, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xC7, 0x00, .MOV, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC7, 0x00, .MOV, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC7, 0x00, .MOV, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xC7, 0x00, .MOV, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xC8, 0xFF, .ENTER, {.IMM16, .IMM8, .NONE, .NONE}, {.IW, .IB, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xC9, 0xFF, .LEAVE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xCC, 0xFF, .INT3, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xCD, 0xFF, .INT, {.IMM8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xCE, 0xFF, .INTO, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, - {.NONE, 0, 0xCF, 0xFF, .IRET, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true}}, {.NONE, 0, 0xCF, 0xFF, .IRETD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, + {.NONE, 0, 0xCF, 0xFF, .IRET, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {opsize_16=true}}, {.NONE, 0, 0xCF, 0xFF, .IRETQ, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {force_rex_w=true}}, {.NONE, 0, 0xD0, 0x00, .ROL, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD0, 0x01, .ROR, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD0, 0x02, .RCL, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD0, 0x03, .RCR, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD0, 0x04, .SHL, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD0, 0x04, .SAL, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD0, 0x05, .SHR, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD0, 0x07, .SAR, {.RM8, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x00, .ROL, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x00, .ROL, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x00, .ROL, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x01, .ROR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x01, .ROR, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x00, .ROL, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x01, .ROR, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x01, .ROR, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x01, .ROR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x02, .RCL, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x02, .RCL, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x02, .RCL, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x03, .RCR, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x03, .RCR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x02, .RCL, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x03, .RCR, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x04, .SAL, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x04, .SAL, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x04, .SAL, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x04, .SHL, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x03, .RCR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x03, .RCR, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x04, .SHL, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x04, .SHL, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x04, .SHL, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x05, .SHR, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x05, .SHR, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x05, .SHR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x07, .SAR, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD1, 0x07, .SAR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x05, .SHR, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD1, 0x07, .SAR, {.RM32, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x07, .SAR, {.RM16, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD1, 0x07, .SAR, {.RM64, .ONE_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x00, .ROL, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x01, .ROR, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x02, .RCL, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x03, .RCR, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD2, 0x04, .SAL, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x04, .SHL, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x05, .SHR, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD2, 0x07, .SAR, {.RM8, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x00, .ROL, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x00, .ROL, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x00, .ROL, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD3, 0x01, .ROR, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x01, .ROR, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x01, .ROR, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x01, .ROR, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x02, .RCL, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x02, .RCL, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x02, .RCL, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD3, 0x02, .RCL, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x03, .RCR, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x03, .RCR, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x03, .RCR, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x04, .SAL, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x04, .SAL, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x04, .SAL, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x04, .SHL, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x04, .SHL, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x04, .SHL, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD3, 0x04, .SHL, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD3, 0x04, .SHL, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x05, .SHR, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x05, .SHR, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x05, .SHR, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xD3, 0x07, .SAR, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x07, .SAR, {.RM32, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD3, 0x07, .SAR, {.RM16, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xD3, 0x07, .SAR, {.RM64, .CL_IMPL, .NONE, .NONE}, {.MR, .IMPL, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xD7, 0xFF, .XLATB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, - {.NONE, 0, 0xD7, 0xFF, .XLAT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xD8, 0x01, .FMUL, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD8, 0x02, .FCOM, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD8, 0x03, .FCOMP, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -578,8 +536,6 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xD9, 0x04, .FLDENV, {.M, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD9, 0x05, .FLDCW, {.M16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD9, 0x06, .FNSTENV, {.M, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xD9, 0x06, .FSTENV, {.M, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xD9, 0x07, .FSTCW, {.M16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD9, 0x07, .FNSTCW, {.M16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD9, 0xC0, .FLD, {.STI, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xD9, 0xC8, .FXCH, {.STI, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, @@ -611,8 +567,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xD9, 0xFC, .FRNDINT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xD9, 0xFD, .FSCALE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xD9, 0xFE, .FSIN, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, - {.NONE, 0, 0xD9, 0xFF, .FLD, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {op_count=1, needs_modrm=true}}, {.NONE, 0, 0xD9, 0xFF, .FCOS, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, + {.NONE, 0, 0xD9, 0xFF, .FLD, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDA, 0x01, .FIMUL, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDA, 0x02, .FICOM, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDA, 0x03, .FICOMP, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -635,10 +591,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xDB, 0xC8, .FCMOVNE, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xDB, 0xD0, .FCMOVNBE, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xDB, 0xD8, .FCMOVNU, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xDB, 0xE2, .FCLEX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xDB, 0xE2, .FNCLEX, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xDB, 0xE3, .FNINIT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, - {.NONE, 0, 0xDB, 0xE3, .FINIT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xDB, 0xE8, .FUCOMI, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xDB, 0xF0, .FCOMI, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xDB, 0xFF, .FILD, {.M32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {op_count=1, needs_modrm=true}}, @@ -661,8 +615,6 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xDD, 0x03, .FSTP, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDD, 0x04, .FRSTOR, {.M, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDD, 0x06, .FNSAVE, {.M, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xDD, 0x06, .FSAVE, {.M, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xDD, 0x07, .FSTSW, {.M16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDD, 0x07, .FNSTSW, {.M16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDD, 0xC0, .FFREE, {.STI, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xDD, 0xD0, .FST, {.STI, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, @@ -702,22 +654,21 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xDF, 0x07, .FISTP, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xDF, 0xC0, .FFREEP, {.STI, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xDF, 0xE0, .FNSTSW, {.AX_IMPL, .NONE, .NONE, .NONE}, {.IMPL, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0xDF, 0xE0, .FSTSW, {.AX_IMPL, .NONE, .NONE, .NONE}, {.IMPL, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xDF, 0xE8, .FUCOMIP, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xDF, 0xF0, .FCOMIP, {.ST0_IMPL, .STI, .NONE, .NONE}, {.IMPL, .OP_R, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xDF, 0xFF, .FILD, {.M16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {op_count=1, needs_modrm=true}}, {.NONE, 0, 0xE0, 0xFF, .LOOPNE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xE1, 0xFF, .LOOPE, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xE2, 0xFF, .LOOP, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0xE3, 0xFF, .JRCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {force_rex_w=true, op_count=1}}, - {.NONE, 0, 0xE3, 0xFF, .JECXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, - {.NONE, 0, 0xE3, 0xFF, .JCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, + {.NONE, 0, 0xE3, 0xFF, .JRCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {addr_size=.A64, op_count=1}}, + {.NONE, 0, 0xE3, 0xFF, .JCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {addr_size=.A16, op_count=1}}, + {.NONE, 0, 0xE3, 0xFF, .JECXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {addr_size=.A32, op_count=1}}, {.NONE, 0, 0xE4, 0xFF, .IN, {.AL_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xE5, 0xFF, .IN, {.EAX_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {op_count=2}}, {.NONE, 0, 0xE5, 0xFF, .IN, {.AX_IMPL, .IMM8, .NONE, .NONE}, {.IMPL, .IB, .NONE, .NONE}, {opsize_16=true, op_count=2}}, {.NONE, 0, 0xE6, 0xFF, .OUT, {.IMM8, .AL_IMPL, .NONE, .NONE}, {.IB, .IMPL, .NONE, .NONE}, {op_count=2}}, - {.NONE, 0, 0xE7, 0xFF, .OUT, {.IMM8, .AX_IMPL, .NONE, .NONE}, {.IB, .IMPL, .NONE, .NONE}, {opsize_16=true, op_count=2}}, {.NONE, 0, 0xE7, 0xFF, .OUT, {.IMM8, .EAX_IMPL, .NONE, .NONE}, {.IB, .IMPL, .NONE, .NONE}, {op_count=2}}, + {.NONE, 0, 0xE7, 0xFF, .OUT, {.IMM8, .AX_IMPL, .NONE, .NONE}, {.IB, .IMPL, .NONE, .NONE}, {opsize_16=true, op_count=2}}, {.NONE, 0, 0xE8, 0xFF, .CALL, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xE9, 0xFF, .JMP, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {op_count=1}}, {.NONE, 0, 0xEB, 0xFF, .JMP, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, {op_count=1}}, @@ -737,18 +688,18 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xF6, 0x05, .IMUL, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF6, 0x06, .DIV, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF6, 0x07, .IDIV, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xF7, 0x00, .TEST, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x00, .TEST, {.RM32, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {.NONE, 0, 0xF7, 0x00, .TEST, {.RM16, .IMM16, .NONE, .NONE}, {.MR, .IW, .NONE, .NONE}, {modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x00, .TEST, {.RM64, .IMM32, .NONE, .NONE}, {.MR, .ID, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {.NONE, 0, 0xF7, 0x02, .NOT, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xF7, 0x02, .NOT, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x02, .NOT, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xF7, 0x03, .NEG, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xF7, 0x02, .NOT, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xF7, 0x02, .NOT, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x03, .NEG, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x03, .NEG, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xF7, 0x04, .MUL, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xF7, 0x03, .NEG, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x04, .MUL, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x04, .MUL, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xF7, 0x04, .MUL, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x05, .IMUL, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x05, .IMUL, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xF7, 0x05, .IMUL, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -766,16 +717,16 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xFD, 0xFF, .STD, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {}}, {.NONE, 0, 0xFE, 0x00, .INC, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFE, 0x01, .DEC, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xFF, 0x00, .INC, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xFF, 0x00, .INC, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x00, .INC, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xFF, 0x00, .INC, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xFF, 0x00, .INC, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x01, .DEC, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x01, .DEC, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x01, .DEC, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x02, .CALL, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {default_64=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {.NONE, 0, 0xFF, 0x03, .CALL, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x03, .CALL, {.M16_16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x03, .CALL, {.M16_32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {.NONE, 0, 0xFF, 0x03, .CALL, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x04, .JMP, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {default_64=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x05, .JMP, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 0, 0xFF, 0x05, .JMP, {.M16_32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -784,11 +735,11 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {.NONE, 0, 0xFF, 0x06, .PUSH, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {.NONE, 2, 0x90, 0xFF, .PAUSE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {prefix=2}}, {._0F, 0, 0x00, 0x00, .SLDT, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x00, 0x00, .SLDT, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x00, 0x00, .SLDT, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0x00, 0x00, .SLDT, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x00, 0x01, .STR, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x00, 0x01, .STR, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x00, 0x01, .STR, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0x00, 0x01, .STR, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x00, 0x02, .LLDT, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x00, 0x03, .LTR, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x00, 0x04, .VERR, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -797,8 +748,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0x01, 0x00, .SGDT, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x01, 0x01, .SIDT, {.M16_32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x01, 0x01, .SIDT, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x01, 0x02, .LGDT, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x01, 0x02, .LGDT, {.M16_32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0x01, 0x02, .LGDT, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x01, 0x03, .LIDT, {.M16_64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x01, 0x03, .LIDT, {.M16_32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x01, 0x04, .SMSW, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -842,8 +793,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0x01, 0xFE, .INVLPGB, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, {._0F, 0, 0x01, 0xFF, .TLBSYNC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, {._0F, 0, 0x02, 0xFF, .LAR, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x02, 0xFF, .LAR, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x02, 0xFF, .LAR, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x02, 0xFF, .LAR, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x03, 0xFF, .LSL, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x03, 0xFF, .LSL, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x03, 0xFF, .LSL, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, @@ -857,22 +808,22 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0x0D, 0x01, .PREFETCHW, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x10, 0xFF, .MOVUPS, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x11, 0xFF, .MOVUPS, {.XMM_M128, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x12, 0xFF, .MOVLPS, {.XMM, .M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x12, 0xFF, .MOVHLPS, {.XMM, .XMM, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x12, 0xFF, .MOVLPS, {.XMM, .M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x13, 0xFF, .MOVLPS, {.M64, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x14, 0xFF, .UNPCKLPS, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x15, 0xFF, .UNPCKHPS, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x16, 0xFF, .MOVHPS, {.XMM, .M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x16, 0xFF, .MOVLHPS, {.XMM, .XMM, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x16, 0xFF, .MOVHPS, {.XMM, .M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x17, 0xFF, .MOVHPS, {.M64, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x18, 0x00, .PREFETCHNTA, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x18, 0x01, .PREFETCHT0, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x18, 0x02, .PREFETCHT1, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x18, 0x03, .PREFETCHT2, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x1C, 0x00, .CLDEMOTE, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x1F, 0x00, .NOP, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x1F, 0x00, .NOP, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x1F, 0x00, .NOP, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0x1F, 0x00, .NOP, {.RM16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0x1F, 0x00, .NOP, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0x20, 0xFF, .MOV, {.R64, .CR, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x21, 0xFF, .MOV, {.R64, .DR, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x22, 0xFF, .MOV, {.CR, .R64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, @@ -888,96 +839,54 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0x33, 0xFF, .RDPMC, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, {._0F, 0, 0x34, 0xFF, .SYSENTER, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, {._0F, 0, 0x35, 0xFF, .SYSEXIT, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, - {._0F, 0, 0x40, 0xFF, .CMOVO, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x40, 0xFF, .CMOVO, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x40, 0xFF, .CMOVO, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x40, 0xFF, .CMOVO, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x41, 0xFF, .CMOVNO, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x41, 0xFF, .CMOVNO, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x41, 0xFF, .CMOVNO, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVNAE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVNAE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVNAE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVC, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVC, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVB, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x42, 0xFF, .CMOVB, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x42, 0xFF, .CMOVC, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVNC, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVNC, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVNC, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVNB, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVNB, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVNB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x42, 0xFF, .CMOVB, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x42, 0xFF, .CMOVB, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x43, 0xFF, .CMOVAE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x43, 0xFF, .CMOVAE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x43, 0xFF, .CMOVAE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x43, 0xFF, .CMOVAE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x44, 0xFF, .CMOVZ, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x44, 0xFF, .CMOVZ, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x44, 0xFF, .CMOVE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x44, 0xFF, .CMOVE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x44, 0xFF, .CMOVE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x44, 0xFF, .CMOVE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x44, 0xFF, .CMOVZ, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x45, 0xFF, .CMOVNZ, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x45, 0xFF, .CMOVNZ, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x45, 0xFF, .CMOVNZ, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x45, 0xFF, .CMOVNE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x45, 0xFF, .CMOVNE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x45, 0xFF, .CMOVNE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x46, 0xFF, .CMOVNA, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x46, 0xFF, .CMOVNA, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x46, 0xFF, .CMOVNA, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x46, 0xFF, .CMOVBE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x46, 0xFF, .CMOVBE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x46, 0xFF, .CMOVBE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x47, 0xFF, .CMOVNBE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x47, 0xFF, .CMOVNBE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x47, 0xFF, .CMOVNBE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x47, 0xFF, .CMOVA, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x47, 0xFF, .CMOVA, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x47, 0xFF, .CMOVA, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x47, 0xFF, .CMOVA, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x48, 0xFF, .CMOVS, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x48, 0xFF, .CMOVS, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x48, 0xFF, .CMOVS, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x48, 0xFF, .CMOVS, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x49, 0xFF, .CMOVNS, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x49, 0xFF, .CMOVNS, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x49, 0xFF, .CMOVNS, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4A, 0xFF, .CMOVPE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4A, 0xFF, .CMOVPE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4A, 0xFF, .CMOVPE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4A, 0xFF, .CMOVP, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4A, 0xFF, .CMOVP, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x49, 0xFF, .CMOVNS, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4A, 0xFF, .CMOVP, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4B, 0xFF, .CMOVPO, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4B, 0xFF, .CMOVPO, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4B, 0xFF, .CMOVPO, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4B, 0xFF, .CMOVNP, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4B, 0xFF, .CMOVNP, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4A, 0xFF, .CMOVP, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4A, 0xFF, .CMOVP, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4B, 0xFF, .CMOVNP, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4C, 0xFF, .CMOVNGE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4C, 0xFF, .CMOVNGE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4C, 0xFF, .CMOVNGE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4C, 0xFF, .CMOVL, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4B, 0xFF, .CMOVNP, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4B, 0xFF, .CMOVNP, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4C, 0xFF, .CMOVL, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4C, 0xFF, .CMOVL, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4C, 0xFF, .CMOVL, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4D, 0xFF, .CMOVNL, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4D, 0xFF, .CMOVNL, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4D, 0xFF, .CMOVNL, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4D, 0xFF, .CMOVGE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4D, 0xFF, .CMOVGE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4D, 0xFF, .CMOVGE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4E, 0xFF, .CMOVNG, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4E, 0xFF, .CMOVNG, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4E, 0xFF, .CMOVNG, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4E, 0xFF, .CMOVLE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4E, 0xFF, .CMOVLE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4D, 0xFF, .CMOVGE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4E, 0xFF, .CMOVLE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4F, 0xFF, .CMOVNLE, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4F, 0xFF, .CMOVNLE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4F, 0xFF, .CMOVNLE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4E, 0xFF, .CMOVLE, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4E, 0xFF, .CMOVLE, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0x4F, 0xFF, .CMOVG, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4F, 0xFF, .CMOVG, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x4F, 0xFF, .CMOVG, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0x4F, 0xFF, .CMOVG, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x50, 0xFF, .MOVMSKPS, {.R64, .XMM, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0x50, 0xFF, .MOVMSKPS, {.R32, .XMM, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x51, 0xFF, .SQRTPS, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, @@ -1004,88 +913,60 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0x7F, 0xFF, .MOVQ, {.MM_M64, .MM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0x80, 0xFF, .JO, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x81, 0xFF, .JNO, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x82, 0xFF, .JC, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x82, 0xFF, .JB, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x82, 0xFF, .JNAE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x83, 0xFF, .JNC, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x83, 0xFF, .JNB, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x83, 0xFF, .JAE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x84, 0xFF, .JZ, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x84, 0xFF, .JE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x85, 0xFF, .JNZ, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x85, 0xFF, .JNE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x86, 0xFF, .JBE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x86, 0xFF, .JNA, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x87, 0xFF, .JNBE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x87, 0xFF, .JA, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x88, 0xFF, .JS, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x89, 0xFF, .JNS, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x8A, 0xFF, .JP, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x8A, 0xFF, .JPE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x8B, 0xFF, .JPO, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x8B, 0xFF, .JNP, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x8C, 0xFF, .JNGE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x8C, 0xFF, .JL, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x8D, 0xFF, .JNL, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x8D, 0xFF, .JGE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x8E, 0xFF, .JNG, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x8E, 0xFF, .JLE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, - {._0F, 0, 0x8F, 0xFF, .JNLE, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x8F, 0xFF, .JG, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0x90, 0xFF, .SETO, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x91, 0xFF, .SETNO, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x92, 0xFF, .SETNAE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x92, 0xFF, .SETC, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x92, 0xFF, .SETB, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x93, 0xFF, .SETNC, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x93, 0xFF, .SETNB, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x93, 0xFF, .SETAE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x94, 0xFF, .SETZ, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x94, 0xFF, .SETE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x95, 0xFF, .SETNZ, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x95, 0xFF, .SETNE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x96, 0xFF, .SETNA, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x96, 0xFF, .SETBE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x97, 0xFF, .SETNBE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x97, 0xFF, .SETA, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x98, 0xFF, .SETS, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x99, 0xFF, .SETNS, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x9A, 0xFF, .SETPE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x9A, 0xFF, .SETP, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x9B, 0xFF, .SETPO, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x9B, 0xFF, .SETNP, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x9C, 0xFF, .SETNGE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x9C, 0xFF, .SETL, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x9D, 0xFF, .SETNL, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x9D, 0xFF, .SETGE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x9E, 0xFF, .SETNG, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x9E, 0xFF, .SETLE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, - {._0F, 0, 0x9F, 0xFF, .SETNLE, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0x9F, 0xFF, .SETG, {.RM8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1, needs_modrm=true}}, {._0F, 0, 0xA0, 0xFF, .PUSH, {.SREG, .NONE, .NONE, .NONE}, {.IMPL, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0xA1, 0xFF, .POP, {.SREG, .NONE, .NONE, .NONE}, {.IMPL, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0xA2, 0xFF, .CPUID, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, {._0F, 0, 0xA3, 0xFF, .BT, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xA3, 0xFF, .BT, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xA3, 0xFF, .BT, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xA3, 0xFF, .BT, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xA4, 0xFF, .SHLD, {.RM64, .R64, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, force_rex_w=true, op_count=3, needs_modrm=true}}, {._0F, 0, 0xA4, 0xFF, .SHLD, {.RM16, .R16, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, {._0F, 0, 0xA4, 0xFF, .SHLD, {.RM32, .R32, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, + {._0F, 0, 0xA5, 0xFF, .SHLD, {.RM64, .R64, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, force_rex_w=true, op_count=3, needs_modrm=true}}, {._0F, 0, 0xA5, 0xFF, .SHLD, {.RM16, .R16, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, {._0F, 0, 0xA5, 0xFF, .SHLD, {.RM32, .R32, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, - {._0F, 0, 0xA5, 0xFF, .SHLD, {.RM64, .R64, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, force_rex_w=true, op_count=3, needs_modrm=true}}, {._0F, 0, 0xA8, 0xFF, .PUSH, {.SREG, .NONE, .NONE, .NONE}, {.IMPL, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0xA9, 0xFF, .POP, {.SREG, .NONE, .NONE, .NONE}, {.IMPL, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0xAA, 0xFF, .RSM, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, - {._0F, 0, 0xAB, 0xFF, .BTS, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xAB, 0xFF, .BTS, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xAB, 0xFF, .BTS, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xAC, 0xFF, .SHRD, {.RM32, .R32, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, - {._0F, 0, 0xAC, 0xFF, .SHRD, {.RM16, .R16, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, + {._0F, 0, 0xAB, 0xFF, .BTS, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xAC, 0xFF, .SHRD, {.RM64, .R64, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, force_rex_w=true, op_count=3, needs_modrm=true}}, + {._0F, 0, 0xAC, 0xFF, .SHRD, {.RM16, .R16, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, + {._0F, 0, 0xAC, 0xFF, .SHRD, {.RM32, .R32, .IMM8, .NONE}, {.MR, .REG, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, + {._0F, 0, 0xAD, 0xFF, .SHRD, {.RM64, .R64, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, force_rex_w=true, op_count=3, needs_modrm=true}}, {._0F, 0, 0xAD, 0xFF, .SHRD, {.RM16, .R16, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, {._0F, 0, 0xAD, 0xFF, .SHRD, {.RM32, .R32, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, - {._0F, 0, 0xAD, 0xFF, .SHRD, {.RM64, .R64, .CL_IMPL, .NONE}, {.MR, .REG, .IMPL, .NONE}, {esc=._0F, force_rex_w=true, op_count=3, needs_modrm=true}}, {._0F, 0, 0xAE, 0x00, .FXSAVE, {.M512, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0x00, .FXSAVE64, {.M512, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0x01, .FXRSTOR, {.M512, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -1094,8 +975,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0xAE, 0x04, .XSAVE64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0x05, .XRSTOR, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0x05, .XRSTOR64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0xAE, 0x06, .XSAVEOPT, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0x06, .XSAVEOPT64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0xAE, 0x06, .XSAVEOPT, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0x07, .CLFLUSH, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xAE, 0xE8, .LFENCE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, {._0F, 0, 0xAE, 0xF0, .MFENCE, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F}}, @@ -1105,65 +986,65 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 0, 0xAF, 0xFF, .IMUL, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB0, 0xFF, .CMPXCHG, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB1, 0xFF, .CMPXCHG, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xB1, 0xFF, .CMPXCHG, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB1, 0xFF, .CMPXCHG, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xB3, 0xFF, .BTR, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xB1, 0xFF, .CMPXCHG, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB3, 0xFF, .BTR, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB3, 0xFF, .BTR, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xB6, 0xFF, .MOVZX, {.R32, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xB6, 0xFF, .MOVZX, {.R16, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xB3, 0xFF, .BTR, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB6, 0xFF, .MOVZX, {.R64, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xB6, 0xFF, .MOVZX, {.R16, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xB6, 0xFF, .MOVZX, {.R32, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB7, 0xFF, .MOVZX, {.R32, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB7, 0xFF, .MOVZX, {.R64, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xB9, 0xFF, .UD1, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBA, 0x04, .BT, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x04, .BT, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x04, .BT, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBA, 0x04, .BT, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x05, .BTS, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x05, .BTS, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x05, .BTS, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBA, 0x06, .BTR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBA, 0x06, .BTR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x06, .BTR, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBA, 0x06, .BTR, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBA, 0x06, .BTR, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x07, .BTC, {.RM64, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBA, 0x07, .BTC, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBA, 0x07, .BTC, {.RM16, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBB, 0xFF, .BTC, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBA, 0x07, .BTC, {.RM32, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBB, 0xFF, .BTC, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBB, 0xFF, .BTC, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBB, 0xFF, .BTC, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBC, 0xFF, .BSF, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBC, 0xFF, .BSF, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBC, 0xFF, .BSF, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBC, 0xFF, .BSF, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBD, 0xFF, .BSR, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBD, 0xFF, .BSR, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBD, 0xFF, .BSR, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBD, 0xFF, .BSR, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xBE, 0xFF, .MOVSX, {.R32, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBE, 0xFF, .MOVSX, {.R16, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xBE, 0xFF, .MOVSX, {.R32, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBE, 0xFF, .MOVSX, {.R64, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBF, 0xFF, .MOVSX, {.R64, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xBF, 0xFF, .MOVSX, {.R32, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, {._0F, 0, 0xC0, 0xFF, .XADD, {.RM8, .R8, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, + {._0F, 0, 0xC1, 0xFF, .XADD, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xC1, 0xFF, .XADD, {.RM64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xC1, 0xFF, .XADD, {.RM16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, - {._0F, 0, 0xC1, 0xFF, .XADD, {.RM32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, lock_ok=true, op_count=2, needs_modrm=true}}, {._0F, 0, 0xC2, 0xFF, .CMPPS, {.XMM, .XMM_M128, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, {._0F, 0, 0xC6, 0xFF, .SHUFPS, {.XMM, .XMM_M128, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, op_count=3, needs_modrm=true}}, - {._0F, 0, 0xC7, 0x01, .CMPXCHG8B, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x01, .CMPXCHG16B, {.M128, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0xC7, 0x03, .XRSTORS64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0xC7, 0x01, .CMPXCHG8B, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, lock_ok=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x03, .XRSTORS, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0xC7, 0x04, .XSAVEC64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0xC7, 0x03, .XRSTORS64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x04, .XSAVEC, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0xC7, 0x05, .XSAVES, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0xC7, 0x04, .XSAVEC64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x05, .XSAVES64, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0xC7, 0x05, .XSAVES, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x06, .VMPTRLD, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x06, .RDRAND, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x06, .RDRAND, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x06, .RDRAND, {.R16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x07, .RDSEED, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 0, 0xC7, 0x07, .RDSEED, {.R16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x07, .RDSEED, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC7, 0x07, .VMPTRST, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 0, 0xC7, 0x07, .RDSEED, {.R16, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 0, 0xC8, 0xFF, .BSWAP, {.R64, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {esc=._0F, force_rex_w=true, op_count=1}}, {._0F, 0, 0xC8, 0xFF, .BSWAP, {.R32, .NONE, .NONE, .NONE}, {.OP_R, .NONE, .NONE, .NONE}, {esc=._0F, op_count=1}}, {._0F, 0, 0xFF, 0xFF, .UD0, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, op_count=2, needs_modrm=true}}, @@ -1209,8 +1090,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 1, 0x6B, 0xFF, .PACKSSDW, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, {._0F, 1, 0x6C, 0xFF, .PUNPCKLQDQ, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, {._0F, 1, 0x6D, 0xFF, .PUNPCKHQDQ, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, - {._0F, 1, 0x6E, 0xFF, .MOVQ, {.XMM, .R64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 1, 0x6E, 0xFF, .MOVD, {.XMM, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, + {._0F, 1, 0x6E, 0xFF, .MOVQ, {.XMM, .R64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 1, 0x6F, 0xFF, .MOVDQA, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, {._0F, 1, 0x70, 0xFF, .PSHUFD, {.XMM, .XMM_M128, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, {._0F, 1, 0x71, 0x02, .PSRLW, {.XMM, .IMM8, .NONE, .NONE}, {.MR, .IB, .NONE, .NONE}, {esc=._0F, prefix=1, modrm_reg_ext=true, op_count=2, needs_modrm=true}}, @@ -1226,8 +1107,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 1, 0x76, 0xFF, .PCMPEQD, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, {._0F, 1, 0x7C, 0xFF, .HADDPD, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, {._0F, 1, 0x7D, 0xFF, .HSUBPD, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, - {._0F, 1, 0x7E, 0xFF, .MOVQ, {.R64, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, prefix=1, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 1, 0x7E, 0xFF, .MOVD, {.RM32, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, + {._0F, 1, 0x7E, 0xFF, .MOVQ, {.R64, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, prefix=1, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 1, 0x7F, 0xFF, .MOVDQA, {.XMM_M128, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, {._0F, 1, 0xAE, 0x06, .TPAUSE, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=1, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 1, 0xAE, 0x06, .CLWB, {.M8, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=1, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -1235,8 +1116,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 1, 0xC2, 0xFF, .CMPPD, {.XMM, .XMM_M128, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, {._0F, 1, 0xC4, 0xFF, .PINSRW, {.XMM, .M16, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, {._0F, 1, 0xC4, 0xFF, .PINSRW, {.XMM, .R32, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, - {._0F, 1, 0xC5, 0xFF, .PEXTRW, {.R32, .XMM, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, {._0F, 1, 0xC5, 0xFF, .PEXTRW, {.R64, .XMM, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, force_rex_w=true, op_count=3, needs_modrm=true}}, + {._0F, 1, 0xC5, 0xFF, .PEXTRW, {.R32, .XMM, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, {._0F, 1, 0xC6, 0xFF, .SHUFPD, {.XMM, .XMM_M128, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=1, op_count=3, needs_modrm=true}}, {._0F, 1, 0xC7, 0x06, .VMCLEAR, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=1, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 1, 0xD0, 0xFF, .ADDSUBPD, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=1, op_count=2, needs_modrm=true}}, @@ -1297,16 +1178,16 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 2, 0x11, 0xFF, .MOVSS, {.XMM_M32, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0x12, 0xFF, .MOVSLDUP, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0x16, 0xFF, .MOVSHDUP, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, - {._0F, 2, 0x1E, 0x01, .RDSSPQ, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0x1E, 0x01, .RDSSPD, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 2, 0x1E, 0x01, .RDSSPQ, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0x1E, 0xFA, .ENDBR64, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2}}, {._0F, 2, 0x1E, 0xFB, .ENDBR32, {.NONE, .NONE, .NONE, .NONE}, {.NONE, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2}}, - {._0F, 2, 0x2A, 0xFF, .CVTSI2SS, {.XMM, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0x2A, 0xFF, .CVTSI2SS, {.XMM, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 2, 0x2A, 0xFF, .CVTSI2SS, {.XMM, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0x2C, 0xFF, .CVTTSS2SI, {.R64, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 2, 0x2C, 0xFF, .CVTTSS2SI, {.R32, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, - {._0F, 2, 0x2D, 0xFF, .CVTSS2SI, {.R64, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 2, 0x2D, 0xFF, .CVTSS2SI, {.R32, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, + {._0F, 2, 0x2D, 0xFF, .CVTSS2SI, {.R64, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 2, 0x51, 0xFF, .SQRTSS, {.XMM, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0x52, 0xFF, .RSQRTSS, {.XMM, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0x53, 0xFF, .RCPSS, {.XMM, .XMM_M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, @@ -1326,25 +1207,25 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 2, 0xAE, 0x00, .RDFSBASE, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x01, .RDGSBASE, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x01, .RDGSBASE, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 2, 0xAE, 0x02, .WRFSBASE, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x02, .WRFSBASE, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 2, 0xAE, 0x02, .WRFSBASE, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x03, .WRGSBASE, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x03, .WRGSBASE, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x04, .PTWRITE, {.RM32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x04, .PTWRITE, {.RM64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, - {._0F, 2, 0xAE, 0x05, .INCSSPD, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x05, .INCSSPQ, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, + {._0F, 2, 0xAE, 0x05, .INCSSPD, {.R32, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x06, .UMONITOR, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xAE, 0x06, .CLRSSBSY, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xB8, 0xFF, .POPCNT, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 2, 0xB8, 0xFF, .POPCNT, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0xB8, 0xFF, .POPCNT, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, - {._0F, 2, 0xBC, 0xFF, .TZCNT, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, - {._0F, 2, 0xBC, 0xFF, .TZCNT, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0xBC, 0xFF, .TZCNT, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, + {._0F, 2, 0xBC, 0xFF, .TZCNT, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, + {._0F, 2, 0xBC, 0xFF, .TZCNT, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, + {._0F, 2, 0xBD, 0xFF, .LZCNT, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 2, 0xBD, 0xFF, .LZCNT, {.R16, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, {._0F, 2, 0xBD, 0xFF, .LZCNT, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, op_count=2, needs_modrm=true}}, - {._0F, 2, 0xBD, 0xFF, .LZCNT, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 2, 0xC2, 0xFF, .CMPSS, {.XMM, .XMM_M32, .IMM8, .NONE}, {.REG, .MR, .IB, .NONE}, {esc=._0F, prefix=2, op_count=3, needs_modrm=true}}, {._0F, 2, 0xC7, 0x06, .VMXON, {.M64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, {._0F, 2, 0xC7, 0x07, .RDPID, {.R64, .NONE, .NONE, .NONE}, {.MR, .NONE, .NONE, .NONE}, {esc=._0F, prefix=2, modrm_reg_ext=true, op_count=1, needs_modrm=true}}, @@ -1354,8 +1235,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F, 3, 0x10, 0xFF, .MOVSD, {.XMM, .XMM_M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, op_count=2, needs_modrm=true}}, {._0F, 3, 0x11, 0xFF, .MOVSD, {.XMM_M64, .XMM, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F, prefix=3, op_count=2, needs_modrm=true}}, {._0F, 3, 0x12, 0xFF, .MOVDDUP, {.XMM, .XMM_M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, op_count=2, needs_modrm=true}}, - {._0F, 3, 0x2A, 0xFF, .CVTSI2SD, {.XMM, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 3, 0x2A, 0xFF, .CVTSI2SD, {.XMM, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, op_count=2, needs_modrm=true}}, + {._0F, 3, 0x2A, 0xFF, .CVTSI2SD, {.XMM, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 3, 0x2C, 0xFF, .CVTTSD2SI, {.R32, .XMM_M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, op_count=2, needs_modrm=true}}, {._0F, 3, 0x2C, 0xFF, .CVTTSD2SI, {.R64, .XMM_M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F, 3, 0x2D, 0xFF, .CVTSD2SI, {.R32, .XMM_M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F, prefix=3, op_count=2, needs_modrm=true}}, @@ -1385,9 +1266,9 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F38, 0, 0xF0, 0xFF, .MOVBE, {.R64, .M64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF0, 0xFF, .MOVBE, {.R16, .M16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF0, 0xFF, .MOVBE, {.R32, .M32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, op_count=2, needs_modrm=true}}, - {._0F38, 0, 0xF1, 0xFF, .MOVBE, {.M64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF1, 0xFF, .MOVBE, {.M16, .R16, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF1, 0xFF, .MOVBE, {.M32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, op_count=2, needs_modrm=true}}, + {._0F38, 0, 0xF1, 0xFF, .MOVBE, {.M64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF6, 0xFF, .WRSSD, {.M32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF6, 0xFF, .WRSSQ, {.M64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 0, 0xF9, 0xFF, .MOVDIRI, {.M32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, op_count=2, needs_modrm=true}}, @@ -1442,8 +1323,8 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F38, 1, 0x41, 0xFF, .PHMINPOSUW, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, {._0F38, 1, 0x80, 0xFF, .INVEPT, {.R64, .M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, {._0F38, 1, 0x81, 0xFF, .INVVPID, {.R64, .M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, - {._0F38, 1, 0x82, 0xFF, .INVPCID, {.R64, .M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, {._0F38, 1, 0x82, 0xFF, .INVPCID, {.R32, .M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, + {._0F38, 1, 0x82, 0xFF, .INVPCID, {.R64, .M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, {._0F38, 1, 0xDB, 0xFF, .AESIMC, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, {._0F38, 1, 0xDC, 0xFF, .AESENC, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, {._0F38, 1, 0xDD, 0xFF, .AESENCLAST, {.XMM, .XMM_M128, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=1, op_count=2, needs_modrm=true}}, @@ -1463,9 +1344,9 @@ LEGACY_DECODE_ENTRIES := [1350]lib.Decode_Entry{ {._0F38, 2, 0xFC, 0xFF, .AXOR, {.M64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, prefix=2, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 3, 0xF0, 0xFF, .CRC32, {.R32, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, op_count=2, needs_modrm=true}}, {._0F38, 3, 0xF0, 0xFF, .CRC32, {.R64, .RM8, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F38, 3, 0xF1, 0xFF, .CRC32, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, - {._0F38, 3, 0xF1, 0xFF, .CRC32, {.R32, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, op_count=2, needs_modrm=true}}, {._0F38, 3, 0xF1, 0xFF, .CRC32, {.R32, .RM32, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, op_count=2, needs_modrm=true}}, + {._0F38, 3, 0xF1, 0xFF, .CRC32, {.R32, .RM16, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, op_count=2, needs_modrm=true}}, + {._0F38, 3, 0xF1, 0xFF, .CRC32, {.R64, .RM64, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 3, 0xF8, 0xFF, .ENQCMD, {.R64, .M512, .NONE, .NONE}, {.REG, .MR, .NONE, .NONE}, {esc=._0F38, prefix=3, op_count=2, needs_modrm=true}}, {._0F38, 3, 0xFC, 0xFF, .AOR, {.M64, .R64, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, prefix=3, force_rex_w=true, op_count=2, needs_modrm=true}}, {._0F38, 3, 0xFC, 0xFF, .AOR, {.M32, .R32, .NONE, .NONE}, {.MR, .REG, .NONE, .NONE}, {esc=._0F38, prefix=3, op_count=2, needs_modrm=true}}, @@ -2696,119 +2577,119 @@ DECODE_INDEX_LEGACY := [4][256]lib.Decode_Index{ 0x6B = { 114, 3}, 0x70 = { 117, 1}, 0x71 = { 118, 1}, - 0x72 = { 119, 3}, - 0x73 = { 122, 3}, - 0x74 = { 125, 2}, - 0x75 = { 127, 2}, - 0x76 = { 129, 2}, - 0x77 = { 131, 2}, - 0x78 = { 133, 1}, - 0x79 = { 134, 1}, - 0x7A = { 135, 2}, - 0x7B = { 137, 2}, - 0x7C = { 139, 2}, - 0x7D = { 141, 2}, - 0x7E = { 143, 2}, - 0x7F = { 145, 2}, - 0x80 = { 147, 8}, - 0x81 = { 155, 24}, - 0x83 = { 179, 24}, - 0x84 = { 203, 1}, - 0x85 = { 204, 3}, - 0x86 = { 207, 1}, - 0x87 = { 208, 3}, - 0x88 = { 211, 1}, - 0x89 = { 212, 3}, - 0x8A = { 215, 1}, - 0x8B = { 216, 3}, - 0x8C = { 219, 2}, - 0x8D = { 221, 3}, - 0x8E = { 224, 2}, - 0x8F = { 226, 2}, - 0x90 = { 228, 4}, - 0x98 = { 232, 3}, - 0x99 = { 235, 3}, - 0x9B = { 238, 2}, - 0x9C = { 240, 3}, - 0x9D = { 243, 3}, - 0x9E = { 246, 1}, - 0x9F = { 247, 1}, - 0xA0 = { 248, 2}, - 0xA1 = { 250, 6}, - 0xA2 = { 256, 2}, - 0xA3 = { 258, 6}, - 0xA4 = { 264, 2}, - 0xA5 = { 266, 3}, - 0xA6 = { 269, 2}, - 0xA7 = { 271, 3}, - 0xA8 = { 274, 1}, - 0xA9 = { 275, 3}, - 0xAA = { 278, 2}, - 0xAB = { 280, 3}, - 0xAC = { 283, 2}, - 0xAD = { 285, 3}, - 0xAE = { 288, 2}, - 0xAF = { 290, 3}, - 0xB0 = { 293, 1}, - 0xB8 = { 294, 4}, - 0xC0 = { 298, 8}, - 0xC1 = { 306, 24}, - 0xC2 = { 330, 1}, - 0xC3 = { 331, 1}, - 0xC6 = { 332, 1}, - 0xC7 = { 333, 3}, - 0xC8 = { 336, 1}, - 0xC9 = { 337, 1}, - 0xCC = { 338, 1}, - 0xCD = { 339, 1}, - 0xCE = { 340, 1}, - 0xCF = { 341, 3}, - 0xD0 = { 344, 8}, - 0xD1 = { 352, 24}, - 0xD2 = { 376, 8}, - 0xD3 = { 384, 24}, - 0xD7 = { 408, 2}, - 0xD8 = { 410, 18}, - 0xD9 = { 428, 40}, - 0xDA = { 468, 13}, - 0xDB = { 481, 16}, - 0xDC = { 497, 14}, - 0xDD = { 511, 16}, - 0xDE = { 527, 21}, - 0xDF = { 548, 13}, - 0xE0 = { 561, 1}, - 0xE1 = { 562, 1}, - 0xE2 = { 563, 1}, - 0xE3 = { 564, 3}, - 0xE4 = { 567, 1}, - 0xE5 = { 568, 2}, - 0xE6 = { 570, 1}, - 0xE7 = { 571, 2}, - 0xE8 = { 573, 1}, - 0xE9 = { 574, 1}, - 0xEB = { 575, 1}, - 0xEC = { 576, 1}, - 0xED = { 577, 2}, - 0xEE = { 579, 1}, - 0xEF = { 580, 2}, - 0xF0 = { 582, 1}, - 0xF4 = { 583, 1}, - 0xF5 = { 584, 1}, - 0xF6 = { 585, 7}, - 0xF7 = { 592, 21}, - 0xF8 = { 613, 1}, - 0xF9 = { 614, 1}, - 0xFA = { 615, 1}, - 0xFB = { 616, 1}, - 0xFC = { 617, 1}, - 0xFD = { 618, 1}, - 0xFE = { 619, 2}, - 0xFF = { 621, 16}, + 0x72 = { 119, 1}, + 0x73 = { 120, 1}, + 0x74 = { 121, 1}, + 0x75 = { 122, 1}, + 0x76 = { 123, 1}, + 0x77 = { 124, 1}, + 0x78 = { 125, 1}, + 0x79 = { 126, 1}, + 0x7A = { 127, 1}, + 0x7B = { 128, 1}, + 0x7C = { 129, 1}, + 0x7D = { 130, 1}, + 0x7E = { 131, 1}, + 0x7F = { 132, 1}, + 0x80 = { 133, 8}, + 0x81 = { 141, 24}, + 0x83 = { 165, 24}, + 0x84 = { 189, 1}, + 0x85 = { 190, 3}, + 0x86 = { 193, 1}, + 0x87 = { 194, 3}, + 0x88 = { 197, 1}, + 0x89 = { 198, 3}, + 0x8A = { 201, 1}, + 0x8B = { 202, 3}, + 0x8C = { 205, 2}, + 0x8D = { 207, 3}, + 0x8E = { 210, 2}, + 0x8F = { 212, 2}, + 0x90 = { 214, 4}, + 0x98 = { 218, 3}, + 0x99 = { 221, 3}, + 0x9B = { 224, 1}, + 0x9C = { 225, 3}, + 0x9D = { 228, 3}, + 0x9E = { 231, 1}, + 0x9F = { 232, 1}, + 0xA0 = { 233, 1}, + 0xA1 = { 234, 3}, + 0xA2 = { 237, 1}, + 0xA3 = { 238, 3}, + 0xA4 = { 241, 1}, + 0xA5 = { 242, 3}, + 0xA6 = { 245, 1}, + 0xA7 = { 246, 3}, + 0xA8 = { 249, 1}, + 0xA9 = { 250, 3}, + 0xAA = { 253, 1}, + 0xAB = { 254, 3}, + 0xAC = { 257, 1}, + 0xAD = { 258, 3}, + 0xAE = { 261, 1}, + 0xAF = { 262, 3}, + 0xB0 = { 265, 1}, + 0xB8 = { 266, 3}, + 0xC0 = { 269, 7}, + 0xC1 = { 276, 21}, + 0xC2 = { 297, 1}, + 0xC3 = { 298, 1}, + 0xC6 = { 299, 1}, + 0xC7 = { 300, 3}, + 0xC8 = { 303, 1}, + 0xC9 = { 304, 1}, + 0xCC = { 305, 1}, + 0xCD = { 306, 1}, + 0xCE = { 307, 1}, + 0xCF = { 308, 3}, + 0xD0 = { 311, 7}, + 0xD1 = { 318, 21}, + 0xD2 = { 339, 7}, + 0xD3 = { 346, 21}, + 0xD7 = { 367, 1}, + 0xD8 = { 368, 18}, + 0xD9 = { 386, 38}, + 0xDA = { 424, 13}, + 0xDB = { 437, 14}, + 0xDC = { 451, 14}, + 0xDD = { 465, 14}, + 0xDE = { 479, 21}, + 0xDF = { 500, 12}, + 0xE0 = { 512, 1}, + 0xE1 = { 513, 1}, + 0xE2 = { 514, 1}, + 0xE3 = { 515, 3}, + 0xE4 = { 518, 1}, + 0xE5 = { 519, 2}, + 0xE6 = { 521, 1}, + 0xE7 = { 522, 2}, + 0xE8 = { 524, 1}, + 0xE9 = { 525, 1}, + 0xEB = { 526, 1}, + 0xEC = { 527, 1}, + 0xED = { 528, 2}, + 0xEE = { 530, 1}, + 0xEF = { 531, 2}, + 0xF0 = { 533, 1}, + 0xF4 = { 534, 1}, + 0xF5 = { 535, 1}, + 0xF6 = { 536, 7}, + 0xF7 = { 543, 21}, + 0xF8 = { 564, 1}, + 0xF9 = { 565, 1}, + 0xFA = { 566, 1}, + 0xFB = { 567, 1}, + 0xFC = { 568, 1}, + 0xFD = { 569, 1}, + 0xFE = { 570, 2}, + 0xFF = { 572, 16}, }, { // prefix = 66 }, { // prefix = F3 - 0x90 = { 637, 1}, + 0x90 = { 588, 1}, }, { // prefix = F2 }, @@ -2817,434 +2698,434 @@ DECODE_INDEX_LEGACY := [4][256]lib.Decode_Index{ @(rodata) DECODE_INDEX_ESC_0F := [4][256]lib.Decode_Index{ { // prefix = none - 0x00 = { 638, 10}, - 0x01 = { 648, 48}, - 0x02 = { 696, 3}, - 0x03 = { 699, 3}, - 0x05 = { 702, 1}, - 0x06 = { 703, 1}, - 0x07 = { 704, 1}, - 0x08 = { 705, 1}, - 0x09 = { 706, 1}, - 0x0B = { 707, 1}, - 0x0D = { 708, 2}, - 0x10 = { 710, 1}, - 0x11 = { 711, 1}, - 0x12 = { 712, 2}, - 0x13 = { 714, 1}, - 0x14 = { 715, 1}, - 0x15 = { 716, 1}, - 0x16 = { 717, 2}, - 0x17 = { 719, 1}, - 0x18 = { 720, 4}, - 0x1C = { 724, 1}, - 0x1F = { 725, 3}, - 0x20 = { 728, 1}, - 0x21 = { 729, 1}, - 0x22 = { 730, 1}, - 0x23 = { 731, 1}, - 0x28 = { 732, 1}, - 0x29 = { 733, 1}, - 0x2B = { 734, 1}, - 0x2E = { 735, 1}, - 0x2F = { 736, 1}, - 0x30 = { 737, 1}, - 0x31 = { 738, 1}, - 0x32 = { 739, 1}, - 0x33 = { 740, 1}, - 0x34 = { 741, 1}, - 0x35 = { 742, 1}, - 0x40 = { 743, 3}, - 0x41 = { 746, 3}, - 0x42 = { 749, 9}, - 0x43 = { 758, 9}, - 0x44 = { 767, 6}, - 0x45 = { 773, 6}, - 0x46 = { 779, 6}, - 0x47 = { 785, 6}, - 0x48 = { 791, 3}, - 0x49 = { 794, 3}, - 0x4A = { 797, 6}, - 0x4B = { 803, 6}, - 0x4C = { 809, 6}, - 0x4D = { 815, 6}, - 0x4E = { 821, 6}, - 0x4F = { 827, 6}, - 0x50 = { 833, 2}, - 0x51 = { 835, 1}, - 0x52 = { 836, 1}, - 0x53 = { 837, 1}, - 0x54 = { 838, 1}, - 0x55 = { 839, 1}, - 0x56 = { 840, 1}, - 0x57 = { 841, 1}, - 0x58 = { 842, 1}, - 0x59 = { 843, 1}, - 0x5A = { 844, 1}, - 0x5B = { 845, 1}, - 0x5C = { 846, 1}, - 0x5D = { 847, 1}, - 0x5E = { 848, 1}, - 0x5F = { 849, 1}, - 0x6E = { 850, 1}, - 0x6F = { 851, 1}, - 0x70 = { 852, 1}, - 0x78 = { 853, 1}, - 0x79 = { 854, 1}, - 0x7E = { 855, 1}, - 0x7F = { 856, 1}, - 0x80 = { 857, 1}, - 0x81 = { 858, 1}, - 0x82 = { 859, 3}, - 0x83 = { 862, 3}, - 0x84 = { 865, 2}, - 0x85 = { 867, 2}, - 0x86 = { 869, 2}, - 0x87 = { 871, 2}, - 0x88 = { 873, 1}, - 0x89 = { 874, 1}, - 0x8A = { 875, 2}, - 0x8B = { 877, 2}, - 0x8C = { 879, 2}, - 0x8D = { 881, 2}, - 0x8E = { 883, 2}, - 0x8F = { 885, 2}, - 0x90 = { 887, 1}, - 0x91 = { 888, 1}, - 0x92 = { 889, 3}, - 0x93 = { 892, 3}, - 0x94 = { 895, 2}, - 0x95 = { 897, 2}, - 0x96 = { 899, 2}, - 0x97 = { 901, 2}, - 0x98 = { 903, 1}, - 0x99 = { 904, 1}, - 0x9A = { 905, 2}, - 0x9B = { 907, 2}, - 0x9C = { 909, 2}, - 0x9D = { 911, 2}, - 0x9E = { 913, 2}, - 0x9F = { 915, 2}, - 0xA0 = { 917, 1}, - 0xA1 = { 918, 1}, - 0xA2 = { 919, 1}, - 0xA3 = { 920, 3}, - 0xA4 = { 923, 3}, - 0xA5 = { 926, 3}, - 0xA8 = { 929, 1}, - 0xA9 = { 930, 1}, - 0xAA = { 931, 1}, - 0xAB = { 932, 3}, - 0xAC = { 935, 3}, - 0xAD = { 938, 3}, - 0xAE = { 941, 14}, - 0xAF = { 955, 3}, - 0xB0 = { 958, 1}, - 0xB1 = { 959, 3}, - 0xB3 = { 962, 3}, - 0xB6 = { 965, 3}, - 0xB7 = { 968, 2}, - 0xB9 = { 970, 1}, - 0xBA = { 971, 12}, - 0xBB = { 983, 3}, - 0xBC = { 986, 3}, - 0xBD = { 989, 3}, - 0xBE = { 992, 3}, - 0xBF = { 995, 2}, - 0xC0 = { 997, 1}, - 0xC1 = { 998, 3}, - 0xC2 = {1001, 1}, - 0xC6 = {1002, 1}, - 0xC7 = {1003, 16}, - 0xC8 = {1019, 2}, - 0xFF = {1021, 1}, + 0x00 = { 589, 10}, + 0x01 = { 599, 48}, + 0x02 = { 647, 3}, + 0x03 = { 650, 3}, + 0x05 = { 653, 1}, + 0x06 = { 654, 1}, + 0x07 = { 655, 1}, + 0x08 = { 656, 1}, + 0x09 = { 657, 1}, + 0x0B = { 658, 1}, + 0x0D = { 659, 2}, + 0x10 = { 661, 1}, + 0x11 = { 662, 1}, + 0x12 = { 663, 2}, + 0x13 = { 665, 1}, + 0x14 = { 666, 1}, + 0x15 = { 667, 1}, + 0x16 = { 668, 2}, + 0x17 = { 670, 1}, + 0x18 = { 671, 4}, + 0x1C = { 675, 1}, + 0x1F = { 676, 3}, + 0x20 = { 679, 1}, + 0x21 = { 680, 1}, + 0x22 = { 681, 1}, + 0x23 = { 682, 1}, + 0x28 = { 683, 1}, + 0x29 = { 684, 1}, + 0x2B = { 685, 1}, + 0x2E = { 686, 1}, + 0x2F = { 687, 1}, + 0x30 = { 688, 1}, + 0x31 = { 689, 1}, + 0x32 = { 690, 1}, + 0x33 = { 691, 1}, + 0x34 = { 692, 1}, + 0x35 = { 693, 1}, + 0x40 = { 694, 3}, + 0x41 = { 697, 3}, + 0x42 = { 700, 3}, + 0x43 = { 703, 3}, + 0x44 = { 706, 3}, + 0x45 = { 709, 3}, + 0x46 = { 712, 3}, + 0x47 = { 715, 3}, + 0x48 = { 718, 3}, + 0x49 = { 721, 3}, + 0x4A = { 724, 3}, + 0x4B = { 727, 3}, + 0x4C = { 730, 3}, + 0x4D = { 733, 3}, + 0x4E = { 736, 3}, + 0x4F = { 739, 3}, + 0x50 = { 742, 2}, + 0x51 = { 744, 1}, + 0x52 = { 745, 1}, + 0x53 = { 746, 1}, + 0x54 = { 747, 1}, + 0x55 = { 748, 1}, + 0x56 = { 749, 1}, + 0x57 = { 750, 1}, + 0x58 = { 751, 1}, + 0x59 = { 752, 1}, + 0x5A = { 753, 1}, + 0x5B = { 754, 1}, + 0x5C = { 755, 1}, + 0x5D = { 756, 1}, + 0x5E = { 757, 1}, + 0x5F = { 758, 1}, + 0x6E = { 759, 1}, + 0x6F = { 760, 1}, + 0x70 = { 761, 1}, + 0x78 = { 762, 1}, + 0x79 = { 763, 1}, + 0x7E = { 764, 1}, + 0x7F = { 765, 1}, + 0x80 = { 766, 1}, + 0x81 = { 767, 1}, + 0x82 = { 768, 1}, + 0x83 = { 769, 1}, + 0x84 = { 770, 1}, + 0x85 = { 771, 1}, + 0x86 = { 772, 1}, + 0x87 = { 773, 1}, + 0x88 = { 774, 1}, + 0x89 = { 775, 1}, + 0x8A = { 776, 1}, + 0x8B = { 777, 1}, + 0x8C = { 778, 1}, + 0x8D = { 779, 1}, + 0x8E = { 780, 1}, + 0x8F = { 781, 1}, + 0x90 = { 782, 1}, + 0x91 = { 783, 1}, + 0x92 = { 784, 1}, + 0x93 = { 785, 1}, + 0x94 = { 786, 1}, + 0x95 = { 787, 1}, + 0x96 = { 788, 1}, + 0x97 = { 789, 1}, + 0x98 = { 790, 1}, + 0x99 = { 791, 1}, + 0x9A = { 792, 1}, + 0x9B = { 793, 1}, + 0x9C = { 794, 1}, + 0x9D = { 795, 1}, + 0x9E = { 796, 1}, + 0x9F = { 797, 1}, + 0xA0 = { 798, 1}, + 0xA1 = { 799, 1}, + 0xA2 = { 800, 1}, + 0xA3 = { 801, 3}, + 0xA4 = { 804, 3}, + 0xA5 = { 807, 3}, + 0xA8 = { 810, 1}, + 0xA9 = { 811, 1}, + 0xAA = { 812, 1}, + 0xAB = { 813, 3}, + 0xAC = { 816, 3}, + 0xAD = { 819, 3}, + 0xAE = { 822, 14}, + 0xAF = { 836, 3}, + 0xB0 = { 839, 1}, + 0xB1 = { 840, 3}, + 0xB3 = { 843, 3}, + 0xB6 = { 846, 3}, + 0xB7 = { 849, 2}, + 0xB9 = { 851, 1}, + 0xBA = { 852, 12}, + 0xBB = { 864, 3}, + 0xBC = { 867, 3}, + 0xBD = { 870, 3}, + 0xBE = { 873, 3}, + 0xBF = { 876, 2}, + 0xC0 = { 878, 1}, + 0xC1 = { 879, 3}, + 0xC2 = { 882, 1}, + 0xC6 = { 883, 1}, + 0xC7 = { 884, 16}, + 0xC8 = { 900, 2}, + 0xFF = { 902, 1}, }, { // prefix = 66 - 0x10 = {1022, 1}, - 0x11 = {1023, 1}, - 0x12 = {1024, 1}, - 0x13 = {1025, 1}, - 0x14 = {1026, 1}, - 0x15 = {1027, 1}, - 0x16 = {1028, 1}, - 0x17 = {1029, 1}, - 0x28 = {1030, 1}, - 0x29 = {1031, 1}, - 0x2B = {1032, 1}, - 0x2E = {1033, 1}, - 0x2F = {1034, 1}, - 0x50 = {1035, 2}, - 0x51 = {1037, 1}, - 0x54 = {1038, 1}, - 0x55 = {1039, 1}, - 0x56 = {1040, 1}, - 0x57 = {1041, 1}, - 0x58 = {1042, 1}, - 0x59 = {1043, 1}, - 0x5A = {1044, 1}, - 0x5B = {1045, 1}, - 0x5C = {1046, 1}, - 0x5D = {1047, 1}, - 0x5E = {1048, 1}, - 0x5F = {1049, 1}, - 0x60 = {1050, 1}, - 0x61 = {1051, 1}, - 0x62 = {1052, 1}, - 0x63 = {1053, 1}, - 0x64 = {1054, 1}, - 0x65 = {1055, 1}, - 0x66 = {1056, 1}, - 0x67 = {1057, 1}, - 0x68 = {1058, 1}, - 0x69 = {1059, 1}, - 0x6A = {1060, 1}, - 0x6B = {1061, 1}, - 0x6C = {1062, 1}, - 0x6D = {1063, 1}, - 0x6E = {1064, 2}, - 0x6F = {1066, 1}, - 0x70 = {1067, 1}, - 0x71 = {1068, 3}, - 0x72 = {1071, 3}, - 0x73 = {1074, 2}, - 0x74 = {1076, 1}, - 0x75 = {1077, 1}, - 0x76 = {1078, 1}, - 0x7C = {1079, 1}, - 0x7D = {1080, 1}, - 0x7E = {1081, 2}, - 0x7F = {1083, 1}, - 0xAE = {1084, 3}, - 0xC2 = {1087, 1}, - 0xC4 = {1088, 2}, - 0xC5 = {1090, 2}, - 0xC6 = {1092, 1}, - 0xC7 = {1093, 1}, - 0xD0 = {1094, 1}, - 0xD1 = {1095, 1}, - 0xD2 = {1096, 1}, - 0xD3 = {1097, 1}, - 0xD4 = {1098, 1}, - 0xD5 = {1099, 1}, - 0xD6 = {1100, 1}, - 0xD7 = {1101, 2}, - 0xD8 = {1103, 1}, - 0xD9 = {1104, 1}, - 0xDA = {1105, 1}, - 0xDB = {1106, 1}, - 0xDC = {1107, 1}, - 0xDD = {1108, 1}, - 0xDE = {1109, 1}, - 0xDF = {1110, 1}, - 0xE0 = {1111, 1}, - 0xE1 = {1112, 1}, - 0xE2 = {1113, 1}, - 0xE3 = {1114, 1}, - 0xE4 = {1115, 1}, - 0xE5 = {1116, 1}, - 0xE6 = {1117, 1}, - 0xE7 = {1118, 1}, - 0xE8 = {1119, 1}, - 0xE9 = {1120, 1}, - 0xEA = {1121, 1}, - 0xEB = {1122, 1}, - 0xEC = {1123, 1}, - 0xED = {1124, 1}, - 0xEE = {1125, 1}, - 0xEF = {1126, 1}, - 0xF1 = {1127, 1}, - 0xF2 = {1128, 1}, - 0xF3 = {1129, 1}, - 0xF4 = {1130, 1}, - 0xF5 = {1131, 1}, - 0xF6 = {1132, 1}, - 0xF7 = {1133, 1}, - 0xF8 = {1134, 1}, - 0xF9 = {1135, 1}, - 0xFA = {1136, 1}, - 0xFB = {1137, 1}, - 0xFC = {1138, 1}, - 0xFD = {1139, 1}, - 0xFE = {1140, 1}, + 0x10 = { 903, 1}, + 0x11 = { 904, 1}, + 0x12 = { 905, 1}, + 0x13 = { 906, 1}, + 0x14 = { 907, 1}, + 0x15 = { 908, 1}, + 0x16 = { 909, 1}, + 0x17 = { 910, 1}, + 0x28 = { 911, 1}, + 0x29 = { 912, 1}, + 0x2B = { 913, 1}, + 0x2E = { 914, 1}, + 0x2F = { 915, 1}, + 0x50 = { 916, 2}, + 0x51 = { 918, 1}, + 0x54 = { 919, 1}, + 0x55 = { 920, 1}, + 0x56 = { 921, 1}, + 0x57 = { 922, 1}, + 0x58 = { 923, 1}, + 0x59 = { 924, 1}, + 0x5A = { 925, 1}, + 0x5B = { 926, 1}, + 0x5C = { 927, 1}, + 0x5D = { 928, 1}, + 0x5E = { 929, 1}, + 0x5F = { 930, 1}, + 0x60 = { 931, 1}, + 0x61 = { 932, 1}, + 0x62 = { 933, 1}, + 0x63 = { 934, 1}, + 0x64 = { 935, 1}, + 0x65 = { 936, 1}, + 0x66 = { 937, 1}, + 0x67 = { 938, 1}, + 0x68 = { 939, 1}, + 0x69 = { 940, 1}, + 0x6A = { 941, 1}, + 0x6B = { 942, 1}, + 0x6C = { 943, 1}, + 0x6D = { 944, 1}, + 0x6E = { 945, 2}, + 0x6F = { 947, 1}, + 0x70 = { 948, 1}, + 0x71 = { 949, 3}, + 0x72 = { 952, 3}, + 0x73 = { 955, 2}, + 0x74 = { 957, 1}, + 0x75 = { 958, 1}, + 0x76 = { 959, 1}, + 0x7C = { 960, 1}, + 0x7D = { 961, 1}, + 0x7E = { 962, 2}, + 0x7F = { 964, 1}, + 0xAE = { 965, 3}, + 0xC2 = { 968, 1}, + 0xC4 = { 969, 2}, + 0xC5 = { 971, 2}, + 0xC6 = { 973, 1}, + 0xC7 = { 974, 1}, + 0xD0 = { 975, 1}, + 0xD1 = { 976, 1}, + 0xD2 = { 977, 1}, + 0xD3 = { 978, 1}, + 0xD4 = { 979, 1}, + 0xD5 = { 980, 1}, + 0xD6 = { 981, 1}, + 0xD7 = { 982, 2}, + 0xD8 = { 984, 1}, + 0xD9 = { 985, 1}, + 0xDA = { 986, 1}, + 0xDB = { 987, 1}, + 0xDC = { 988, 1}, + 0xDD = { 989, 1}, + 0xDE = { 990, 1}, + 0xDF = { 991, 1}, + 0xE0 = { 992, 1}, + 0xE1 = { 993, 1}, + 0xE2 = { 994, 1}, + 0xE3 = { 995, 1}, + 0xE4 = { 996, 1}, + 0xE5 = { 997, 1}, + 0xE6 = { 998, 1}, + 0xE7 = { 999, 1}, + 0xE8 = {1000, 1}, + 0xE9 = {1001, 1}, + 0xEA = {1002, 1}, + 0xEB = {1003, 1}, + 0xEC = {1004, 1}, + 0xED = {1005, 1}, + 0xEE = {1006, 1}, + 0xEF = {1007, 1}, + 0xF1 = {1008, 1}, + 0xF2 = {1009, 1}, + 0xF3 = {1010, 1}, + 0xF4 = {1011, 1}, + 0xF5 = {1012, 1}, + 0xF6 = {1013, 1}, + 0xF7 = {1014, 1}, + 0xF8 = {1015, 1}, + 0xF9 = {1016, 1}, + 0xFA = {1017, 1}, + 0xFB = {1018, 1}, + 0xFC = {1019, 1}, + 0xFD = {1020, 1}, + 0xFE = {1021, 1}, }, { // prefix = F3 - 0x01 = {1141, 6}, - 0x09 = {1147, 1}, - 0x10 = {1148, 1}, - 0x11 = {1149, 1}, - 0x12 = {1150, 1}, - 0x16 = {1151, 1}, - 0x1E = {1152, 4}, - 0x2A = {1156, 2}, - 0x2C = {1158, 2}, - 0x2D = {1160, 2}, - 0x51 = {1162, 1}, - 0x52 = {1163, 1}, - 0x53 = {1164, 1}, - 0x58 = {1165, 1}, - 0x59 = {1166, 1}, - 0x5A = {1167, 1}, - 0x5B = {1168, 1}, - 0x5C = {1169, 1}, - 0x5D = {1170, 1}, - 0x5E = {1171, 1}, - 0x5F = {1172, 1}, - 0x6F = {1173, 1}, - 0x70 = {1174, 1}, - 0x7E = {1175, 1}, - 0x7F = {1176, 1}, - 0xAE = {1177, 14}, - 0xB8 = {1191, 3}, - 0xBC = {1194, 3}, - 0xBD = {1197, 3}, - 0xC2 = {1200, 1}, - 0xC7 = {1201, 2}, - 0xE6 = {1203, 1}, + 0x01 = {1022, 6}, + 0x09 = {1028, 1}, + 0x10 = {1029, 1}, + 0x11 = {1030, 1}, + 0x12 = {1031, 1}, + 0x16 = {1032, 1}, + 0x1E = {1033, 4}, + 0x2A = {1037, 2}, + 0x2C = {1039, 2}, + 0x2D = {1041, 2}, + 0x51 = {1043, 1}, + 0x52 = {1044, 1}, + 0x53 = {1045, 1}, + 0x58 = {1046, 1}, + 0x59 = {1047, 1}, + 0x5A = {1048, 1}, + 0x5B = {1049, 1}, + 0x5C = {1050, 1}, + 0x5D = {1051, 1}, + 0x5E = {1052, 1}, + 0x5F = {1053, 1}, + 0x6F = {1054, 1}, + 0x70 = {1055, 1}, + 0x7E = {1056, 1}, + 0x7F = {1057, 1}, + 0xAE = {1058, 14}, + 0xB8 = {1072, 3}, + 0xBC = {1075, 3}, + 0xBD = {1078, 3}, + 0xC2 = {1081, 1}, + 0xC7 = {1082, 2}, + 0xE6 = {1084, 1}, }, { // prefix = F2 - 0x01 = {1204, 2}, - 0x10 = {1206, 1}, - 0x11 = {1207, 1}, - 0x12 = {1208, 1}, - 0x2A = {1209, 2}, - 0x2C = {1211, 2}, - 0x2D = {1213, 2}, - 0x51 = {1215, 1}, - 0x58 = {1216, 1}, - 0x59 = {1217, 1}, - 0x5A = {1218, 1}, - 0x5C = {1219, 1}, - 0x5D = {1220, 1}, - 0x5E = {1221, 1}, - 0x5F = {1222, 1}, - 0x70 = {1223, 1}, - 0x7C = {1224, 1}, - 0x7D = {1225, 1}, - 0xAE = {1226, 1}, - 0xC2 = {1227, 1}, - 0xD0 = {1228, 1}, - 0xE6 = {1229, 1}, - 0xF0 = {1230, 1}, + 0x01 = {1085, 2}, + 0x10 = {1087, 1}, + 0x11 = {1088, 1}, + 0x12 = {1089, 1}, + 0x2A = {1090, 2}, + 0x2C = {1092, 2}, + 0x2D = {1094, 2}, + 0x51 = {1096, 1}, + 0x58 = {1097, 1}, + 0x59 = {1098, 1}, + 0x5A = {1099, 1}, + 0x5C = {1100, 1}, + 0x5D = {1101, 1}, + 0x5E = {1102, 1}, + 0x5F = {1103, 1}, + 0x70 = {1104, 1}, + 0x7C = {1105, 1}, + 0x7D = {1106, 1}, + 0xAE = {1107, 1}, + 0xC2 = {1108, 1}, + 0xD0 = {1109, 1}, + 0xE6 = {1110, 1}, + 0xF0 = {1111, 1}, }, } @(rodata) DECODE_INDEX_ESC_0F38 := [4][256]lib.Decode_Index{ { // prefix = none - 0xC8 = {1231, 1}, - 0xC9 = {1232, 1}, - 0xCA = {1233, 1}, - 0xCB = {1234, 1}, - 0xCC = {1235, 1}, - 0xCD = {1236, 1}, - 0xF0 = {1237, 3}, - 0xF1 = {1240, 3}, - 0xF6 = {1243, 2}, - 0xF9 = {1245, 2}, - 0xFC = {1247, 2}, + 0xC8 = {1112, 1}, + 0xC9 = {1113, 1}, + 0xCA = {1114, 1}, + 0xCB = {1115, 1}, + 0xCC = {1116, 1}, + 0xCD = {1117, 1}, + 0xF0 = {1118, 3}, + 0xF1 = {1121, 3}, + 0xF6 = {1124, 2}, + 0xF9 = {1126, 2}, + 0xFC = {1128, 2}, }, { // prefix = 66 - 0x00 = {1249, 1}, - 0x01 = {1250, 1}, - 0x02 = {1251, 1}, - 0x03 = {1252, 1}, - 0x04 = {1253, 1}, - 0x05 = {1254, 1}, - 0x06 = {1255, 1}, - 0x07 = {1256, 1}, - 0x08 = {1257, 1}, - 0x09 = {1258, 1}, - 0x0A = {1259, 1}, - 0x0B = {1260, 1}, - 0x10 = {1261, 1}, - 0x14 = {1262, 1}, - 0x15 = {1263, 1}, - 0x17 = {1264, 1}, - 0x1C = {1265, 1}, - 0x1D = {1266, 1}, - 0x1E = {1267, 1}, - 0x20 = {1268, 1}, - 0x21 = {1269, 1}, - 0x22 = {1270, 1}, - 0x23 = {1271, 1}, - 0x24 = {1272, 1}, - 0x25 = {1273, 1}, - 0x28 = {1274, 1}, - 0x29 = {1275, 1}, - 0x2A = {1276, 1}, - 0x2B = {1277, 1}, - 0x30 = {1278, 1}, - 0x31 = {1279, 1}, - 0x32 = {1280, 1}, - 0x33 = {1281, 1}, - 0x34 = {1282, 1}, - 0x35 = {1283, 1}, - 0x37 = {1284, 1}, - 0x38 = {1285, 1}, - 0x39 = {1286, 1}, - 0x3A = {1287, 1}, - 0x3B = {1288, 1}, - 0x3C = {1289, 1}, - 0x3D = {1290, 1}, - 0x3E = {1291, 1}, - 0x3F = {1292, 1}, - 0x40 = {1293, 1}, - 0x41 = {1294, 1}, - 0x80 = {1295, 1}, - 0x81 = {1296, 1}, - 0x82 = {1297, 2}, - 0xDB = {1299, 1}, - 0xDC = {1300, 1}, - 0xDD = {1301, 1}, - 0xDE = {1302, 1}, - 0xDF = {1303, 1}, - 0xF5 = {1304, 2}, - 0xF6 = {1306, 2}, - 0xF8 = {1308, 1}, - 0xFC = {1309, 2}, + 0x00 = {1130, 1}, + 0x01 = {1131, 1}, + 0x02 = {1132, 1}, + 0x03 = {1133, 1}, + 0x04 = {1134, 1}, + 0x05 = {1135, 1}, + 0x06 = {1136, 1}, + 0x07 = {1137, 1}, + 0x08 = {1138, 1}, + 0x09 = {1139, 1}, + 0x0A = {1140, 1}, + 0x0B = {1141, 1}, + 0x10 = {1142, 1}, + 0x14 = {1143, 1}, + 0x15 = {1144, 1}, + 0x17 = {1145, 1}, + 0x1C = {1146, 1}, + 0x1D = {1147, 1}, + 0x1E = {1148, 1}, + 0x20 = {1149, 1}, + 0x21 = {1150, 1}, + 0x22 = {1151, 1}, + 0x23 = {1152, 1}, + 0x24 = {1153, 1}, + 0x25 = {1154, 1}, + 0x28 = {1155, 1}, + 0x29 = {1156, 1}, + 0x2A = {1157, 1}, + 0x2B = {1158, 1}, + 0x30 = {1159, 1}, + 0x31 = {1160, 1}, + 0x32 = {1161, 1}, + 0x33 = {1162, 1}, + 0x34 = {1163, 1}, + 0x35 = {1164, 1}, + 0x37 = {1165, 1}, + 0x38 = {1166, 1}, + 0x39 = {1167, 1}, + 0x3A = {1168, 1}, + 0x3B = {1169, 1}, + 0x3C = {1170, 1}, + 0x3D = {1171, 1}, + 0x3E = {1172, 1}, + 0x3F = {1173, 1}, + 0x40 = {1174, 1}, + 0x41 = {1175, 1}, + 0x80 = {1176, 1}, + 0x81 = {1177, 1}, + 0x82 = {1178, 2}, + 0xDB = {1180, 1}, + 0xDC = {1181, 1}, + 0xDD = {1182, 1}, + 0xDE = {1183, 1}, + 0xDF = {1184, 1}, + 0xF5 = {1185, 2}, + 0xF6 = {1187, 2}, + 0xF8 = {1189, 1}, + 0xFC = {1190, 2}, }, { // prefix = F3 - 0xF6 = {1311, 2}, - 0xF8 = {1313, 1}, - 0xFC = {1314, 2}, + 0xF6 = {1192, 2}, + 0xF8 = {1194, 1}, + 0xFC = {1195, 2}, }, { // prefix = F2 - 0xF0 = {1316, 2}, - 0xF1 = {1318, 3}, - 0xF8 = {1321, 1}, - 0xFC = {1322, 2}, + 0xF0 = {1197, 2}, + 0xF1 = {1199, 3}, + 0xF8 = {1202, 1}, + 0xFC = {1203, 2}, }, } @(rodata) DECODE_INDEX_ESC_0F3A := [4][256]lib.Decode_Index{ { // prefix = none - 0xCC = {1324, 1}, + 0xCC = {1205, 1}, }, { // prefix = 66 - 0x08 = {1325, 1}, - 0x09 = {1326, 1}, - 0x0A = {1327, 1}, - 0x0B = {1328, 1}, - 0x0C = {1329, 1}, - 0x0D = {1330, 1}, - 0x0E = {1331, 1}, - 0x0F = {1332, 1}, - 0x14 = {1333, 1}, - 0x16 = {1334, 2}, - 0x17 = {1336, 1}, - 0x20 = {1337, 1}, - 0x21 = {1338, 1}, - 0x22 = {1339, 2}, - 0x40 = {1341, 1}, - 0x41 = {1342, 1}, - 0x42 = {1343, 1}, - 0x44 = {1344, 1}, - 0x60 = {1345, 1}, - 0x61 = {1346, 1}, - 0x62 = {1347, 1}, - 0x63 = {1348, 1}, - 0xDF = {1349, 1}, + 0x08 = {1206, 1}, + 0x09 = {1207, 1}, + 0x0A = {1208, 1}, + 0x0B = {1209, 1}, + 0x0C = {1210, 1}, + 0x0D = {1211, 1}, + 0x0E = {1212, 1}, + 0x0F = {1213, 1}, + 0x14 = {1214, 1}, + 0x16 = {1215, 2}, + 0x17 = {1217, 1}, + 0x20 = {1218, 1}, + 0x21 = {1219, 1}, + 0x22 = {1220, 2}, + 0x40 = {1222, 1}, + 0x41 = {1223, 1}, + 0x42 = {1224, 1}, + 0x44 = {1225, 1}, + 0x60 = {1226, 1}, + 0x61 = {1227, 1}, + 0x62 = {1228, 1}, + 0x63 = {1229, 1}, + 0xDF = {1230, 1}, }, { // prefix = F3 }, diff --git a/core/rexcode/isa/x86/tablegen/generated/encode_tables.odin b/core/rexcode/isa/x86/tablegen/generated/encode_tables.odin index 3eb58e95a..a459d52cb 100644 --- a/core/rexcode/isa/x86/tablegen/generated/encode_tables.odin +++ b/core/rexcode/isa/x86/tablegen/generated/encode_tables.odin @@ -585,11 +585,11 @@ ENCODE_FORMS := [2478]lib.Encoding{ {.JS, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0x78, 0, {explicit_count=1}}, {.JS, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, 0x88, 0, {esc=._0F, explicit_count=1}}, // .JCXZ - {.JCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {explicit_count=1}}, + {.JCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {addr_size=.A16, explicit_count=1}}, // .JECXZ - {.JECXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {explicit_count=1}}, + {.JECXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {addr_size=.A32, explicit_count=1}}, // .JRCXZ - {.JRCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {force_rex_w=true, explicit_count=1}}, + {.JRCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {addr_size=.A64, explicit_count=1}}, // .LOOP {.LOOP, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE2, 0, {explicit_count=1}}, // .LOOPE diff --git a/core/rexcode/isa/x86/tablegen/instruction_table.odin b/core/rexcode/isa/x86/tablegen/instruction_table.odin index 11e897138..e586a3f65 100644 --- a/core/rexcode/isa/x86/tablegen/instruction_table.odin +++ b/core/rexcode/isa/x86/tablegen/instruction_table.odin @@ -733,14 +733,20 @@ INSTRUCTION_TABLE := [Mnemonic][]Form{ {{.JS, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0x78, 0, {}}, {flags_rd={.SF}, side_effects={.CONTROL}}}, {{.JS, {.REL32, .NONE, .NONE, .NONE}, {.ID, .NONE, .NONE, .NONE}, 0x88, 0, {esc=._0F}}, {flags_rd={.SF}, side_effects={.CONTROL}}}, }, + /* 0xE3 is ONE opcode whose mnemonic is chosen by ADDRESS size -- which + counter register it tests -- not by operand size. So the three are told + apart by `addr_size` (67h against the mode default), never by REX.W, which + does not affect address size at all: JRCXZ is a bare `E3 cb` in long mode + and JECXZ is `67 E3 cb`; in protected mode JECXZ is bare and JCXZ takes + the prefix, while JCXZ is unreachable in long mode and JRCXZ outside it. */ .JCXZ = { - {{.JCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {}}, {implicit_rd={.RCX}, side_effects={.CONTROL}}}, + {{.JCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {addr_size=.A16}}, {implicit_rd={.RCX}, side_effects={.CONTROL}}}, }, .JECXZ = { - {{.JECXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {}}, {implicit_rd={.RCX}, side_effects={.CONTROL}}}, + {{.JECXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {addr_size=.A32}}, {implicit_rd={.RCX}, side_effects={.CONTROL}}}, }, .JRCXZ = { - {{.JRCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {force_rex_w=true}}, {implicit_rd={.RCX}, side_effects={.CONTROL}}}, + {{.JRCXZ, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE3, 0, {addr_size=.A64}}, {implicit_rd={.RCX}, side_effects={.CONTROL}}}, }, .LOOP = { {{.LOOP, {.REL8, .NONE, .NONE, .NONE}, {.IB, .NONE, .NONE, .NONE}, 0xE2, 0, {}}, {implicit_wr={.RCX}, implicit_rd={.RCX}, side_effects={.CONTROL}}}, diff --git a/core/rexcode/isa/x86/tables/x86.encode_forms.bin b/core/rexcode/isa/x86/tables/x86.encode_forms.bin index a71e55be9..3e03ddfdb 100644 Binary files a/core/rexcode/isa/x86/tables/x86.encode_forms.bin and b/core/rexcode/isa/x86/tables/x86.encode_forms.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.encode_recipes.bin b/core/rexcode/isa/x86/tables/x86.encode_recipes.bin index 4b55c24fc..fbbba14d1 100644 Binary files a/core/rexcode/isa/x86/tables/x86.encode_recipes.bin and b/core/rexcode/isa/x86/tables/x86.encode_recipes.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.evex.bin b/core/rexcode/isa/x86/tables/x86.evex.bin index ff07490c1..a6d378ecb 100644 Binary files a/core/rexcode/isa/x86/tables/x86.evex.bin and b/core/rexcode/isa/x86/tables/x86.evex.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.idx_0f.bin b/core/rexcode/isa/x86/tables/x86.idx_0f.bin index ddcbc62e1..844850302 100644 Binary files a/core/rexcode/isa/x86/tables/x86.idx_0f.bin and b/core/rexcode/isa/x86/tables/x86.idx_0f.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.idx_0f38.bin b/core/rexcode/isa/x86/tables/x86.idx_0f38.bin index 654558711..6188bf858 100644 Binary files a/core/rexcode/isa/x86/tables/x86.idx_0f38.bin and b/core/rexcode/isa/x86/tables/x86.idx_0f38.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.idx_0f3a.bin b/core/rexcode/isa/x86/tables/x86.idx_0f3a.bin index 8805f356a..f3d489d59 100644 Binary files a/core/rexcode/isa/x86/tables/x86.idx_0f3a.bin and b/core/rexcode/isa/x86/tables/x86.idx_0f3a.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.idx_legacy.bin b/core/rexcode/isa/x86/tables/x86.idx_legacy.bin index fda086bfd..769fda98d 100644 Binary files a/core/rexcode/isa/x86/tables/x86.idx_legacy.bin and b/core/rexcode/isa/x86/tables/x86.idx_legacy.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.legacy.bin b/core/rexcode/isa/x86/tables/x86.legacy.bin index d0b0f1c6b..39a3c2793 100644 Binary files a/core/rexcode/isa/x86/tables/x86.legacy.bin and b/core/rexcode/isa/x86/tables/x86.legacy.bin differ diff --git a/core/rexcode/isa/x86/tables/x86.vex.bin b/core/rexcode/isa/x86/tables/x86.vex.bin index 9508af84c..b5f0346d4 100644 Binary files a/core/rexcode/isa/x86/tables/x86.vex.bin and b/core/rexcode/isa/x86/tables/x86.vex.bin differ diff --git a/core/rexcode/isa/x86/tests/test.odin b/core/rexcode/isa/x86/tests/test.odin index 7a2a702ac..bf5ffc457 100644 --- a/core/rexcode/isa/x86/tests/test.odin +++ b/core/rexcode/isa/x86/tests/test.odin @@ -666,35 +666,195 @@ print_highlighted :: proc(text: string, tokens: []x86.Token) { // SECTION 4: MNEMONIC EQUIVALENCE // ============================================================================= +/* + Several x86 mnemonics name ONE encoding -- SHL and SAL are both /4 in the + shift group, JE and JZ are both 0x74. Which name a decode returns is declared + by x86.MNEMONIC_ALIASES and enforced by the generator, which drops the + aliased spelling before the decode tables are written; so encoding SAL and + decoding it back yields SHL, and a round-trip compares canonical forms. + + This used to be a second alias table maintained BY HAND here, and that is how + SHL/SAL went missing: the shift group was never listed, nothing checked, and + it stayed invisible until a table regeneration moved SAL ahead of SHL and + four long-passing tests began reporting `SAL != expected SHL`. There is now + one table, in the library, and run_alias_table_test below proves it complete + against the built tables rather than against anyone's memory. +*/ mnemonics_eq :: proc(a, b: x86.Mnemonic) -> bool { - if a == b { return true } - aliases := [][2]x86.Mnemonic{ - // MOV/MOVABS - {.MOV, .MOVABS}, - // CMOVcc aliases - {.CMOVE, .CMOVZ}, {.CMOVNE, .CMOVNZ}, - {.CMOVG, .CMOVNLE}, {.CMOVGE, .CMOVNL}, - {.CMOVL, .CMOVNGE}, {.CMOVLE, .CMOVNG}, - {.CMOVA, .CMOVNBE}, {.CMOVAE, .CMOVNB}, {.CMOVAE, .CMOVNC}, - {.CMOVB, .CMOVNAE}, {.CMOVB, .CMOVC}, {.CMOVBE, .CMOVNA}, - // SETcc aliases - {.SETE, .SETZ}, {.SETNE, .SETNZ}, - {.SETG, .SETNLE}, {.SETGE, .SETNL}, - {.SETL, .SETNGE}, {.SETLE, .SETNG}, - {.SETA, .SETNBE}, {.SETAE, .SETNB}, {.SETAE, .SETNC}, - {.SETB, .SETNAE}, {.SETB, .SETC}, {.SETBE, .SETNA}, - // Jcc aliases - {.JE, .JZ}, {.JNE, .JNZ}, - {.JB, .JC}, {.JAE, .JNC}, - {.JG, .JNLE}, {.JGE, .JNL}, - {.JL, .JNGE}, {.JLE, .JNG}, - {.JA, .JNBE}, {.JAE, .JNB}, - {.JB, .JNAE}, {.JBE, .JNA}, + return a == b || x86.canonical_mnemonic(a) == x86.canonical_mnemonic(b) +} + +/* + No encoding may be spelled by two mnemonics that both survive into the decode + tables -- because the decoder would then have to choose between them with + nothing to choose on, which is the defect x86.MNEMONIC_ALIASES exists to + remove. Two entries are indistinguishable exactly when they agree on every + field the decoder can read, so the property is computable from the tables + themselves, and this recomputes it. + + It is what makes the declaration maintainable: an instruction added with a + mnemonic that aliases another's encoding fails here BY NAME, with the row to + write, instead of silently decoding as whichever spelling the sort happened + to put first. +*/ +run_alias_table_test :: proc() { + Group_Key :: struct { + esc: x86.Escape, + prefix: u8, + opcode: u8, + ext: u8, + ops: [4]x86.Operand_Type, + enc: [4]x86.Operand_Encoding, + flags: x86.Encoding_Flags, } - for alias in aliases { - if (a == alias[0] && b == alias[1]) || (a == alias[1] && b == alias[0]) { return true } + groups := make(map[Group_Key][dynamic]x86.Mnemonic) + defer { + for _, list in groups { delete(list) } + delete(groups) + } + for e in x86.LEGACY_DECODE_ENTRIES { + key := Group_Key{e.esc, e.prefix, e.opcode, e.ext, e.ops, e.enc, e.flags} + list, present := &groups[key] + if !present { + groups[key] = make([dynamic]x86.Mnemonic) + list = &groups[key] + } + known := false + for m in list { + if m == e.mnemonic { + known = true + break + } + } + if !known { append(list, e.mnemonic) } + } + + ambiguous := 0 + for key, list in groups { + if len(list) < 2 { continue } + ambiguous += 1 + if ambiguous <= 10 { + fmt.printf(" %sFAIL%s esc=%v prefix=%d opcode=%02X ext=%02X is spelled by", + RED, RESET, key.esc, key.prefix, key.opcode, key.ext) + for m in list { fmt.printf(" %v", m) } + fmt.printf(",\n and the decoder has nothing to choose between them. Declare one in\n") + fmt.printf(" x86.MNEMONIC_ALIASES (isa/x86/aliases.odin), then regenerate:\n") + fmt.printf(" odin run core/rexcode/isa/x86/tablegen && odin run core/rexcode/isa/x86/tablegen/generated\n") + } + } + if ambiguous > 10 { + fmt.printf(" ... and %d further ambiguous encoding(s).\n", ambiguous - 10) + } + if ambiguous > 0 { + g_stats.failed += 1 + return + } + g_stats.passed += 1 + g_stats.cases_validated += 1 +} + +/* + 0xE3 is one opcode whose MNEMONIC is chosen by address size -- which counter + register it tests -- and address size is the 67h axis, not REX.W. Modelling + JRCXZ as `force_rex_w` made its encoding `48 E3 cb` (llvm-mc emits a bare + `E3 cb`, and REX.W does not affect address size at all), gave JECXZ the bare + encoding that is really JRCXZ in long mode, and left the decoder with three + indistinguishable entries to guess between. + + Both directions and both modes are asserted here, refusals included: JCXZ is + unreachable in long mode (67h selects 32-bit there, never 16-bit) and JRCXZ + outside it. Every expectation below was measured against llvm-mc. +*/ +run_addr_size_tests :: proc() { + Decode_Case :: struct { + bytes: []u8, + mode: x86.Mode, + want: x86.Mnemonic, + note: string, + } + decodes := []Decode_Case{ + {{0xE3, 0x00}, ._64, .JRCXZ, "long mode default address size is 64-bit"}, + {{0x67, 0xE3, 0x00}, ._64, .JECXZ, "67h drops long mode to 32-bit"}, + {{0x48, 0xE3, 0x00}, ._64, .JRCXZ, "REX.W is ignored for address size"}, + {{0xE3, 0x00}, ._32, .JECXZ, "protected mode default is 32-bit"}, + {{0x67, 0xE3, 0x00}, ._32, .JCXZ, "67h drops protected mode to 16-bit"}, + } + for c in decodes { + insts := make([dynamic]x86.Instruction) + info := make([dynamic]x86.Instruction_Info) + labels := make([dynamic]x86.Label_Definition) + errors := make([dynamic]x86.Error) + defer { + delete(insts); delete(info); delete(labels); delete(errors) + } + _, ok := x86.decode(c.bytes, nil, &insts, &info, &labels, &errors, c.mode) + if !ok || len(insts) == 0 { + g_stats.failed += 1 + fmt.printf(" %sFAIL%s %v decode failed in %v (%s)\n", RED, RESET, c.bytes, c.mode, c.note) + continue + } + if insts[0].mnemonic != c.want { + g_stats.failed += 1 + fmt.printf(" %sFAIL%s %v in %v decoded %v, expected %v -- %s\n", + RED, RESET, c.bytes, c.mode, insts[0].mnemonic, c.want, c.note) + continue + } + g_stats.passed += 1 + g_stats.cases_validated += 1 + } + + Encode_Case :: struct { + mnemonic: x86.Mnemonic, + mode: x86.Mode, + want: []u8, // empty = must be refused; this mode cannot express it + } + encodes := []Encode_Case{ + {.JRCXZ, ._64, {0xE3, 0x00}}, + {.JECXZ, ._64, {0x67, 0xE3, 0x00}}, + {.JCXZ, ._64, {}}, + {.JECXZ, ._32, {0xE3, 0x00}}, + {.JCXZ, ._32, {0x67, 0xE3, 0x00}}, + {.JRCXZ, ._32, {}}, + } + for c in encodes { + insts := []x86.Instruction{x86.inst_rel_offset(c.mnemonic, 0, 1)} + code := make([]u8, 32) + relocs := make([dynamic]x86.Relocation) + errors := make([dynamic]x86.Error) + defer { + delete(code); delete(relocs); delete(errors) + } + count, ok := x86.encode(insts, nil, code, &relocs, &errors, true, 0, c.mode) + if len(c.want) == 0 { + if ok && count > 0 { + g_stats.failed += 1 + fmt.printf(" %sFAIL%s %v encoded to %02X in %v, but that mode cannot express its address size\n", + RED, RESET, c.mnemonic, code[:count], c.mode) + continue + } + g_stats.passed += 1 + g_stats.cases_validated += 1 + continue + } + if !ok || int(count) != len(c.want) { + g_stats.failed += 1 + fmt.printf(" %sFAIL%s %v in %v encoded %d byte(s), expected %d\n", + RED, RESET, c.mnemonic, c.mode, count, len(c.want)) + continue + } + same := true + for want, i in c.want { + if code[i] != want { same = false; break } + } + if !same { + g_stats.failed += 1 + fmt.printf(" %sFAIL%s %v in %v encoded % 02X, expected % 02X\n", + RED, RESET, c.mnemonic, c.mode, code[:count], c.want) + continue + } + g_stats.passed += 1 + g_stats.cases_validated += 1 } - return false } // ============================================================================= @@ -3204,7 +3364,44 @@ tb_check :: proc(name: string, typed, generic: x86.Instruction) { } } +/* THE BUILDERS AND THE TABLES MUST BE THE SAME GENERATION. + + `run_typed_builder_tests` below compares a HAND-LISTED sample of typed builders against the matcher + path, which is the right shape of check and covers about forty of 3820 builders. CALL r/m64 is not + among them — so when `9ae9a9bf9` shifted the encode table without regenerating the builders, its + baked hint 495 came to name JPE's `0F 8A` and this suite stayed green while every indirect call in + every JIT compiled to a conditional jump. + + This closes it for ALL of them at once. A baked hint is valid exactly when it lands inside its own + mnemonic's run, so the whole invariant is a function of ENCODE_RUNS; the generator records a + fingerprint of the runs it generated against, and this compares it to the live table. Regenerating + the builders is what makes them agree again — one command, printed here so nobody has to find it. */ +run_builder_generation_test :: proc() { + fingerprint := u64(0xcbf2_9ce4_8422_2325) + for m in x86.Mnemonic { + r := x86.ENCODE_RUNS[m] + for part in ([2]u64{u64(r.start), u64(r.count)}) { + for shift: uint = 0; shift < 64; shift += 8 { + fingerprint = (fingerprint ~ ((part >> shift) & 0xff)) * 0x0000_0100_0000_01b3 + } + } + } + if fingerprint == x86.BUILDER_TABLE_FINGERPRINT { + g_stats.passed += 1 + g_stats.cases_validated += 1 + return + } + g_stats.failed += 1 + fmt.printf(" %sFAIL%s mnemonic_builders.odin is STALE: it bakes form indices for an ENCODE_RUNS\n", RED, RESET) + fmt.printf(" layout of %016x, but the loaded tables are %016x. Every builder past the\n", + x86.BUILDER_TABLE_FINGERPRINT, fingerprint) + fmt.printf(" first inserted form now names another mnemonic's encoding. Regenerate:\n") + fmt.printf(" odin run core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin -file\n") +} + run_typed_builder_tests :: proc() { + run_builder_generation_test() + md8 := x86.mem_base_disp(x86.RBP, -16) md32 := x86.mem_base_disp(x86.RCX, 100000) mbi := x86.mem_base_index_disp(x86.R8, x86.RDX, 4, 32) @@ -3593,6 +3790,12 @@ main :: proc() { log_header("TYPED BUILDER CONSISTENCY") run_typed_builder_tests() + log_header("MNEMONIC ALIAS TABLE") + run_alias_table_test() + + log_header("ADDRESS-SIZE SELECTED MNEMONICS") + run_addr_size_tests() + log_header("I386 (32-BIT MODE) TESTS") run_i386_tests() diff --git a/core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin b/core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin index ea0820a06..bd266bae7 100644 --- a/core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin +++ b/core/rexcode/isa/x86/tools/gen_mnemonic_builders.odin @@ -214,6 +214,31 @@ main :: proc() { } + /* THE TABLE THIS FILE WAS GENERATED AGAINST, as a fingerprint over ENCODE_RUNS. + + Every builder below bakes an ABSOLUTE index into ENCODE_FORMS. Whether that index is still + right depends on exactly one thing — the (start, count) run of its mnemonic — so hashing the + runs captures the whole invariant: if this fingerprint still matches the live table, every + baked hint is still inside its own mnemonic's forms; if it does not, this file is stale and + every builder after the first inserted form names someone else's instruction. + + It has gone stale twice, silently, because nothing compared the two halves: `6e17e7a2d` left + 2130 of 3671 builders pointing at the wrong form, and after `36af73834` regenerated both, + `baae2636b` and `9ae9a9bf9` re-broke 37 and then 3393 of 3802 — the latter including CALL, + whose r/m64 builder encoded `0F 8A` (JPE) instead of `FF /2`, turning every indirect call + into a conditional jump. `tests/test.odin` checks this constant. */ + fingerprint := u64(0xcbf2_9ce4_8422_2325) + for m in x86.Mnemonic { + r := x86.ENCODE_RUNS[m] + for part in ([2]u64{u64(r.start), u64(r.count)}) { + for shift: uint = 0; shift < 64; shift += 8 { + fingerprint = (fingerprint ~ ((part >> shift) & 0xff)) * 0x0000_0100_0000_01b3 + } + } + } + strings.write_string(&sb, "\n// The ENCODE_RUNS layout these hints were generated against — see the note in the generator.\n") + strings.write_string(&sb, fmt.tprintf("BUILDER_TABLE_FINGERPRINT :: u64(0x%016x)\n", fingerprint)) + output := strings.to_string(sb) err := os.write_entire_file(#directory + "/../mnemonic_builders.odin", transmute([]u8)strings.concatenate({GEN_ATTRIB, output})) diff --git a/src/asm_tables.cpp b/src/asm_tables.cpp index 597dcde7b..2e7b7c857 100644 --- a/src/asm_tables.cpp +++ b/src/asm_tables.cpp @@ -31,6 +31,8 @@ enum AsmOperandKind : u8 { AsmOperand_Register_Or_Memory, AsmOperand_Immediate, AsmOperand_Label, + AsmOperand_RegisterGroup, + AsmOperand_Lane, AsmOperand_COUNT }; @@ -42,6 +44,8 @@ gb_global String const asm_operand_kind_strings[AsmOperand_COUNT] = { str_lit("register or memory"), str_lit("immediate"), str_lit("label"), + str_lit("register group"), + str_lit("lane"), }; gb_global String const asm_operand_kind_expected_strings[AsmOperand_COUNT] = { @@ -51,6 +55,8 @@ gb_global String const asm_operand_kind_expected_strings[AsmOperand_COUNT] = { str_lit("a register or memory"), str_lit("an immediate"), str_lit("a label"), + str_lit("a register group"), + str_lit("a lane"), }; enum AsmOperandConstraintKind : u32 { @@ -69,8 +75,10 @@ struct AsmOperandConstraint { #include "asm_tables_amd64.cpp" #include "asm_tables_riscv.cpp" +#include "asm_tables_arm64.cpp" void init_asm_tables(i64 word_size_bytes) { g_asm_amd64.init(word_size_bytes*8); g_asm_riscv.init(word_size_bytes*8); + g_asm_arm64.init(word_size_bytes*8); } \ No newline at end of file diff --git a/src/asm_tables_amd64.cpp b/src/asm_tables_amd64.cpp index fe7fa0a0f..3a37baa78 100644 --- a/src/asm_tables_amd64.cpp +++ b/src/asm_tables_amd64.cpp @@ -138,6 +138,108 @@ struct Asm_amd64 { REG_COUNT }; + + enum OperandType : u8 { + OP_NONE, + OP_R8, + OP_R16, + OP_R32, + OP_R64, + OP_RM8, + OP_RM16, + OP_RM32, + OP_RM64, + OP_M, + OP_M8, + OP_M16, + OP_M32, + OP_M64, + OP_M80, + OP_M128, + OP_M256, + OP_M512, + OP_IMM8, + OP_IMM16, + OP_IMM32, + OP_IMM64, + OP_IMM8SX, + OP_REL8, + OP_REL32, + OP_AL_IMPL, + OP_AX_IMPL, + OP_EAX_IMPL, + OP_RAX_IMPL, + OP_CL_IMPL, + OP_DX_IMPL, + OP_ONE_IMPL, + OP_SREG, + OP_CR, + OP_DR, + OP_XMM, + OP_YMM, + OP_ZMM, + OP_XMM_M32, + OP_XMM_M64, + OP_XMM_M128, + OP_YMM_M256, + OP_ZMM_M512, + OP_MM, + OP_MM_M64, + OP_ST0_IMPL, + OP_STI, + OP_XMM0_IMPL, + OP_K, + OP_K_M8, + OP_K_M16, + OP_K_M32, + OP_K_M64, + OP_MOFFS8, + OP_MOFFS16, + OP_MOFFS32, + OP_MOFFS64, + OP_PTR16_16, + OP_PTR16_32, + OP_PTR16_64, + OP_M16_16, + OP_M16_32, + OP_M16_64, + }; + + + enum OperandEncoding : u8 { + ENC_NONE, + ENC_MR, + ENC_REG, + ENC_VVVV, + ENC_OP_R, + ENC_IB, + ENC_IW, + ENC_ID, + ENC_IQ, + ENC_IMPL, + ENC_IS4, + ENC_AAA, + }; + + typedef u32 EncodingFlags; // cannot use a C++ bit field to due lack of portability + + #pragma pack(push, 1) + struct Encoding { + Mnemonic mnemonic; + OperandType ops[4]; + OperandEncoding enc[4]; + u8 opcode; + u8 ext; + EncodingFlags flags; + + bool has_implicit () const { return ((flags>>23u)&1) != 0; } + u8 explicit_count() const { return cast(u8)((flags>>20u)&((1u<<3)-1)); } + bool lock_ok () const { return ((flags>>14u)&1) != 0; } + bool rep_ok () const { return ((flags>>15u)&1) != 0; } + }; + #pragma pack(pop) + GB_STATIC_ASSERT(gb_size_of(Encoding) == 16); + enum ClobberFlags : u16 { ClobberFlag_CF = 1<<0, ClobberFlag_PF = 1<<1, @@ -156,6 +258,7 @@ struct Asm_amd64 { case ClobberFlag_CF: return "c"; case ClobberFlag_PF: return "p"; case ClobberFlag_AF: return "a"; case ClobberFlag_ZF: return "z"; case ClobberFlag_SF: return "s"; case ClobberFlag_OF: return "o"; + case ClobberFlag_DF: return "d"; case ClobberFlag_IF: return "i"; } return "?"; } @@ -312,6 +415,9 @@ struct Asm_amd64 { ClobberFlags flags_rd_call() const { return flags_rd; } + ClobberFlags flags_wr_call() const { + return flags_wr; + } bool implies_clobber_flags() const { u16 const FLAGS_MASK = ClobberFlag_CF|ClobberFlag_PF|ClobberFlag_AF| @@ -350,7 +456,7 @@ struct Asm_amd64 { bool has_halt() const { return (cast(u16)side_effects & SideEffectFlag_HALT) != 0; } - bool is_conditional() const { + bool is_conditional(struct Encoding const &valid_form) const { return has_control() && (cast(u16)flags_rd != 0); } bool is_nondeterministic() const { @@ -363,6 +469,14 @@ struct Asm_amd64 { u16 implicit = cast(u16)implicit_rd | cast(u16)implicit_wr; return (implicit & (ClobberReg_RSP|ClobberReg_RSI|ClobberReg_RDI|ClobberReg_RBX)) != 0; } + + bool is_status_snapshot() const { + u16 flags = cast(u16)this->flags_rd_call(); + u16 const STATUS_FLAGS = ClobberFlag_CF | ClobberFlag_PF | ClobberFlag_AF | + ClobberFlag_ZF | ClobberFlag_SF | ClobberFlag_OF; + return ((flags & ClobberFlag_IF) != 0) || + (gb_count_set_bits(flags & STATUS_FLAGS) >= 4); + } }; void clobber_implicit_regs(StringSet *clobber_registers_set, u16 implicit_regs) { @@ -416,108 +530,6 @@ struct Asm_amd64 { static String const register_strings[REG_COUNT]; - enum OperandType : u8 { - OP_NONE, - OP_R8, - OP_R16, - OP_R32, - OP_R64, - OP_RM8, - OP_RM16, - OP_RM32, - OP_RM64, - OP_M, - OP_M8, - OP_M16, - OP_M32, - OP_M64, - OP_M80, - OP_M128, - OP_M256, - OP_M512, - OP_IMM8, - OP_IMM16, - OP_IMM32, - OP_IMM64, - OP_IMM8SX, - OP_REL8, - OP_REL32, - OP_AL_IMPL, - OP_AX_IMPL, - OP_EAX_IMPL, - OP_RAX_IMPL, - OP_CL_IMPL, - OP_DX_IMPL, - OP_ONE_IMPL, - OP_SREG, - OP_CR, - OP_DR, - OP_XMM, - OP_YMM, - OP_ZMM, - OP_XMM_M32, - OP_XMM_M64, - OP_XMM_M128, - OP_YMM_M256, - OP_ZMM_M512, - OP_MM, - OP_MM_M64, - OP_ST0_IMPL, - OP_STI, - OP_XMM0_IMPL, - OP_K, - OP_K_M8, - OP_K_M16, - OP_K_M32, - OP_K_M64, - OP_MOFFS8, - OP_MOFFS16, - OP_MOFFS32, - OP_MOFFS64, - OP_PTR16_16, - OP_PTR16_32, - OP_PTR16_64, - OP_M16_16, - OP_M16_32, - OP_M16_64, - }; - - - enum OperandEncoding : u8 { - ENC_NONE, - ENC_MR, - ENC_REG, - ENC_VVVV, - ENC_OP_R, - ENC_IB, - ENC_IW, - ENC_ID, - ENC_IQ, - ENC_IMPL, - ENC_IS4, - ENC_AAA, - }; - - typedef u32 EncodingFlags; // cannot use a C++ bit field to due lack of portability - - #pragma pack(push, 1) - struct Encoding { - Mnemonic mnemonic; - OperandType ops[4]; - OperandEncoding enc[4]; - u8 opcode; - u8 ext; - EncodingFlags flags; - - bool has_implicit () const { return ((flags>>21u)&1) != 0; } - u8 explicit_count() const { return cast(u8)((flags>>18u)&((1u<<3)-1)); } - bool lock_ok () const { return ((flags>>14u)&1) != 0; } - bool rep_ok () const { return ((flags>>15u)&1) != 0; } - }; - #pragma pack(pop) - GB_STATIC_ASSERT(gb_size_of(Encoding) == 16); - - // Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS. struct EncodeRun { u32 start; // start index in ENCODE_FORMS @@ -620,6 +632,11 @@ struct Asm_amd64 { return 0; } + bool reg_is_segment(/*Register*/ u16 r) { + auto c = reg_class(register_codes[r]); + return c == REG_CLASS_SEG; + } + bool integer_reg_width_is_exact() const { return true; } @@ -782,6 +799,24 @@ struct Asm_amd64 { return 0; // OP_M (sizeless), OP_K (opmask width is data-dependent), OP_ONE_IMPL, moffs, ptr, sreg/cr/dr, etc. } + bool target_has_feature(u64 enabled_features, u32 f) const { + return true; + } + char const *feature_name(u32 f) const { + return ""; + } + u16 operand_type_transfer_bytes(OperandType t) const { + gb_unused(t); + return 0; + } + bool operand_type_is_lane(OperandType t) const { + return false; + } + + String feature_name_from_form(Encoding const &form) const { + return {}; + } + int form_explicit_slot(Encoding const &form, int explicit_index) const { int seen = 0; for (int j = 0; j < gb_count_of(form.ops); j++) { @@ -800,6 +835,27 @@ struct Asm_amd64 { return -1; } + // Transfer size (bytes) a memory form's scaled index must match: + // shift == log2(bytes). Derived from the widest register operand in the form + // (the data being loaded/stored). 0 => no such constraint. Generic across ISAs. + u16 form_transfer_bytes(Encoding const &form) const { + u16 widest = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) { + break; + } + AsmOperandKind k = kind_from_operand_type(t); + if (k == AsmOperand_Register) { + u16 w = operand_type_bit_width(t); + if (w > widest) { + widest = w; + } + } + } + return cast(u16)(widest / 8); + } + bool prefix_kind_okay(u8 prefix, Encoding const &form, bool *requires_memory_dest_) const { PrefixKind kind = PrefixKind_None; if (prefix != 0) { @@ -1079,170 +1135,170 @@ Asm_amd64::EncodeRun const Asm_amd64::raw_encode_runs[1242] = { {2468, 1}, {2469, 1}, {2470, 1}, {2471, 1}, {2472, 1}, {2473, 1}, {2474, 1}, {2475, 1}, {2476, 1}, {2477, 1}, }; u8 const Asm_amd64::raw_encode_forms[39648] = { - 0x01, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x00, 0x01, 0x12, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x02, 0x13, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x03, 0x14, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x15, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x08, 0x09, 0x00, - 0x01, 0x00, 0x19, 0x35, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0x1a, 0x36, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0x1b, 0x37, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x08, 0x24, 0x00, - 0x01, 0x00, 0x35, 0x19, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0x36, 0x1a, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0x37, 0x1b, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x24, 0x00, 0x01, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x08, 0x24, 0x00, - 0x01, 0x00, 0x06, 0x20, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x08, 0x08, 0x00, 0x01, 0x00, 0x20, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x20, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x01, 0x00, 0x04, 0x21, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x21, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x04, 0x22, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x22, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x02, 0x00, 0x04, 0x15, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x08, 0x08, 0x00, 0x02, 0x00, 0x19, 0x35, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x24, 0x00, 0x02, 0x00, 0x1a, 0x36, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x24, 0x00, 0x02, 0x00, 0x1b, 0x37, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x02, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x08, 0x24, 0x00, 0x02, 0x00, 0x35, 0x19, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x24, 0x00, 0x02, 0x00, 0x36, 0x1a, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x24, 0x00, 0x02, 0x00, 0x37, 0x1b, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x02, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x08, 0x24, 0x00, 0x03, 0x00, 0x02, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03, 0x00, 0x03, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03, 0x00, 0x04, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x03, 0x00, 0x03, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb7, 0x00, 0x01, 0x00, 0x08, 0x00, 0x03, 0x00, 0x04, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb7, 0x00, 0x01, 0x08, 0x08, 0x00, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x01, 0x00, 0x08, 0x00, 0x04, 0x00, 0x03, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x04, 0x00, 0x04, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x01, 0x08, 0x08, 0x00, 0x04, 0x00, 0x03, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x01, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x01, 0x08, 0x08, 0x00, 0x05, 0x00, 0x04, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x06, 0x00, 0x1a, 0x02, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x24, 0x00, 0x06, 0x00, 0x1b, 0x03, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x24, 0x00, 0x06, 0x00, 0x1c, 0x04, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x90, 0x00, 0x00, 0x08, 0x24, 0x00, 0x06, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x86, 0x00, 0x00, 0x40, 0x08, 0x00, - 0x06, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x87, 0x00, 0x00, 0x40, 0x08, 0x00, 0x06, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x87, 0x00, 0x00, 0x40, 0x08, 0x00, 0x06, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x87, 0x00, 0x00, 0x48, 0x08, 0x00, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x04, 0x04, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x06, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x06, 0x00, 0x04, 0x05, 0x00, 0x07, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x04, 0x00, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x04, 0x00, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x04, 0x04, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x04, 0x05, 0x00, - 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x01, 0x00, 0x04, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x01, 0x00, 0x04, 0x00, 0x09, 0x00, 0x02, 0x09, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x09, 0x00, 0x03, 0x09, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x09, 0x00, 0x04, 0x09, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x08, 0x08, 0x00, 0x0a, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0a, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0a, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x08, 0x00, - 0x0a, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x48, 0x08, 0x00, 0x0a, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x0a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x08, 0x00, 0x0a, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0a, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0a, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x0a, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x08, 0x24, 0x00, 0x0a, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x09, 0x00, 0x0a, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x00, 0x00, 0x40, 0x09, 0x00, 0x0a, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x00, 0x00, 0x40, 0x09, 0x00, - 0x0a, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x00, 0x00, 0x48, 0x09, 0x00, 0x0a, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x00, 0x00, 0x40, 0x09, 0x00, 0x0a, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x00, 0x00, 0x40, 0x09, 0x00, 0x0a, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x00, 0x00, 0x48, 0x09, 0x00, - 0x0b, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0b, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0b, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0b, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x00, 0x48, 0x08, 0x00, - 0x0b, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0b, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x0b, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0b, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0b, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0b, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x08, 0x24, 0x00, - 0x0b, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x40, 0x09, 0x00, 0x0b, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x02, 0x00, 0x40, 0x09, 0x00, 0x0b, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x02, 0x00, 0x40, 0x09, 0x00, 0x0b, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x02, 0x00, 0x48, 0x09, 0x00, - 0x0b, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x02, 0x00, 0x40, 0x09, 0x00, 0x0b, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x02, 0x00, 0x40, 0x09, 0x00, 0x0b, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x02, 0x00, 0x48, 0x09, 0x00, 0x0c, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x28, 0x00, 0x00, 0x40, 0x08, 0x00, - 0x0c, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0c, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0c, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x00, 0x48, 0x08, 0x00, 0x0c, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x0c, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x08, 0x08, 0x00, 0x0c, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x0c, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0c, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0c, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x08, 0x24, 0x00, 0x0c, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x05, 0x00, 0x40, 0x09, 0x00, - 0x0c, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x05, 0x00, 0x40, 0x09, 0x00, 0x0c, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x05, 0x00, 0x40, 0x09, 0x00, 0x0c, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x05, 0x00, 0x48, 0x09, 0x00, 0x0c, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x05, 0x00, 0x40, 0x09, 0x00, - 0x0c, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x05, 0x00, 0x40, 0x09, 0x00, 0x0c, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x05, 0x00, 0x48, 0x09, 0x00, 0x0d, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0d, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x40, 0x08, 0x00, - 0x0d, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x40, 0x08, 0x00, 0x0d, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x48, 0x08, 0x00, 0x0d, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x0d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x08, 0x08, 0x00, 0x0d, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0d, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x0d, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x24, 0x00, 0x0d, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x08, 0x24, 0x00, 0x0d, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x03, 0x00, 0x40, 0x09, 0x00, 0x0d, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x03, 0x00, 0x40, 0x09, 0x00, - 0x0d, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x03, 0x00, 0x40, 0x09, 0x00, 0x0d, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x03, 0x00, 0x48, 0x09, 0x00, 0x0d, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x03, 0x00, 0x40, 0x09, 0x00, 0x0d, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x03, 0x00, 0x40, 0x09, 0x00, - 0x0d, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x03, 0x00, 0x48, 0x09, 0x00, 0x0e, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x04, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x04, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x04, 0x00, 0x00, 0x05, 0x00, - 0x0e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x04, 0x00, 0x08, 0x05, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x05, 0x00, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x05, 0x00, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x05, 0x00, 0x00, 0x05, 0x00, - 0x0f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x05, 0x00, 0x08, 0x05, 0x00, 0x0f, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x01, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x01, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x0f, 0x00, 0x02, 0x06, 0x16, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0f, 0x00, 0x03, 0x07, 0x16, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0f, 0x00, 0x04, 0x08, 0x16, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x08, 0x0c, 0x00, 0x0f, 0x00, 0x02, 0x06, 0x13, 0x00, 0x02, 0x01, 0x06, 0x00, 0x69, 0x00, 0x00, 0x00, 0x0c, 0x00, - 0x0f, 0x00, 0x03, 0x07, 0x14, 0x00, 0x02, 0x01, 0x07, 0x00, 0x69, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0f, 0x00, 0x04, 0x08, 0x14, 0x00, 0x02, 0x01, 0x07, 0x00, 0x69, 0x00, 0x00, 0x08, 0x0c, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x06, 0x00, 0x00, 0x05, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x06, 0x00, 0x00, 0x05, 0x00, - 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x06, 0x00, 0x00, 0x05, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x06, 0x00, 0x08, 0x05, 0x00, 0x11, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x07, 0x00, 0x00, 0x05, 0x00, 0x11, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x07, 0x00, 0x00, 0x05, 0x00, - 0x11, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x07, 0x00, 0x00, 0x05, 0x00, 0x11, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x07, 0x00, 0x08, 0x05, 0x00, 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x06, 0x00, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x06, 0x00, - 0x12, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x40, 0x05, 0x00, 0x12, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x40, 0x05, 0x00, 0x12, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x40, 0x05, 0x00, 0x12, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x48, 0x05, 0x00, - 0x13, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x13, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x06, 0x00, 0x13, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x40, 0x05, 0x00, 0x13, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x40, 0x05, 0x00, - 0x13, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x40, 0x05, 0x00, 0x13, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x48, 0x05, 0x00, 0x14, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x03, 0x00, 0x40, 0x05, 0x00, 0x14, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x40, 0x05, 0x00, - 0x14, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x40, 0x05, 0x00, 0x14, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x48, 0x05, 0x00, 0x15, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x08, 0x00, 0x15, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x15, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x08, 0x00, 0x15, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x39, 0x00, 0x00, 0x08, 0x08, 0x00, 0x15, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x15, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x15, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x15, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x08, 0x08, 0x00, 0x15, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x15, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x15, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x24, 0x00, 0x15, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x08, 0x24, 0x00, 0x15, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x09, 0x00, 0x15, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x07, 0x00, 0x00, 0x09, 0x00, - 0x15, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x07, 0x00, 0x00, 0x09, 0x00, 0x15, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x07, 0x00, 0x08, 0x09, 0x00, 0x15, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x07, 0x00, 0x00, 0x09, 0x00, 0x15, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x07, 0x00, 0x00, 0x09, 0x00, - 0x15, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x07, 0x00, 0x08, 0x09, 0x00, 0x16, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x08, 0x00, 0x16, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x40, 0x08, 0x00, 0x16, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x40, 0x08, 0x00, - 0x16, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x48, 0x08, 0x00, 0x16, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x08, 0x00, 0x16, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, 0x16, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x16, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x08, 0x08, 0x00, 0x16, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x24, 0x00, 0x16, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, 0x16, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x16, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x25, 0x00, 0x00, 0x08, 0x24, 0x00, 0x16, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x04, 0x00, 0x40, 0x09, 0x00, 0x16, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x04, 0x00, 0x40, 0x09, 0x00, 0x16, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x04, 0x00, 0x40, 0x09, 0x00, - 0x16, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x04, 0x00, 0x48, 0x09, 0x00, 0x16, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x40, 0x09, 0x00, 0x16, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x40, 0x09, 0x00, 0x16, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x48, 0x09, 0x00, - 0x17, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x40, 0x08, 0x00, 0x17, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x40, 0x08, 0x00, 0x17, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x40, 0x08, 0x00, 0x17, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x48, 0x08, 0x00, - 0x17, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x08, 0x00, 0x17, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x17, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x08, 0x00, 0x17, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x08, 0x08, 0x00, - 0x17, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x24, 0x00, 0x17, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x24, 0x00, 0x17, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x24, 0x00, 0x17, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x08, 0x24, 0x00, - 0x17, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x40, 0x09, 0x00, 0x17, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x01, 0x00, 0x40, 0x09, 0x00, 0x17, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x01, 0x00, 0x40, 0x09, 0x00, 0x17, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x01, 0x00, 0x48, 0x09, 0x00, - 0x17, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x01, 0x00, 0x40, 0x09, 0x00, 0x17, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x01, 0x00, 0x40, 0x09, 0x00, 0x17, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x01, 0x00, 0x48, 0x09, 0x00, 0x18, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x08, 0x00, - 0x18, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x00, 0x40, 0x08, 0x00, 0x18, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x00, 0x40, 0x08, 0x00, 0x18, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x00, 0x48, 0x08, 0x00, 0x18, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x18, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x00, 0x08, 0x08, 0x00, 0x18, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x18, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x24, 0x00, 0x18, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x24, 0x00, 0x18, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x35, 0x00, 0x00, 0x08, 0x24, 0x00, 0x18, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x06, 0x00, 0x40, 0x09, 0x00, - 0x18, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x06, 0x00, 0x40, 0x09, 0x00, 0x18, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x06, 0x00, 0x40, 0x09, 0x00, 0x18, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x06, 0x00, 0x48, 0x09, 0x00, 0x18, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x06, 0x00, 0x40, 0x09, 0x00, - 0x18, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x06, 0x00, 0x40, 0x09, 0x00, 0x18, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x06, 0x00, 0x48, 0x09, 0x00, 0x19, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x02, 0x00, 0x40, 0x05, 0x00, 0x19, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x40, 0x05, 0x00, - 0x19, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x40, 0x05, 0x00, 0x19, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x48, 0x05, 0x00, 0x1a, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x08, 0x00, 0x1a, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x1a, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x08, 0x00, 0x1a, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x85, 0x00, 0x00, 0x08, 0x08, 0x00, 0x1a, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1a, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x24, 0x00, - 0x1a, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x24, 0x00, 0x1a, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x08, 0x24, 0x00, 0x1a, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x09, 0x00, - 0x1a, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x09, 0x00, 0x1a, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x08, 0x09, 0x00, 0x1b, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1b, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x04, 0x00, 0x00, 0x25, 0x00, - 0x1b, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x09, 0x00, 0x1b, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1b, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1b, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x09, 0x00, - 0x1b, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1b, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1b, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x09, 0x00, 0x1b, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x08, 0x25, 0x00, - 0x1b, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x08, 0x25, 0x00, 0x1b, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x08, 0x09, 0x00, 0x1c, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x05, 0x00, 0x00, 0x25, 0x00, 0x1c, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x05, 0x00, 0x00, 0x25, 0x00, - 0x1c, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x05, 0x00, 0x00, 0x09, 0x00, 0x1c, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x05, 0x00, 0x00, 0x25, 0x00, 0x1c, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x05, 0x00, 0x00, 0x25, 0x00, 0x1c, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x09, 0x00, - 0x1c, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x05, 0x00, 0x00, 0x25, 0x00, 0x1c, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x05, 0x00, 0x00, 0x25, 0x00, 0x1c, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x09, 0x00, 0x1c, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x05, 0x00, 0x08, 0x25, 0x00, - 0x1c, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x05, 0x00, 0x08, 0x25, 0x00, 0x1c, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x08, 0x09, 0x00, 0x1d, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0x25, 0x00, 0x1d, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x07, 0x00, 0x00, 0x25, 0x00, - 0x1d, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x09, 0x00, 0x1d, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x07, 0x00, 0x00, 0x25, 0x00, 0x1d, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x07, 0x00, 0x00, 0x25, 0x00, 0x1d, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x07, 0x00, 0x00, 0x09, 0x00, - 0x1d, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x07, 0x00, 0x00, 0x25, 0x00, 0x1d, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x07, 0x00, 0x00, 0x25, 0x00, 0x1d, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x07, 0x00, 0x00, 0x09, 0x00, 0x1d, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x07, 0x00, 0x08, 0x25, 0x00, - 0x1d, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x07, 0x00, 0x08, 0x25, 0x00, 0x1d, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x07, 0x00, 0x08, 0x09, 0x00, 0x1e, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1e, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x04, 0x00, 0x00, 0x25, 0x00, - 0x1e, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1e, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1e, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x09, 0x00, - 0x1e, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1e, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x25, 0x00, 0x1e, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x09, 0x00, 0x1e, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x08, 0x25, 0x00, - 0x1e, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x08, 0x25, 0x00, 0x1e, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x08, 0x09, 0x00, 0x1f, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x25, 0x00, 0x1f, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x25, 0x00, - 0x1f, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x09, 0x00, 0x1f, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x25, 0x00, 0x1f, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x25, 0x00, 0x1f, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x09, 0x00, - 0x1f, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x25, 0x00, 0x1f, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x25, 0x00, 0x1f, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x09, 0x00, 0x1f, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x08, 0x25, 0x00, - 0x1f, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x08, 0x25, 0x00, 0x1f, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x08, 0x09, 0x00, 0x20, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x25, 0x00, 0x20, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, 0x25, 0x00, - 0x20, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x09, 0x00, 0x20, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x25, 0x00, 0x20, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x25, 0x00, 0x20, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x09, 0x00, - 0x20, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x25, 0x00, 0x20, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x25, 0x00, 0x20, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x09, 0x00, 0x20, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x08, 0x25, 0x00, - 0x20, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x08, 0x25, 0x00, 0x20, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x08, 0x09, 0x00, 0x21, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x25, 0x00, 0x21, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x02, 0x00, 0x00, 0x25, 0x00, - 0x21, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x09, 0x00, 0x21, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, 0x25, 0x00, 0x21, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x25, 0x00, 0x21, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0x09, 0x00, - 0x21, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, 0x25, 0x00, 0x21, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x25, 0x00, 0x21, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0x09, 0x00, 0x21, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x08, 0x25, 0x00, - 0x21, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x08, 0x25, 0x00, 0x21, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x08, 0x09, 0x00, 0x22, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x03, 0x00, 0x00, 0x25, 0x00, 0x22, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x03, 0x00, 0x00, 0x25, 0x00, - 0x22, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x09, 0x00, 0x22, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x03, 0x00, 0x00, 0x25, 0x00, 0x22, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x03, 0x00, 0x00, 0x25, 0x00, 0x22, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x00, 0x09, 0x00, - 0x22, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x03, 0x00, 0x00, 0x25, 0x00, 0x22, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x03, 0x00, 0x00, 0x25, 0x00, 0x22, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x00, 0x09, 0x00, 0x22, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x03, 0x00, 0x08, 0x25, 0x00, - 0x22, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x03, 0x00, 0x08, 0x25, 0x00, 0x22, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x08, 0x09, 0x00, 0x23, 0x00, 0x06, 0x02, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xa4, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x23, 0x00, 0x07, 0x03, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xa4, 0x00, 0x01, 0x00, 0x0c, 0x00, - 0x23, 0x00, 0x08, 0x04, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xa4, 0x00, 0x01, 0x08, 0x0c, 0x00, 0x23, 0x00, 0x06, 0x02, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xa5, 0x00, 0x01, 0x00, 0x28, 0x00, 0x23, 0x00, 0x07, 0x03, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xa5, 0x00, 0x01, 0x00, 0x28, 0x00, 0x23, 0x00, 0x08, 0x04, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xa5, 0x00, 0x01, 0x08, 0x28, 0x00, - 0x24, 0x00, 0x06, 0x02, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xac, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x24, 0x00, 0x07, 0x03, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xac, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x24, 0x00, 0x08, 0x04, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xac, 0x00, 0x01, 0x08, 0x0c, 0x00, 0x24, 0x00, 0x06, 0x02, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xad, 0x00, 0x01, 0x00, 0x28, 0x00, - 0x24, 0x00, 0x07, 0x03, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xad, 0x00, 0x01, 0x00, 0x28, 0x00, 0x24, 0x00, 0x08, 0x04, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xad, 0x00, 0x01, 0x08, 0x28, 0x00, 0x25, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x01, 0x00, 0x08, 0x00, 0x25, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x25, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x01, 0x08, 0x08, 0x00, 0x25, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x04, 0x01, 0x00, 0x09, 0x00, 0x25, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x04, 0x01, 0x00, 0x09, 0x00, 0x25, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x04, 0x01, 0x08, 0x09, 0x00, - 0x26, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xab, 0x00, 0x01, 0x40, 0x08, 0x00, 0x26, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xab, 0x00, 0x01, 0x40, 0x08, 0x00, 0x26, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xab, 0x00, 0x01, 0x48, 0x08, 0x00, 0x26, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x05, 0x01, 0x40, 0x09, 0x00, - 0x26, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x05, 0x01, 0x40, 0x09, 0x00, 0x26, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x05, 0x01, 0x48, 0x09, 0x00, 0x27, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x01, 0x40, 0x08, 0x00, 0x27, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x01, 0x40, 0x08, 0x00, - 0x27, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x01, 0x48, 0x08, 0x00, 0x27, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x06, 0x01, 0x40, 0x09, 0x00, 0x27, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x06, 0x01, 0x40, 0x09, 0x00, 0x27, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x06, 0x01, 0x48, 0x09, 0x00, - 0x28, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xbb, 0x00, 0x01, 0x40, 0x08, 0x00, 0x28, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xbb, 0x00, 0x01, 0x40, 0x08, 0x00, 0x28, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xbb, 0x00, 0x01, 0x48, 0x08, 0x00, 0x28, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x07, 0x01, 0x40, 0x09, 0x00, - 0x28, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x07, 0x01, 0x40, 0x09, 0x00, 0x28, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x07, 0x01, 0x48, 0x09, 0x00, 0x29, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x01, 0x00, 0x08, 0x00, 0x29, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x29, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x01, 0x08, 0x08, 0x00, 0x2a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x01, 0x00, 0x08, 0x00, 0x2a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x01, 0x00, 0x08, 0x00, 0x2a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x2b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x09, 0x00, 0x08, 0x00, 0x2b, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x09, 0x00, 0x08, 0x00, 0x2b, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x09, 0x08, 0x08, 0x00, 0x2c, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x09, 0x00, 0x08, 0x00, - 0x2c, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x09, 0x00, 0x08, 0x00, 0x2c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x09, 0x08, 0x08, 0x00, 0x2d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x09, 0x00, 0x08, 0x00, 0x2d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x09, 0x00, 0x08, 0x00, - 0x2d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x09, 0x08, 0x08, 0x00, 0x2e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x00, 0x2e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x04, 0x00, 0x04, 0x05, 0x00, - 0x2e, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x05, 0x00, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x05, 0x00, 0x00, 0x05, 0x00, 0x2e, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x05, 0x00, 0x08, 0x05, 0x00, 0x2f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x2f, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x87, 0x00, 0x01, 0x00, 0x04, 0x00, 0x30, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x30, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x01, 0x00, 0x04, 0x00, 0x31, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x31, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x01, 0x00, 0x04, 0x00, 0x32, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x04, 0x00, 0x32, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x01, 0x00, 0x04, 0x00, 0x33, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x33, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x01, 0x00, 0x04, 0x00, 0x34, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x04, 0x00, 0x34, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x84, 0x00, 0x01, 0x00, 0x04, 0x00, 0x35, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x35, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x84, 0x00, 0x01, 0x00, 0x04, 0x00, 0x36, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x36, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x01, 0x00, 0x04, 0x00, 0x37, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x37, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x01, 0x00, 0x04, 0x00, 0x38, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x01, 0x00, 0x04, 0x00, 0x39, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x39, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x01, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3a, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x01, 0x00, 0x04, 0x00, 0x3b, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x3b, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x01, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x01, 0x00, 0x04, 0x00, 0x3d, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x3d, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x87, 0x00, 0x01, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x01, 0x00, 0x04, 0x00, 0x3f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x3f, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x85, 0x00, 0x01, 0x00, 0x04, 0x00, 0x40, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x85, 0x00, 0x01, 0x00, 0x04, 0x00, 0x41, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x41, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x01, 0x00, 0x04, 0x00, 0x42, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x42, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x01, 0x00, 0x04, 0x00, 0x43, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x43, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x01, 0x00, 0x04, 0x00, 0x44, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x04, 0x00, 0x44, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x01, 0x00, 0x04, 0x00, 0x45, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x45, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x81, 0x00, 0x01, 0x00, 0x04, 0x00, 0x46, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x46, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x01, 0x00, 0x04, 0x00, 0x47, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x47, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x89, 0x00, 0x01, 0x00, 0x04, 0x00, 0x48, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x04, 0x00, 0x48, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x01, 0x00, 0x04, 0x00, 0x49, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x49, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x01, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x4a, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x01, 0x00, 0x04, 0x00, 0x4b, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x4b, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x01, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x04, 0x00, 0x4c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, 0x00, 0x01, 0x00, 0x04, 0x00, 0x4d, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x4e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x04, 0x00, 0x4f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x08, 0x04, 0x00, 0x50, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x04, 0x00, 0x51, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x52, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x04, 0x00, 0x53, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x04, 0x00, 0x53, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x02, 0x00, 0x04, 0x05, 0x00, 0x53, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x05, 0x00, - 0x53, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x05, 0x00, 0x53, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x08, 0x05, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x10, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x08, 0x00, 0x00, 0x58, 0x00, 0x12, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x01, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x89, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x01, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x01, 0x00, 0x01, 0x12, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x02, 0x13, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x03, 0x14, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x04, 0x15, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x01, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x21, 0x00, 0x01, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x21, 0x00, 0x01, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x00, 0x21, 0x00, 0x01, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xc7, 0x00, 0x00, 0x08, 0x21, 0x00, + 0x01, 0x00, 0x19, 0x35, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x1a, 0x36, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x1b, 0x37, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x08, 0x90, 0x00, + 0x01, 0x00, 0x35, 0x19, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x36, 0x1a, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x37, 0x1b, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x08, 0x90, 0x00, + 0x01, 0x00, 0x06, 0x20, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x08, 0x20, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8c, 0x00, 0x00, 0x08, 0x20, 0x00, 0x01, 0x00, 0x20, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x20, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8e, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x01, 0x00, 0x04, 0x21, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x21, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x04, 0x22, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x01, 0x00, 0x20, 0x00, 0x01, 0x00, 0x22, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x02, 0x00, 0x04, 0x15, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x08, 0x20, 0x00, 0x02, 0x00, 0x19, 0x35, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x90, 0x00, 0x02, 0x00, 0x1a, 0x36, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x90, 0x00, 0x02, 0x00, 0x1b, 0x37, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x02, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x09, 0x08, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x08, 0x90, 0x00, 0x02, 0x00, 0x35, 0x19, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x90, 0x00, 0x02, 0x00, 0x36, 0x1a, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x90, 0x00, 0x02, 0x00, 0x37, 0x1b, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x02, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x08, 0x09, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x08, 0x90, 0x00, 0x03, 0x00, 0x02, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x03, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x04, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb6, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x03, 0x00, 0x03, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb7, 0x00, 0x01, 0x00, 0x20, 0x00, 0x03, 0x00, 0x04, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb7, 0x00, 0x01, 0x08, 0x20, 0x00, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x01, 0x00, 0x20, 0x00, 0x04, 0x00, 0x03, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x04, 0x00, 0x04, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbe, 0x00, 0x01, 0x08, 0x20, 0x00, 0x04, 0x00, 0x03, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x01, 0x00, 0x20, 0x00, 0x04, 0x00, 0x04, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbf, 0x00, 0x01, 0x08, 0x20, 0x00, 0x05, 0x00, 0x04, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x63, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x06, 0x00, 0x1a, 0x02, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x90, 0x00, 0x06, 0x00, 0x1b, 0x03, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x90, 0x00, 0x06, 0x00, 0x1c, 0x04, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x90, 0x00, 0x00, 0x08, 0x90, 0x00, 0x06, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x86, 0x00, 0x00, 0x40, 0x20, 0x00, + 0x06, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x87, 0x00, 0x00, 0x40, 0x20, 0x00, 0x06, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x87, 0x00, 0x00, 0x40, 0x20, 0x00, 0x06, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x87, 0x00, 0x00, 0x48, 0x20, 0x00, 0x07, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x04, 0x10, 0x00, 0x07, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x06, 0x00, 0x00, 0x11, 0x00, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x06, 0x00, 0x04, 0x11, 0x00, 0x07, 0x00, 0x16, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x10, 0x00, 0x07, 0x00, 0x14, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x10, 0x00, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x00, 0x07, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x04, 0x10, 0x00, 0x08, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x00, 0x11, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x00, 0x04, 0x11, 0x00, + 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa1, 0x00, 0x01, 0x00, 0x10, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x01, 0x00, 0x10, 0x00, 0x09, 0x00, 0x02, 0x09, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x09, 0x00, 0x03, 0x09, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x09, 0x00, 0x04, 0x09, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x8d, 0x00, 0x00, 0x08, 0x20, 0x00, 0x0a, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0a, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0a, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x20, 0x00, + 0x0a, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x48, 0x20, 0x00, 0x0a, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x0a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x08, 0x20, 0x00, 0x0a, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0a, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0a, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x0a, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x05, 0x00, 0x00, 0x08, 0x90, 0x00, 0x0a, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x21, 0x00, 0x0a, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x00, 0x00, 0x40, 0x21, 0x00, 0x0a, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x00, 0x00, 0x40, 0x21, 0x00, + 0x0a, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x00, 0x00, 0x48, 0x21, 0x00, 0x0a, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x00, 0x00, 0x40, 0x21, 0x00, 0x0a, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x00, 0x00, 0x40, 0x21, 0x00, 0x0a, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x00, 0x00, 0x48, 0x21, 0x00, + 0x0b, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0b, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0b, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0b, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x00, 0x48, 0x20, 0x00, + 0x0b, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0b, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0b, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x0b, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0b, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0b, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0b, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x15, 0x00, 0x00, 0x08, 0x90, 0x00, + 0x0b, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x02, 0x00, 0x40, 0x21, 0x00, 0x0b, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x02, 0x00, 0x40, 0x21, 0x00, 0x0b, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x02, 0x00, 0x40, 0x21, 0x00, 0x0b, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x02, 0x00, 0x48, 0x21, 0x00, + 0x0b, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x02, 0x00, 0x40, 0x21, 0x00, 0x0b, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x02, 0x00, 0x40, 0x21, 0x00, 0x0b, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x02, 0x00, 0x48, 0x21, 0x00, 0x0c, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x28, 0x00, 0x00, 0x40, 0x20, 0x00, + 0x0c, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0c, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0c, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x00, 0x48, 0x20, 0x00, 0x0c, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x0c, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0c, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x08, 0x20, 0x00, 0x0c, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x0c, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0c, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0c, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x2d, 0x00, 0x00, 0x08, 0x90, 0x00, 0x0c, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x05, 0x00, 0x40, 0x21, 0x00, + 0x0c, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x05, 0x00, 0x40, 0x21, 0x00, 0x0c, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x05, 0x00, 0x40, 0x21, 0x00, 0x0c, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x05, 0x00, 0x48, 0x21, 0x00, 0x0c, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x05, 0x00, 0x40, 0x21, 0x00, + 0x0c, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x05, 0x00, 0x40, 0x21, 0x00, 0x0c, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x05, 0x00, 0x48, 0x21, 0x00, 0x0d, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0d, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x40, 0x20, 0x00, + 0x0d, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x40, 0x20, 0x00, 0x0d, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x19, 0x00, 0x00, 0x48, 0x20, 0x00, 0x0d, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x0d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x08, 0x20, 0x00, 0x0d, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0d, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x0d, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x0d, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x08, 0x90, 0x00, 0x0d, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x03, 0x00, 0x40, 0x21, 0x00, 0x0d, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x03, 0x00, 0x40, 0x21, 0x00, + 0x0d, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x03, 0x00, 0x40, 0x21, 0x00, 0x0d, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x03, 0x00, 0x48, 0x21, 0x00, 0x0d, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x03, 0x00, 0x40, 0x21, 0x00, 0x0d, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x03, 0x00, 0x40, 0x21, 0x00, + 0x0d, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x03, 0x00, 0x48, 0x21, 0x00, 0x0e, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x04, 0x00, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x04, 0x00, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x04, 0x00, 0x00, 0x11, 0x00, + 0x0e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x04, 0x00, 0x08, 0x11, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x05, 0x00, 0x00, 0x11, 0x00, 0x0f, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x05, 0x00, 0x00, 0x11, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x05, 0x00, 0x00, 0x11, 0x00, + 0x0f, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x05, 0x00, 0x08, 0x11, 0x00, 0x0f, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x01, 0x00, 0x20, 0x00, 0x0f, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x01, 0x00, 0x20, 0x00, 0x0f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xaf, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x0f, 0x00, 0x02, 0x06, 0x16, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0f, 0x00, 0x03, 0x07, 0x16, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0f, 0x00, 0x04, 0x08, 0x16, 0x00, 0x02, 0x01, 0x05, 0x00, 0x6b, 0x00, 0x00, 0x08, 0x30, 0x00, 0x0f, 0x00, 0x02, 0x06, 0x13, 0x00, 0x02, 0x01, 0x06, 0x00, 0x69, 0x00, 0x00, 0x00, 0x30, 0x00, + 0x0f, 0x00, 0x03, 0x07, 0x14, 0x00, 0x02, 0x01, 0x07, 0x00, 0x69, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0f, 0x00, 0x04, 0x08, 0x14, 0x00, 0x02, 0x01, 0x07, 0x00, 0x69, 0x00, 0x00, 0x08, 0x30, 0x00, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x06, 0x00, 0x00, 0x11, 0x00, 0x10, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x06, 0x00, 0x00, 0x11, 0x00, + 0x10, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x06, 0x00, 0x00, 0x11, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x06, 0x00, 0x08, 0x11, 0x00, 0x11, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x07, 0x00, 0x00, 0x11, 0x00, 0x11, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x07, 0x00, 0x00, 0x11, 0x00, + 0x11, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x07, 0x00, 0x00, 0x11, 0x00, 0x11, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x07, 0x00, 0x08, 0x11, 0x00, 0x12, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x12, 0x00, + 0x12, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x40, 0x11, 0x00, 0x12, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x40, 0x11, 0x00, 0x12, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x40, 0x11, 0x00, 0x12, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x48, 0x11, 0x00, + 0x13, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x12, 0x00, 0x13, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x12, 0x00, 0x13, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x40, 0x11, 0x00, 0x13, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x40, 0x11, 0x00, + 0x13, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x40, 0x11, 0x00, 0x13, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x48, 0x11, 0x00, 0x14, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x03, 0x00, 0x40, 0x11, 0x00, 0x14, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x40, 0x11, 0x00, + 0x14, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x40, 0x11, 0x00, 0x14, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x03, 0x00, 0x48, 0x11, 0x00, 0x15, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x15, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x15, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x39, 0x00, 0x00, 0x00, 0x20, 0x00, 0x15, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x39, 0x00, 0x00, 0x08, 0x20, 0x00, 0x15, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x15, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x15, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x15, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x00, 0x08, 0x20, 0x00, 0x15, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x00, 0x15, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x15, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x15, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x3d, 0x00, 0x00, 0x08, 0x90, 0x00, 0x15, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x21, 0x00, 0x15, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x07, 0x00, 0x00, 0x21, 0x00, + 0x15, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x07, 0x00, 0x00, 0x21, 0x00, 0x15, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x07, 0x00, 0x08, 0x21, 0x00, 0x15, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x07, 0x00, 0x00, 0x21, 0x00, 0x15, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x07, 0x00, 0x00, 0x21, 0x00, + 0x15, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x07, 0x00, 0x08, 0x21, 0x00, 0x16, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x20, 0x00, 0x16, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x40, 0x20, 0x00, 0x16, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x40, 0x20, 0x00, + 0x16, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x00, 0x48, 0x20, 0x00, 0x16, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x16, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x16, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x16, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x08, 0x20, 0x00, 0x16, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x90, 0x00, 0x16, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x90, 0x00, 0x16, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x16, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x25, 0x00, 0x00, 0x08, 0x90, 0x00, 0x16, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x04, 0x00, 0x40, 0x21, 0x00, 0x16, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x04, 0x00, 0x40, 0x21, 0x00, 0x16, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x04, 0x00, 0x40, 0x21, 0x00, + 0x16, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x04, 0x00, 0x48, 0x21, 0x00, 0x16, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x40, 0x21, 0x00, 0x16, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x40, 0x21, 0x00, 0x16, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x04, 0x00, 0x48, 0x21, 0x00, + 0x17, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x08, 0x00, 0x00, 0x40, 0x20, 0x00, 0x17, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x40, 0x20, 0x00, 0x17, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x40, 0x20, 0x00, 0x17, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x09, 0x00, 0x00, 0x48, 0x20, 0x00, + 0x17, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x20, 0x00, 0x17, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x17, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x17, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x17, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x90, 0x00, 0x17, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x17, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x90, 0x00, 0x17, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x08, 0x90, 0x00, + 0x17, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x01, 0x00, 0x40, 0x21, 0x00, 0x17, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x01, 0x00, 0x40, 0x21, 0x00, 0x17, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x01, 0x00, 0x40, 0x21, 0x00, 0x17, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x01, 0x00, 0x48, 0x21, 0x00, + 0x17, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x01, 0x00, 0x40, 0x21, 0x00, 0x17, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x01, 0x00, 0x40, 0x21, 0x00, 0x17, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x01, 0x00, 0x48, 0x21, 0x00, 0x18, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x20, 0x00, + 0x18, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x00, 0x40, 0x20, 0x00, 0x18, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x00, 0x40, 0x20, 0x00, 0x18, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x00, 0x48, 0x20, 0x00, 0x18, 0x00, 0x01, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x18, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x00, 0x08, 0x20, 0x00, 0x18, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x18, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x90, 0x00, 0x18, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x90, 0x00, 0x18, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0x35, 0x00, 0x00, 0x08, 0x90, 0x00, 0x18, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x80, 0x06, 0x00, 0x40, 0x21, 0x00, + 0x18, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x81, 0x06, 0x00, 0x40, 0x21, 0x00, 0x18, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x06, 0x00, 0x40, 0x21, 0x00, 0x18, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x81, 0x06, 0x00, 0x48, 0x21, 0x00, 0x18, 0x00, 0x06, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x06, 0x00, 0x40, 0x21, 0x00, + 0x18, 0x00, 0x07, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x06, 0x00, 0x40, 0x21, 0x00, 0x18, 0x00, 0x08, 0x16, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x83, 0x06, 0x00, 0x48, 0x21, 0x00, 0x19, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf6, 0x02, 0x00, 0x40, 0x11, 0x00, 0x19, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x40, 0x11, 0x00, + 0x19, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x40, 0x11, 0x00, 0x19, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x48, 0x11, 0x00, 0x1a, 0x00, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00, 0x20, 0x00, 0x1a, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x1a, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x20, 0x00, 0x1a, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x85, 0x00, 0x00, 0x08, 0x20, 0x00, 0x1a, 0x00, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x90, 0x00, 0x1a, 0x00, 0x1a, 0x13, 0x00, 0x00, 0x09, 0x06, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x90, 0x00, + 0x1a, 0x00, 0x1b, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x90, 0x00, 0x1a, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x09, 0x07, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x08, 0x90, 0x00, 0x1a, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xf6, 0x00, 0x00, 0x00, 0x21, 0x00, 0x1a, 0x00, 0x06, 0x13, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x21, 0x00, + 0x1a, 0x00, 0x07, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x00, 0x21, 0x00, 0x1a, 0x00, 0x08, 0x14, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xf7, 0x00, 0x00, 0x08, 0x21, 0x00, 0x1b, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1b, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x04, 0x00, 0x00, 0x91, 0x00, + 0x1b, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x21, 0x00, 0x1b, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1b, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1b, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x21, 0x00, + 0x1b, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1b, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1b, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x21, 0x00, 0x1b, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x08, 0x91, 0x00, + 0x1b, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x08, 0x91, 0x00, 0x1b, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x08, 0x21, 0x00, 0x1c, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x05, 0x00, 0x00, 0x91, 0x00, 0x1c, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x05, 0x00, 0x00, 0x91, 0x00, + 0x1c, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x05, 0x00, 0x00, 0x21, 0x00, 0x1c, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x05, 0x00, 0x00, 0x91, 0x00, 0x1c, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x05, 0x00, 0x00, 0x91, 0x00, 0x1c, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x21, 0x00, + 0x1c, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x05, 0x00, 0x00, 0x91, 0x00, 0x1c, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x05, 0x00, 0x00, 0x91, 0x00, 0x1c, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x00, 0x21, 0x00, 0x1c, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x05, 0x00, 0x08, 0x91, 0x00, + 0x1c, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x05, 0x00, 0x08, 0x91, 0x00, 0x1c, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x05, 0x00, 0x08, 0x21, 0x00, 0x1d, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x07, 0x00, 0x00, 0x91, 0x00, 0x1d, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x07, 0x00, 0x00, 0x91, 0x00, + 0x1d, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x21, 0x00, 0x1d, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x07, 0x00, 0x00, 0x91, 0x00, 0x1d, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x07, 0x00, 0x00, 0x91, 0x00, 0x1d, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x07, 0x00, 0x00, 0x21, 0x00, + 0x1d, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x07, 0x00, 0x00, 0x91, 0x00, 0x1d, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x07, 0x00, 0x00, 0x91, 0x00, 0x1d, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x07, 0x00, 0x00, 0x21, 0x00, 0x1d, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x07, 0x00, 0x08, 0x91, 0x00, + 0x1d, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x07, 0x00, 0x08, 0x91, 0x00, 0x1d, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x07, 0x00, 0x08, 0x21, 0x00, 0x1e, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1e, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x04, 0x00, 0x00, 0x91, 0x00, + 0x1e, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x04, 0x00, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1e, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1e, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x21, 0x00, + 0x1e, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1e, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x91, 0x00, 0x1e, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x08, 0x91, 0x00, + 0x1e, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x08, 0x91, 0x00, 0x1e, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x04, 0x00, 0x08, 0x21, 0x00, 0x1f, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x91, 0x00, 0x1f, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x91, 0x00, + 0x1f, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x21, 0x00, 0x1f, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x91, 0x00, 0x1f, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x91, 0x00, 0x1f, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x21, 0x00, + 0x1f, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x91, 0x00, 0x1f, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x00, 0x91, 0x00, 0x1f, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x21, 0x00, 0x1f, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x08, 0x91, 0x00, + 0x1f, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x00, 0x00, 0x08, 0x91, 0x00, 0x1f, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x08, 0x21, 0x00, 0x20, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x01, 0x00, 0x00, 0x91, 0x00, 0x20, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x01, 0x00, 0x00, 0x91, 0x00, + 0x20, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x21, 0x00, 0x20, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x91, 0x00, 0x20, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x91, 0x00, 0x20, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x21, 0x00, + 0x20, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x91, 0x00, 0x20, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x00, 0x91, 0x00, 0x20, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x00, 0x21, 0x00, 0x20, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x01, 0x00, 0x08, 0x91, 0x00, + 0x20, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x01, 0x00, 0x08, 0x91, 0x00, 0x20, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x01, 0x00, 0x08, 0x21, 0x00, 0x21, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x02, 0x00, 0x00, 0x91, 0x00, 0x21, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x02, 0x00, 0x00, 0x91, 0x00, + 0x21, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x02, 0x00, 0x00, 0x21, 0x00, 0x21, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, 0x91, 0x00, 0x21, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x91, 0x00, 0x21, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0x21, 0x00, + 0x21, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x00, 0x91, 0x00, 0x21, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x91, 0x00, 0x21, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x00, 0x21, 0x00, 0x21, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x02, 0x00, 0x08, 0x91, 0x00, + 0x21, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x08, 0x91, 0x00, 0x21, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x02, 0x00, 0x08, 0x21, 0x00, 0x22, 0x00, 0x05, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd0, 0x03, 0x00, 0x00, 0x91, 0x00, 0x22, 0x00, 0x05, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd2, 0x03, 0x00, 0x00, 0x91, 0x00, + 0x22, 0x00, 0x05, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x21, 0x00, 0x22, 0x00, 0x06, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x03, 0x00, 0x00, 0x91, 0x00, 0x22, 0x00, 0x06, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x03, 0x00, 0x00, 0x91, 0x00, 0x22, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x00, 0x21, 0x00, + 0x22, 0x00, 0x07, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x03, 0x00, 0x00, 0x91, 0x00, 0x22, 0x00, 0x07, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x03, 0x00, 0x00, 0x91, 0x00, 0x22, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x00, 0x21, 0x00, 0x22, 0x00, 0x08, 0x1f, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd1, 0x03, 0x00, 0x08, 0x91, 0x00, + 0x22, 0x00, 0x08, 0x1d, 0x00, 0x00, 0x01, 0x09, 0x00, 0x00, 0xd3, 0x03, 0x00, 0x08, 0x91, 0x00, 0x22, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xc1, 0x03, 0x00, 0x08, 0x21, 0x00, 0x23, 0x00, 0x06, 0x02, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xa4, 0x00, 0x01, 0x00, 0x30, 0x00, 0x23, 0x00, 0x07, 0x03, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xa4, 0x00, 0x01, 0x00, 0x30, 0x00, + 0x23, 0x00, 0x08, 0x04, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xa4, 0x00, 0x01, 0x08, 0x30, 0x00, 0x23, 0x00, 0x06, 0x02, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xa5, 0x00, 0x01, 0x00, 0xa0, 0x00, 0x23, 0x00, 0x07, 0x03, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xa5, 0x00, 0x01, 0x00, 0xa0, 0x00, 0x23, 0x00, 0x08, 0x04, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xa5, 0x00, 0x01, 0x08, 0xa0, 0x00, + 0x24, 0x00, 0x06, 0x02, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xac, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x00, 0x07, 0x03, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xac, 0x00, 0x01, 0x00, 0x30, 0x00, 0x24, 0x00, 0x08, 0x04, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0xac, 0x00, 0x01, 0x08, 0x30, 0x00, 0x24, 0x00, 0x06, 0x02, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xad, 0x00, 0x01, 0x00, 0xa0, 0x00, + 0x24, 0x00, 0x07, 0x03, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xad, 0x00, 0x01, 0x00, 0xa0, 0x00, 0x24, 0x00, 0x08, 0x04, 0x1d, 0x00, 0x01, 0x02, 0x09, 0x00, 0xad, 0x00, 0x01, 0x08, 0xa0, 0x00, 0x25, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x01, 0x00, 0x20, 0x00, 0x25, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x25, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x01, 0x08, 0x20, 0x00, 0x25, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x04, 0x01, 0x00, 0x21, 0x00, 0x25, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x04, 0x01, 0x00, 0x21, 0x00, 0x25, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x04, 0x01, 0x08, 0x21, 0x00, + 0x26, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xab, 0x00, 0x01, 0x40, 0x20, 0x00, 0x26, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xab, 0x00, 0x01, 0x40, 0x20, 0x00, 0x26, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xab, 0x00, 0x01, 0x48, 0x20, 0x00, 0x26, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x05, 0x01, 0x40, 0x21, 0x00, + 0x26, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x05, 0x01, 0x40, 0x21, 0x00, 0x26, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x05, 0x01, 0x48, 0x21, 0x00, 0x27, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x01, 0x40, 0x20, 0x00, 0x27, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x01, 0x40, 0x20, 0x00, + 0x27, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb3, 0x00, 0x01, 0x48, 0x20, 0x00, 0x27, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x06, 0x01, 0x40, 0x21, 0x00, 0x27, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x06, 0x01, 0x40, 0x21, 0x00, 0x27, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x06, 0x01, 0x48, 0x21, 0x00, + 0x28, 0x00, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xbb, 0x00, 0x01, 0x40, 0x20, 0x00, 0x28, 0x00, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xbb, 0x00, 0x01, 0x40, 0x20, 0x00, 0x28, 0x00, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xbb, 0x00, 0x01, 0x48, 0x20, 0x00, 0x28, 0x00, 0x06, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x07, 0x01, 0x40, 0x21, 0x00, + 0x28, 0x00, 0x07, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x07, 0x01, 0x40, 0x21, 0x00, 0x28, 0x00, 0x08, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xba, 0x07, 0x01, 0x48, 0x21, 0x00, 0x29, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x01, 0x00, 0x20, 0x00, 0x29, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x29, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x01, 0x08, 0x20, 0x00, 0x2a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x01, 0x00, 0x20, 0x00, 0x2a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x01, 0x00, 0x20, 0x00, 0x2a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x2b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x09, 0x00, 0x20, 0x00, 0x2b, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x09, 0x00, 0x20, 0x00, 0x2b, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb8, 0x00, 0x09, 0x08, 0x20, 0x00, 0x2c, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x09, 0x00, 0x20, 0x00, + 0x2c, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x09, 0x00, 0x20, 0x00, 0x2c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbd, 0x00, 0x09, 0x08, 0x20, 0x00, 0x2d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x09, 0x00, 0x20, 0x00, 0x2d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x09, 0x00, 0x20, 0x00, + 0x2d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xbc, 0x00, 0x09, 0x08, 0x20, 0x00, 0x2e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x00, 0x10, 0x00, 0x2e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe9, 0x00, 0x00, 0x00, 0x10, 0x00, 0x2e, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x04, 0x00, 0x04, 0x11, 0x00, + 0x2e, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x05, 0x00, 0x00, 0x11, 0x00, 0x2e, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x05, 0x00, 0x00, 0x11, 0x00, 0x2e, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x05, 0x00, 0x08, 0x11, 0x00, 0x2f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x2f, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x87, 0x00, 0x01, 0x00, 0x10, 0x00, 0x30, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x01, 0x00, 0x10, 0x00, 0x31, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x31, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x01, 0x00, 0x10, 0x00, 0x32, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x10, 0x00, 0x32, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x01, 0x00, 0x10, 0x00, 0x33, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x33, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x01, 0x00, 0x10, 0x00, 0x34, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x10, 0x00, 0x34, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x84, 0x00, 0x01, 0x00, 0x10, 0x00, 0x35, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x35, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x84, 0x00, 0x01, 0x00, 0x10, 0x00, 0x36, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x36, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x01, 0x00, 0x10, 0x00, 0x37, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x37, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x01, 0x00, 0x10, 0x00, 0x38, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x38, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x01, 0x00, 0x10, 0x00, 0x39, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x39, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x01, 0x00, 0x10, 0x00, 0x3a, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x10, 0x00, 0x3a, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x01, 0x00, 0x10, 0x00, 0x3b, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x3b, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x82, 0x00, 0x01, 0x00, 0x10, 0x00, 0x3c, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x10, 0x00, 0x3c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x01, 0x00, 0x10, 0x00, 0x3d, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x3d, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x87, 0x00, 0x01, 0x00, 0x10, 0x00, 0x3e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x10, 0x00, 0x3e, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x83, 0x00, 0x01, 0x00, 0x10, 0x00, 0x3f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x3f, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x85, 0x00, 0x01, 0x00, 0x10, 0x00, 0x40, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00, 0x10, 0x00, 0x40, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x85, 0x00, 0x01, 0x00, 0x10, 0x00, 0x41, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x41, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8e, 0x00, 0x01, 0x00, 0x10, 0x00, 0x42, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x42, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8c, 0x00, 0x01, 0x00, 0x10, 0x00, 0x43, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x43, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8d, 0x00, 0x01, 0x00, 0x10, 0x00, 0x44, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x10, 0x00, 0x44, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8f, 0x00, 0x01, 0x00, 0x10, 0x00, 0x45, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x45, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x81, 0x00, 0x01, 0x00, 0x10, 0x00, 0x46, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x10, 0x00, 0x46, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x01, 0x00, 0x10, 0x00, 0x47, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x47, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x89, 0x00, 0x01, 0x00, 0x10, 0x00, 0x48, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x48, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x00, 0x01, 0x00, 0x10, 0x00, 0x49, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x49, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x01, 0x00, 0x10, 0x00, 0x4a, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x00, 0x00, 0x10, 0x00, 0x4a, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x01, 0x00, 0x10, 0x00, 0x4b, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7b, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x4b, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x01, 0x00, 0x10, 0x00, 0x4c, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x10, 0x00, 0x4c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x88, 0x00, 0x01, 0x00, 0x10, 0x00, 0x4d, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x14, 0x00, + 0x4e, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x18, 0x00, 0x4f, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x50, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe2, 0x00, 0x00, 0x00, 0x10, 0x00, 0x51, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x52, 0x00, 0x17, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x53, 0x00, 0x18, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x10, 0x00, 0x53, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x02, 0x00, 0x04, 0x11, 0x00, 0x53, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x11, 0x00, + 0x53, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x11, 0x00, 0x53, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x08, 0x11, 0x00, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x13, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x10, 0x00, 0x00, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x08, 0x00, 0x00, 0x58, 0x00, 0x12, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x10, 0x00, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x97, 0x00, 0x01, 0x00, 0x04, 0x00, 0x60, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x61, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x00, 0x01, 0x00, 0x04, 0x00, 0x62, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x00, 0x01, 0x00, 0x04, 0x00, 0x63, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x00, 0x01, 0x00, 0x04, 0x00, 0x64, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x94, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x65, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x01, 0x00, 0x04, 0x00, 0x66, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x01, 0x00, 0x04, 0x00, 0x67, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x01, 0x00, 0x04, 0x00, 0x68, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x69, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x00, 0x01, 0x00, 0x04, 0x00, 0x6a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x00, 0x01, 0x00, 0x04, 0x00, 0x6b, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0x01, 0x00, 0x04, 0x00, 0x6c, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x97, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x6d, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0x01, 0x00, 0x04, 0x00, 0x6e, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x95, 0x00, 0x01, 0x00, 0x04, 0x00, 0x6f, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x04, 0x00, 0x70, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x71, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x01, 0x00, 0x04, 0x00, 0x72, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x01, 0x00, 0x04, 0x00, 0x73, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x91, 0x00, 0x01, 0x00, 0x04, 0x00, 0x74, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x75, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x99, 0x00, 0x01, 0x00, 0x04, 0x00, 0x76, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x95, 0x00, 0x01, 0x00, 0x04, 0x00, 0x77, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x04, 0x00, 0x78, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x79, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x01, 0x00, 0x04, 0x00, 0x7a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x01, 0x00, 0x04, 0x00, 0x7b, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x98, 0x00, 0x01, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x94, 0x00, 0x01, 0x00, 0x04, 0x00, - 0x7d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x08, 0x00, 0x7d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x08, 0x00, 0x7d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x08, 0x08, 0x00, 0x7e, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x7e, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x08, 0x00, 0x7e, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x08, 0x08, 0x00, 0x7f, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x08, 0x00, 0x7f, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x7f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x08, 0x08, 0x00, 0x80, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x08, 0x00, 0x80, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x08, 0x00, 0x80, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x81, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x08, 0x00, 0x81, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x08, 0x00, 0x81, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x08, 0x08, 0x00, 0x82, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x82, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x08, 0x00, 0x82, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x08, 0x08, 0x00, 0x83, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x08, 0x00, 0x83, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x83, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x08, 0x08, 0x00, 0x84, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x08, 0x00, 0x84, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x08, 0x00, 0x84, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x85, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x08, 0x00, 0x85, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x08, 0x00, 0x85, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x08, 0x08, 0x00, 0x86, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x86, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x08, 0x00, 0x86, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x08, 0x08, 0x00, 0x87, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x08, 0x00, 0x87, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x87, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x08, 0x08, 0x00, 0x88, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x08, 0x00, 0x88, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x08, 0x00, 0x88, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x89, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x08, 0x00, 0x89, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x08, 0x00, 0x89, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x08, 0x08, 0x00, 0x8a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x8a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x08, 0x08, 0x00, 0x8b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8b, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x8b, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x08, 0x08, 0x00, 0x8c, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8c, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x8d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x08, 0x08, 0x00, 0x8e, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x8e, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8e, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x08, 0x08, 0x00, 0x8f, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x08, 0x00, 0x8f, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x8f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x08, 0x08, 0x00, 0x90, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x08, 0x00, 0x90, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x08, 0x00, 0x90, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x91, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x01, 0x00, 0x08, 0x00, 0x91, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x01, 0x00, 0x08, 0x00, 0x91, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x01, 0x08, 0x08, 0x00, 0x92, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x92, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x08, 0x00, 0x92, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x08, 0x08, 0x00, 0x93, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x08, 0x00, 0x93, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x93, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x49, 0x00, 0x01, 0x08, 0x08, 0x00, 0x94, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x08, 0x00, 0x94, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x08, 0x00, 0x94, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x95, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x08, 0x00, 0x95, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x08, 0x00, 0x95, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x08, 0x08, 0x00, 0x96, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x96, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x08, 0x00, 0x96, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x08, 0x08, 0x00, 0x97, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x08, 0x00, 0x97, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x97, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x08, 0x08, 0x00, 0x98, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x08, 0x00, 0x98, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x08, 0x00, 0x98, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x08, 0x08, 0x00, - 0x99, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x48, 0x00, 0x01, 0x00, 0x08, 0x00, 0x99, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x48, 0x00, 0x01, 0x00, 0x08, 0x00, 0x99, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x48, 0x00, 0x01, 0x08, 0x08, 0x00, 0x9a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x9a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x08, 0x00, 0x9a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x08, 0x08, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x80, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x80, 0x00, 0x00, - 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x90, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x80, 0x00, 0x00, 0x9e, 0x00, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x9e, 0x00, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x0d, 0x00, 0x08, 0x00, + 0x5d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5f, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x97, 0x00, 0x01, 0x00, 0x10, 0x00, 0x60, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x61, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x00, 0x01, 0x00, 0x10, 0x00, 0x62, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x00, 0x01, 0x00, 0x10, 0x00, 0x63, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x00, 0x01, 0x00, 0x10, 0x00, 0x64, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x94, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x65, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x01, 0x00, 0x10, 0x00, 0x66, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x01, 0x00, 0x10, 0x00, 0x67, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x01, 0x00, 0x10, 0x00, 0x68, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x69, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x96, 0x00, 0x01, 0x00, 0x10, 0x00, 0x6a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x00, 0x01, 0x00, 0x10, 0x00, 0x6b, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0x01, 0x00, 0x10, 0x00, 0x6c, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x97, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x6d, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0x01, 0x00, 0x10, 0x00, 0x6e, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x95, 0x00, 0x01, 0x00, 0x10, 0x00, 0x6f, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x10, 0x00, 0x70, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x71, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x01, 0x00, 0x10, 0x00, 0x72, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x01, 0x00, 0x10, 0x00, 0x73, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x91, 0x00, 0x01, 0x00, 0x10, 0x00, 0x74, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x75, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x99, 0x00, 0x01, 0x00, 0x10, 0x00, 0x76, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x95, 0x00, 0x01, 0x00, 0x10, 0x00, 0x77, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x00, 0x01, 0x00, 0x10, 0x00, 0x78, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x79, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9a, 0x00, 0x01, 0x00, 0x10, 0x00, 0x7a, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x01, 0x00, 0x10, 0x00, 0x7b, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x98, 0x00, 0x01, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x94, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x7d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x20, 0x00, 0x7d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x20, 0x00, 0x7d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x08, 0x20, 0x00, 0x7e, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x7e, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x20, 0x00, 0x7e, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x08, 0x20, 0x00, 0x7f, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x20, 0x00, 0x7f, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x7f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x08, 0x20, 0x00, 0x80, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x20, 0x00, 0x80, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x20, 0x00, 0x80, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x81, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x20, 0x00, 0x81, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x20, 0x00, 0x81, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x08, 0x20, 0x00, 0x82, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x82, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x20, 0x00, 0x82, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x08, 0x20, 0x00, 0x83, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x20, 0x00, 0x83, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x83, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x08, 0x20, 0x00, 0x84, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x20, 0x00, 0x84, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x20, 0x00, 0x84, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x85, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x20, 0x00, 0x85, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x20, 0x00, 0x85, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x08, 0x20, 0x00, 0x86, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x86, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x20, 0x00, 0x86, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x08, 0x20, 0x00, 0x87, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x20, 0x00, 0x87, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x87, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x46, 0x00, 0x01, 0x08, 0x20, 0x00, 0x88, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x20, 0x00, 0x88, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x00, 0x20, 0x00, 0x88, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x89, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x20, 0x00, 0x89, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x20, 0x00, 0x89, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x08, 0x20, 0x00, 0x8a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x8a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x47, 0x00, 0x01, 0x08, 0x20, 0x00, 0x8b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8b, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x8b, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x43, 0x00, 0x01, 0x08, 0x20, 0x00, 0x8c, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8c, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8c, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x8d, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8d, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8d, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x01, 0x08, 0x20, 0x00, 0x8e, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x8e, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8e, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x01, 0x08, 0x20, 0x00, 0x8f, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x20, 0x00, 0x8f, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x8f, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4d, 0x00, 0x01, 0x08, 0x20, 0x00, 0x90, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x20, 0x00, 0x90, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x00, 0x20, 0x00, 0x90, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4f, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x91, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x01, 0x00, 0x20, 0x00, 0x91, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x01, 0x00, 0x20, 0x00, 0x91, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x01, 0x08, 0x20, 0x00, 0x92, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x92, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x20, 0x00, 0x92, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x08, 0x20, 0x00, 0x93, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x20, 0x00, 0x93, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x49, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x93, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x49, 0x00, 0x01, 0x08, 0x20, 0x00, 0x94, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x20, 0x00, 0x94, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x00, 0x20, 0x00, 0x94, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x45, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x95, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x95, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x00, 0x20, 0x00, 0x95, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x01, 0x08, 0x20, 0x00, 0x96, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x96, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x20, 0x00, 0x96, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x08, 0x20, 0x00, 0x97, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x20, 0x00, 0x97, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x97, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4a, 0x00, 0x01, 0x08, 0x20, 0x00, 0x98, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x20, 0x00, 0x98, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x00, 0x20, 0x00, 0x98, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4b, 0x00, 0x01, 0x08, 0x20, 0x00, + 0x99, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x48, 0x00, 0x01, 0x00, 0x20, 0x00, 0x99, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x48, 0x00, 0x01, 0x00, 0x20, 0x00, 0x99, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x48, 0x00, 0x01, 0x08, 0x20, 0x00, 0x9a, 0x00, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x9a, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x00, 0x20, 0x00, 0x9a, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x01, 0x08, 0x20, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x80, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x90, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x80, 0x00, 0x00, 0x9e, 0x00, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x9e, 0x00, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x88, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x90, 0x00, 0x00, - 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa3, 0x00, 0x23, 0x27, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x0d, 0x00, 0x0c, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x88, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x80, 0x00, 0x00, + 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa3, 0x00, 0x23, 0x27, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x0d, 0x00, 0x30, 0x00, 0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x88, 0x00, 0x00, 0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x90, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x80, 0x00, 0x00, 0xa9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x88, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x80, 0x00, 0x00, 0xab, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x00, 0x00, 0x80, 0x00, 0x00, 0xac, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x90, 0x00, 0x00, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x80, 0x00, 0x00, 0xae, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, 0x88, 0x00, 0x00, 0xaf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x80, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x00, 0x80, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x90, 0x00, 0x00, @@ -1250,450 +1306,450 @@ u8 const Asm_amd64::raw_encode_forms[39648] = { 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x10, 0x00, 0x00, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x10, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x04, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x00, 0x05, 0x00, 0xc3, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x00, 0x05, 0x00, - 0xc3, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x08, 0x05, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc7, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0x08, 0x00, 0xc8, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb9, 0x00, 0x01, 0x00, 0x08, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x01, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x01, 0x00, 0x00, 0x00, + 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x00, 0x00, 0x04, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x00, 0x11, 0x00, 0xc3, 0x00, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x00, 0x11, 0x00, + 0xc3, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x01, 0x08, 0x11, 0x00, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc7, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xff, 0x00, 0x01, 0x00, 0x20, 0x00, 0xc8, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xb9, 0x00, 0x01, 0x00, 0x20, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x01, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0x00, 0x01, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x01, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf9, 0x01, 0x00, 0x00, 0x00, 0xcd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x01, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd0, 0x01, 0x00, 0x00, 0x00, 0xcf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd1, 0x01, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x10, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x00, 0x00, 0x08, 0x00, 0x00, - 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x10, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x08, 0x00, 0x00, 0xd6, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf2, 0x00, 0x52, 0x01, 0x0c, 0x00, - 0xd6, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf2, 0x00, 0x92, 0x01, 0x0c, 0x00, 0xd7, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x52, 0x01, 0x0c, 0x00, 0xd7, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x92, 0x01, 0x0c, 0x00, 0xd8, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x03, 0x52, 0x01, 0x09, 0x00, - 0xd8, 0x00, 0x04, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x03, 0x92, 0x01, 0x09, 0x00, 0xd9, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x02, 0x52, 0x01, 0x09, 0x00, 0xd9, 0x00, 0x04, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x02, 0x92, 0x01, 0x09, 0x00, 0xda, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x52, 0x01, 0x09, 0x00, - 0xda, 0x00, 0x04, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x92, 0x01, 0x09, 0x00, 0xdb, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf5, 0x00, 0x52, 0x01, 0x0c, 0x00, 0xdb, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf5, 0x00, 0x92, 0x01, 0x0c, 0x00, 0xdc, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x5e, 0x01, 0x0c, 0x00, - 0xdc, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x9e, 0x01, 0x0c, 0x00, 0xdd, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x5a, 0x01, 0x0c, 0x00, 0xdd, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x9a, 0x01, 0x0c, 0x00, 0xde, 0x00, 0x03, 0x07, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xf0, 0x00, 0x5f, 0x01, 0x0c, 0x00, - 0xde, 0x00, 0x04, 0x08, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xf0, 0x00, 0x9f, 0x01, 0x0c, 0x00, 0xdf, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x5a, 0x01, 0x0c, 0x00, 0xdf, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x9a, 0x01, 0x0c, 0x00, 0xe0, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x56, 0x01, 0x0c, 0x00, - 0xe0, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe1, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x5e, 0x01, 0x0c, 0x00, 0xe1, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x9e, 0x01, 0x0c, 0x00, 0xe2, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf6, 0x00, 0x5e, 0x01, 0x0c, 0x00, - 0xe2, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf6, 0x00, 0x9e, 0x01, 0x0c, 0x00, 0xe3, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x06, 0x00, 0x08, 0x00, 0xe3, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x06, 0x08, 0x08, 0x00, 0xe4, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x0a, 0x00, 0x08, 0x00, - 0xe4, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x0a, 0x08, 0x08, 0x00, 0xe5, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x01, 0x00, 0x08, 0x00, 0xe5, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x01, 0x00, 0x08, 0x00, 0xe6, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xe6, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x08, 0x00, 0xe7, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x05, 0x00, 0x08, 0x00, 0xe7, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x05, 0x00, 0x08, 0x00, 0xe8, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x05, 0x00, 0x08, 0x00, - 0xe8, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x05, 0x00, 0x08, 0x00, 0xe9, 0x00, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x09, 0x00, 0x08, 0x00, 0xe9, 0x00, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x09, 0x00, 0x08, 0x00, 0xea, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x05, 0x00, 0x08, 0x00, - 0xea, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x05, 0x00, 0x08, 0x00, 0xeb, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x09, 0x00, 0x08, 0x00, 0xeb, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x09, 0x00, 0x08, 0x00, 0xec, 0x00, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x09, 0x00, 0x08, 0x00, - 0xec, 0x00, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xd6, 0x00, 0x05, 0x00, 0x08, 0x00, 0xec, 0x00, 0x2b, 0x2c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x01, 0x00, 0x08, 0x00, 0xec, 0x00, 0x2c, 0x2b, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x08, 0x00, 0xec, 0x00, 0x04, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x05, 0x08, 0x08, 0x00, - 0xec, 0x00, 0x23, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x05, 0x08, 0x08, 0x00, 0xed, 0x00, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x05, 0x00, 0x08, 0x00, 0xed, 0x00, 0x07, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x05, 0x00, 0x08, 0x00, 0xed, 0x00, 0x2b, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xed, 0x00, 0x07, 0x2b, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x08, 0x00, 0xee, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x01, 0x00, 0x08, 0x00, 0xee, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x08, 0x00, 0xef, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xef, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x01, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x05, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x05, 0x00, 0x08, 0x00, 0xf1, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x05, 0x00, 0x08, 0x00, - 0xf1, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x05, 0x00, 0x08, 0x00, 0xf2, 0x00, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x01, 0x00, 0x08, 0x00, 0xf3, 0x00, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x01, 0x00, 0x08, 0x00, 0xf4, 0x00, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xf4, 0x00, 0x04, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x01, 0x08, 0x08, 0x00, 0xf5, 0x00, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x08, 0x00, 0xf5, 0x00, 0x04, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x08, 0x08, 0x00, 0xf6, 0x00, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xf7, 0x00, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x05, 0x00, 0x08, 0x00, 0xf8, 0x00, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x05, 0x00, 0x08, 0x00, 0xf9, 0x00, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x08, 0x00, 0xfa, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xfb, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x05, 0x00, 0x08, 0x00, 0xfc, 0x00, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x09, 0x00, 0x08, 0x00, 0xfd, 0x00, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x0d, 0x00, 0x08, 0x00, 0xfe, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x01, 0x00, 0x08, 0x00, - 0xff, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x09, 0x00, 0x08, 0x00, 0x01, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x02, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x03, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x05, 0x00, 0x08, 0x00, 0x04, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x09, 0x00, 0x08, 0x00, 0x05, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x06, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x07, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x08, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x09, 0x00, 0x08, 0x00, 0x09, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x0a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x0b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x08, 0x00, 0x0c, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x09, 0x00, 0x08, 0x00, 0x0d, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x0e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x0f, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x09, 0x00, 0x08, 0x00, 0x10, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x01, 0x00, 0x08, 0x00, 0x11, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x09, 0x00, 0x08, 0x00, 0x12, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x13, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x05, 0x00, 0x08, 0x00, 0x14, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x09, 0x00, 0x08, 0x00, 0x15, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x16, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x17, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x05, 0x00, 0x08, 0x00, 0x18, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x09, 0x00, 0x08, 0x00, 0x19, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x1a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x54, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x1b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x54, 0x00, 0x05, 0x00, 0x08, 0x00, 0x1c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x55, 0x00, 0x01, 0x00, 0x08, 0x00, 0x1d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x55, 0x00, 0x05, 0x00, 0x08, 0x00, 0x1e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x56, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x1f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x08, 0x00, 0x20, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x57, 0x00, 0x01, 0x00, 0x08, 0x00, 0x21, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x57, 0x00, 0x05, 0x00, 0x08, 0x00, 0x22, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x01, 0x00, 0x0c, 0x00, - 0x23, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x24, 0x01, 0x23, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x09, 0x00, 0x0c, 0x00, 0x25, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x01, 0x00, 0x08, 0x00, 0x26, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x27, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x01, 0x00, 0x08, 0x00, 0x28, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x05, 0x00, 0x08, 0x00, 0x29, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc6, 0x00, 0x01, 0x00, 0x0c, 0x00, 0x2a, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc6, 0x00, 0x05, 0x00, 0x0c, 0x00, - 0x2b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x14, 0x00, 0x01, 0x00, 0x08, 0x00, 0x2c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x15, 0x00, 0x01, 0x00, 0x08, 0x00, 0x2d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x14, 0x00, 0x05, 0x00, 0x08, 0x00, 0x2e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x15, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x2f, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x01, 0x00, 0x08, 0x00, 0x30, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x05, 0x00, 0x08, 0x00, 0x31, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x09, 0x00, 0x08, 0x00, 0x32, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x0d, 0x00, 0x08, 0x00, - 0x33, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x05, 0x00, 0x08, 0x00, 0x34, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x35, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x01, 0x00, 0x08, 0x00, 0x36, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x09, 0x00, 0x08, 0x00, - 0x37, 0x01, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x09, 0x00, 0x08, 0x00, 0x37, 0x01, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x09, 0x08, 0x08, 0x00, 0x38, 0x01, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x38, 0x01, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x0d, 0x08, 0x08, 0x00, - 0x39, 0x01, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x09, 0x00, 0x08, 0x00, 0x39, 0x01, 0x23, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x09, 0x08, 0x08, 0x00, 0x3a, 0x01, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x3a, 0x01, 0x23, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x0d, 0x08, 0x08, 0x00, - 0x3b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x09, 0x00, 0x08, 0x00, 0x3c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x05, 0x00, 0x08, 0x00, 0x3d, 0x01, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x09, 0x00, 0x08, 0x00, 0x3d, 0x01, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x09, 0x08, 0x08, 0x00, - 0x3e, 0x01, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x3e, 0x01, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x0d, 0x08, 0x08, 0x00, 0x3f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x05, 0x00, 0x08, 0x00, 0x40, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x41, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfe, 0x00, 0x05, 0x00, 0x08, 0x00, 0x42, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x05, 0x00, 0x08, 0x00, 0x43, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x08, 0x00, 0x44, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x45, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x08, 0x00, 0x46, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x08, 0x00, 0x47, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xec, 0x00, 0x05, 0x00, 0x08, 0x00, 0x48, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xed, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x49, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdc, 0x00, 0x05, 0x00, 0x08, 0x00, 0x4a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x05, 0x00, 0x08, 0x00, 0x4b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe8, 0x00, 0x05, 0x00, 0x08, 0x00, 0x4c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x4d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x08, 0x00, 0x4e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x08, 0x00, 0x4f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x05, 0x00, 0x08, 0x00, 0x50, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x51, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe4, 0x00, 0x05, 0x00, 0x08, 0x00, 0x52, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x08, 0x00, 0x53, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x08, 0x00, 0x54, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x55, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdf, 0x00, 0x05, 0x00, 0x08, 0x00, 0x56, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x05, 0x00, 0x08, 0x00, 0x57, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xef, 0x00, 0x05, 0x00, 0x08, 0x00, 0x58, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x58, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x71, 0x06, 0x05, 0x00, 0x09, 0x00, 0x59, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x08, 0x00, 0x59, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x72, 0x06, 0x05, 0x00, 0x09, 0x00, 0x5a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x5a, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x73, 0x06, 0x05, 0x00, 0x09, 0x00, 0x5b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd1, 0x00, 0x05, 0x00, 0x08, 0x00, 0x5b, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x71, 0x02, 0x05, 0x00, 0x09, 0x00, 0x5c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd2, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x5c, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x72, 0x02, 0x05, 0x00, 0x09, 0x00, 0x5d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd3, 0x00, 0x05, 0x00, 0x08, 0x00, 0x5d, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x73, 0x02, 0x05, 0x00, 0x09, 0x00, 0x5e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x5e, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x71, 0x04, 0x05, 0x00, 0x09, 0x00, 0x5f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe2, 0x00, 0x05, 0x00, 0x08, 0x00, 0x5f, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x72, 0x04, 0x05, 0x00, 0x09, 0x00, 0x60, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x74, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x61, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x75, 0x00, 0x05, 0x00, 0x08, 0x00, 0x62, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x76, 0x00, 0x05, 0x00, 0x08, 0x00, 0x63, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x64, 0x00, 0x05, 0x00, 0x08, 0x00, 0x64, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x65, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x65, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x66, 0x00, 0x05, 0x00, 0x08, 0x00, 0x66, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x63, 0x00, 0x05, 0x00, 0x08, 0x00, 0x67, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6b, 0x00, 0x05, 0x00, 0x08, 0x00, 0x68, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x67, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x69, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x60, 0x00, 0x05, 0x00, 0x08, 0x00, 0x6a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x61, 0x00, 0x05, 0x00, 0x08, 0x00, 0x6b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x62, 0x00, 0x05, 0x00, 0x08, 0x00, 0x6c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x6d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x68, 0x00, 0x05, 0x00, 0x08, 0x00, 0x6e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x69, 0x00, 0x05, 0x00, 0x08, 0x00, 0x6f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x05, 0x00, 0x08, 0x00, 0x70, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6d, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x71, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x72, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x09, 0x00, 0x0c, 0x00, 0x73, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x0d, 0x00, 0x0c, 0x00, 0x74, 0x01, 0x2b, 0x2c, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x01, 0x00, 0x0c, 0x00, - 0x75, 0x01, 0x03, 0x23, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc5, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x75, 0x01, 0x04, 0x23, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc5, 0x00, 0x05, 0x08, 0x0c, 0x00, 0x76, 0x01, 0x23, 0x03, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc4, 0x00, 0x05, 0x00, 0x0c, 0x00, 0x76, 0x01, 0x23, 0x0b, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc4, 0x00, 0x05, 0x00, 0x0c, 0x00, - 0x77, 0x01, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x05, 0x00, 0x08, 0x00, 0x77, 0x01, 0x04, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x05, 0x08, 0x08, 0x00, 0x78, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x05, 0x00, 0x08, 0x00, 0x79, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe3, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x7a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xde, 0x00, 0x05, 0x00, 0x08, 0x00, 0x7b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xee, 0x00, 0x05, 0x00, 0x08, 0x00, 0x7c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xda, 0x00, 0x05, 0x00, 0x08, 0x00, 0x7d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xea, 0x00, 0x05, 0x00, 0x08, 0x00, - 0x7e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x08, 0x00, 0x7f, 0x01, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xf8, 0x01, 0x00, 0x00, 0x00, - 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x00, 0x00, 0x00, 0x84, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x07, 0x01, 0x00, 0x05, 0x00, 0x85, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x0d, 0x00, 0x08, 0x00, - 0x86, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x05, 0x00, 0x08, 0x00, 0x87, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7c, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x88, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7c, 0x00, 0x05, 0x00, 0x08, 0x00, 0x89, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x0d, 0x00, 0x08, 0x00, - 0x8a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x05, 0x00, 0x08, 0x00, 0x8b, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x8c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x09, 0x00, 0x08, 0x00, 0x8d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x09, 0x00, 0x08, 0x00, - 0x8e, 0x01, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x0d, 0x00, 0x08, 0x00, 0x8f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x08, 0x00, 0x90, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x08, 0x00, 0x91, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x08, 0x00, - 0x92, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x08, 0x00, 0x93, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x08, 0x00, 0x94, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x08, 0x00, 0x95, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x07, 0x00, 0x06, 0x00, 0x08, 0x00, - 0x96, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x08, 0x00, 0x97, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x08, 0x00, 0x98, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0x99, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x09, 0x00, 0x06, 0x00, 0x08, 0x00, - 0x9a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x06, 0x00, 0x08, 0x00, 0x9b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x06, 0x00, 0x08, 0x00, 0x9c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x06, 0x00, 0x08, 0x00, 0x9d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, 0x08, 0x00, - 0x9e, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x0c, 0x00, 0x9f, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xa0, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0d, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xa1, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0x14, 0x00, 0x06, 0x00, 0x28, 0x00, - 0xa2, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0x15, 0x00, 0x06, 0x00, 0x28, 0x00, 0xa3, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0e, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xa4, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0x10, 0x00, 0x06, 0x00, 0x28, 0x00, 0xa5, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x40, 0x00, 0x07, 0x00, 0x0c, 0x00, - 0xa6, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x41, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xa7, 0x01, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x17, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xa8, 0x01, 0x23, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x21, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xa9, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x42, 0x00, 0x07, 0x00, 0x0c, 0x00, - 0xaa, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x08, 0x00, 0xab, 0x01, 0x05, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x14, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xac, 0x01, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xad, 0x01, 0x08, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x07, 0x08, 0x0c, 0x00, - 0xae, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x08, 0x00, 0xaf, 0x01, 0x23, 0x05, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x20, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xb0, 0x01, 0x23, 0x07, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x22, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xb1, 0x01, 0x23, 0x08, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x22, 0x00, 0x07, 0x08, 0x0c, 0x00, - 0xb2, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3c, 0x00, 0x06, 0x00, 0x08, 0x00, 0xb3, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x06, 0x00, 0x08, 0x00, 0xb4, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x06, 0x00, 0x08, 0x00, 0xb5, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3f, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xb6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x06, 0x00, 0x08, 0x00, 0xb7, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x06, 0x00, 0x08, 0x00, 0xb8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3a, 0x00, 0x06, 0x00, 0x08, 0x00, 0xb9, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xba, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x00, 0x06, 0x00, 0x08, 0x00, 0xbb, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x21, 0x00, 0x06, 0x00, 0x08, 0x00, 0xbc, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x06, 0x00, 0x08, 0x00, 0xbd, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xbe, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x24, 0x00, 0x06, 0x00, 0x08, 0x00, 0xbf, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x25, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc0, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc1, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x31, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xc2, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc3, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc4, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x34, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc5, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x35, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xc6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc7, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x17, 0x00, 0x06, 0x00, 0x08, 0x00, 0xc9, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x07, 0x00, 0x0c, 0x00, - 0xca, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xcb, 0x01, 0x23, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0a, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xcc, 0x01, 0x23, 0x27, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0b, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xcd, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xce, 0x01, 0x03, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x0e, 0x00, 0x08, 0x00, 0xce, 0x01, 0x03, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x0e, 0x00, 0x08, 0x00, 0xce, 0x01, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x0e, 0x00, 0x08, 0x00, 0xce, 0x01, 0x04, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x0e, 0x08, 0x08, 0x00, - 0xce, 0x01, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x0e, 0x08, 0x08, 0x00, 0xcf, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x61, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xd0, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x60, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xd1, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x63, 0x00, 0x07, 0x00, 0x0c, 0x00, - 0xd2, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x62, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xd3, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x37, 0x00, 0x06, 0x00, 0x08, 0x00, 0xd4, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x44, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xd5, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xde, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xd6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x08, 0x00, 0xd7, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdc, 0x00, 0x06, 0x00, 0x08, 0x00, 0xd8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x06, 0x00, 0x08, 0x00, 0xd9, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xda, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xdf, 0x00, 0x07, 0x00, 0x0c, 0x00, 0xdb, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc9, 0x00, 0x02, 0x00, 0x08, 0x00, 0xdc, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xca, 0x00, 0x02, 0x00, 0x08, 0x00, 0xdd, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x02, 0x00, 0x08, 0x00, - 0xde, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xcc, 0x00, 0x03, 0x00, 0x0c, 0x00, 0xdf, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x08, 0x00, 0xe0, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xcd, 0x00, 0x02, 0x00, 0x08, 0x00, 0xe1, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0xcb, 0x00, 0x02, 0x00, 0x28, 0x00, - 0xe2, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x11, 0x01, 0x0c, 0x00, 0xe2, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x11, 0x02, 0x0c, 0x00, 0xe3, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x15, 0x01, 0x0c, 0x00, 0xe3, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0xe4, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xe5, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x1d, 0x00, 0x0c, 0x00, 0xe6, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x11, 0x01, 0x0c, 0x00, 0xe6, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x11, 0x02, 0x0c, 0x00, - 0xe7, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x15, 0x01, 0x0c, 0x00, 0xe7, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x15, 0x02, 0x0c, 0x00, 0xe8, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xe9, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x1d, 0x00, 0x0c, 0x00, - 0xea, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x11, 0x01, 0x0c, 0x00, 0xea, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x11, 0x02, 0x0c, 0x00, 0xeb, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x15, 0x01, 0x0c, 0x00, 0xeb, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0xec, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xed, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x1d, 0x00, 0x0c, 0x00, 0xee, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x11, 0x01, 0x0c, 0x00, 0xee, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x11, 0x02, 0x0c, 0x00, - 0xef, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x15, 0x01, 0x0c, 0x00, 0xef, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x15, 0x02, 0x0c, 0x00, 0xf0, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xf1, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x1d, 0x00, 0x0c, 0x00, - 0xf2, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x11, 0x01, 0x08, 0x00, 0xf2, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x11, 0x02, 0x08, 0x00, 0xf3, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x15, 0x01, 0x08, 0x00, 0xf3, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x15, 0x02, 0x08, 0x00, - 0xf4, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x51, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xf5, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x51, 0x00, 0x1d, 0x00, 0x0c, 0x00, 0xf6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x11, 0x01, 0x08, 0x00, 0xf6, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x11, 0x02, 0x08, 0x00, - 0xf7, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x53, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xf8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x11, 0x01, 0x08, 0x00, 0xf8, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x11, 0x02, 0x08, 0x00, 0xf9, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x19, 0x00, 0x0c, 0x00, - 0xfa, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x11, 0x01, 0x0c, 0x00, 0xfa, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x11, 0x02, 0x0c, 0x00, 0xfb, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x15, 0x01, 0x0c, 0x00, 0xfb, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0xfc, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x19, 0x00, 0x0c, 0x00, 0xfd, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x1d, 0x00, 0x0c, 0x00, 0xfe, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x11, 0x01, 0x0c, 0x00, 0xfe, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x11, 0x02, 0x0c, 0x00, - 0xff, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x15, 0x01, 0x0c, 0x00, 0xff, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x00, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x19, 0x00, 0x0c, 0x00, 0x01, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x1d, 0x00, 0x0c, 0x00, - 0x02, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x02, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x11, 0x02, 0x0c, 0x00, 0x03, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x03, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0x04, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x04, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x11, 0x02, 0x0c, 0x00, 0x05, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x05, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0x06, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x06, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x11, 0x02, 0x0c, 0x00, 0x07, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x07, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0x08, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x08, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x11, 0x02, 0x0c, 0x00, 0x09, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x09, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0x0a, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x11, 0x01, 0x10, 0x00, 0x0a, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x11, 0x02, 0x10, 0x00, 0x0b, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x15, 0x01, 0x10, 0x00, 0x0b, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x15, 0x02, 0x10, 0x00, - 0x0c, 0x02, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x19, 0x00, 0x10, 0x00, 0x0d, 0x02, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x1d, 0x00, 0x10, 0x00, 0x0e, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x11, 0x00, 0x08, 0x00, 0x0f, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x15, 0x00, 0x08, 0x00, - 0x10, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x11, 0x00, 0x08, 0x00, 0x11, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x15, 0x00, 0x08, 0x00, 0x12, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x11, 0x01, 0x10, 0x00, 0x12, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x11, 0x02, 0x10, 0x00, - 0x13, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x15, 0x01, 0x10, 0x00, 0x13, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x15, 0x02, 0x10, 0x00, 0x14, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x14, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x11, 0x02, 0x0c, 0x00, - 0x15, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x15, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x11, 0x02, 0x0c, 0x00, 0x16, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x16, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x15, 0x02, 0x0c, 0x00, - 0x17, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x17, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x18, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0c, 0x00, 0x17, 0x01, 0x10, 0x00, 0x18, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0c, 0x00, 0x17, 0x02, 0x10, 0x00, - 0x19, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0d, 0x00, 0x17, 0x01, 0x10, 0x00, 0x19, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0d, 0x00, 0x17, 0x02, 0x10, 0x00, 0x1a, 0x02, 0x23, 0x23, 0x28, 0x23, 0x02, 0x03, 0x01, 0x0a, 0x4a, 0x00, 0x57, 0x01, 0x10, 0x00, 0x1a, 0x02, 0x24, 0x24, 0x29, 0x24, 0x02, 0x03, 0x01, 0x0a, 0x4a, 0x00, 0x57, 0x02, 0x10, 0x00, - 0x1b, 0x02, 0x23, 0x23, 0x28, 0x23, 0x02, 0x03, 0x01, 0x0a, 0x4b, 0x00, 0x57, 0x01, 0x10, 0x00, 0x1b, 0x02, 0x24, 0x24, 0x29, 0x24, 0x02, 0x03, 0x01, 0x0a, 0x4b, 0x00, 0x57, 0x02, 0x10, 0x00, 0x1c, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x40, 0x00, 0x17, 0x01, 0x10, 0x00, 0x1c, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x40, 0x00, 0x17, 0x02, 0x10, 0x00, - 0x1d, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x41, 0x00, 0x17, 0x01, 0x10, 0x00, 0x1e, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x17, 0x01, 0x0c, 0x00, 0x1e, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x17, 0x02, 0x0c, 0x00, 0x1f, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0x17, 0x01, 0x0c, 0x00, - 0x1f, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0x17, 0x02, 0x0c, 0x00, 0x20, 0x02, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0a, 0x00, 0x17, 0x00, 0x10, 0x00, 0x21, 0x02, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0b, 0x00, 0x17, 0x00, 0x10, 0x00, 0x22, 0x02, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x17, 0x00, 0x17, 0x01, 0x0c, 0x00, - 0x23, 0x02, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x21, 0x00, 0x17, 0x01, 0x10, 0x00, 0x24, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x11, 0x01, 0x08, 0x00, 0x24, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x11, 0x01, 0x08, 0x00, 0x24, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x11, 0x02, 0x08, 0x00, - 0x24, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x11, 0x02, 0x08, 0x00, 0x25, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x11, 0x01, 0x08, 0x00, 0x25, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x11, 0x01, 0x08, 0x00, 0x25, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x11, 0x02, 0x08, 0x00, - 0x25, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x11, 0x02, 0x08, 0x00, 0x26, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x15, 0x01, 0x08, 0x00, 0x26, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x15, 0x01, 0x08, 0x00, 0x26, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x15, 0x02, 0x08, 0x00, - 0x26, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x15, 0x02, 0x08, 0x00, 0x27, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x15, 0x01, 0x08, 0x00, 0x27, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x15, 0x01, 0x08, 0x00, 0x27, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x15, 0x02, 0x08, 0x00, - 0x27, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x15, 0x02, 0x08, 0x00, 0x28, 0x02, 0x23, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x19, 0x00, 0x08, 0x00, 0x28, 0x02, 0x0c, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x19, 0x00, 0x08, 0x00, 0x28, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0x19, 0x00, 0x0c, 0x00, - 0x29, 0x02, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x1d, 0x00, 0x08, 0x00, 0x29, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x08, 0x00, 0x29, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0x1d, 0x00, 0x0c, 0x00, 0x2a, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x15, 0x01, 0x08, 0x00, - 0x2a, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x15, 0x01, 0x08, 0x00, 0x2a, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x15, 0x02, 0x08, 0x00, 0x2a, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x15, 0x02, 0x08, 0x00, 0x2b, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x19, 0x01, 0x08, 0x00, - 0x2b, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x19, 0x01, 0x08, 0x00, 0x2b, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x19, 0x02, 0x08, 0x00, 0x2b, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x19, 0x02, 0x08, 0x00, 0x2c, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x19, 0x01, 0x08, 0x00, - 0x2c, 0x02, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xd6, 0x00, 0x15, 0x01, 0x08, 0x00, 0x2c, 0x02, 0x23, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x95, 0x01, 0x08, 0x00, 0x2c, 0x02, 0x04, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x95, 0x01, 0x08, 0x00, 0x2d, 0x02, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x15, 0x01, 0x08, 0x00, - 0x2d, 0x02, 0x07, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x15, 0x01, 0x08, 0x00, 0x2e, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x2e, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x11, 0x01, 0x08, 0x00, 0x2f, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x11, 0x01, 0x0c, 0x00, - 0x2f, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x11, 0x01, 0x08, 0x00, 0x30, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x30, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x15, 0x01, 0x08, 0x00, 0x31, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x31, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x15, 0x01, 0x08, 0x00, 0x32, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x33, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0x11, 0x01, 0x0c, 0x00, 0x34, 0x02, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x11, 0x01, 0x08, 0x00, - 0x34, 0x02, 0x03, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x11, 0x02, 0x08, 0x00, 0x35, 0x02, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x15, 0x01, 0x08, 0x00, 0x35, 0x02, 0x03, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x15, 0x02, 0x08, 0x00, 0x36, 0x02, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x11, 0x01, 0x08, 0x00, - 0x36, 0x02, 0x10, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x11, 0x02, 0x08, 0x00, 0x37, 0x02, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x15, 0x01, 0x08, 0x00, 0x37, 0x02, 0x10, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x15, 0x02, 0x08, 0x00, 0x38, 0x02, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x15, 0x01, 0x08, 0x00, - 0x38, 0x02, 0x10, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x15, 0x02, 0x08, 0x00, 0x39, 0x02, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x16, 0x01, 0x08, 0x00, 0x39, 0x02, 0x24, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x16, 0x02, 0x08, 0x00, 0x3a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x1d, 0x01, 0x0c, 0x00, - 0x3a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x1d, 0x02, 0x0c, 0x00, 0x3b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x3b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x3c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x1d, 0x01, 0x0c, 0x00, - 0x3c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x1d, 0x02, 0x0c, 0x00, 0x3d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x3d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x3e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x1d, 0x01, 0x0c, 0x00, - 0x3e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x1d, 0x02, 0x0c, 0x00, 0x3f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x3f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x40, 0x02, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x1d, 0x01, 0x08, 0x00, - 0x40, 0x02, 0x24, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x1d, 0x02, 0x08, 0x00, 0x41, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x1d, 0x01, 0x08, 0x00, 0x41, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x1d, 0x02, 0x08, 0x00, 0x42, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x19, 0x01, 0x08, 0x00, - 0x42, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x19, 0x02, 0x08, 0x00, 0x43, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x19, 0x01, 0x08, 0x00, 0x43, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x19, 0x02, 0x08, 0x00, 0x44, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x61, 0x00, 0x57, 0x01, 0x0c, 0x00, - 0x45, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x60, 0x00, 0x57, 0x01, 0x0c, 0x00, 0x46, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x63, 0x00, 0x17, 0x01, 0x0c, 0x00, 0x47, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x62, 0x00, 0x17, 0x01, 0x0c, 0x00, 0x48, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x01, 0x08, 0x00, - 0x48, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x02, 0x08, 0x00, 0x48, 0x02, 0x23, 0x0a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x01, 0x08, 0x00, 0x48, 0x02, 0x24, 0x0a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x02, 0x08, 0x00, 0x49, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x01, 0x08, 0x00, - 0x49, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x02, 0x08, 0x00, 0x49, 0x02, 0x23, 0x0b, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x01, 0x08, 0x00, 0x49, 0x02, 0x24, 0x0b, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x02, 0x08, 0x00, 0x4a, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x01, 0x08, 0x00, - 0x4a, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x02, 0x08, 0x00, 0x4a, 0x02, 0x23, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x01, 0x08, 0x00, 0x4a, 0x02, 0x24, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x02, 0x08, 0x00, 0x4b, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x01, 0x08, 0x00, - 0x4b, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x02, 0x08, 0x00, 0x4b, 0x02, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x01, 0x08, 0x00, 0x4b, 0x02, 0x24, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x02, 0x08, 0x00, 0x4c, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x11, 0x01, 0x08, 0x00, - 0x4c, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x11, 0x02, 0x08, 0x00, 0x4d, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x15, 0x01, 0x08, 0x00, 0x4d, 0x02, 0x23, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x15, 0x02, 0x08, 0x00, 0x4e, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5a, 0x00, 0x19, 0x00, 0x0c, 0x00, - 0x4f, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5a, 0x00, 0x1d, 0x00, 0x0c, 0x00, 0x50, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x15, 0x01, 0x08, 0x00, 0x50, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x15, 0x02, 0x08, 0x00, 0x51, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x1d, 0x01, 0x08, 0x00, - 0x51, 0x02, 0x23, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x1d, 0x02, 0x08, 0x00, 0x52, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x11, 0x01, 0x08, 0x00, 0x52, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x11, 0x02, 0x08, 0x00, 0x53, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x19, 0x01, 0x08, 0x00, - 0x53, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x19, 0x02, 0x08, 0x00, 0x54, 0x02, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x19, 0x00, 0x08, 0x00, 0x54, 0x02, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x99, 0x00, 0x08, 0x00, 0x55, 0x02, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x1d, 0x00, 0x08, 0x00, - 0x55, 0x02, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x9d, 0x00, 0x08, 0x00, 0x56, 0x02, 0x23, 0x23, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x19, 0x00, 0x0c, 0x00, 0x56, 0x02, 0x23, 0x23, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x99, 0x00, 0x0c, 0x00, 0x57, 0x02, 0x23, 0x23, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x1d, 0x00, 0x0c, 0x00, - 0x57, 0x02, 0x23, 0x23, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x9d, 0x00, 0x0c, 0x00, 0x58, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x19, 0x01, 0x08, 0x00, 0x58, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x19, 0x02, 0x08, 0x00, 0x59, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x15, 0x01, 0x08, 0x00, - 0x59, 0x02, 0x23, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x15, 0x02, 0x08, 0x00, 0x5a, 0x02, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x19, 0x00, 0x08, 0x00, 0x5a, 0x02, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x99, 0x00, 0x08, 0x00, 0x5b, 0x02, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x1d, 0x00, 0x08, 0x00, - 0x5b, 0x02, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x9d, 0x00, 0x08, 0x00, 0x5c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfc, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x5c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfc, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x5d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfd, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x5d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfd, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x5e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfe, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x5e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfe, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x5f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd4, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x5f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd4, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x60, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf8, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x60, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf8, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x61, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf9, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x61, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf9, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x62, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfa, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x62, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfa, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x63, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfb, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x63, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfb, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x64, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd5, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x64, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd5, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x65, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe5, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x65, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe5, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x66, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe4, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x66, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe4, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x67, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf4, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x67, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf4, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x68, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x68, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x69, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdb, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x69, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdb, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdf, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x6a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdf, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xeb, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x6b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xeb, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xef, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x6c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xef, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf1, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x6d, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x06, 0x15, 0x01, 0x0d, 0x00, 0x6d, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf1, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6d, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x06, 0x15, 0x02, 0x0d, 0x00, 0x6e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf2, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x6e, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x06, 0x15, 0x01, 0x0d, 0x00, 0x6e, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf2, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6e, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x06, 0x15, 0x02, 0x0d, 0x00, 0x6f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf3, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x6f, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x06, 0x15, 0x01, 0x0d, 0x00, 0x6f, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf3, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x6f, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x06, 0x15, 0x02, 0x0d, 0x00, 0x70, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd1, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x70, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x02, 0x15, 0x01, 0x0d, 0x00, 0x70, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd1, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x70, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x02, 0x15, 0x02, 0x0d, 0x00, 0x71, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd2, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x71, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x02, 0x15, 0x01, 0x0d, 0x00, 0x71, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd2, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x71, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x02, 0x15, 0x02, 0x0d, 0x00, 0x72, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd3, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x72, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x02, 0x15, 0x01, 0x0d, 0x00, 0x72, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd3, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x72, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x02, 0x15, 0x02, 0x0d, 0x00, 0x73, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe1, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x73, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x04, 0x15, 0x01, 0x0d, 0x00, 0x73, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe1, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x73, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x04, 0x15, 0x02, 0x0d, 0x00, 0x74, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe2, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x74, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x04, 0x15, 0x01, 0x0d, 0x00, 0x74, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe2, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x74, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x04, 0x15, 0x02, 0x0d, 0x00, 0x75, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x74, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x75, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x74, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x76, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x76, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x77, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x77, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x78, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x29, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x78, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x29, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x79, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x79, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x7a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x7a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x7b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x7b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x7c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x37, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x7c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x37, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x7d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x63, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x7d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x63, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x7e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6b, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x7e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6b, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x7f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x67, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x7f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x67, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x80, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2b, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x80, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2b, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x81, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x60, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x81, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x60, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x82, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x61, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x82, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x61, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x83, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x62, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x83, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x62, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x84, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6c, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x84, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6c, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x85, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x68, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x85, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x68, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x86, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x69, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x86, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x69, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x87, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6a, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x87, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6a, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x88, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6d, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x88, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6d, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x89, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x15, 0x01, 0x0c, 0x00, - 0x89, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x15, 0x02, 0x0c, 0x00, 0x8a, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x19, 0x01, 0x0c, 0x00, 0x8a, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x19, 0x02, 0x0c, 0x00, 0x8b, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x1d, 0x01, 0x0c, 0x00, - 0x8b, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x1d, 0x02, 0x0c, 0x00, 0x8c, 0x02, 0x05, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x14, 0x00, 0x17, 0x01, 0x0c, 0x00, 0x8d, 0x02, 0x03, 0x23, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc5, 0x00, 0x15, 0x01, 0x0c, 0x00, 0x8d, 0x02, 0x06, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x15, 0x00, 0x17, 0x01, 0x0c, 0x00, - 0x8e, 0x02, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x17, 0x01, 0x0c, 0x00, 0x8f, 0x02, 0x08, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x97, 0x01, 0x0c, 0x00, 0x90, 0x02, 0x23, 0x23, 0x05, 0x12, 0x02, 0x03, 0x01, 0x05, 0x20, 0x00, 0x17, 0x01, 0x10, 0x00, 0x91, 0x02, 0x23, 0x23, 0x06, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc4, 0x00, 0x15, 0x01, 0x10, 0x00, - 0x92, 0x02, 0x23, 0x23, 0x07, 0x12, 0x02, 0x03, 0x01, 0x05, 0x22, 0x00, 0x17, 0x01, 0x10, 0x00, 0x93, 0x02, 0x23, 0x23, 0x08, 0x12, 0x02, 0x03, 0x01, 0x05, 0x22, 0x00, 0x97, 0x01, 0x10, 0x00, 0x94, 0x02, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x15, 0x01, 0x08, 0x00, 0x94, 0x02, 0x03, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x15, 0x02, 0x08, 0x00, - 0x95, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x17, 0x00, 0x16, 0x01, 0x08, 0x00, 0x95, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x17, 0x00, 0x16, 0x02, 0x08, 0x00, 0x96, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x96, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0x97, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x97, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x98, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x02, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x98, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x02, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0x99, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x99, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x9a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x05, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x9a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x05, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0x9b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x06, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x9b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x06, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x9c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x07, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x9c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x07, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0x9d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x04, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x9d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x04, 0x00, 0x16, 0x02, 0x0c, 0x00, 0x9e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0b, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x9e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0b, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0x9f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x08, 0x00, 0x16, 0x01, 0x0c, 0x00, 0x9f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x08, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xa0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x09, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xa0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x09, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0xa1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0a, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xa1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0a, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xa2, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x16, 0x01, 0x08, 0x00, 0xa2, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x16, 0x02, 0x08, 0x00, - 0xa3, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x16, 0x01, 0x08, 0x00, 0xa3, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x16, 0x02, 0x08, 0x00, 0xa4, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x16, 0x01, 0x08, 0x00, 0xa4, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x16, 0x02, 0x08, 0x00, - 0xa5, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0f, 0x00, 0x17, 0x01, 0x10, 0x00, 0xa5, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0f, 0x00, 0x17, 0x02, 0x10, 0x00, 0xa6, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0e, 0x00, 0x17, 0x01, 0x10, 0x00, 0xa6, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0e, 0x00, 0x17, 0x02, 0x10, 0x00, - 0xa7, 0x02, 0x23, 0x23, 0x28, 0x23, 0x02, 0x03, 0x01, 0x0a, 0x4c, 0x00, 0x57, 0x01, 0x10, 0x00, 0xa7, 0x02, 0x24, 0x24, 0x29, 0x24, 0x02, 0x03, 0x01, 0x0a, 0x4c, 0x00, 0x57, 0x02, 0x10, 0x00, 0xa8, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x17, 0x01, 0x10, 0x00, 0xa8, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x17, 0x02, 0x10, 0x00, - 0xa9, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x16, 0x01, 0x08, 0x00, 0xaa, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3c, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xaa, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3c, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xab, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3d, 0x00, 0x16, 0x01, 0x0c, 0x00, - 0xab, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3d, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xac, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3e, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xac, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3e, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xad, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3f, 0x00, 0x16, 0x01, 0x0c, 0x00, - 0xad, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3f, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xae, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x38, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xae, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x38, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xaf, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x39, 0x00, 0x16, 0x01, 0x0c, 0x00, - 0xaf, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x39, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xb0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3a, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xb0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3a, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xb1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3b, 0x00, 0x16, 0x01, 0x0c, 0x00, - 0xb1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3b, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xb2, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x00, 0x16, 0x01, 0x08, 0x00, 0xb2, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb3, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x21, 0x00, 0x16, 0x01, 0x08, 0x00, - 0xb3, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x21, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb4, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x16, 0x01, 0x08, 0x00, 0xb4, 0x02, 0x24, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb5, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x16, 0x01, 0x08, 0x00, - 0xb5, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb6, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x24, 0x00, 0x16, 0x01, 0x08, 0x00, 0xb6, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x24, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb7, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x25, 0x00, 0x16, 0x01, 0x08, 0x00, - 0xb7, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x25, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb8, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x30, 0x00, 0x16, 0x01, 0x08, 0x00, 0xb8, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x30, 0x00, 0x16, 0x02, 0x08, 0x00, 0xb9, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x31, 0x00, 0x16, 0x01, 0x08, 0x00, - 0xb9, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x31, 0x00, 0x16, 0x02, 0x08, 0x00, 0xba, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x16, 0x01, 0x08, 0x00, 0xba, 0x02, 0x24, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x16, 0x02, 0x08, 0x00, 0xbb, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x16, 0x01, 0x08, 0x00, - 0xbb, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x16, 0x02, 0x08, 0x00, 0xbc, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x34, 0x00, 0x16, 0x01, 0x08, 0x00, 0xbc, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x34, 0x00, 0x16, 0x02, 0x08, 0x00, 0xbd, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x35, 0x00, 0x16, 0x01, 0x08, 0x00, - 0xbd, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x35, 0x00, 0x16, 0x02, 0x08, 0x00, 0xbe, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x28, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xbe, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x28, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xbf, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x40, 0x00, 0x16, 0x01, 0x0c, 0x00, - 0xbf, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x40, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xc0, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x15, 0x01, 0x08, 0x00, 0xc1, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x44, 0x00, 0x17, 0x01, 0x10, 0x00, 0xc1, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x44, 0x00, 0x17, 0x02, 0x10, 0x00, - 0xc2, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xde, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xc3, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdf, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xc4, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdc, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xc5, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdd, 0x00, 0x16, 0x01, 0x0c, 0x00, - 0xc6, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x16, 0x01, 0x08, 0x00, 0xc7, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xdf, 0x00, 0x17, 0x01, 0x0c, 0x00, 0xc8, 0x02, 0x23, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x01, 0x08, 0x00, 0xc8, 0x02, 0x24, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x02, 0x08, 0x00, - 0xc8, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x01, 0x08, 0x00, 0xc8, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x02, 0x08, 0x00, 0xc9, 0x02, 0x24, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x19, 0x00, 0x16, 0x02, 0x08, 0x00, 0xc9, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x19, 0x00, 0x16, 0x02, 0x08, 0x00, - 0xca, 0x02, 0x24, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1a, 0x00, 0x16, 0x02, 0x08, 0x00, 0xcb, 0x02, 0x28, 0x24, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x19, 0x00, 0x17, 0x02, 0x0c, 0x00, 0xcc, 0x02, 0x24, 0x24, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x18, 0x00, 0x17, 0x02, 0x10, 0x00, 0xcd, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x06, 0x00, 0x17, 0x02, 0x10, 0x00, - 0xce, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xce, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xce, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2e, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xce, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2e, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0xcf, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xcf, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0x16, 0x02, 0x0c, 0x00, 0xcf, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2f, 0x00, 0x16, 0x01, 0x0c, 0x00, 0xcf, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2f, 0x00, 0x16, 0x02, 0x0c, 0x00, - 0xd0, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x16, 0x01, 0x08, 0x00, 0xd0, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x16, 0x02, 0x08, 0x00, 0xd1, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x16, 0x01, 0x08, 0x00, 0xd1, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x16, 0x02, 0x08, 0x00, - 0xd2, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x11, 0x02, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x11, 0x01, 0x00, 0x00, 0xd4, 0x02, 0x24, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x16, 0x02, 0x08, 0x00, 0xd5, 0x02, 0x28, 0x24, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x39, 0x00, 0x17, 0x02, 0x0c, 0x00, - 0xd6, 0x02, 0x24, 0x24, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x38, 0x00, 0x17, 0x02, 0x10, 0x00, 0xd7, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x46, 0x00, 0x17, 0x02, 0x10, 0x00, 0xd8, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x36, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xd9, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xda, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x97, 0x02, 0x0c, 0x00, 0xdb, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x01, 0x00, 0x97, 0x02, 0x0c, 0x00, 0xdc, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x02, 0x00, 0x57, 0x01, 0x10, 0x00, 0xdc, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x02, 0x00, 0x57, 0x02, 0x10, 0x00, - 0xdd, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xdd, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xde, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xde, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0xdf, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xdf, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xe0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0xe1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xe1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xe2, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xe2, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xe2, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xe2, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xe3, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe3, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0xe3, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe3, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xe4, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xe4, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xe5, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe5, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xe6, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xe6, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xe7, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe7, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xe8, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xe8, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xe9, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xe9, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xea, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xea, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xeb, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xeb, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xec, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xec, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xed, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xed, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xee, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xee, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xef, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xef, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xf0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xf0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0xf1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xf1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xf2, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x99, 0x00, 0x56, 0x00, 0x0c, 0x00, 0xf3, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa9, 0x00, 0x56, 0x00, 0x0c, 0x00, - 0xf4, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb9, 0x00, 0x56, 0x00, 0x0c, 0x00, 0xf5, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x99, 0x00, 0x96, 0x00, 0x0c, 0x00, 0xf6, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa9, 0x00, 0x96, 0x00, 0x0c, 0x00, 0xf7, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb9, 0x00, 0x96, 0x00, 0x0c, 0x00, - 0xf8, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xf8, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xf9, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xf9, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0xfa, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x56, 0x01, 0x0c, 0x00, 0xfa, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x56, 0x02, 0x0c, 0x00, 0xfb, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xfb, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0xfc, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xfc, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x96, 0x02, 0x0c, 0x00, 0xfd, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x96, 0x01, 0x0c, 0x00, 0xfd, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0xfe, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9b, 0x00, 0x56, 0x00, 0x0c, 0x00, 0xff, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xab, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x00, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbb, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x01, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9b, 0x00, 0x96, 0x00, 0x0c, 0x00, - 0x02, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xab, 0x00, 0x96, 0x00, 0x0c, 0x00, 0x03, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbb, 0x00, 0x96, 0x00, 0x0c, 0x00, 0x04, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x04, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x05, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x05, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x56, 0x02, 0x0c, 0x00, 0x06, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x06, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x07, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x07, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x08, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x08, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0x09, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x09, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x0a, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9d, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x0b, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xad, 0x00, 0x56, 0x00, 0x0c, 0x00, - 0x0c, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbd, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x0d, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9d, 0x00, 0x96, 0x00, 0x0c, 0x00, 0x0e, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xad, 0x00, 0x96, 0x00, 0x0c, 0x00, 0x0f, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbd, 0x00, 0x96, 0x00, 0x0c, 0x00, - 0x10, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x10, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x56, 0x02, 0x0c, 0x00, 0x11, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x11, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x12, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x12, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x56, 0x02, 0x0c, 0x00, 0x13, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x13, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0x14, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x14, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x15, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x15, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0x16, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9f, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x17, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaf, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x18, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbf, 0x00, 0x56, 0x00, 0x0c, 0x00, 0x19, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9f, 0x00, 0x96, 0x00, 0x0c, 0x00, - 0x1a, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaf, 0x00, 0x96, 0x00, 0x0c, 0x00, 0x1b, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbf, 0x00, 0x96, 0x00, 0x0c, 0x00, 0x1c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x1c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x1d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x1d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x56, 0x02, 0x0c, 0x00, 0x1e, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x1e, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x1f, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x1f, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x20, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x20, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0x21, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x21, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x22, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x22, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x23, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x23, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x56, 0x02, 0x0c, 0x00, 0x24, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x56, 0x01, 0x0c, 0x00, 0x24, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x56, 0x02, 0x0c, 0x00, - 0x25, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x25, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x26, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x26, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x96, 0x02, 0x0c, 0x00, - 0x27, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x96, 0x01, 0x0c, 0x00, 0x27, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x96, 0x02, 0x0c, 0x00, 0x28, 0x03, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x16, 0x01, 0x08, 0x00, 0x28, 0x03, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x16, 0x02, 0x08, 0x00, - 0x28, 0x03, 0x25, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x26, 0x03, 0x08, 0x00, 0x29, 0x03, 0x27, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1d, 0x00, 0x17, 0x01, 0x0c, 0x00, 0x29, 0x03, 0x28, 0x24, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1d, 0x00, 0x17, 0x02, 0x0c, 0x00, 0x29, 0x03, 0x29, 0x25, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1d, 0x00, 0x27, 0x03, 0x0c, 0x00, - 0x2a, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x65, 0x01, 0x08, 0x00, 0x2a, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x65, 0x01, 0x08, 0x00, 0x2a, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x65, 0x02, 0x08, 0x00, 0x2a, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x65, 0x02, 0x08, 0x00, - 0x2a, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x65, 0x03, 0x08, 0x00, 0x2a, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x65, 0x03, 0x08, 0x00, 0x2b, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa5, 0x01, 0x08, 0x00, 0x2b, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa5, 0x01, 0x08, 0x00, - 0x2b, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa5, 0x02, 0x08, 0x00, 0x2b, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa5, 0x02, 0x08, 0x00, 0x2b, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa5, 0x03, 0x08, 0x00, 0x2b, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa5, 0x03, 0x08, 0x00, - 0x2c, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x6d, 0x01, 0x08, 0x00, 0x2c, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x6d, 0x01, 0x08, 0x00, 0x2c, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x6d, 0x02, 0x08, 0x00, 0x2c, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x6d, 0x02, 0x08, 0x00, - 0x2c, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x6d, 0x03, 0x08, 0x00, 0x2c, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x6d, 0x03, 0x08, 0x00, 0x2d, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xad, 0x01, 0x08, 0x00, 0x2d, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xad, 0x01, 0x08, 0x00, - 0x2d, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xad, 0x02, 0x08, 0x00, 0x2d, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xad, 0x02, 0x08, 0x00, 0x2d, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xad, 0x03, 0x08, 0x00, 0x2d, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xad, 0x03, 0x08, 0x00, - 0x2e, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x69, 0x01, 0x08, 0x00, 0x2e, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x69, 0x01, 0x08, 0x00, 0x2e, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x69, 0x02, 0x08, 0x00, 0x2e, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x69, 0x02, 0x08, 0x00, - 0x2e, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x69, 0x03, 0x08, 0x00, 0x2e, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x69, 0x03, 0x08, 0x00, 0x2f, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa9, 0x01, 0x08, 0x00, 0x2f, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa9, 0x01, 0x08, 0x00, - 0x2f, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa9, 0x02, 0x08, 0x00, 0x2f, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa9, 0x02, 0x08, 0x00, 0x2f, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa9, 0x03, 0x08, 0x00, 0x2f, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa9, 0x03, 0x08, 0x00, - 0x30, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x30, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x30, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x31, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x31, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x31, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x32, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x32, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0x32, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x33, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x33, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x33, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x34, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x34, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x34, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x35, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x35, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x35, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x36, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0x67, 0x01, 0x10, 0x00, 0x36, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0x67, 0x02, 0x10, 0x00, - 0x36, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0x67, 0x03, 0x10, 0x00, 0x37, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0x67, 0x01, 0x10, 0x00, 0x37, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0x67, 0x02, 0x10, 0x00, 0x37, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0x67, 0x03, 0x10, 0x00, - 0x38, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0xa7, 0x01, 0x10, 0x00, 0x38, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0xa7, 0x02, 0x10, 0x00, 0x38, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0xa7, 0x03, 0x10, 0x00, 0x39, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0xa7, 0x01, 0x10, 0x00, - 0x39, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0xa7, 0x02, 0x10, 0x00, 0x39, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0xa7, 0x03, 0x10, 0x00, 0x3a, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0x67, 0x01, 0x10, 0x00, 0x3a, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0x67, 0x02, 0x10, 0x00, - 0x3a, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0x67, 0x03, 0x10, 0x00, 0x3b, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0x67, 0x01, 0x10, 0x00, 0x3b, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0x67, 0x02, 0x10, 0x00, 0x3b, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0x67, 0x03, 0x10, 0x00, - 0x3c, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0xa7, 0x01, 0x10, 0x00, 0x3c, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0xa7, 0x02, 0x10, 0x00, 0x3c, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0xa7, 0x03, 0x10, 0x00, 0x3d, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0xa7, 0x01, 0x10, 0x00, - 0x3d, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0xa7, 0x02, 0x10, 0x00, 0x3d, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0xa7, 0x03, 0x10, 0x00, 0x3e, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x3e, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0x3e, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x3f, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x3f, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x3f, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x40, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x40, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x40, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x41, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x41, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x41, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x42, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x6a, 0x01, 0x0c, 0x00, 0x42, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x6a, 0x02, 0x0c, 0x00, - 0x42, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x6a, 0x03, 0x0c, 0x00, 0x43, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xaa, 0x01, 0x0c, 0x00, 0x43, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xaa, 0x02, 0x0c, 0x00, 0x43, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xaa, 0x03, 0x0c, 0x00, - 0x44, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x6a, 0x01, 0x0c, 0x00, 0x44, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x6a, 0x02, 0x0c, 0x00, 0x44, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x6a, 0x03, 0x0c, 0x00, 0x45, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xaa, 0x01, 0x0c, 0x00, - 0x45, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xaa, 0x02, 0x0c, 0x00, 0x45, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xaa, 0x03, 0x0c, 0x00, 0x46, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0x66, 0x01, 0x08, 0x00, 0x46, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x46, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0x66, 0x03, 0x08, 0x00, 0x47, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x47, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x47, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0x48, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0x66, 0x01, 0x08, 0x00, 0x48, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0x66, 0x02, 0x08, 0x00, 0x48, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0x66, 0x03, 0x08, 0x00, 0x49, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0xa6, 0x01, 0x08, 0x00, - 0x49, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x49, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0xa6, 0x03, 0x08, 0x00, 0x4a, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0x66, 0x01, 0x08, 0x00, 0x4a, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x4a, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0x66, 0x03, 0x08, 0x00, 0x4b, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x4b, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x4b, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0x4c, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0x66, 0x01, 0x08, 0x00, 0x4c, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0x66, 0x02, 0x08, 0x00, 0x4c, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0x66, 0x03, 0x08, 0x00, 0x4d, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0xa6, 0x01, 0x08, 0x00, - 0x4d, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x4d, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0xa6, 0x03, 0x08, 0x00, 0x4e, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x66, 0x01, 0x08, 0x00, 0x4e, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x4e, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x66, 0x03, 0x08, 0x00, 0x4f, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x4f, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x4f, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0x50, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x66, 0x01, 0x08, 0x00, 0x50, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x66, 0x02, 0x08, 0x00, 0x50, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x66, 0x03, 0x08, 0x00, 0x51, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0xa6, 0x01, 0x08, 0x00, - 0x51, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x51, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0xa6, 0x03, 0x08, 0x00, 0x52, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x52, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0x52, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x53, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x53, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x53, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x54, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x54, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x54, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x55, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x55, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x55, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x56, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x56, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0x56, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x57, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x57, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x57, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x58, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x58, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x58, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x59, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x59, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x59, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x5a, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x5a, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0x5a, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x5b, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x5b, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x5b, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x5c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x5c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x5c, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x5d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x5d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x5d, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x5e, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x5e, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0x5e, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x5f, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x5f, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x5f, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x60, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x60, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x60, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x61, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0xaa, 0x01, 0x08, 0x00, - 0x61, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0xaa, 0x02, 0x08, 0x00, 0x61, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0xaa, 0x03, 0x08, 0x00, 0x62, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x62, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x6a, 0x02, 0x08, 0x00, - 0x62, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x63, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0xaa, 0x01, 0x08, 0x00, 0x63, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0xaa, 0x02, 0x08, 0x00, 0x63, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0xaa, 0x03, 0x08, 0x00, - 0x64, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x64, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x64, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x65, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0xaa, 0x01, 0x08, 0x00, - 0x65, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0xaa, 0x02, 0x08, 0x00, 0x65, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0xaa, 0x03, 0x08, 0x00, 0x66, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x66, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x6a, 0x02, 0x08, 0x00, - 0x66, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x67, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0xaa, 0x01, 0x08, 0x00, 0x67, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0xaa, 0x02, 0x08, 0x00, 0x67, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0xaa, 0x03, 0x08, 0x00, - 0x68, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x32, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x68, 0x03, 0x26, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x32, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x68, 0x03, 0x27, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x32, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x69, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x22, 0x00, 0x6a, 0x01, 0x08, 0x00, - 0x69, 0x03, 0x26, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x22, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x69, 0x03, 0x27, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x22, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x6a, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x12, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x6a, 0x03, 0x26, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x12, 0x00, 0x6a, 0x02, 0x08, 0x00, - 0x6a, 0x03, 0x27, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x12, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x6b, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x34, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x6b, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x34, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x6b, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x34, 0x00, 0x6a, 0x03, 0x08, 0x00, - 0x6c, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x24, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x6c, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x24, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x6c, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x24, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x6d, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x00, 0x6a, 0x01, 0x08, 0x00, - 0x6d, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x6d, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x6e, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x35, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x6e, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x35, 0x00, 0x6a, 0x02, 0x08, 0x00, - 0x6e, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x35, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x6f, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x25, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x6f, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x25, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x6f, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x25, 0x00, 0x6a, 0x03, 0x08, 0x00, - 0x70, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x15, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x70, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x15, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x70, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x15, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x71, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x6a, 0x01, 0x08, 0x00, - 0x71, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x71, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x72, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x72, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x6a, 0x02, 0x08, 0x00, - 0x72, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x73, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x73, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x73, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x6a, 0x03, 0x08, 0x00, - 0x74, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x74, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x74, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x75, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x6a, 0x01, 0x08, 0x00, - 0x75, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x75, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x76, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x76, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x6a, 0x02, 0x08, 0x00, - 0x76, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x77, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x77, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x77, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x6a, 0x03, 0x08, 0x00, - 0x78, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x6a, 0x01, 0x08, 0x00, 0x78, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x78, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x79, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x6a, 0x01, 0x08, 0x00, - 0x79, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x6a, 0x02, 0x08, 0x00, 0x79, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x6a, 0x03, 0x08, 0x00, 0x7a, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0x65, 0x01, 0x0d, 0x00, 0x7a, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0x65, 0x02, 0x0d, 0x00, - 0x7a, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0x65, 0x03, 0x0d, 0x00, 0x7b, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0xa5, 0x01, 0x0d, 0x00, 0x7b, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0xa5, 0x02, 0x0d, 0x00, 0x7b, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0xa5, 0x03, 0x0d, 0x00, - 0x7c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x7c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x7c, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x7d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x7d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x7d, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x7e, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0x65, 0x01, 0x0c, 0x00, 0x7e, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0x65, 0x02, 0x0c, 0x00, - 0x7e, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0x65, 0x03, 0x0c, 0x00, 0x7f, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0xa5, 0x01, 0x0c, 0x00, 0x7f, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0xa5, 0x02, 0x0c, 0x00, 0x7f, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0xa5, 0x03, 0x0c, 0x00, - 0x80, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x66, 0x01, 0x0c, 0x00, 0x80, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x66, 0x02, 0x0c, 0x00, 0x80, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x66, 0x03, 0x0c, 0x00, 0x81, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x81, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x81, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x82, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x66, 0x01, 0x08, 0x00, 0x82, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x82, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x66, 0x03, 0x08, 0x00, 0x83, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x83, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x83, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0x84, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0x66, 0x01, 0x08, 0x00, 0x84, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0x66, 0x02, 0x08, 0x00, 0x84, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0x66, 0x03, 0x08, 0x00, 0x85, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0xa6, 0x01, 0x08, 0x00, - 0x85, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x85, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0xa6, 0x03, 0x08, 0x00, 0x86, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x66, 0x01, 0x08, 0x00, 0x86, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x86, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x66, 0x03, 0x08, 0x00, 0x87, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x87, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x87, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0x88, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x66, 0x01, 0x08, 0x00, 0x88, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x66, 0x02, 0x08, 0x00, 0x88, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x66, 0x03, 0x08, 0x00, 0x89, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0xa6, 0x01, 0x08, 0x00, - 0x89, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x89, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0xa6, 0x03, 0x08, 0x00, 0x8a, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x8a, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0xa6, 0x02, 0x0c, 0x00, - 0x8a, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x8b, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x11, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x8b, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x11, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x8b, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x11, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0x8c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0x8c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x8c, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x8d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0xa6, 0x01, 0x0c, 0x00, - 0x8d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0x8d, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0x8e, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0x67, 0x01, 0x10, 0x00, 0x8e, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0x67, 0x02, 0x10, 0x00, - 0x8e, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0x67, 0x03, 0x10, 0x00, 0x8f, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0xa7, 0x01, 0x10, 0x00, 0x8f, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0xa7, 0x02, 0x10, 0x00, 0x8f, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0xa7, 0x03, 0x10, 0x00, - 0x90, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x51, 0x00, 0x67, 0x00, 0x10, 0x00, 0x91, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x51, 0x00, 0xa7, 0x00, 0x10, 0x00, 0x92, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0x67, 0x01, 0x0c, 0x00, 0x92, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0x67, 0x02, 0x0c, 0x00, - 0x92, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0x67, 0x03, 0x0c, 0x00, 0x93, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0xa7, 0x01, 0x0c, 0x00, 0x93, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0xa7, 0x02, 0x0c, 0x00, 0x93, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0xa7, 0x03, 0x0c, 0x00, - 0x94, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x57, 0x00, 0x67, 0x00, 0x10, 0x00, 0x95, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x57, 0x00, 0xa7, 0x00, 0x10, 0x00, 0x96, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x67, 0x01, 0x0c, 0x00, 0x96, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x67, 0x02, 0x0c, 0x00, - 0x96, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x67, 0x03, 0x0c, 0x00, 0x97, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0xa7, 0x01, 0x0c, 0x00, 0x97, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0xa7, 0x02, 0x0c, 0x00, 0x97, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0xa7, 0x03, 0x0c, 0x00, - 0x98, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0a, 0x00, 0x67, 0x00, 0x10, 0x00, 0x99, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0b, 0x00, 0xa7, 0x00, 0x10, 0x00, 0x9a, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x66, 0x01, 0x08, 0x00, 0x9a, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x9a, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x66, 0x03, 0x08, 0x00, 0x9b, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x9b, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x9b, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0x9c, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4f, 0x00, 0x66, 0x00, 0x0c, 0x00, 0x9d, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4f, 0x00, 0xa6, 0x00, 0x0c, 0x00, 0x9e, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x66, 0x01, 0x08, 0x00, 0x9e, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x66, 0x02, 0x08, 0x00, - 0x9e, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x66, 0x03, 0x08, 0x00, 0x9f, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0xa6, 0x01, 0x08, 0x00, 0x9f, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0xa6, 0x02, 0x08, 0x00, 0x9f, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0xa0, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4d, 0x00, 0x66, 0x00, 0x0c, 0x00, 0xa1, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4d, 0x00, 0xa6, 0x00, 0x0c, 0x00, 0xa2, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x66, 0x01, 0x0c, 0x00, 0xa2, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x66, 0x02, 0x0c, 0x00, - 0xa2, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x66, 0x03, 0x0c, 0x00, 0xa3, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0xa3, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0xa3, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0xa6, 0x03, 0x0c, 0x00, - 0xa4, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0x66, 0x00, 0x0c, 0x00, 0xa5, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0xa6, 0x00, 0x0c, 0x00, 0xa6, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x66, 0x01, 0x08, 0x00, 0xa6, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x66, 0x02, 0x08, 0x00, - 0xa6, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x66, 0x03, 0x08, 0x00, 0xa7, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0xa6, 0x01, 0x08, 0x00, 0xa7, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0xa6, 0x02, 0x08, 0x00, 0xa7, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0xa6, 0x03, 0x08, 0x00, - 0xa8, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x43, 0x00, 0x66, 0x00, 0x0c, 0x00, 0xa9, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x43, 0x00, 0xa6, 0x00, 0x0c, 0x00, 0xaa, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0x67, 0x01, 0x0c, 0x00, 0xaa, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0x67, 0x02, 0x0c, 0x00, - 0xaa, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0x67, 0x03, 0x0c, 0x00, 0xab, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0xa7, 0x01, 0x0c, 0x00, 0xab, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0xa7, 0x02, 0x0c, 0x00, 0xab, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0xa7, 0x03, 0x0c, 0x00, - 0xac, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x27, 0x00, 0x67, 0x00, 0x10, 0x00, 0xad, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x27, 0x00, 0xa7, 0x00, 0x10, 0x00, 0xae, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0x67, 0x01, 0x10, 0x00, 0xae, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0x67, 0x02, 0x10, 0x00, - 0xae, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0x67, 0x03, 0x10, 0x00, 0xaf, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0xa7, 0x01, 0x10, 0x00, 0xaf, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0xa7, 0x02, 0x10, 0x00, 0xaf, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0xa7, 0x03, 0x10, 0x00, - 0xb0, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x55, 0x00, 0x67, 0x00, 0x10, 0x00, 0xb1, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x55, 0x00, 0xa7, 0x00, 0x10, 0x00, 0xb2, 0x03, 0x30, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0x67, 0x01, 0x0c, 0x00, 0xb2, 0x03, 0x30, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0x67, 0x02, 0x0c, 0x00, - 0xb2, 0x03, 0x30, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0x67, 0x03, 0x0c, 0x00, 0xb3, 0x03, 0x30, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0xa7, 0x01, 0x0c, 0x00, 0xb3, 0x03, 0x30, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0xa7, 0x02, 0x0c, 0x00, 0xb3, 0x03, 0x30, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0xa7, 0x03, 0x0c, 0x00, - 0xb4, 0x03, 0x30, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x67, 0x00, 0x67, 0x00, 0x0c, 0x00, 0xb5, 0x03, 0x30, 0x27, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x67, 0x00, 0xa7, 0x00, 0x0c, 0x00, 0xb6, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0xa7, 0x01, 0x10, 0x00, 0xb6, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0xa7, 0x02, 0x10, 0x00, - 0xb6, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0xa7, 0x03, 0x10, 0x00, 0xb7, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0x67, 0x01, 0x10, 0x00, 0xb7, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0x67, 0x02, 0x10, 0x00, 0xb7, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0x67, 0x03, 0x10, 0x00, - 0xb8, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x67, 0x01, 0x10, 0x00, 0xb8, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x67, 0x02, 0x10, 0x00, 0xb8, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x67, 0x03, 0x10, 0x00, 0xb9, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0x67, 0x01, 0x10, 0x00, - 0xb9, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0x67, 0x02, 0x10, 0x00, 0xb9, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0x67, 0x03, 0x10, 0x00, 0xba, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0xa7, 0x01, 0x10, 0x00, 0xba, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0xa7, 0x02, 0x10, 0x00, - 0xba, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0xa7, 0x03, 0x10, 0x00, 0xbb, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x66, 0x01, 0x0c, 0x00, 0xbb, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x66, 0x02, 0x0c, 0x00, 0xbb, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x66, 0x03, 0x0c, 0x00, - 0xbc, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x83, 0x00, 0xa6, 0x01, 0x0c, 0x00, 0xbc, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x83, 0x00, 0xa6, 0x02, 0x0c, 0x00, 0xbc, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x83, 0x00, 0xa6, 0x03, 0x0c, 0x00, 0xbd, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x51, 0x02, 0x0c, 0x00, - 0xbe, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x55, 0x02, 0x0c, 0x00, 0xbf, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xc0, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x95, 0x02, 0x0c, 0x00, 0xc1, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x51, 0x02, 0x0c, 0x00, - 0xc2, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x55, 0x02, 0x0c, 0x00, 0xc3, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xc4, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x95, 0x02, 0x0c, 0x00, 0xc5, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x51, 0x02, 0x0c, 0x00, - 0xc6, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x55, 0x02, 0x0c, 0x00, 0xc7, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xc8, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x95, 0x02, 0x0c, 0x00, 0xc9, 0x03, 0x30, 0x32, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x51, 0x01, 0x08, 0x00, - 0xc9, 0x03, 0x0b, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x51, 0x01, 0x08, 0x00, 0xc9, 0x03, 0x30, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x51, 0x01, 0x08, 0x00, 0xc9, 0x03, 0x03, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x51, 0x01, 0x08, 0x00, 0xca, 0x03, 0x30, 0x31, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x55, 0x01, 0x08, 0x00, - 0xca, 0x03, 0x0a, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x55, 0x01, 0x08, 0x00, 0xca, 0x03, 0x30, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x55, 0x01, 0x08, 0x00, 0xca, 0x03, 0x03, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x55, 0x01, 0x08, 0x00, 0xcb, 0x03, 0x30, 0x34, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x91, 0x01, 0x08, 0x00, - 0xcb, 0x03, 0x0d, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x91, 0x01, 0x08, 0x00, 0xcb, 0x03, 0x30, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x9d, 0x01, 0x08, 0x00, 0xcb, 0x03, 0x04, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x9d, 0x01, 0x08, 0x00, 0xcc, 0x03, 0x30, 0x33, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x95, 0x01, 0x08, 0x00, - 0xcc, 0x03, 0x0c, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x95, 0x01, 0x08, 0x00, 0xcc, 0x03, 0x30, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x5d, 0x01, 0x08, 0x00, 0xcc, 0x03, 0x03, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x5d, 0x01, 0x08, 0x00, 0xcd, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x51, 0x01, 0x08, 0x00, - 0xce, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x55, 0x01, 0x08, 0x00, 0xcf, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x91, 0x01, 0x08, 0x00, 0xd0, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x95, 0x01, 0x08, 0x00, 0xd1, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x51, 0x02, 0x0c, 0x00, - 0xd2, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x55, 0x02, 0x0c, 0x00, 0xd3, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xd4, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x95, 0x02, 0x0c, 0x00, 0xd5, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x51, 0x01, 0x08, 0x00, - 0xd6, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x55, 0x01, 0x08, 0x00, 0xd7, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x91, 0x01, 0x08, 0x00, 0xd8, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x95, 0x01, 0x08, 0x00, 0xd9, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x32, 0x00, 0x97, 0x01, 0x0c, 0x00, - 0xda, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x32, 0x00, 0x57, 0x01, 0x0c, 0x00, 0xdb, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x33, 0x00, 0x97, 0x01, 0x0c, 0x00, 0xdc, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x33, 0x00, 0x57, 0x01, 0x0c, 0x00, 0xdd, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x30, 0x00, 0x97, 0x01, 0x0c, 0x00, - 0xde, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x30, 0x00, 0x57, 0x01, 0x0c, 0x00, 0xdf, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x31, 0x00, 0x97, 0x01, 0x0c, 0x00, 0xe0, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x31, 0x00, 0x57, 0x01, 0x0c, 0x00, 0xe1, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x51, 0x01, 0x08, 0x00, - 0xe2, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x55, 0x01, 0x08, 0x00, 0xe3, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x91, 0x01, 0x08, 0x00, 0xe4, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x95, 0x01, 0x08, 0x00, 0xe5, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4b, 0x00, 0x55, 0x02, 0x0c, 0x00, - 0xe6, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4b, 0x00, 0x51, 0x02, 0x0c, 0x00, 0xe7, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4b, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xe8, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x51, 0x02, 0x0c, 0x00, 0xe9, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x55, 0x02, 0x0c, 0x00, - 0xea, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xeb, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x95, 0x02, 0x0c, 0x00, 0xec, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x51, 0x02, 0x0c, 0x00, 0xed, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x55, 0x02, 0x0c, 0x00, - 0xee, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x91, 0x02, 0x0c, 0x00, 0xef, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x95, 0x02, 0x0c, 0x00, 0xf0, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x04, 0x00, 0xf0, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x04, 0x00, - 0xf0, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xc0, 0x00, 0x00, 0x24, 0x00, 0xf0, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xc0, 0x00, 0x00, 0x24, 0x00, 0xf1, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xc0, 0x00, 0x00, 0x24, 0x00, 0xf1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xc1, 0x00, 0x00, 0x00, 0x00, - 0xf2, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x04, 0x00, 0xf2, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x04, 0x00, 0xf3, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x04, 0x00, 0x00, 0x05, 0x00, 0xf3, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x04, 0x00, 0x00, 0x05, 0x00, - 0xf3, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xe0, 0x00, 0x00, 0x24, 0x00, 0xf3, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xe8, 0x00, 0x00, 0x24, 0x00, 0xf4, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xe8, 0x00, 0x00, 0x24, 0x00, 0xf4, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xe9, 0x00, 0x00, 0x00, 0x00, - 0xf5, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x04, 0x00, 0x00, 0x05, 0x00, 0xf5, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x04, 0x00, 0x00, 0x05, 0x00, 0xf6, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x05, 0x00, 0x00, 0x05, 0x00, 0xf6, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x05, 0x00, 0x00, 0x05, 0x00, - 0xf6, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xe8, 0x00, 0x00, 0x24, 0x00, 0xf6, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xe0, 0x00, 0x00, 0x24, 0x00, 0xf7, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xe0, 0x00, 0x00, 0x24, 0x00, 0xf7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xe1, 0x00, 0x00, 0x00, 0x00, - 0xf8, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x05, 0x00, 0x00, 0x05, 0x00, 0xf8, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x05, 0x00, 0x00, 0x05, 0x00, 0xf9, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x05, 0x00, 0xf9, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x05, 0x00, - 0xf9, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xc8, 0x00, 0x00, 0x24, 0x00, 0xf9, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xc8, 0x00, 0x00, 0x24, 0x00, 0xfa, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xc8, 0x00, 0x00, 0x24, 0x00, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xc9, 0x00, 0x00, 0x00, 0x00, - 0xfb, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x01, 0x00, 0x00, 0x05, 0x00, 0xfb, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0x05, 0x00, 0xfc, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x06, 0x00, 0x00, 0x05, 0x00, 0xfc, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x06, 0x00, 0x00, 0x05, 0x00, - 0xfc, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xf0, 0x00, 0x00, 0x24, 0x00, 0xfc, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xf8, 0x00, 0x00, 0x24, 0x00, 0xfd, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xf8, 0x00, 0x00, 0x24, 0x00, 0xfd, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xf9, 0x00, 0x00, 0x00, 0x00, - 0xfe, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x06, 0x00, 0x00, 0x05, 0x00, 0xfe, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x06, 0x00, 0x00, 0x05, 0x00, 0xff, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x07, 0x00, 0x00, 0x05, 0x00, 0xff, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x07, 0x00, 0x00, 0x05, 0x00, - 0xff, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x24, 0x00, 0xff, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xf0, 0x00, 0x00, 0x24, 0x00, 0x00, 0x04, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xf0, 0x00, 0x00, 0x24, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xf1, 0x00, 0x00, 0x00, 0x00, - 0x01, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x07, 0x00, 0x00, 0x05, 0x00, 0x01, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x07, 0x00, 0x00, 0x05, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe1, 0x00, 0x00, 0x00, 0x00, + 0xd3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x10, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x08, 0x00, 0x00, 0xd6, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf2, 0x00, 0x52, 0x01, 0x30, 0x00, + 0xd6, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf2, 0x00, 0x92, 0x01, 0x30, 0x00, 0xd7, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x52, 0x01, 0x30, 0x00, 0xd7, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x92, 0x01, 0x30, 0x00, 0xd8, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x03, 0x52, 0x01, 0x21, 0x00, + 0xd8, 0x00, 0x04, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x03, 0x92, 0x01, 0x21, 0x00, 0xd9, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x02, 0x52, 0x01, 0x21, 0x00, 0xd9, 0x00, 0x04, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x02, 0x92, 0x01, 0x21, 0x00, 0xda, 0x00, 0x03, 0x07, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x52, 0x01, 0x21, 0x00, + 0xda, 0x00, 0x04, 0x08, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0xf3, 0x01, 0x92, 0x01, 0x21, 0x00, 0xdb, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf5, 0x00, 0x52, 0x01, 0x30, 0x00, 0xdb, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf5, 0x00, 0x92, 0x01, 0x30, 0x00, 0xdc, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x5e, 0x01, 0x30, 0x00, + 0xdc, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x9e, 0x01, 0x30, 0x00, 0xdd, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x5a, 0x01, 0x30, 0x00, 0xdd, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x9a, 0x01, 0x30, 0x00, 0xde, 0x00, 0x03, 0x07, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xf0, 0x00, 0x5f, 0x01, 0x30, 0x00, + 0xde, 0x00, 0x04, 0x08, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xf0, 0x00, 0x9f, 0x01, 0x30, 0x00, 0xdf, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x5a, 0x01, 0x30, 0x00, 0xdf, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x9a, 0x01, 0x30, 0x00, 0xe0, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x56, 0x01, 0x30, 0x00, + 0xe0, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe1, 0x00, 0x03, 0x07, 0x03, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x5e, 0x01, 0x30, 0x00, 0xe1, 0x00, 0x04, 0x08, 0x04, 0x00, 0x02, 0x01, 0x03, 0x00, 0xf7, 0x00, 0x9e, 0x01, 0x30, 0x00, 0xe2, 0x00, 0x03, 0x03, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf6, 0x00, 0x5e, 0x01, 0x30, 0x00, + 0xe2, 0x00, 0x04, 0x04, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf6, 0x00, 0x9e, 0x01, 0x30, 0x00, 0xe3, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x06, 0x00, 0x20, 0x00, 0xe3, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x06, 0x08, 0x20, 0x00, 0xe4, 0x00, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x0a, 0x00, 0x20, 0x00, + 0xe4, 0x00, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x0a, 0x08, 0x20, 0x00, 0xe5, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x01, 0x00, 0x20, 0x00, 0xe5, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x01, 0x00, 0x20, 0x00, 0xe6, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xe6, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x01, 0x00, 0x20, 0x00, 0xe7, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x05, 0x00, 0x20, 0x00, 0xe7, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x05, 0x00, 0x20, 0x00, 0xe8, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x05, 0x00, 0x20, 0x00, + 0xe8, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x05, 0x00, 0x20, 0x00, 0xe9, 0x00, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x09, 0x00, 0x20, 0x00, 0xe9, 0x00, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x09, 0x00, 0x20, 0x00, 0xea, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x05, 0x00, 0x20, 0x00, + 0xea, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x05, 0x00, 0x20, 0x00, 0xeb, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x09, 0x00, 0x20, 0x00, 0xeb, 0x00, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x09, 0x00, 0x20, 0x00, 0xec, 0x00, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x09, 0x00, 0x20, 0x00, + 0xec, 0x00, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xd6, 0x00, 0x05, 0x00, 0x20, 0x00, 0xec, 0x00, 0x2b, 0x2c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x01, 0x00, 0x20, 0x00, 0xec, 0x00, 0x2c, 0x2b, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x01, 0x00, 0x20, 0x00, 0xec, 0x00, 0x04, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x05, 0x08, 0x20, 0x00, + 0xec, 0x00, 0x23, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x05, 0x08, 0x20, 0x00, 0xed, 0x00, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x05, 0x00, 0x20, 0x00, 0xed, 0x00, 0x07, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x05, 0x00, 0x20, 0x00, 0xed, 0x00, 0x2b, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xed, 0x00, 0x07, 0x2b, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x01, 0x00, 0x20, 0x00, 0xee, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x01, 0x00, 0x20, 0x00, 0xee, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x01, 0x00, 0x20, 0x00, 0xef, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xef, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x01, 0x00, 0x20, 0x00, 0xf0, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x05, 0x00, 0x20, 0x00, 0xf0, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x05, 0x00, 0x20, 0x00, 0xf1, 0x00, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x05, 0x00, 0x20, 0x00, + 0xf1, 0x00, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x05, 0x00, 0x20, 0x00, 0xf2, 0x00, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x01, 0x00, 0x20, 0x00, 0xf3, 0x00, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x01, 0x00, 0x20, 0x00, 0xf4, 0x00, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xf4, 0x00, 0x04, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x01, 0x08, 0x20, 0x00, 0xf5, 0x00, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x20, 0x00, 0xf5, 0x00, 0x04, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x05, 0x08, 0x20, 0x00, 0xf6, 0x00, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xf7, 0x00, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x05, 0x00, 0x20, 0x00, 0xf8, 0x00, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x05, 0x00, 0x20, 0x00, 0xf9, 0x00, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x06, 0x00, 0x20, 0x00, 0xfa, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xfb, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x05, 0x00, 0x20, 0x00, 0xfc, 0x00, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x09, 0x00, 0x20, 0x00, 0xfd, 0x00, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x0d, 0x00, 0x20, 0x00, 0xfe, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x01, 0x00, 0x20, 0x00, + 0xff, 0x00, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x05, 0x00, 0x20, 0x00, 0x00, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x09, 0x00, 0x20, 0x00, 0x01, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5c, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x02, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x03, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x05, 0x00, 0x20, 0x00, 0x04, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x09, 0x00, 0x20, 0x00, 0x05, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x06, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x07, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x05, 0x00, 0x20, 0x00, 0x08, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x09, 0x00, 0x20, 0x00, 0x09, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5e, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x0a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x0b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x05, 0x00, 0x20, 0x00, 0x0c, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x09, 0x00, 0x20, 0x00, 0x0d, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x0e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x0f, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x09, 0x00, 0x20, 0x00, 0x10, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x01, 0x00, 0x20, 0x00, 0x11, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x09, 0x00, 0x20, 0x00, 0x12, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x13, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x05, 0x00, 0x20, 0x00, 0x14, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x09, 0x00, 0x20, 0x00, 0x15, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5f, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x16, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x17, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x05, 0x00, 0x20, 0x00, 0x18, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x09, 0x00, 0x20, 0x00, 0x19, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5d, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x1a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x54, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x1b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x54, 0x00, 0x05, 0x00, 0x20, 0x00, 0x1c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x55, 0x00, 0x01, 0x00, 0x20, 0x00, 0x1d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x55, 0x00, 0x05, 0x00, 0x20, 0x00, 0x1e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x56, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x1f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0x20, 0x00, 0x20, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x57, 0x00, 0x01, 0x00, 0x20, 0x00, 0x21, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x57, 0x00, 0x05, 0x00, 0x20, 0x00, 0x22, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x01, 0x00, 0x30, 0x00, + 0x23, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x05, 0x00, 0x30, 0x00, 0x24, 0x01, 0x23, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc2, 0x00, 0x09, 0x00, 0x30, 0x00, 0x25, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x01, 0x00, 0x20, 0x00, 0x26, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x27, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x01, 0x00, 0x20, 0x00, 0x28, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x05, 0x00, 0x20, 0x00, 0x29, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc6, 0x00, 0x01, 0x00, 0x30, 0x00, 0x2a, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc6, 0x00, 0x05, 0x00, 0x30, 0x00, + 0x2b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x14, 0x00, 0x01, 0x00, 0x20, 0x00, 0x2c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x15, 0x00, 0x01, 0x00, 0x20, 0x00, 0x2d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x14, 0x00, 0x05, 0x00, 0x20, 0x00, 0x2e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x15, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x2f, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x01, 0x00, 0x20, 0x00, 0x30, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x05, 0x00, 0x20, 0x00, 0x31, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x09, 0x00, 0x20, 0x00, 0x32, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x0d, 0x00, 0x20, 0x00, + 0x33, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x05, 0x00, 0x20, 0x00, 0x34, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x35, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x01, 0x00, 0x20, 0x00, 0x36, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x09, 0x00, 0x20, 0x00, + 0x37, 0x01, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x09, 0x00, 0x20, 0x00, 0x37, 0x01, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x09, 0x08, 0x20, 0x00, 0x38, 0x01, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x38, 0x01, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x0d, 0x08, 0x20, 0x00, + 0x39, 0x01, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x09, 0x00, 0x20, 0x00, 0x39, 0x01, 0x23, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x09, 0x08, 0x20, 0x00, 0x3a, 0x01, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x3a, 0x01, 0x23, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x0d, 0x08, 0x20, 0x00, + 0x3b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x09, 0x00, 0x20, 0x00, 0x3c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x05, 0x00, 0x20, 0x00, 0x3d, 0x01, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x09, 0x00, 0x20, 0x00, 0x3d, 0x01, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x09, 0x08, 0x20, 0x00, + 0x3e, 0x01, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x3e, 0x01, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x0d, 0x08, 0x20, 0x00, 0x3f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x05, 0x00, 0x20, 0x00, 0x40, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfd, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x41, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfe, 0x00, 0x05, 0x00, 0x20, 0x00, 0x42, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd4, 0x00, 0x05, 0x00, 0x20, 0x00, 0x43, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x05, 0x00, 0x20, 0x00, 0x44, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf9, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x45, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfa, 0x00, 0x05, 0x00, 0x20, 0x00, 0x46, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xfb, 0x00, 0x05, 0x00, 0x20, 0x00, 0x47, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xec, 0x00, 0x05, 0x00, 0x20, 0x00, 0x48, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xed, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x49, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdc, 0x00, 0x05, 0x00, 0x20, 0x00, 0x4a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x05, 0x00, 0x20, 0x00, 0x4b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe8, 0x00, 0x05, 0x00, 0x20, 0x00, 0x4c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe9, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x4d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd8, 0x00, 0x05, 0x00, 0x20, 0x00, 0x4e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd9, 0x00, 0x05, 0x00, 0x20, 0x00, 0x4f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd5, 0x00, 0x05, 0x00, 0x20, 0x00, 0x50, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe5, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x51, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe4, 0x00, 0x05, 0x00, 0x20, 0x00, 0x52, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf4, 0x00, 0x05, 0x00, 0x20, 0x00, 0x53, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf5, 0x00, 0x05, 0x00, 0x20, 0x00, 0x54, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x55, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdf, 0x00, 0x05, 0x00, 0x20, 0x00, 0x56, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xeb, 0x00, 0x05, 0x00, 0x20, 0x00, 0x57, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xef, 0x00, 0x05, 0x00, 0x20, 0x00, 0x58, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x58, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x71, 0x06, 0x05, 0x00, 0x21, 0x00, 0x59, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf2, 0x00, 0x05, 0x00, 0x20, 0x00, 0x59, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x72, 0x06, 0x05, 0x00, 0x21, 0x00, 0x5a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf3, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x5a, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x73, 0x06, 0x05, 0x00, 0x21, 0x00, 0x5b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd1, 0x00, 0x05, 0x00, 0x20, 0x00, 0x5b, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x71, 0x02, 0x05, 0x00, 0x21, 0x00, 0x5c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd2, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x5c, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x72, 0x02, 0x05, 0x00, 0x21, 0x00, 0x5d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd3, 0x00, 0x05, 0x00, 0x20, 0x00, 0x5d, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x73, 0x02, 0x05, 0x00, 0x21, 0x00, 0x5e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe1, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x5e, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x71, 0x04, 0x05, 0x00, 0x21, 0x00, 0x5f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe2, 0x00, 0x05, 0x00, 0x20, 0x00, 0x5f, 0x01, 0x23, 0x12, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x72, 0x04, 0x05, 0x00, 0x21, 0x00, 0x60, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x74, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x61, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x75, 0x00, 0x05, 0x00, 0x20, 0x00, 0x62, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x76, 0x00, 0x05, 0x00, 0x20, 0x00, 0x63, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x64, 0x00, 0x05, 0x00, 0x20, 0x00, 0x64, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x65, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x65, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x66, 0x00, 0x05, 0x00, 0x20, 0x00, 0x66, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x63, 0x00, 0x05, 0x00, 0x20, 0x00, 0x67, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6b, 0x00, 0x05, 0x00, 0x20, 0x00, 0x68, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x67, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x69, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x60, 0x00, 0x05, 0x00, 0x20, 0x00, 0x6a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x61, 0x00, 0x05, 0x00, 0x20, 0x00, 0x6b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x62, 0x00, 0x05, 0x00, 0x20, 0x00, 0x6c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6c, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x6d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x68, 0x00, 0x05, 0x00, 0x20, 0x00, 0x6e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x69, 0x00, 0x05, 0x00, 0x20, 0x00, 0x6f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6a, 0x00, 0x05, 0x00, 0x20, 0x00, 0x70, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6d, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x71, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x05, 0x00, 0x30, 0x00, 0x72, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x09, 0x00, 0x30, 0x00, 0x73, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x0d, 0x00, 0x30, 0x00, 0x74, 0x01, 0x2b, 0x2c, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x01, 0x00, 0x30, 0x00, + 0x75, 0x01, 0x03, 0x23, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc5, 0x00, 0x05, 0x00, 0x30, 0x00, 0x75, 0x01, 0x04, 0x23, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc5, 0x00, 0x05, 0x08, 0x30, 0x00, 0x76, 0x01, 0x23, 0x03, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc4, 0x00, 0x05, 0x00, 0x30, 0x00, 0x76, 0x01, 0x23, 0x0b, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc4, 0x00, 0x05, 0x00, 0x30, 0x00, + 0x77, 0x01, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x05, 0x00, 0x20, 0x00, 0x77, 0x01, 0x04, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x05, 0x08, 0x20, 0x00, 0x78, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x05, 0x00, 0x20, 0x00, 0x79, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe3, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x7a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xde, 0x00, 0x05, 0x00, 0x20, 0x00, 0x7b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xee, 0x00, 0x05, 0x00, 0x20, 0x00, 0x7c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xda, 0x00, 0x05, 0x00, 0x20, 0x00, 0x7d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xea, 0x00, 0x05, 0x00, 0x20, 0x00, + 0x7e, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf6, 0x00, 0x05, 0x00, 0x20, 0x00, 0x7f, 0x01, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x05, 0x00, 0x20, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xf8, 0x01, 0x00, 0x00, 0x00, + 0x82, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x08, 0x00, 0x00, 0x00, 0x84, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x07, 0x01, 0x00, 0x11, 0x00, 0x85, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x0d, 0x00, 0x20, 0x00, + 0x86, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd0, 0x00, 0x05, 0x00, 0x20, 0x00, 0x87, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7c, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x88, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7c, 0x00, 0x05, 0x00, 0x20, 0x00, 0x89, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x0d, 0x00, 0x20, 0x00, + 0x8a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7d, 0x00, 0x05, 0x00, 0x20, 0x00, 0x8b, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x8c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x09, 0x00, 0x20, 0x00, 0x8d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x09, 0x00, 0x20, 0x00, + 0x8e, 0x01, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x0d, 0x00, 0x20, 0x00, 0x8f, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x20, 0x00, 0x90, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x20, 0x00, 0x91, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x20, 0x00, + 0x92, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x20, 0x00, 0x93, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x20, 0x00, 0x94, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x20, 0x00, 0x95, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x07, 0x00, 0x06, 0x00, 0x20, 0x00, + 0x96, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x04, 0x00, 0x06, 0x00, 0x20, 0x00, 0x97, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x20, 0x00, 0x98, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x08, 0x00, 0x06, 0x00, 0x20, 0x00, 0x99, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x09, 0x00, 0x06, 0x00, 0x20, 0x00, + 0x9a, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0a, 0x00, 0x06, 0x00, 0x20, 0x00, 0x9b, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x06, 0x00, 0x20, 0x00, 0x9c, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x06, 0x00, 0x20, 0x00, 0x9d, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x06, 0x00, 0x20, 0x00, + 0x9e, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0f, 0x00, 0x07, 0x00, 0x30, 0x00, 0x9f, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x30, 0x00, 0xa0, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0d, 0x00, 0x07, 0x00, 0x30, 0x00, 0xa1, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0x14, 0x00, 0x06, 0x00, 0xa0, 0x00, + 0xa2, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0x15, 0x00, 0x06, 0x00, 0xa0, 0x00, 0xa3, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0e, 0x00, 0x07, 0x00, 0x30, 0x00, 0xa4, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0x10, 0x00, 0x06, 0x00, 0xa0, 0x00, 0xa5, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x40, 0x00, 0x07, 0x00, 0x30, 0x00, + 0xa6, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x41, 0x00, 0x07, 0x00, 0x30, 0x00, 0xa7, 0x01, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x17, 0x00, 0x07, 0x00, 0x30, 0x00, 0xa8, 0x01, 0x23, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x21, 0x00, 0x07, 0x00, 0x30, 0x00, 0xa9, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x42, 0x00, 0x07, 0x00, 0x30, 0x00, + 0xaa, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2b, 0x00, 0x06, 0x00, 0x20, 0x00, 0xab, 0x01, 0x05, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x14, 0x00, 0x07, 0x00, 0x30, 0x00, 0xac, 0x01, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x07, 0x00, 0x30, 0x00, 0xad, 0x01, 0x08, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x07, 0x08, 0x30, 0x00, + 0xae, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x20, 0x00, 0xaf, 0x01, 0x23, 0x05, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x20, 0x00, 0x07, 0x00, 0x30, 0x00, 0xb0, 0x01, 0x23, 0x07, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x22, 0x00, 0x07, 0x00, 0x30, 0x00, 0xb1, 0x01, 0x23, 0x08, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x22, 0x00, 0x07, 0x08, 0x30, 0x00, + 0xb2, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3c, 0x00, 0x06, 0x00, 0x20, 0x00, 0xb3, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3d, 0x00, 0x06, 0x00, 0x20, 0x00, 0xb4, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x06, 0x00, 0x20, 0x00, 0xb5, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3f, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xb6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x06, 0x00, 0x20, 0x00, 0xb7, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x06, 0x00, 0x20, 0x00, 0xb8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3a, 0x00, 0x06, 0x00, 0x20, 0x00, 0xb9, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xba, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x00, 0x06, 0x00, 0x20, 0x00, 0xbb, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x21, 0x00, 0x06, 0x00, 0x20, 0x00, 0xbc, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x06, 0x00, 0x20, 0x00, 0xbd, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xbe, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x24, 0x00, 0x06, 0x00, 0x20, 0x00, 0xbf, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x25, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc0, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x30, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc1, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x31, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xc2, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc3, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc4, 0x01, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x34, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc5, 0x01, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x35, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xc6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc7, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x40, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x17, 0x00, 0x06, 0x00, 0x20, 0x00, 0xc9, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x07, 0x00, 0x30, 0x00, + 0xca, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0x07, 0x00, 0x30, 0x00, 0xcb, 0x01, 0x23, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0a, 0x00, 0x07, 0x00, 0x30, 0x00, 0xcc, 0x01, 0x23, 0x27, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x0b, 0x00, 0x07, 0x00, 0x30, 0x00, 0xcd, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xce, 0x01, 0x03, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x0e, 0x00, 0x20, 0x00, 0xce, 0x01, 0x03, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x0e, 0x00, 0x20, 0x00, 0xce, 0x01, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x0e, 0x00, 0x20, 0x00, 0xce, 0x01, 0x04, 0x05, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x0e, 0x08, 0x20, 0x00, + 0xce, 0x01, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf1, 0x00, 0x0e, 0x08, 0x20, 0x00, 0xcf, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x61, 0x00, 0x07, 0x00, 0x30, 0x00, 0xd0, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x60, 0x00, 0x07, 0x00, 0x30, 0x00, 0xd1, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x63, 0x00, 0x07, 0x00, 0x30, 0x00, + 0xd2, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x62, 0x00, 0x07, 0x00, 0x30, 0x00, 0xd3, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x37, 0x00, 0x06, 0x00, 0x20, 0x00, 0xd4, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x44, 0x00, 0x07, 0x00, 0x30, 0x00, 0xd5, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xde, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xd6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdf, 0x00, 0x06, 0x00, 0x20, 0x00, 0xd7, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdc, 0x00, 0x06, 0x00, 0x20, 0x00, 0xd8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdd, 0x00, 0x06, 0x00, 0x20, 0x00, 0xd9, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xda, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xdf, 0x00, 0x07, 0x00, 0x30, 0x00, 0xdb, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc9, 0x00, 0x02, 0x00, 0x20, 0x00, 0xdc, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xca, 0x00, 0x02, 0x00, 0x20, 0x00, 0xdd, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x02, 0x00, 0x20, 0x00, + 0xde, 0x01, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xcc, 0x00, 0x03, 0x00, 0x30, 0x00, 0xdf, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xcc, 0x00, 0x02, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xcd, 0x00, 0x02, 0x00, 0x20, 0x00, 0xe1, 0x01, 0x23, 0x28, 0x2f, 0x00, 0x02, 0x01, 0x09, 0x00, 0xcb, 0x00, 0x02, 0x00, 0xa0, 0x00, + 0xe2, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x11, 0x01, 0x30, 0x00, 0xe2, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x11, 0x02, 0x30, 0x00, 0xe3, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x15, 0x01, 0x30, 0x00, 0xe3, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x15, 0x02, 0x30, 0x00, + 0xe4, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x19, 0x00, 0x30, 0x00, 0xe5, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x58, 0x00, 0x1d, 0x00, 0x30, 0x00, 0xe6, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x11, 0x01, 0x30, 0x00, 0xe6, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x11, 0x02, 0x30, 0x00, + 0xe7, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x15, 0x01, 0x30, 0x00, 0xe7, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x15, 0x02, 0x30, 0x00, 0xe8, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x19, 0x00, 0x30, 0x00, 0xe9, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5c, 0x00, 0x1d, 0x00, 0x30, 0x00, + 0xea, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x11, 0x01, 0x30, 0x00, 0xea, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x11, 0x02, 0x30, 0x00, 0xeb, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x15, 0x01, 0x30, 0x00, 0xeb, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x15, 0x02, 0x30, 0x00, + 0xec, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x19, 0x00, 0x30, 0x00, 0xed, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x59, 0x00, 0x1d, 0x00, 0x30, 0x00, 0xee, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x11, 0x01, 0x30, 0x00, 0xee, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x11, 0x02, 0x30, 0x00, + 0xef, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x15, 0x01, 0x30, 0x00, 0xef, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x15, 0x02, 0x30, 0x00, 0xf0, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x19, 0x00, 0x30, 0x00, 0xf1, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5e, 0x00, 0x1d, 0x00, 0x30, 0x00, + 0xf2, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x11, 0x01, 0x20, 0x00, 0xf2, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x11, 0x02, 0x20, 0x00, 0xf3, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x15, 0x01, 0x20, 0x00, 0xf3, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x51, 0x00, 0x15, 0x02, 0x20, 0x00, + 0xf4, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x51, 0x00, 0x19, 0x00, 0x30, 0x00, 0xf5, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x51, 0x00, 0x1d, 0x00, 0x30, 0x00, 0xf6, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x11, 0x01, 0x20, 0x00, 0xf6, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x53, 0x00, 0x11, 0x02, 0x20, 0x00, + 0xf7, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x53, 0x00, 0x19, 0x00, 0x30, 0x00, 0xf8, 0x01, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x11, 0x01, 0x20, 0x00, 0xf8, 0x01, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x52, 0x00, 0x11, 0x02, 0x20, 0x00, 0xf9, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x19, 0x00, 0x30, 0x00, + 0xfa, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x11, 0x01, 0x30, 0x00, 0xfa, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x11, 0x02, 0x30, 0x00, 0xfb, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x15, 0x01, 0x30, 0x00, 0xfb, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x15, 0x02, 0x30, 0x00, + 0xfc, 0x01, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x19, 0x00, 0x30, 0x00, 0xfd, 0x01, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5f, 0x00, 0x1d, 0x00, 0x30, 0x00, 0xfe, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x11, 0x01, 0x30, 0x00, 0xfe, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x11, 0x02, 0x30, 0x00, + 0xff, 0x01, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x15, 0x01, 0x30, 0x00, 0xff, 0x01, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x15, 0x02, 0x30, 0x00, 0x00, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x19, 0x00, 0x30, 0x00, 0x01, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5d, 0x00, 0x1d, 0x00, 0x30, 0x00, + 0x02, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x11, 0x01, 0x30, 0x00, 0x02, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x11, 0x02, 0x30, 0x00, 0x03, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x15, 0x01, 0x30, 0x00, 0x03, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x54, 0x00, 0x15, 0x02, 0x30, 0x00, + 0x04, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x11, 0x01, 0x30, 0x00, 0x04, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x11, 0x02, 0x30, 0x00, 0x05, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x15, 0x01, 0x30, 0x00, 0x05, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x55, 0x00, 0x15, 0x02, 0x30, 0x00, + 0x06, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x11, 0x01, 0x30, 0x00, 0x06, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x11, 0x02, 0x30, 0x00, 0x07, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x15, 0x01, 0x30, 0x00, 0x07, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x56, 0x00, 0x15, 0x02, 0x30, 0x00, + 0x08, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x11, 0x01, 0x30, 0x00, 0x08, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x11, 0x02, 0x30, 0x00, 0x09, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x15, 0x01, 0x30, 0x00, 0x09, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x57, 0x00, 0x15, 0x02, 0x30, 0x00, + 0x0a, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x11, 0x01, 0x40, 0x00, 0x0a, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x11, 0x02, 0x40, 0x00, 0x0b, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x15, 0x01, 0x40, 0x00, 0x0b, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x15, 0x02, 0x40, 0x00, + 0x0c, 0x02, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x19, 0x00, 0x40, 0x00, 0x0d, 0x02, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc2, 0x00, 0x1d, 0x00, 0x40, 0x00, 0x0e, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x11, 0x00, 0x20, 0x00, 0x0f, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2f, 0x00, 0x15, 0x00, 0x20, 0x00, + 0x10, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x11, 0x00, 0x20, 0x00, 0x11, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2e, 0x00, 0x15, 0x00, 0x20, 0x00, 0x12, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x11, 0x01, 0x40, 0x00, 0x12, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x11, 0x02, 0x40, 0x00, + 0x13, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x15, 0x01, 0x40, 0x00, 0x13, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc6, 0x00, 0x15, 0x02, 0x40, 0x00, 0x14, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x11, 0x01, 0x30, 0x00, 0x14, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x11, 0x02, 0x30, 0x00, + 0x15, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x11, 0x01, 0x30, 0x00, 0x15, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x11, 0x02, 0x30, 0x00, 0x16, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x15, 0x01, 0x30, 0x00, 0x16, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x15, 0x02, 0x30, 0x00, + 0x17, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x15, 0x01, 0x30, 0x00, 0x17, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x15, 0x02, 0x30, 0x00, 0x18, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0c, 0x00, 0x17, 0x01, 0x40, 0x00, 0x18, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0c, 0x00, 0x17, 0x02, 0x40, 0x00, + 0x19, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0d, 0x00, 0x17, 0x01, 0x40, 0x00, 0x19, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0d, 0x00, 0x17, 0x02, 0x40, 0x00, 0x1a, 0x02, 0x23, 0x23, 0x28, 0x23, 0x02, 0x03, 0x01, 0x0a, 0x4a, 0x00, 0x57, 0x01, 0x40, 0x00, 0x1a, 0x02, 0x24, 0x24, 0x29, 0x24, 0x02, 0x03, 0x01, 0x0a, 0x4a, 0x00, 0x57, 0x02, 0x40, 0x00, + 0x1b, 0x02, 0x23, 0x23, 0x28, 0x23, 0x02, 0x03, 0x01, 0x0a, 0x4b, 0x00, 0x57, 0x01, 0x40, 0x00, 0x1b, 0x02, 0x24, 0x24, 0x29, 0x24, 0x02, 0x03, 0x01, 0x0a, 0x4b, 0x00, 0x57, 0x02, 0x40, 0x00, 0x1c, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x40, 0x00, 0x17, 0x01, 0x40, 0x00, 0x1c, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x40, 0x00, 0x17, 0x02, 0x40, 0x00, + 0x1d, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x41, 0x00, 0x17, 0x01, 0x40, 0x00, 0x1e, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x17, 0x01, 0x30, 0x00, 0x1e, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x17, 0x02, 0x30, 0x00, 0x1f, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0x17, 0x01, 0x30, 0x00, + 0x1f, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0x17, 0x02, 0x30, 0x00, 0x20, 0x02, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0a, 0x00, 0x17, 0x00, 0x40, 0x00, 0x21, 0x02, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0b, 0x00, 0x17, 0x00, 0x40, 0x00, 0x22, 0x02, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x17, 0x00, 0x17, 0x01, 0x30, 0x00, + 0x23, 0x02, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x21, 0x00, 0x17, 0x01, 0x40, 0x00, 0x24, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x11, 0x01, 0x20, 0x00, 0x24, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x11, 0x01, 0x20, 0x00, 0x24, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x11, 0x02, 0x20, 0x00, + 0x24, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x11, 0x02, 0x20, 0x00, 0x25, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x11, 0x01, 0x20, 0x00, 0x25, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x11, 0x01, 0x20, 0x00, 0x25, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x11, 0x02, 0x20, 0x00, + 0x25, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x11, 0x02, 0x20, 0x00, 0x26, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x15, 0x01, 0x20, 0x00, 0x26, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x15, 0x01, 0x20, 0x00, 0x26, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x15, 0x02, 0x20, 0x00, + 0x26, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x29, 0x00, 0x15, 0x02, 0x20, 0x00, 0x27, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x15, 0x01, 0x20, 0x00, 0x27, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x15, 0x01, 0x20, 0x00, 0x27, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x15, 0x02, 0x20, 0x00, + 0x27, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x15, 0x02, 0x20, 0x00, 0x28, 0x02, 0x23, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x19, 0x00, 0x20, 0x00, 0x28, 0x02, 0x0c, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x19, 0x00, 0x20, 0x00, 0x28, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0x19, 0x00, 0x30, 0x00, + 0x29, 0x02, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x10, 0x00, 0x1d, 0x00, 0x20, 0x00, 0x29, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x1d, 0x00, 0x20, 0x00, 0x29, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0x1d, 0x00, 0x30, 0x00, 0x2a, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x15, 0x01, 0x20, 0x00, + 0x2a, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x15, 0x01, 0x20, 0x00, 0x2a, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x15, 0x02, 0x20, 0x00, 0x2a, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x15, 0x02, 0x20, 0x00, 0x2b, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x19, 0x01, 0x20, 0x00, + 0x2b, 0x02, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x19, 0x01, 0x20, 0x00, 0x2b, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x19, 0x02, 0x20, 0x00, 0x2b, 0x02, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x19, 0x02, 0x20, 0x00, 0x2c, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x19, 0x01, 0x20, 0x00, + 0x2c, 0x02, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xd6, 0x00, 0x15, 0x01, 0x20, 0x00, 0x2c, 0x02, 0x23, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x95, 0x01, 0x20, 0x00, 0x2c, 0x02, 0x04, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x95, 0x01, 0x20, 0x00, 0x2d, 0x02, 0x23, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6e, 0x00, 0x15, 0x01, 0x20, 0x00, + 0x2d, 0x02, 0x07, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7e, 0x00, 0x15, 0x01, 0x20, 0x00, 0x2e, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0x11, 0x01, 0x30, 0x00, 0x2e, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x11, 0x01, 0x20, 0x00, 0x2f, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x11, 0x01, 0x30, 0x00, + 0x2f, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x11, 0x01, 0x20, 0x00, 0x30, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0x15, 0x01, 0x30, 0x00, 0x30, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x15, 0x01, 0x20, 0x00, 0x31, 0x02, 0x23, 0x23, 0x0d, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x31, 0x02, 0x0d, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x17, 0x00, 0x15, 0x01, 0x20, 0x00, 0x32, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x11, 0x01, 0x30, 0x00, 0x33, 0x02, 0x23, 0x23, 0x23, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0x11, 0x01, 0x30, 0x00, 0x34, 0x02, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x11, 0x01, 0x20, 0x00, + 0x34, 0x02, 0x03, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x11, 0x02, 0x20, 0x00, 0x35, 0x02, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x15, 0x01, 0x20, 0x00, 0x35, 0x02, 0x03, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x50, 0x00, 0x15, 0x02, 0x20, 0x00, 0x36, 0x02, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x11, 0x01, 0x20, 0x00, + 0x36, 0x02, 0x10, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x11, 0x02, 0x20, 0x00, 0x37, 0x02, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x15, 0x01, 0x20, 0x00, 0x37, 0x02, 0x10, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x2b, 0x00, 0x15, 0x02, 0x20, 0x00, 0x38, 0x02, 0x0f, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x15, 0x01, 0x20, 0x00, + 0x38, 0x02, 0x10, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xe7, 0x00, 0x15, 0x02, 0x20, 0x00, 0x39, 0x02, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x16, 0x01, 0x20, 0x00, 0x39, 0x02, 0x24, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2a, 0x00, 0x16, 0x02, 0x20, 0x00, 0x3a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x1d, 0x01, 0x30, 0x00, + 0x3a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x1d, 0x02, 0x30, 0x00, 0x3b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x15, 0x01, 0x30, 0x00, 0x3b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd0, 0x00, 0x15, 0x02, 0x30, 0x00, 0x3c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x1d, 0x01, 0x30, 0x00, + 0x3c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x1d, 0x02, 0x30, 0x00, 0x3d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x15, 0x01, 0x30, 0x00, 0x3d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7c, 0x00, 0x15, 0x02, 0x30, 0x00, 0x3e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x1d, 0x01, 0x30, 0x00, + 0x3e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x1d, 0x02, 0x30, 0x00, 0x3f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x15, 0x01, 0x30, 0x00, 0x3f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x15, 0x02, 0x30, 0x00, 0x40, 0x02, 0x23, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x1d, 0x01, 0x20, 0x00, + 0x40, 0x02, 0x24, 0x10, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x1d, 0x02, 0x20, 0x00, 0x41, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x1d, 0x01, 0x20, 0x00, 0x41, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x1d, 0x02, 0x20, 0x00, 0x42, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x19, 0x01, 0x20, 0x00, + 0x42, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x12, 0x00, 0x19, 0x02, 0x20, 0x00, 0x43, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x19, 0x01, 0x20, 0x00, 0x43, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x16, 0x00, 0x19, 0x02, 0x20, 0x00, 0x44, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x61, 0x00, 0x57, 0x01, 0x30, 0x00, + 0x45, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x60, 0x00, 0x57, 0x01, 0x30, 0x00, 0x46, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x63, 0x00, 0x17, 0x01, 0x30, 0x00, 0x47, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x62, 0x00, 0x17, 0x01, 0x30, 0x00, 0x48, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x01, 0x20, 0x00, + 0x48, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x02, 0x20, 0x00, 0x48, 0x02, 0x23, 0x0a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x01, 0x20, 0x00, 0x48, 0x02, 0x24, 0x0a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x78, 0x00, 0x56, 0x02, 0x20, 0x00, 0x49, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x01, 0x20, 0x00, + 0x49, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x02, 0x20, 0x00, 0x49, 0x02, 0x23, 0x0b, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x01, 0x20, 0x00, 0x49, 0x02, 0x24, 0x0b, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x56, 0x02, 0x20, 0x00, 0x4a, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x01, 0x20, 0x00, + 0x4a, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x02, 0x20, 0x00, 0x4a, 0x02, 0x23, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x01, 0x20, 0x00, 0x4a, 0x02, 0x24, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x58, 0x00, 0x56, 0x02, 0x20, 0x00, 0x4b, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x01, 0x20, 0x00, + 0x4b, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x02, 0x20, 0x00, 0x4b, 0x02, 0x23, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x01, 0x20, 0x00, 0x4b, 0x02, 0x24, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x59, 0x00, 0x56, 0x02, 0x20, 0x00, 0x4c, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x11, 0x01, 0x20, 0x00, + 0x4c, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x11, 0x02, 0x20, 0x00, 0x4d, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x15, 0x01, 0x20, 0x00, 0x4d, 0x02, 0x23, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x15, 0x02, 0x20, 0x00, 0x4e, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5a, 0x00, 0x19, 0x00, 0x30, 0x00, + 0x4f, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x5a, 0x00, 0x1d, 0x00, 0x30, 0x00, 0x50, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x15, 0x01, 0x20, 0x00, 0x50, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x15, 0x02, 0x20, 0x00, 0x51, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x1d, 0x01, 0x20, 0x00, + 0x51, 0x02, 0x23, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x1d, 0x02, 0x20, 0x00, 0x52, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x11, 0x01, 0x20, 0x00, 0x52, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x11, 0x02, 0x20, 0x00, 0x53, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x19, 0x01, 0x20, 0x00, + 0x53, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x19, 0x02, 0x20, 0x00, 0x54, 0x02, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x19, 0x00, 0x20, 0x00, 0x54, 0x02, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x99, 0x00, 0x20, 0x00, 0x55, 0x02, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x1d, 0x00, 0x20, 0x00, + 0x55, 0x02, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2d, 0x00, 0x9d, 0x00, 0x20, 0x00, 0x56, 0x02, 0x23, 0x23, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x19, 0x00, 0x30, 0x00, 0x56, 0x02, 0x23, 0x23, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x99, 0x00, 0x30, 0x00, 0x57, 0x02, 0x23, 0x23, 0x07, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x1d, 0x00, 0x30, 0x00, + 0x57, 0x02, 0x23, 0x23, 0x08, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2a, 0x00, 0x9d, 0x00, 0x30, 0x00, 0x58, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x19, 0x01, 0x20, 0x00, 0x58, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5b, 0x00, 0x19, 0x02, 0x20, 0x00, 0x59, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x15, 0x01, 0x20, 0x00, + 0x59, 0x02, 0x23, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xe6, 0x00, 0x15, 0x02, 0x20, 0x00, 0x5a, 0x02, 0x03, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x19, 0x00, 0x20, 0x00, 0x5a, 0x02, 0x04, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x99, 0x00, 0x20, 0x00, 0x5b, 0x02, 0x03, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x1d, 0x00, 0x20, 0x00, + 0x5b, 0x02, 0x04, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x2c, 0x00, 0x9d, 0x00, 0x20, 0x00, 0x5c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfc, 0x00, 0x15, 0x01, 0x30, 0x00, 0x5c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfc, 0x00, 0x15, 0x02, 0x30, 0x00, 0x5d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfd, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x5d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfd, 0x00, 0x15, 0x02, 0x30, 0x00, 0x5e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfe, 0x00, 0x15, 0x01, 0x30, 0x00, 0x5e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfe, 0x00, 0x15, 0x02, 0x30, 0x00, 0x5f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd4, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x5f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd4, 0x00, 0x15, 0x02, 0x30, 0x00, 0x60, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf8, 0x00, 0x15, 0x01, 0x30, 0x00, 0x60, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf8, 0x00, 0x15, 0x02, 0x30, 0x00, 0x61, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf9, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x61, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf9, 0x00, 0x15, 0x02, 0x30, 0x00, 0x62, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfa, 0x00, 0x15, 0x01, 0x30, 0x00, 0x62, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfa, 0x00, 0x15, 0x02, 0x30, 0x00, 0x63, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfb, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x63, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xfb, 0x00, 0x15, 0x02, 0x30, 0x00, 0x64, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd5, 0x00, 0x15, 0x01, 0x30, 0x00, 0x64, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xd5, 0x00, 0x15, 0x02, 0x30, 0x00, 0x65, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe5, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x65, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe5, 0x00, 0x15, 0x02, 0x30, 0x00, 0x66, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe4, 0x00, 0x15, 0x01, 0x30, 0x00, 0x66, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xe4, 0x00, 0x15, 0x02, 0x30, 0x00, 0x67, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf4, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x67, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf4, 0x00, 0x15, 0x02, 0x30, 0x00, 0x68, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x15, 0x01, 0x30, 0x00, 0x68, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xf5, 0x00, 0x15, 0x02, 0x30, 0x00, 0x69, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdb, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x69, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdb, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdf, 0x00, 0x15, 0x01, 0x30, 0x00, 0x6a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdf, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xeb, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x6b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xeb, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xef, 0x00, 0x15, 0x01, 0x30, 0x00, 0x6c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xef, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf1, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x6d, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x06, 0x15, 0x01, 0x31, 0x00, 0x6d, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf1, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6d, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x06, 0x15, 0x02, 0x31, 0x00, 0x6e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf2, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x6e, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x06, 0x15, 0x01, 0x31, 0x00, 0x6e, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf2, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6e, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x06, 0x15, 0x02, 0x31, 0x00, 0x6f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf3, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x6f, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x06, 0x15, 0x01, 0x31, 0x00, 0x6f, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xf3, 0x00, 0x15, 0x02, 0x30, 0x00, 0x6f, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x06, 0x15, 0x02, 0x31, 0x00, 0x70, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd1, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x70, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x02, 0x15, 0x01, 0x31, 0x00, 0x70, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd1, 0x00, 0x15, 0x02, 0x30, 0x00, 0x70, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x02, 0x15, 0x02, 0x31, 0x00, 0x71, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd2, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x71, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x02, 0x15, 0x01, 0x31, 0x00, 0x71, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd2, 0x00, 0x15, 0x02, 0x30, 0x00, 0x71, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x02, 0x15, 0x02, 0x31, 0x00, 0x72, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd3, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x72, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x02, 0x15, 0x01, 0x31, 0x00, 0x72, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xd3, 0x00, 0x15, 0x02, 0x30, 0x00, 0x72, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x73, 0x02, 0x15, 0x02, 0x31, 0x00, 0x73, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe1, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x73, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x04, 0x15, 0x01, 0x31, 0x00, 0x73, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe1, 0x00, 0x15, 0x02, 0x30, 0x00, 0x73, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x71, 0x04, 0x15, 0x02, 0x31, 0x00, 0x74, 0x02, 0x23, 0x23, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe2, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x74, 0x02, 0x23, 0x23, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x04, 0x15, 0x01, 0x31, 0x00, 0x74, 0x02, 0x24, 0x24, 0x28, 0x00, 0x03, 0x02, 0x01, 0x00, 0xe2, 0x00, 0x15, 0x02, 0x30, 0x00, 0x74, 0x02, 0x24, 0x24, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x04, 0x15, 0x02, 0x31, 0x00, 0x75, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x74, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x75, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x74, 0x00, 0x15, 0x02, 0x30, 0x00, 0x76, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x15, 0x01, 0x30, 0x00, 0x76, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x15, 0x02, 0x30, 0x00, 0x77, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x77, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x15, 0x02, 0x30, 0x00, 0x78, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x29, 0x00, 0x16, 0x01, 0x30, 0x00, 0x78, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x29, 0x00, 0x16, 0x02, 0x30, 0x00, 0x79, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x79, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x15, 0x02, 0x30, 0x00, 0x7a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x15, 0x01, 0x30, 0x00, 0x7a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x15, 0x02, 0x30, 0x00, 0x7b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x7b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x15, 0x02, 0x30, 0x00, 0x7c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x37, 0x00, 0x16, 0x01, 0x30, 0x00, 0x7c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x37, 0x00, 0x16, 0x02, 0x30, 0x00, 0x7d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x63, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x7d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x63, 0x00, 0x15, 0x02, 0x30, 0x00, 0x7e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6b, 0x00, 0x15, 0x01, 0x30, 0x00, 0x7e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6b, 0x00, 0x15, 0x02, 0x30, 0x00, 0x7f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x67, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x7f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x67, 0x00, 0x15, 0x02, 0x30, 0x00, 0x80, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2b, 0x00, 0x16, 0x01, 0x30, 0x00, 0x80, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2b, 0x00, 0x16, 0x02, 0x30, 0x00, 0x81, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x60, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x81, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x60, 0x00, 0x15, 0x02, 0x30, 0x00, 0x82, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x61, 0x00, 0x15, 0x01, 0x30, 0x00, 0x82, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x61, 0x00, 0x15, 0x02, 0x30, 0x00, 0x83, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x62, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x83, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x62, 0x00, 0x15, 0x02, 0x30, 0x00, 0x84, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6c, 0x00, 0x15, 0x01, 0x30, 0x00, 0x84, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6c, 0x00, 0x15, 0x02, 0x30, 0x00, 0x85, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x68, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x85, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x68, 0x00, 0x15, 0x02, 0x30, 0x00, 0x86, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x69, 0x00, 0x15, 0x01, 0x30, 0x00, 0x86, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x69, 0x00, 0x15, 0x02, 0x30, 0x00, 0x87, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6a, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x87, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6a, 0x00, 0x15, 0x02, 0x30, 0x00, 0x88, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6d, 0x00, 0x15, 0x01, 0x30, 0x00, 0x88, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x6d, 0x00, 0x15, 0x02, 0x30, 0x00, 0x89, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x15, 0x01, 0x30, 0x00, + 0x89, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x15, 0x02, 0x30, 0x00, 0x8a, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x19, 0x01, 0x30, 0x00, 0x8a, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x19, 0x02, 0x30, 0x00, 0x8b, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x1d, 0x01, 0x30, 0x00, + 0x8b, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x70, 0x00, 0x1d, 0x02, 0x30, 0x00, 0x8c, 0x02, 0x05, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x14, 0x00, 0x17, 0x01, 0x30, 0x00, 0x8d, 0x02, 0x03, 0x23, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xc5, 0x00, 0x15, 0x01, 0x30, 0x00, 0x8d, 0x02, 0x06, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x15, 0x00, 0x17, 0x01, 0x30, 0x00, + 0x8e, 0x02, 0x07, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x17, 0x01, 0x30, 0x00, 0x8f, 0x02, 0x08, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x16, 0x00, 0x97, 0x01, 0x30, 0x00, 0x90, 0x02, 0x23, 0x23, 0x05, 0x12, 0x02, 0x03, 0x01, 0x05, 0x20, 0x00, 0x17, 0x01, 0x40, 0x00, 0x91, 0x02, 0x23, 0x23, 0x06, 0x12, 0x02, 0x03, 0x01, 0x05, 0xc4, 0x00, 0x15, 0x01, 0x40, 0x00, + 0x92, 0x02, 0x23, 0x23, 0x07, 0x12, 0x02, 0x03, 0x01, 0x05, 0x22, 0x00, 0x17, 0x01, 0x40, 0x00, 0x93, 0x02, 0x23, 0x23, 0x08, 0x12, 0x02, 0x03, 0x01, 0x05, 0x22, 0x00, 0x97, 0x01, 0x40, 0x00, 0x94, 0x02, 0x03, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x15, 0x01, 0x20, 0x00, 0x94, 0x02, 0x03, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xd7, 0x00, 0x15, 0x02, 0x20, 0x00, + 0x95, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x17, 0x00, 0x16, 0x01, 0x20, 0x00, 0x95, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x17, 0x00, 0x16, 0x02, 0x20, 0x00, 0x96, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x16, 0x01, 0x30, 0x00, 0x96, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x16, 0x02, 0x30, 0x00, + 0x97, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x16, 0x01, 0x30, 0x00, 0x97, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x16, 0x02, 0x30, 0x00, 0x98, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x02, 0x00, 0x16, 0x01, 0x30, 0x00, 0x98, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x02, 0x00, 0x16, 0x02, 0x30, 0x00, + 0x99, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x16, 0x01, 0x30, 0x00, 0x99, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x03, 0x00, 0x16, 0x02, 0x30, 0x00, 0x9a, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x05, 0x00, 0x16, 0x01, 0x30, 0x00, 0x9a, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x05, 0x00, 0x16, 0x02, 0x30, 0x00, + 0x9b, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x06, 0x00, 0x16, 0x01, 0x30, 0x00, 0x9b, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x06, 0x00, 0x16, 0x02, 0x30, 0x00, 0x9c, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x07, 0x00, 0x16, 0x01, 0x30, 0x00, 0x9c, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x07, 0x00, 0x16, 0x02, 0x30, 0x00, + 0x9d, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x04, 0x00, 0x16, 0x01, 0x30, 0x00, 0x9d, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x04, 0x00, 0x16, 0x02, 0x30, 0x00, 0x9e, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0b, 0x00, 0x16, 0x01, 0x30, 0x00, 0x9e, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0b, 0x00, 0x16, 0x02, 0x30, 0x00, + 0x9f, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x08, 0x00, 0x16, 0x01, 0x30, 0x00, 0x9f, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x08, 0x00, 0x16, 0x02, 0x30, 0x00, 0xa0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x09, 0x00, 0x16, 0x01, 0x30, 0x00, 0xa0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x09, 0x00, 0x16, 0x02, 0x30, 0x00, + 0xa1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0a, 0x00, 0x16, 0x01, 0x30, 0x00, 0xa1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x0a, 0x00, 0x16, 0x02, 0x30, 0x00, 0xa2, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x16, 0x01, 0x20, 0x00, 0xa2, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x16, 0x02, 0x20, 0x00, + 0xa3, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x16, 0x01, 0x20, 0x00, 0xa3, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1d, 0x00, 0x16, 0x02, 0x20, 0x00, 0xa4, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x16, 0x01, 0x20, 0x00, 0xa4, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x16, 0x02, 0x20, 0x00, + 0xa5, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0f, 0x00, 0x17, 0x01, 0x40, 0x00, 0xa5, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0f, 0x00, 0x17, 0x02, 0x40, 0x00, 0xa6, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0e, 0x00, 0x17, 0x01, 0x40, 0x00, 0xa6, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0e, 0x00, 0x17, 0x02, 0x40, 0x00, + 0xa7, 0x02, 0x23, 0x23, 0x28, 0x23, 0x02, 0x03, 0x01, 0x0a, 0x4c, 0x00, 0x57, 0x01, 0x40, 0x00, 0xa7, 0x02, 0x24, 0x24, 0x29, 0x24, 0x02, 0x03, 0x01, 0x0a, 0x4c, 0x00, 0x57, 0x02, 0x40, 0x00, 0xa8, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x17, 0x01, 0x40, 0x00, 0xa8, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x17, 0x02, 0x40, 0x00, + 0xa9, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x41, 0x00, 0x16, 0x01, 0x20, 0x00, 0xaa, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3c, 0x00, 0x16, 0x01, 0x30, 0x00, 0xaa, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3c, 0x00, 0x16, 0x02, 0x30, 0x00, 0xab, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3d, 0x00, 0x16, 0x01, 0x30, 0x00, + 0xab, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3d, 0x00, 0x16, 0x02, 0x30, 0x00, 0xac, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3e, 0x00, 0x16, 0x01, 0x30, 0x00, 0xac, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3e, 0x00, 0x16, 0x02, 0x30, 0x00, 0xad, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3f, 0x00, 0x16, 0x01, 0x30, 0x00, + 0xad, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3f, 0x00, 0x16, 0x02, 0x30, 0x00, 0xae, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x38, 0x00, 0x16, 0x01, 0x30, 0x00, 0xae, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x38, 0x00, 0x16, 0x02, 0x30, 0x00, 0xaf, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x39, 0x00, 0x16, 0x01, 0x30, 0x00, + 0xaf, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x39, 0x00, 0x16, 0x02, 0x30, 0x00, 0xb0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3a, 0x00, 0x16, 0x01, 0x30, 0x00, 0xb0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3a, 0x00, 0x16, 0x02, 0x30, 0x00, 0xb1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3b, 0x00, 0x16, 0x01, 0x30, 0x00, + 0xb1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x3b, 0x00, 0x16, 0x02, 0x30, 0x00, 0xb2, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x00, 0x16, 0x01, 0x20, 0x00, 0xb2, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x20, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb3, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x21, 0x00, 0x16, 0x01, 0x20, 0x00, + 0xb3, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x21, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb4, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x16, 0x01, 0x20, 0x00, 0xb4, 0x02, 0x24, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x22, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb5, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x16, 0x01, 0x20, 0x00, + 0xb5, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x23, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb6, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x24, 0x00, 0x16, 0x01, 0x20, 0x00, 0xb6, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x24, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb7, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x25, 0x00, 0x16, 0x01, 0x20, 0x00, + 0xb7, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x25, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb8, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x30, 0x00, 0x16, 0x01, 0x20, 0x00, 0xb8, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x30, 0x00, 0x16, 0x02, 0x20, 0x00, 0xb9, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x31, 0x00, 0x16, 0x01, 0x20, 0x00, + 0xb9, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x31, 0x00, 0x16, 0x02, 0x20, 0x00, 0xba, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x16, 0x01, 0x20, 0x00, 0xba, 0x02, 0x24, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x32, 0x00, 0x16, 0x02, 0x20, 0x00, 0xbb, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x16, 0x01, 0x20, 0x00, + 0xbb, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x33, 0x00, 0x16, 0x02, 0x20, 0x00, 0xbc, 0x02, 0x23, 0x26, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x34, 0x00, 0x16, 0x01, 0x20, 0x00, 0xbc, 0x02, 0x24, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x34, 0x00, 0x16, 0x02, 0x20, 0x00, 0xbd, 0x02, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x35, 0x00, 0x16, 0x01, 0x20, 0x00, + 0xbd, 0x02, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x35, 0x00, 0x16, 0x02, 0x20, 0x00, 0xbe, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x28, 0x00, 0x16, 0x01, 0x30, 0x00, 0xbe, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x28, 0x00, 0x16, 0x02, 0x30, 0x00, 0xbf, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x40, 0x00, 0x16, 0x01, 0x30, 0x00, + 0xbf, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x40, 0x00, 0x16, 0x02, 0x30, 0x00, 0xc0, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf7, 0x00, 0x15, 0x01, 0x20, 0x00, 0xc1, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x44, 0x00, 0x17, 0x01, 0x40, 0x00, 0xc1, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x44, 0x00, 0x17, 0x02, 0x40, 0x00, + 0xc2, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xde, 0x00, 0x16, 0x01, 0x30, 0x00, 0xc3, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdf, 0x00, 0x16, 0x01, 0x30, 0x00, 0xc4, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdc, 0x00, 0x16, 0x01, 0x30, 0x00, 0xc5, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xdd, 0x00, 0x16, 0x01, 0x30, 0x00, + 0xc6, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xdb, 0x00, 0x16, 0x01, 0x20, 0x00, 0xc7, 0x02, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0xdf, 0x00, 0x17, 0x01, 0x30, 0x00, 0xc8, 0x02, 0x23, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x01, 0x20, 0x00, 0xc8, 0x02, 0x24, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x02, 0x20, 0x00, + 0xc8, 0x02, 0x23, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x01, 0x20, 0x00, 0xc8, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x18, 0x00, 0x16, 0x02, 0x20, 0x00, 0xc9, 0x02, 0x24, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x19, 0x00, 0x16, 0x02, 0x20, 0x00, 0xc9, 0x02, 0x24, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x19, 0x00, 0x16, 0x02, 0x20, 0x00, + 0xca, 0x02, 0x24, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x1a, 0x00, 0x16, 0x02, 0x20, 0x00, 0xcb, 0x02, 0x28, 0x24, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x19, 0x00, 0x17, 0x02, 0x30, 0x00, 0xcc, 0x02, 0x24, 0x24, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x18, 0x00, 0x17, 0x02, 0x40, 0x00, 0xcd, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x06, 0x00, 0x17, 0x02, 0x40, 0x00, + 0xce, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x16, 0x01, 0x30, 0x00, 0xce, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x16, 0x02, 0x30, 0x00, 0xce, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2e, 0x00, 0x16, 0x01, 0x30, 0x00, 0xce, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2e, 0x00, 0x16, 0x02, 0x30, 0x00, + 0xcf, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0x16, 0x01, 0x30, 0x00, 0xcf, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0x16, 0x02, 0x30, 0x00, 0xcf, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2f, 0x00, 0x16, 0x01, 0x30, 0x00, 0xcf, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x2f, 0x00, 0x16, 0x02, 0x30, 0x00, + 0xd0, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x16, 0x01, 0x20, 0x00, 0xd0, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x16, 0x02, 0x20, 0x00, 0xd1, 0x02, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x16, 0x01, 0x20, 0x00, 0xd1, 0x02, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x16, 0x02, 0x20, 0x00, + 0xd2, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x11, 0x02, 0x00, 0x00, 0xd3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x11, 0x01, 0x00, 0x00, 0xd4, 0x02, 0x24, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x5a, 0x00, 0x16, 0x02, 0x20, 0x00, 0xd5, 0x02, 0x28, 0x24, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x39, 0x00, 0x17, 0x02, 0x30, 0x00, + 0xd6, 0x02, 0x24, 0x24, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x38, 0x00, 0x17, 0x02, 0x40, 0x00, 0xd7, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x46, 0x00, 0x17, 0x02, 0x40, 0x00, 0xd8, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x36, 0x00, 0x56, 0x02, 0x30, 0x00, 0xd9, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x16, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xda, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x00, 0x00, 0x97, 0x02, 0x30, 0x00, 0xdb, 0x02, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x01, 0x00, 0x97, 0x02, 0x30, 0x00, 0xdc, 0x02, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x02, 0x00, 0x57, 0x01, 0x40, 0x00, 0xdc, 0x02, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x02, 0x00, 0x57, 0x02, 0x40, 0x00, + 0xdd, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x56, 0x01, 0x30, 0x00, 0xdd, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x56, 0x02, 0x30, 0x00, 0xde, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x96, 0x01, 0x30, 0x00, 0xde, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x96, 0x02, 0x30, 0x00, + 0xdf, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x56, 0x01, 0x30, 0x00, 0xdf, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x56, 0x02, 0x30, 0x00, 0xe0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x96, 0x02, 0x30, 0x00, + 0xe1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x56, 0x01, 0x30, 0x00, 0xe1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x56, 0x02, 0x30, 0x00, 0xe2, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x56, 0x01, 0x30, 0x00, 0xe2, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xe2, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x56, 0x01, 0x30, 0x00, 0xe2, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x56, 0x02, 0x30, 0x00, 0xe3, 0x02, 0x23, 0x23, 0x0f, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe3, 0x02, 0x24, 0x24, 0x10, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8c, 0x00, 0x96, 0x02, 0x30, 0x00, + 0xe3, 0x02, 0x0f, 0x23, 0x23, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe3, 0x02, 0x10, 0x24, 0x24, 0x00, 0x01, 0x03, 0x02, 0x00, 0x8e, 0x00, 0x96, 0x02, 0x30, 0x00, 0xe4, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x56, 0x01, 0x30, 0x00, 0xe4, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xe5, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe5, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x92, 0x00, 0x96, 0x02, 0x30, 0x00, 0xe6, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x56, 0x01, 0x30, 0x00, 0xe6, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xe7, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe7, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x93, 0x00, 0x96, 0x02, 0x30, 0x00, 0xe8, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x56, 0x01, 0x30, 0x00, 0xe8, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xe9, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x96, 0x01, 0x30, 0x00, 0xe9, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x90, 0x00, 0x96, 0x02, 0x30, 0x00, 0xea, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x56, 0x01, 0x30, 0x00, 0xea, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xeb, 0x02, 0x23, 0x09, 0x23, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x96, 0x01, 0x30, 0x00, 0xeb, 0x02, 0x24, 0x09, 0x24, 0x00, 0x02, 0x01, 0x03, 0x00, 0x91, 0x00, 0x96, 0x02, 0x30, 0x00, 0xec, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x56, 0x01, 0x30, 0x00, 0xec, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xed, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x56, 0x01, 0x30, 0x00, 0xed, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x56, 0x02, 0x30, 0x00, 0xee, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x56, 0x01, 0x30, 0x00, 0xee, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xef, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x96, 0x01, 0x30, 0x00, 0xef, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x98, 0x00, 0x96, 0x02, 0x30, 0x00, 0xf0, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x96, 0x01, 0x30, 0x00, 0xf0, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa8, 0x00, 0x96, 0x02, 0x30, 0x00, + 0xf1, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x96, 0x01, 0x30, 0x00, 0xf1, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb8, 0x00, 0x96, 0x02, 0x30, 0x00, 0xf2, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x99, 0x00, 0x56, 0x00, 0x30, 0x00, 0xf3, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa9, 0x00, 0x56, 0x00, 0x30, 0x00, + 0xf4, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb9, 0x00, 0x56, 0x00, 0x30, 0x00, 0xf5, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x99, 0x00, 0x96, 0x00, 0x30, 0x00, 0xf6, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa9, 0x00, 0x96, 0x00, 0x30, 0x00, 0xf7, 0x02, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb9, 0x00, 0x96, 0x00, 0x30, 0x00, + 0xf8, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x56, 0x01, 0x30, 0x00, 0xf8, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x56, 0x02, 0x30, 0x00, 0xf9, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x56, 0x01, 0x30, 0x00, 0xf9, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x56, 0x02, 0x30, 0x00, + 0xfa, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x56, 0x01, 0x30, 0x00, 0xfa, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x56, 0x02, 0x30, 0x00, 0xfb, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x96, 0x01, 0x30, 0x00, 0xfb, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9a, 0x00, 0x96, 0x02, 0x30, 0x00, + 0xfc, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x96, 0x01, 0x30, 0x00, 0xfc, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaa, 0x00, 0x96, 0x02, 0x30, 0x00, 0xfd, 0x02, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x96, 0x01, 0x30, 0x00, 0xfd, 0x02, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xba, 0x00, 0x96, 0x02, 0x30, 0x00, + 0xfe, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9b, 0x00, 0x56, 0x00, 0x30, 0x00, 0xff, 0x02, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xab, 0x00, 0x56, 0x00, 0x30, 0x00, 0x00, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbb, 0x00, 0x56, 0x00, 0x30, 0x00, 0x01, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9b, 0x00, 0x96, 0x00, 0x30, 0x00, + 0x02, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xab, 0x00, 0x96, 0x00, 0x30, 0x00, 0x03, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbb, 0x00, 0x96, 0x00, 0x30, 0x00, 0x04, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x56, 0x01, 0x30, 0x00, 0x04, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x05, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x56, 0x01, 0x30, 0x00, 0x05, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x56, 0x02, 0x30, 0x00, 0x06, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x56, 0x01, 0x30, 0x00, 0x06, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x07, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x96, 0x01, 0x30, 0x00, 0x07, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9c, 0x00, 0x96, 0x02, 0x30, 0x00, 0x08, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x96, 0x01, 0x30, 0x00, 0x08, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xac, 0x00, 0x96, 0x02, 0x30, 0x00, + 0x09, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x96, 0x01, 0x30, 0x00, 0x09, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbc, 0x00, 0x96, 0x02, 0x30, 0x00, 0x0a, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9d, 0x00, 0x56, 0x00, 0x30, 0x00, 0x0b, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xad, 0x00, 0x56, 0x00, 0x30, 0x00, + 0x0c, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbd, 0x00, 0x56, 0x00, 0x30, 0x00, 0x0d, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9d, 0x00, 0x96, 0x00, 0x30, 0x00, 0x0e, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xad, 0x00, 0x96, 0x00, 0x30, 0x00, 0x0f, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbd, 0x00, 0x96, 0x00, 0x30, 0x00, + 0x10, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x56, 0x01, 0x30, 0x00, 0x10, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x56, 0x02, 0x30, 0x00, 0x11, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x56, 0x01, 0x30, 0x00, 0x11, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x12, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x56, 0x01, 0x30, 0x00, 0x12, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x56, 0x02, 0x30, 0x00, 0x13, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x96, 0x01, 0x30, 0x00, 0x13, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9e, 0x00, 0x96, 0x02, 0x30, 0x00, + 0x14, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x96, 0x01, 0x30, 0x00, 0x14, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xae, 0x00, 0x96, 0x02, 0x30, 0x00, 0x15, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x96, 0x01, 0x30, 0x00, 0x15, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbe, 0x00, 0x96, 0x02, 0x30, 0x00, + 0x16, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9f, 0x00, 0x56, 0x00, 0x30, 0x00, 0x17, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaf, 0x00, 0x56, 0x00, 0x30, 0x00, 0x18, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbf, 0x00, 0x56, 0x00, 0x30, 0x00, 0x19, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x9f, 0x00, 0x96, 0x00, 0x30, 0x00, + 0x1a, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xaf, 0x00, 0x96, 0x00, 0x30, 0x00, 0x1b, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0xbf, 0x00, 0x96, 0x00, 0x30, 0x00, 0x1c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x56, 0x01, 0x30, 0x00, 0x1c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x1d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x56, 0x01, 0x30, 0x00, 0x1d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x56, 0x02, 0x30, 0x00, 0x1e, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x56, 0x01, 0x30, 0x00, 0x1e, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x1f, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x96, 0x01, 0x30, 0x00, 0x1f, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x96, 0x00, 0x96, 0x02, 0x30, 0x00, 0x20, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x96, 0x01, 0x30, 0x00, 0x20, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa6, 0x00, 0x96, 0x02, 0x30, 0x00, + 0x21, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x96, 0x01, 0x30, 0x00, 0x21, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb6, 0x00, 0x96, 0x02, 0x30, 0x00, 0x22, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x56, 0x01, 0x30, 0x00, 0x22, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x23, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x56, 0x01, 0x30, 0x00, 0x23, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x56, 0x02, 0x30, 0x00, 0x24, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x56, 0x01, 0x30, 0x00, 0x24, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x56, 0x02, 0x30, 0x00, + 0x25, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x96, 0x01, 0x30, 0x00, 0x25, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x97, 0x00, 0x96, 0x02, 0x30, 0x00, 0x26, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x96, 0x01, 0x30, 0x00, 0x26, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xa7, 0x00, 0x96, 0x02, 0x30, 0x00, + 0x27, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x96, 0x01, 0x30, 0x00, 0x27, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0xb7, 0x00, 0x96, 0x02, 0x30, 0x00, 0x28, 0x03, 0x23, 0x27, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x16, 0x01, 0x20, 0x00, 0x28, 0x03, 0x24, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x16, 0x02, 0x20, 0x00, + 0x28, 0x03, 0x25, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x13, 0x00, 0x26, 0x03, 0x20, 0x00, 0x29, 0x03, 0x27, 0x23, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1d, 0x00, 0x17, 0x01, 0x30, 0x00, 0x29, 0x03, 0x28, 0x24, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1d, 0x00, 0x17, 0x02, 0x30, 0x00, 0x29, 0x03, 0x29, 0x25, 0x12, 0x00, 0x01, 0x02, 0x05, 0x00, 0x1d, 0x00, 0x27, 0x03, 0x30, 0x00, + 0x2a, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x65, 0x01, 0x20, 0x00, 0x2a, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x65, 0x01, 0x20, 0x00, 0x2a, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x65, 0x02, 0x20, 0x00, 0x2a, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x65, 0x02, 0x20, 0x00, + 0x2a, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x65, 0x03, 0x20, 0x00, 0x2a, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x65, 0x03, 0x20, 0x00, 0x2b, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa5, 0x01, 0x20, 0x00, 0x2b, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa5, 0x01, 0x20, 0x00, + 0x2b, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa5, 0x02, 0x20, 0x00, 0x2b, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa5, 0x02, 0x20, 0x00, 0x2b, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa5, 0x03, 0x20, 0x00, 0x2b, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa5, 0x03, 0x20, 0x00, + 0x2c, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x6d, 0x01, 0x20, 0x00, 0x2c, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x6d, 0x01, 0x20, 0x00, 0x2c, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x6d, 0x02, 0x20, 0x00, 0x2c, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x6d, 0x02, 0x20, 0x00, + 0x2c, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x6d, 0x03, 0x20, 0x00, 0x2c, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x6d, 0x03, 0x20, 0x00, 0x2d, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xad, 0x01, 0x20, 0x00, 0x2d, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xad, 0x01, 0x20, 0x00, + 0x2d, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xad, 0x02, 0x20, 0x00, 0x2d, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xad, 0x02, 0x20, 0x00, 0x2d, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xad, 0x03, 0x20, 0x00, 0x2d, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xad, 0x03, 0x20, 0x00, + 0x2e, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x69, 0x01, 0x20, 0x00, 0x2e, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x69, 0x01, 0x20, 0x00, 0x2e, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x69, 0x02, 0x20, 0x00, 0x2e, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x69, 0x02, 0x20, 0x00, + 0x2e, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0x69, 0x03, 0x20, 0x00, 0x2e, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0x69, 0x03, 0x20, 0x00, 0x2f, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa9, 0x01, 0x20, 0x00, 0x2f, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa9, 0x01, 0x20, 0x00, + 0x2f, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa9, 0x02, 0x20, 0x00, 0x2f, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa9, 0x02, 0x20, 0x00, 0x2f, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x6f, 0x00, 0xa9, 0x03, 0x20, 0x00, 0x2f, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x7f, 0x00, 0xa9, 0x03, 0x20, 0x00, + 0x30, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x66, 0x01, 0x30, 0x00, 0x30, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x66, 0x02, 0x30, 0x00, 0x30, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0x66, 0x03, 0x30, 0x00, 0x31, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x31, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x31, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x66, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x32, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x66, 0x01, 0x30, 0x00, 0x32, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x66, 0x02, 0x30, 0x00, + 0x32, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0x66, 0x03, 0x30, 0x00, 0x33, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x33, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x33, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x64, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x34, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x66, 0x01, 0x30, 0x00, 0x34, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x66, 0x02, 0x30, 0x00, 0x34, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0x66, 0x03, 0x30, 0x00, 0x35, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x35, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x35, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x65, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x36, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0x67, 0x01, 0x40, 0x00, 0x36, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0x67, 0x02, 0x40, 0x00, + 0x36, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0x67, 0x03, 0x40, 0x00, 0x37, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0x67, 0x01, 0x40, 0x00, 0x37, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0x67, 0x02, 0x40, 0x00, 0x37, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0x67, 0x03, 0x40, 0x00, + 0x38, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0xa7, 0x01, 0x40, 0x00, 0x38, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0xa7, 0x02, 0x40, 0x00, 0x38, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3f, 0x00, 0xa7, 0x03, 0x40, 0x00, 0x39, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0xa7, 0x01, 0x40, 0x00, + 0x39, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0xa7, 0x02, 0x40, 0x00, 0x39, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x3e, 0x00, 0xa7, 0x03, 0x40, 0x00, 0x3a, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0x67, 0x01, 0x40, 0x00, 0x3a, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0x67, 0x02, 0x40, 0x00, + 0x3a, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0x67, 0x03, 0x40, 0x00, 0x3b, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0x67, 0x01, 0x40, 0x00, 0x3b, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0x67, 0x02, 0x40, 0x00, 0x3b, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0x67, 0x03, 0x40, 0x00, + 0x3c, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0xa7, 0x01, 0x40, 0x00, 0x3c, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0xa7, 0x02, 0x40, 0x00, 0x3c, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1f, 0x00, 0xa7, 0x03, 0x40, 0x00, 0x3d, 0x03, 0x30, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0xa7, 0x01, 0x40, 0x00, + 0x3d, 0x03, 0x30, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0xa7, 0x02, 0x40, 0x00, 0x3d, 0x03, 0x30, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x1e, 0x00, 0xa7, 0x03, 0x40, 0x00, 0x3e, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x66, 0x01, 0x30, 0x00, 0x3e, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x66, 0x02, 0x30, 0x00, + 0x3e, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x66, 0x03, 0x30, 0x00, 0x3f, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x3f, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x3f, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x40, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x66, 0x01, 0x30, 0x00, 0x40, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x66, 0x02, 0x30, 0x00, 0x40, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x66, 0x03, 0x30, 0x00, 0x41, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x41, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x41, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x42, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x6a, 0x01, 0x30, 0x00, 0x42, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x6a, 0x02, 0x30, 0x00, + 0x42, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0x6a, 0x03, 0x30, 0x00, 0x43, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xaa, 0x01, 0x30, 0x00, 0x43, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xaa, 0x02, 0x30, 0x00, 0x43, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x26, 0x00, 0xaa, 0x03, 0x30, 0x00, + 0x44, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x6a, 0x01, 0x30, 0x00, 0x44, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x6a, 0x02, 0x30, 0x00, 0x44, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0x6a, 0x03, 0x30, 0x00, 0x45, 0x03, 0x30, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xaa, 0x01, 0x30, 0x00, + 0x45, 0x03, 0x30, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xaa, 0x02, 0x30, 0x00, 0x45, 0x03, 0x30, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x27, 0x00, 0xaa, 0x03, 0x30, 0x00, 0x46, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0x66, 0x01, 0x20, 0x00, 0x46, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x46, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0x66, 0x03, 0x20, 0x00, 0x47, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x47, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x47, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8b, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0x48, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0x66, 0x01, 0x20, 0x00, 0x48, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0x66, 0x02, 0x20, 0x00, 0x48, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0x66, 0x03, 0x20, 0x00, 0x49, 0x03, 0x28, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0xa6, 0x01, 0x20, 0x00, + 0x49, 0x03, 0x29, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x49, 0x03, 0x2a, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x8a, 0x00, 0xa6, 0x03, 0x20, 0x00, 0x4a, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0x66, 0x01, 0x20, 0x00, 0x4a, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x4a, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0x66, 0x03, 0x20, 0x00, 0x4b, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x4b, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x4b, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x89, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0x4c, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0x66, 0x01, 0x20, 0x00, 0x4c, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0x66, 0x02, 0x20, 0x00, 0x4c, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0x66, 0x03, 0x20, 0x00, 0x4d, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0xa6, 0x01, 0x20, 0x00, + 0x4d, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x4d, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x88, 0x00, 0xa6, 0x03, 0x20, 0x00, 0x4e, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x66, 0x01, 0x20, 0x00, 0x4e, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x4e, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0x66, 0x03, 0x20, 0x00, 0x4f, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x4f, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x4f, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xc4, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0x50, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x66, 0x01, 0x20, 0x00, 0x50, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x66, 0x02, 0x20, 0x00, 0x50, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x66, 0x03, 0x20, 0x00, 0x51, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0xa6, 0x01, 0x20, 0x00, + 0x51, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x51, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0xa6, 0x03, 0x20, 0x00, 0x52, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x66, 0x01, 0x30, 0x00, 0x52, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x66, 0x02, 0x30, 0x00, + 0x52, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0x66, 0x03, 0x30, 0x00, 0x53, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x53, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x53, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x75, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x54, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x66, 0x01, 0x30, 0x00, 0x54, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x66, 0x02, 0x30, 0x00, 0x54, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0x66, 0x03, 0x30, 0x00, 0x55, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x55, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x55, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x76, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x56, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0x66, 0x01, 0x30, 0x00, 0x56, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0x66, 0x02, 0x30, 0x00, + 0x56, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0x66, 0x03, 0x30, 0x00, 0x57, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x57, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x57, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x77, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x58, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x66, 0x01, 0x30, 0x00, 0x58, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x66, 0x02, 0x30, 0x00, 0x58, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0x66, 0x03, 0x30, 0x00, 0x59, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x59, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x59, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7d, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x5a, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0x66, 0x01, 0x30, 0x00, 0x5a, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0x66, 0x02, 0x30, 0x00, + 0x5a, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0x66, 0x03, 0x30, 0x00, 0x5b, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x5b, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x5b, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7e, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x5c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0x66, 0x01, 0x30, 0x00, 0x5c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0x66, 0x02, 0x30, 0x00, 0x5c, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0x66, 0x03, 0x30, 0x00, 0x5d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x5d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x5d, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x7f, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x5e, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0x66, 0x01, 0x30, 0x00, 0x5e, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0x66, 0x02, 0x30, 0x00, + 0x5e, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0x66, 0x03, 0x30, 0x00, 0x5f, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x5f, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x5f, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x8d, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x60, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x60, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x60, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x61, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0xaa, 0x01, 0x20, 0x00, + 0x61, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0xaa, 0x02, 0x20, 0x00, 0x61, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x29, 0x00, 0xaa, 0x03, 0x20, 0x00, 0x62, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x62, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x6a, 0x02, 0x20, 0x00, + 0x62, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x63, 0x03, 0x30, 0x23, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0xaa, 0x01, 0x20, 0x00, 0x63, 0x03, 0x30, 0x24, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0xaa, 0x02, 0x20, 0x00, 0x63, 0x03, 0x30, 0x25, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x39, 0x00, 0xaa, 0x03, 0x20, 0x00, + 0x64, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x64, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x64, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x65, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0xaa, 0x01, 0x20, 0x00, + 0x65, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0xaa, 0x02, 0x20, 0x00, 0x65, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x28, 0x00, 0xaa, 0x03, 0x20, 0x00, 0x66, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x66, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x6a, 0x02, 0x20, 0x00, + 0x66, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x67, 0x03, 0x23, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0xaa, 0x01, 0x20, 0x00, 0x67, 0x03, 0x24, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0xaa, 0x02, 0x20, 0x00, 0x67, 0x03, 0x25, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x38, 0x00, 0xaa, 0x03, 0x20, 0x00, + 0x68, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x32, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x68, 0x03, 0x26, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x32, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x68, 0x03, 0x27, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x32, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x69, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x22, 0x00, 0x6a, 0x01, 0x20, 0x00, + 0x69, 0x03, 0x26, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x22, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x69, 0x03, 0x27, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x22, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x6a, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x12, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x6a, 0x03, 0x26, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x12, 0x00, 0x6a, 0x02, 0x20, 0x00, + 0x6a, 0x03, 0x27, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x12, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x6b, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x34, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x6b, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x34, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x6b, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x34, 0x00, 0x6a, 0x03, 0x20, 0x00, + 0x6c, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x24, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x6c, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x24, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x6c, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x24, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x6d, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x00, 0x6a, 0x01, 0x20, 0x00, + 0x6d, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x6d, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x14, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x6e, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x35, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x6e, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x35, 0x00, 0x6a, 0x02, 0x20, 0x00, + 0x6e, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x35, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x6f, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x25, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x6f, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x25, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x6f, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x25, 0x00, 0x6a, 0x03, 0x20, 0x00, + 0x70, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x15, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x70, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x15, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x70, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x15, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x71, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x6a, 0x01, 0x20, 0x00, + 0x71, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x71, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x31, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x72, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x72, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x6a, 0x02, 0x20, 0x00, + 0x72, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x21, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x73, 0x03, 0x26, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x73, 0x03, 0x27, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x73, 0x03, 0x28, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x11, 0x00, 0x6a, 0x03, 0x20, 0x00, + 0x74, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x74, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x74, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x33, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x75, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x6a, 0x01, 0x20, 0x00, + 0x75, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x75, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x23, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x76, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x76, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x6a, 0x02, 0x20, 0x00, + 0x76, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x13, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x77, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x77, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x77, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x30, 0x00, 0x6a, 0x03, 0x20, 0x00, + 0x78, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x6a, 0x01, 0x20, 0x00, 0x78, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x78, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x20, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x79, 0x03, 0x27, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x6a, 0x01, 0x20, 0x00, + 0x79, 0x03, 0x28, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x6a, 0x02, 0x20, 0x00, 0x79, 0x03, 0x29, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x10, 0x00, 0x6a, 0x03, 0x20, 0x00, 0x7a, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0x65, 0x01, 0x31, 0x00, 0x7a, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0x65, 0x02, 0x31, 0x00, + 0x7a, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0x65, 0x03, 0x31, 0x00, 0x7b, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0xa5, 0x01, 0x31, 0x00, 0x7b, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0xa5, 0x02, 0x31, 0x00, 0x7b, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x01, 0xa5, 0x03, 0x31, 0x00, + 0x7c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x66, 0x01, 0x30, 0x00, 0x7c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x66, 0x02, 0x30, 0x00, 0x7c, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0x66, 0x03, 0x30, 0x00, 0x7d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x7d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x7d, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x15, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x7e, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0x65, 0x01, 0x30, 0x00, 0x7e, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0x65, 0x02, 0x30, 0x00, + 0x7e, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0x65, 0x03, 0x30, 0x00, 0x7f, 0x03, 0x23, 0x28, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0xa5, 0x01, 0x30, 0x00, 0x7f, 0x03, 0x24, 0x29, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0xa5, 0x02, 0x30, 0x00, 0x7f, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x03, 0x01, 0x05, 0x00, 0x72, 0x00, 0xa5, 0x03, 0x30, 0x00, + 0x80, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x66, 0x01, 0x30, 0x00, 0x80, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x66, 0x02, 0x30, 0x00, 0x80, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0x66, 0x03, 0x30, 0x00, 0x81, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x81, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x81, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x14, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x82, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x66, 0x01, 0x20, 0x00, 0x82, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x82, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0x66, 0x03, 0x20, 0x00, 0x83, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x83, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x83, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa0, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0x84, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0x66, 0x01, 0x20, 0x00, 0x84, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0x66, 0x02, 0x20, 0x00, 0x84, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0x66, 0x03, 0x20, 0x00, 0x85, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0xa6, 0x01, 0x20, 0x00, + 0x85, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x85, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa1, 0x00, 0xa6, 0x03, 0x20, 0x00, 0x86, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x66, 0x01, 0x20, 0x00, 0x86, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x86, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0x66, 0x03, 0x20, 0x00, 0x87, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x87, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x87, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa2, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0x88, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x66, 0x01, 0x20, 0x00, 0x88, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x66, 0x02, 0x20, 0x00, 0x88, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0x66, 0x03, 0x20, 0x00, 0x89, 0x03, 0x09, 0x23, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0xa6, 0x01, 0x20, 0x00, + 0x89, 0x03, 0x09, 0x24, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x89, 0x03, 0x09, 0x25, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xa3, 0x00, 0xa6, 0x03, 0x20, 0x00, 0x8a, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x8a, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0xa6, 0x02, 0x30, 0x00, + 0x8a, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x8b, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x11, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x8b, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x11, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x8b, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x11, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0x8c, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0xa6, 0x01, 0x30, 0x00, 0x8c, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x8c, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x12, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x8d, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0xa6, 0x01, 0x30, 0x00, + 0x8d, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0xa6, 0x02, 0x30, 0x00, 0x8d, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x10, 0x00, 0xa6, 0x03, 0x30, 0x00, 0x8e, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0x67, 0x01, 0x40, 0x00, 0x8e, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0x67, 0x02, 0x40, 0x00, + 0x8e, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0x67, 0x03, 0x40, 0x00, 0x8f, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0xa7, 0x01, 0x40, 0x00, 0x8f, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0xa7, 0x02, 0x40, 0x00, 0x8f, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x50, 0x00, 0xa7, 0x03, 0x40, 0x00, + 0x90, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x51, 0x00, 0x67, 0x00, 0x40, 0x00, 0x91, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x51, 0x00, 0xa7, 0x00, 0x40, 0x00, 0x92, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0x67, 0x01, 0x30, 0x00, 0x92, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0x67, 0x02, 0x30, 0x00, + 0x92, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0x67, 0x03, 0x30, 0x00, 0x93, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0xa7, 0x01, 0x30, 0x00, 0x93, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0xa7, 0x02, 0x30, 0x00, 0x93, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x56, 0x00, 0xa7, 0x03, 0x30, 0x00, + 0x94, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x57, 0x00, 0x67, 0x00, 0x40, 0x00, 0x95, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x57, 0x00, 0xa7, 0x00, 0x40, 0x00, 0x96, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x67, 0x01, 0x30, 0x00, 0x96, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x67, 0x02, 0x30, 0x00, + 0x96, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x08, 0x00, 0x67, 0x03, 0x30, 0x00, 0x97, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0xa7, 0x01, 0x30, 0x00, 0x97, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0xa7, 0x02, 0x30, 0x00, 0x97, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x09, 0x00, 0xa7, 0x03, 0x30, 0x00, + 0x98, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0a, 0x00, 0x67, 0x00, 0x40, 0x00, 0x99, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x0b, 0x00, 0xa7, 0x00, 0x40, 0x00, 0x9a, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x66, 0x01, 0x20, 0x00, 0x9a, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x9a, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0x66, 0x03, 0x20, 0x00, 0x9b, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x9b, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x9b, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4e, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0x9c, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4f, 0x00, 0x66, 0x00, 0x30, 0x00, 0x9d, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4f, 0x00, 0xa6, 0x00, 0x30, 0x00, 0x9e, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x66, 0x01, 0x20, 0x00, 0x9e, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x66, 0x02, 0x20, 0x00, + 0x9e, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0x66, 0x03, 0x20, 0x00, 0x9f, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0xa6, 0x01, 0x20, 0x00, 0x9f, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0xa6, 0x02, 0x20, 0x00, 0x9f, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x4c, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0xa0, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4d, 0x00, 0x66, 0x00, 0x30, 0x00, 0xa1, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4d, 0x00, 0xa6, 0x00, 0x30, 0x00, 0xa2, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x66, 0x01, 0x30, 0x00, 0xa2, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x66, 0x02, 0x30, 0x00, + 0xa2, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0x66, 0x03, 0x30, 0x00, 0xa3, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0xa6, 0x01, 0x30, 0x00, 0xa3, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0xa6, 0x02, 0x30, 0x00, 0xa3, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2c, 0x00, 0xa6, 0x03, 0x30, 0x00, + 0xa4, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0x66, 0x00, 0x30, 0x00, 0xa5, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x2d, 0x00, 0xa6, 0x00, 0x30, 0x00, 0xa6, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x66, 0x01, 0x20, 0x00, 0xa6, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x66, 0x02, 0x20, 0x00, + 0xa6, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0x66, 0x03, 0x20, 0x00, 0xa7, 0x03, 0x23, 0x28, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0xa6, 0x01, 0x20, 0x00, 0xa7, 0x03, 0x24, 0x29, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0xa6, 0x02, 0x20, 0x00, 0xa7, 0x03, 0x25, 0x2a, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x42, 0x00, 0xa6, 0x03, 0x20, 0x00, + 0xa8, 0x03, 0x23, 0x23, 0x26, 0x00, 0x02, 0x03, 0x01, 0x00, 0x43, 0x00, 0x66, 0x00, 0x30, 0x00, 0xa9, 0x03, 0x23, 0x23, 0x27, 0x00, 0x02, 0x03, 0x01, 0x00, 0x43, 0x00, 0xa6, 0x00, 0x30, 0x00, 0xaa, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0x67, 0x01, 0x30, 0x00, 0xaa, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0x67, 0x02, 0x30, 0x00, + 0xaa, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0x67, 0x03, 0x30, 0x00, 0xab, 0x03, 0x23, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0xa7, 0x01, 0x30, 0x00, 0xab, 0x03, 0x24, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0xa7, 0x02, 0x30, 0x00, 0xab, 0x03, 0x25, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x26, 0x00, 0xa7, 0x03, 0x30, 0x00, + 0xac, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x27, 0x00, 0x67, 0x00, 0x40, 0x00, 0xad, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x27, 0x00, 0xa7, 0x00, 0x40, 0x00, 0xae, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0x67, 0x01, 0x40, 0x00, 0xae, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0x67, 0x02, 0x40, 0x00, + 0xae, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0x67, 0x03, 0x40, 0x00, 0xaf, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0xa7, 0x01, 0x40, 0x00, 0xaf, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0xa7, 0x02, 0x40, 0x00, 0xaf, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x54, 0x00, 0xa7, 0x03, 0x40, 0x00, + 0xb0, 0x03, 0x23, 0x23, 0x26, 0x12, 0x02, 0x03, 0x01, 0x05, 0x55, 0x00, 0x67, 0x00, 0x40, 0x00, 0xb1, 0x03, 0x23, 0x23, 0x27, 0x12, 0x02, 0x03, 0x01, 0x05, 0x55, 0x00, 0xa7, 0x00, 0x40, 0x00, 0xb2, 0x03, 0x30, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0x67, 0x01, 0x30, 0x00, 0xb2, 0x03, 0x30, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0x67, 0x02, 0x30, 0x00, + 0xb2, 0x03, 0x30, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0x67, 0x03, 0x30, 0x00, 0xb3, 0x03, 0x30, 0x28, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0xa7, 0x01, 0x30, 0x00, 0xb3, 0x03, 0x30, 0x29, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0xa7, 0x02, 0x30, 0x00, 0xb3, 0x03, 0x30, 0x2a, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x66, 0x00, 0xa7, 0x03, 0x30, 0x00, + 0xb4, 0x03, 0x30, 0x26, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x67, 0x00, 0x67, 0x00, 0x30, 0x00, 0xb5, 0x03, 0x30, 0x27, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x67, 0x00, 0xa7, 0x00, 0x30, 0x00, 0xb6, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0xa7, 0x01, 0x40, 0x00, 0xb6, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0xa7, 0x02, 0x40, 0x00, + 0xb6, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0xa7, 0x03, 0x40, 0x00, 0xb7, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0x67, 0x01, 0x40, 0x00, 0xb7, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0x67, 0x02, 0x40, 0x00, 0xb7, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x03, 0x00, 0x67, 0x03, 0x40, 0x00, + 0xb8, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x67, 0x01, 0x40, 0x00, 0xb8, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x67, 0x02, 0x40, 0x00, 0xb8, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x42, 0x00, 0x67, 0x03, 0x40, 0x00, 0xb9, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0x67, 0x01, 0x40, 0x00, + 0xb9, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0x67, 0x02, 0x40, 0x00, 0xb9, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0x67, 0x03, 0x40, 0x00, 0xba, 0x03, 0x23, 0x23, 0x28, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0xa7, 0x01, 0x40, 0x00, 0xba, 0x03, 0x24, 0x24, 0x29, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0xa7, 0x02, 0x40, 0x00, + 0xba, 0x03, 0x25, 0x25, 0x2a, 0x12, 0x02, 0x03, 0x01, 0x05, 0x25, 0x00, 0xa7, 0x03, 0x40, 0x00, 0xbb, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x66, 0x01, 0x30, 0x00, 0xbb, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x66, 0x02, 0x30, 0x00, 0xbb, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x52, 0x00, 0x66, 0x03, 0x30, 0x00, + 0xbc, 0x03, 0x23, 0x23, 0x28, 0x00, 0x02, 0x03, 0x01, 0x00, 0x83, 0x00, 0xa6, 0x01, 0x30, 0x00, 0xbc, 0x03, 0x24, 0x24, 0x29, 0x00, 0x02, 0x03, 0x01, 0x00, 0x83, 0x00, 0xa6, 0x02, 0x30, 0x00, 0xbc, 0x03, 0x25, 0x25, 0x2a, 0x00, 0x02, 0x03, 0x01, 0x00, 0x83, 0x00, 0xa6, 0x03, 0x30, 0x00, 0xbd, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x51, 0x02, 0x30, 0x00, + 0xbe, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x55, 0x02, 0x30, 0x00, 0xbf, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x91, 0x02, 0x30, 0x00, 0xc0, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4a, 0x00, 0x95, 0x02, 0x30, 0x00, 0xc1, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x51, 0x02, 0x30, 0x00, + 0xc2, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x55, 0x02, 0x30, 0x00, 0xc3, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x91, 0x02, 0x30, 0x00, 0xc4, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x41, 0x00, 0x95, 0x02, 0x30, 0x00, 0xc5, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x51, 0x02, 0x30, 0x00, + 0xc6, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x55, 0x02, 0x30, 0x00, 0xc7, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x91, 0x02, 0x30, 0x00, 0xc8, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x42, 0x00, 0x95, 0x02, 0x30, 0x00, 0xc9, 0x03, 0x30, 0x32, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x51, 0x01, 0x20, 0x00, + 0xc9, 0x03, 0x0b, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x51, 0x01, 0x20, 0x00, 0xc9, 0x03, 0x30, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x51, 0x01, 0x20, 0x00, 0xc9, 0x03, 0x03, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x51, 0x01, 0x20, 0x00, 0xca, 0x03, 0x30, 0x31, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x55, 0x01, 0x20, 0x00, + 0xca, 0x03, 0x0a, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x55, 0x01, 0x20, 0x00, 0xca, 0x03, 0x30, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x55, 0x01, 0x20, 0x00, 0xca, 0x03, 0x03, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x55, 0x01, 0x20, 0x00, 0xcb, 0x03, 0x30, 0x34, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x91, 0x01, 0x20, 0x00, + 0xcb, 0x03, 0x0d, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x91, 0x01, 0x20, 0x00, 0xcb, 0x03, 0x30, 0x04, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x9d, 0x01, 0x20, 0x00, 0xcb, 0x03, 0x04, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x9d, 0x01, 0x20, 0x00, 0xcc, 0x03, 0x30, 0x33, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x90, 0x00, 0x95, 0x01, 0x20, 0x00, + 0xcc, 0x03, 0x0c, 0x30, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x91, 0x00, 0x95, 0x01, 0x20, 0x00, 0xcc, 0x03, 0x30, 0x03, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x92, 0x00, 0x5d, 0x01, 0x20, 0x00, 0xcc, 0x03, 0x03, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x93, 0x00, 0x5d, 0x01, 0x20, 0x00, 0xcd, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x51, 0x01, 0x20, 0x00, + 0xce, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x55, 0x01, 0x20, 0x00, 0xcf, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x91, 0x01, 0x20, 0x00, 0xd0, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x44, 0x00, 0x95, 0x01, 0x20, 0x00, 0xd1, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x51, 0x02, 0x30, 0x00, + 0xd2, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x55, 0x02, 0x30, 0x00, 0xd3, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x91, 0x02, 0x30, 0x00, 0xd4, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x45, 0x00, 0x95, 0x02, 0x30, 0x00, 0xd5, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x51, 0x01, 0x20, 0x00, + 0xd6, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x55, 0x01, 0x20, 0x00, 0xd7, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x91, 0x01, 0x20, 0x00, 0xd8, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x98, 0x00, 0x95, 0x01, 0x20, 0x00, 0xd9, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x32, 0x00, 0x97, 0x01, 0x30, 0x00, + 0xda, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x32, 0x00, 0x57, 0x01, 0x30, 0x00, 0xdb, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x33, 0x00, 0x97, 0x01, 0x30, 0x00, 0xdc, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x33, 0x00, 0x57, 0x01, 0x30, 0x00, 0xdd, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x30, 0x00, 0x97, 0x01, 0x30, 0x00, + 0xde, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x30, 0x00, 0x57, 0x01, 0x30, 0x00, 0xdf, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x31, 0x00, 0x97, 0x01, 0x30, 0x00, 0xe0, 0x03, 0x30, 0x30, 0x12, 0x00, 0x02, 0x01, 0x05, 0x00, 0x31, 0x00, 0x57, 0x01, 0x30, 0x00, 0xe1, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x51, 0x01, 0x20, 0x00, + 0xe2, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x55, 0x01, 0x20, 0x00, 0xe3, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x91, 0x01, 0x20, 0x00, 0xe4, 0x03, 0x30, 0x30, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x99, 0x00, 0x95, 0x01, 0x20, 0x00, 0xe5, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4b, 0x00, 0x55, 0x02, 0x30, 0x00, + 0xe6, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4b, 0x00, 0x51, 0x02, 0x30, 0x00, 0xe7, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x4b, 0x00, 0x91, 0x02, 0x30, 0x00, 0xe8, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x51, 0x02, 0x30, 0x00, 0xe9, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x55, 0x02, 0x30, 0x00, + 0xea, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x91, 0x02, 0x30, 0x00, 0xeb, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x46, 0x00, 0x95, 0x02, 0x30, 0x00, 0xec, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x51, 0x02, 0x30, 0x00, 0xed, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x55, 0x02, 0x30, 0x00, + 0xee, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x91, 0x02, 0x30, 0x00, 0xef, 0x03, 0x30, 0x30, 0x30, 0x00, 0x02, 0x03, 0x01, 0x00, 0x47, 0x00, 0x95, 0x02, 0x30, 0x00, 0xf0, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0x10, 0x00, 0xf0, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, 0x10, 0x00, + 0xf0, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xc0, 0x00, 0x00, 0x90, 0x00, 0xf0, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xc0, 0x00, 0x00, 0x90, 0x00, 0xf1, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xc0, 0x00, 0x00, 0x90, 0x00, 0xf1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xc1, 0x00, 0x00, 0x00, 0x00, + 0xf2, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x00, 0x00, 0x00, 0x10, 0x00, 0xf2, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, 0x10, 0x00, 0xf3, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x04, 0x00, 0x00, 0x11, 0x00, 0xf3, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x04, 0x00, 0x00, 0x11, 0x00, + 0xf3, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xe0, 0x00, 0x00, 0x90, 0x00, 0xf3, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xe8, 0x00, 0x00, 0x90, 0x00, 0xf4, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xe8, 0x00, 0x00, 0x90, 0x00, 0xf4, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xe9, 0x00, 0x00, 0x00, 0x00, + 0xf5, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x04, 0x00, 0x00, 0x11, 0x00, 0xf5, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x04, 0x00, 0x00, 0x11, 0x00, 0xf6, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x05, 0x00, 0x00, 0x11, 0x00, 0xf6, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x05, 0x00, 0x00, 0x11, 0x00, + 0xf6, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xe8, 0x00, 0x00, 0x90, 0x00, 0xf6, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xe0, 0x00, 0x00, 0x90, 0x00, 0xf7, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xe0, 0x00, 0x00, 0x90, 0x00, 0xf7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xe1, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x05, 0x00, 0x00, 0x11, 0x00, 0xf8, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x05, 0x00, 0x00, 0x11, 0x00, 0xf9, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x01, 0x00, 0x00, 0x11, 0x00, 0xf9, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x11, 0x00, + 0xf9, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xc8, 0x00, 0x00, 0x90, 0x00, 0xf9, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xc8, 0x00, 0x00, 0x90, 0x00, 0xfa, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xc8, 0x00, 0x00, 0x90, 0x00, 0xfa, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xc9, 0x00, 0x00, 0x00, 0x00, + 0xfb, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x01, 0x00, 0x00, 0x11, 0x00, 0xfb, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x01, 0x00, 0x00, 0x11, 0x00, 0xfc, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x06, 0x00, 0x00, 0x11, 0x00, 0xfc, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x06, 0x00, 0x00, 0x11, 0x00, + 0xfc, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xf0, 0x00, 0x00, 0x90, 0x00, 0xfc, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xf8, 0x00, 0x00, 0x90, 0x00, 0xfd, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xf8, 0x00, 0x00, 0x90, 0x00, 0xfd, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xf9, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x03, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x06, 0x00, 0x00, 0x11, 0x00, 0xfe, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x06, 0x00, 0x00, 0x11, 0x00, 0xff, 0x03, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x07, 0x00, 0x00, 0x11, 0x00, 0xff, 0x03, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x07, 0x00, 0x00, 0x11, 0x00, + 0xff, 0x03, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xd8, 0xf8, 0x00, 0x00, 0x90, 0x00, 0xff, 0x03, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xdc, 0xf0, 0x00, 0x00, 0x90, 0x00, 0x00, 0x04, 0x2e, 0x2d, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0xde, 0xf0, 0x00, 0x00, 0x90, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xf1, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x07, 0x00, 0x00, 0x11, 0x00, 0x01, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x07, 0x00, 0x00, 0x11, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x05, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfc, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x0b, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0b, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x05, 0x00, 0x0b, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd9, 0xc0, 0x00, 0x00, 0x04, 0x00, 0x0c, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x04, 0x00, - 0x0c, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0c, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x05, 0x00, 0x00, 0x05, 0x00, 0x0d, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x04, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x02, 0x00, 0x00, 0x05, 0x00, - 0x0e, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x02, 0x00, 0x00, 0x05, 0x00, 0x0e, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xd0, 0x00, 0x00, 0x04, 0x00, 0x0f, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x03, 0x00, 0x00, 0x05, 0x00, 0x0f, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x00, 0x00, 0x05, 0x00, - 0x0f, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x07, 0x00, 0x00, 0x05, 0x00, 0x0f, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xd8, 0x00, 0x00, 0x04, 0x00, 0x10, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x02, 0x00, 0x00, 0x05, 0x00, 0x10, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x02, 0x00, 0x00, 0x05, 0x00, - 0x11, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x03, 0x00, 0x00, 0x05, 0x00, 0x11, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x03, 0x00, 0x00, 0x05, 0x00, 0x11, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x07, 0x00, 0x00, 0x05, 0x00, 0x12, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0x05, 0x00, - 0x12, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x05, 0x00, 0x12, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x00, 0x00, 0x05, 0x00, 0x13, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x06, 0x00, 0x00, 0x05, 0x00, 0x14, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd9, 0xc8, 0x00, 0x00, 0x04, 0x00, - 0x14, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x15, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xc0, 0x00, 0x00, 0x24, 0x00, 0x16, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xc8, 0x00, 0x00, 0x24, 0x00, 0x17, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xd0, 0x00, 0x00, 0x24, 0x00, - 0x18, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xd8, 0x00, 0x00, 0x24, 0x00, 0x19, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xc0, 0x00, 0x00, 0x24, 0x00, 0x1a, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xc8, 0x00, 0x00, 0x24, 0x00, 0x1b, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xd0, 0x00, 0x00, 0x24, 0x00, - 0x1c, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xd8, 0x00, 0x00, 0x24, 0x00, 0x1d, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x02, 0x00, 0x00, 0x05, 0x00, 0x1d, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x02, 0x00, 0x00, 0x05, 0x00, 0x1d, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd8, 0xd0, 0x00, 0x00, 0x04, 0x00, - 0x1d, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x03, 0x00, 0x00, 0x05, 0x00, 0x1e, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x03, 0x00, 0x00, 0x05, 0x00, 0x1e, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd8, 0xd8, 0x00, 0x00, 0x04, 0x00, - 0x1e, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x02, 0x00, 0x00, 0x05, 0x00, 0x20, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x02, 0x00, 0x00, 0x05, 0x00, - 0x21, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x03, 0x00, 0x00, 0x05, 0x00, 0x21, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x03, 0x00, 0x00, 0x05, 0x00, 0x22, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xf0, 0x00, 0x00, 0x24, 0x00, 0x23, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdf, 0xf0, 0x00, 0x00, 0x24, 0x00, - 0x24, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xe8, 0x00, 0x00, 0x24, 0x00, 0x25, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdf, 0xe8, 0x00, 0x00, 0x24, 0x00, 0x26, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xe0, 0x00, 0x00, 0x04, 0x00, 0x26, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xe1, 0x00, 0x00, 0x00, 0x00, - 0x27, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xe8, 0x00, 0x00, 0x04, 0x00, 0x27, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x29, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe4, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf4, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x0b, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0b, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x05, 0x00, 0x00, 0x11, 0x00, 0x0b, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd9, 0xc0, 0x00, 0x00, 0x10, 0x00, 0x0c, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x0c, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0c, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x05, 0x00, 0x00, 0x11, 0x00, 0x0d, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x04, 0x00, 0x00, 0x11, 0x00, 0x0e, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x02, 0x00, 0x00, 0x11, 0x00, + 0x0e, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x02, 0x00, 0x00, 0x11, 0x00, 0x0e, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xd0, 0x00, 0x00, 0x10, 0x00, 0x0f, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x03, 0x00, 0x00, 0x11, 0x00, 0x0f, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x03, 0x00, 0x00, 0x11, 0x00, + 0x0f, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x07, 0x00, 0x00, 0x11, 0x00, 0x0f, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xd8, 0x00, 0x00, 0x10, 0x00, 0x10, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x02, 0x00, 0x00, 0x11, 0x00, 0x10, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x02, 0x00, 0x00, 0x11, 0x00, + 0x11, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x03, 0x00, 0x00, 0x11, 0x00, 0x11, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x03, 0x00, 0x00, 0x11, 0x00, 0x11, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x07, 0x00, 0x00, 0x11, 0x00, 0x12, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x01, 0x00, 0x00, 0x11, 0x00, + 0x12, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdb, 0x01, 0x00, 0x00, 0x11, 0x00, 0x12, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x01, 0x00, 0x00, 0x11, 0x00, 0x13, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdf, 0x06, 0x00, 0x00, 0x11, 0x00, 0x14, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd9, 0xc8, 0x00, 0x00, 0x10, 0x00, + 0x14, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x15, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xc0, 0x00, 0x00, 0x90, 0x00, 0x16, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xc8, 0x00, 0x00, 0x90, 0x00, 0x17, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xd0, 0x00, 0x00, 0x90, 0x00, + 0x18, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xda, 0xd8, 0x00, 0x00, 0x90, 0x00, 0x19, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xc0, 0x00, 0x00, 0x90, 0x00, 0x1a, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xc8, 0x00, 0x00, 0x90, 0x00, 0x1b, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xd0, 0x00, 0x00, 0x90, 0x00, + 0x1c, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xd8, 0x00, 0x00, 0x90, 0x00, 0x1d, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x02, 0x00, 0x00, 0x11, 0x00, 0x1d, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x02, 0x00, 0x00, 0x11, 0x00, 0x1d, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd8, 0xd0, 0x00, 0x00, 0x10, 0x00, + 0x1d, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xd1, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd8, 0x03, 0x00, 0x00, 0x11, 0x00, 0x1e, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdc, 0x03, 0x00, 0x00, 0x11, 0x00, 0x1e, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xd8, 0xd8, 0x00, 0x00, 0x10, 0x00, + 0x1e, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x02, 0x00, 0x00, 0x11, 0x00, 0x20, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x02, 0x00, 0x00, 0x11, 0x00, + 0x21, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xde, 0x03, 0x00, 0x00, 0x11, 0x00, 0x21, 0x04, 0x0c, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xda, 0x03, 0x00, 0x00, 0x11, 0x00, 0x22, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xf0, 0x00, 0x00, 0x90, 0x00, 0x23, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdf, 0xf0, 0x00, 0x00, 0x90, 0x00, + 0x24, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdb, 0xe8, 0x00, 0x00, 0x90, 0x00, 0x25, 0x04, 0x2d, 0x2e, 0x00, 0x00, 0x09, 0x04, 0x00, 0x00, 0xdf, 0xe8, 0x00, 0x00, 0x90, 0x00, 0x26, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xe0, 0x00, 0x00, 0x10, 0x00, 0x26, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xe1, 0x00, 0x00, 0x00, 0x00, + 0x27, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xe8, 0x00, 0x00, 0x10, 0x00, 0x27, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x28, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x29, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe4, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xee, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xeb, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xe9, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xea, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xec, 0x00, 0x00, 0x00, 0x00, 0x30, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xed, 0x00, 0x00, 0x00, 0x00, 0x31, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x32, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xff, 0x00, 0x00, 0x00, 0x00, 0x33, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x34, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x36, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x37, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x39, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe3, 0x00, 0x00, 0x00, 0x00, - 0x3a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xc0, 0x00, 0x00, 0x04, 0x00, - 0x3e, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdf, 0xc0, 0x00, 0x00, 0x04, 0x00, 0x3f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe2, 0x00, 0x00, 0x00, 0x00, - 0x42, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x43, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x07, 0x00, 0x00, 0x05, 0x00, 0x44, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x07, 0x00, 0x00, 0x05, 0x00, 0x45, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x05, 0x00, 0x00, 0x05, 0x00, - 0x46, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x06, 0x00, 0x00, 0x05, 0x00, 0x47, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x06, 0x00, 0x00, 0x05, 0x00, 0x48, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x04, 0x00, 0x00, 0x05, 0x00, 0x49, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x06, 0x00, 0x00, 0x05, 0x00, - 0x4a, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x06, 0x00, 0x00, 0x05, 0x00, 0x4b, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x04, 0x00, 0x00, 0x05, 0x00, 0x4c, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x07, 0x00, 0x00, 0x05, 0x00, 0x4c, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xdf, 0xe0, 0x00, 0x00, 0x20, 0x00, - 0x4d, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x07, 0x00, 0x00, 0x05, 0x00, 0x4d, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xdf, 0xe0, 0x00, 0x00, 0x20, 0x00, 0x4e, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x01, 0x00, 0x05, 0x00, 0x4f, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x01, 0x08, 0x05, 0x00, - 0x50, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x01, 0x00, 0x05, 0x00, 0x51, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x01, 0x08, 0x05, 0x00, 0x52, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x05, 0x00, 0x52, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x05, 0x00, - 0x53, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x53, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x54, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x05, 0x00, 0x54, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x05, 0x00, - 0x55, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x05, 0x00, 0x55, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x05, 0x00, 0x56, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x05, 0x00, 0x57, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, - 0x57, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05, 0x00, 0x57, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x05, 0x00, 0x58, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x05, 0x00, 0x59, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x05, 0x00, - 0x59, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x05, 0x00, 0x59, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x08, 0x05, 0x00, 0x5a, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x01, 0x00, 0x05, 0x00, 0x5b, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x05, 0x00, - 0x5b, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x05, 0x00, 0x5b, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x08, 0x05, 0x00, 0x5c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5d, 0x04, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x08, 0x00, - 0x5e, 0x04, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x08, 0x00, 0x5e, 0x04, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x08, 0x00, 0x5e, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x08, 0x08, 0x00, 0x5f, 0x04, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x08, 0x00, - 0x5f, 0x04, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x08, 0x00, 0x5f, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x08, 0x08, 0x00, 0x60, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x05, 0x00, 0x61, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x05, 0x00, - 0x62, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x07, 0x01, 0x00, 0x05, 0x00, 0x65, 0x04, 0x03, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x82, 0x00, 0x06, 0x00, 0x08, 0x00, - 0x65, 0x04, 0x04, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x82, 0x00, 0x06, 0x00, 0x08, 0x00, 0x66, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x3a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf7, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xf6, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdd, 0xc0, 0x00, 0x00, 0x10, 0x00, + 0x3e, 0x04, 0x2e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xdf, 0xc0, 0x00, 0x00, 0x10, 0x00, 0x3f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xd0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe2, 0x00, 0x00, 0x00, 0x00, + 0x42, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x43, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x07, 0x00, 0x00, 0x11, 0x00, 0x44, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x07, 0x00, 0x00, 0x11, 0x00, 0x45, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x05, 0x00, 0x00, 0x11, 0x00, + 0x46, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x06, 0x00, 0x00, 0x11, 0x00, 0x47, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x06, 0x00, 0x00, 0x11, 0x00, 0x48, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x04, 0x00, 0x00, 0x11, 0x00, 0x49, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x06, 0x00, 0x00, 0x11, 0x00, + 0x4a, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x06, 0x00, 0x00, 0x11, 0x00, 0x4b, 0x04, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x04, 0x00, 0x00, 0x11, 0x00, 0x4c, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x07, 0x00, 0x00, 0x11, 0x00, 0x4c, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xdf, 0xe0, 0x00, 0x00, 0x80, 0x00, + 0x4d, 0x04, 0x0b, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xdd, 0x07, 0x00, 0x00, 0x11, 0x00, 0x4d, 0x04, 0x1a, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0xdf, 0xe0, 0x00, 0x00, 0x80, 0x00, 0x4e, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x01, 0x00, 0x11, 0x00, 0x4f, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x01, 0x08, 0x11, 0x00, + 0x50, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x01, 0x00, 0x11, 0x00, 0x51, 0x04, 0x11, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x01, 0x08, 0x11, 0x00, 0x52, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x11, 0x00, 0x52, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x11, 0x00, + 0x53, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x00, 0x53, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x11, 0x00, 0x54, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x11, 0x00, 0x54, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00, 0x11, 0x00, + 0x55, 0x04, 0x3d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x11, 0x00, 0x55, 0x04, 0x3e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x11, 0x00, 0x56, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x11, 0x00, 0x57, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, + 0x57, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x11, 0x00, 0x57, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x11, 0x00, 0x58, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, 0x11, 0x00, 0x59, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x11, 0x00, + 0x59, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x11, 0x00, 0x59, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x08, 0x11, 0x00, 0x5a, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x01, 0x00, 0x11, 0x00, 0x5b, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x11, 0x00, + 0x5b, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x00, 0x11, 0x00, 0x5b, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x01, 0x08, 0x11, 0x00, 0x5c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, 0x00, 0x5d, 0x04, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x5e, 0x04, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x20, 0x00, 0x5e, 0x04, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x20, 0x00, 0x5e, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x01, 0x08, 0x20, 0x00, 0x5f, 0x04, 0x02, 0x06, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x5f, 0x04, 0x03, 0x07, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x20, 0x00, 0x5f, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x03, 0x00, 0x01, 0x08, 0x20, 0x00, 0x60, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x00, 0x11, 0x00, 0x61, 0x04, 0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 0x11, 0x00, + 0x62, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x63, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0x64, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x07, 0x01, 0x00, 0x11, 0x00, 0x65, 0x04, 0x03, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x82, 0x00, 0x06, 0x00, 0x20, 0x00, + 0x65, 0x04, 0x04, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x82, 0x00, 0x06, 0x00, 0x20, 0x00, 0x66, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00, 0x69, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x6a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc2, 0x01, 0x00, 0x00, 0x00, 0x6b, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x6c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc4, 0x01, 0x00, 0x00, 0x00, - 0x6d, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x09, 0x00, 0x05, 0x00, 0x6e, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x05, 0x00, 0x05, 0x00, 0x6f, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x00, 0x05, 0x00, 0x70, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x00, 0x05, 0x00, - 0x71, 0x04, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, 0x08, 0x00, 0x72, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x01, 0x00, 0x08, 0x00, 0x73, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x74, 0x04, 0x04, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x80, 0x00, 0x06, 0x00, 0x08, 0x00, - 0x75, 0x04, 0x04, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x81, 0x00, 0x06, 0x00, 0x08, 0x00, 0x76, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0x01, 0x00, 0x00, 0x00, 0x77, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd7, 0x01, 0x00, 0x00, 0x00, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, - 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x01, 0x00, 0x00, 0x00, 0x7a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0x01, 0x00, 0x00, 0x00, 0x7b, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x09, 0x00, 0x05, 0x00, 0x7c, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x09, 0x08, 0x05, 0x00, - 0x7d, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x09, 0x00, 0x05, 0x00, 0x7e, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x09, 0x08, 0x05, 0x00, 0x7f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xea, 0x09, 0x00, 0x00, 0x00, 0x80, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x05, 0x09, 0x00, 0x05, 0x00, - 0x81, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf6, 0x00, 0x02, 0x00, 0x08, 0x00, 0x82, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf6, 0x00, 0x02, 0x08, 0x08, 0x00, 0x83, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x06, 0x00, 0x08, 0x00, 0x84, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x06, 0x08, 0x08, 0x00, - 0x85, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe8, 0x09, 0x00, 0x00, 0x00, 0x86, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x09, 0x00, 0x05, 0x00, 0x87, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xfa, 0x09, 0x00, 0x00, 0x00, 0x88, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xfb, 0x09, 0x00, 0x00, 0x00, - 0x89, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x01, 0x00, 0x05, 0x00, 0x8a, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x01, 0x08, 0x05, 0x00, 0x8b, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x01, 0x00, 0x05, 0x00, 0x8c, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x01, 0x08, 0x05, 0x00, - 0x8d, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x01, 0x00, 0x05, 0x00, 0x8e, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x01, 0x08, 0x05, 0x00, 0x8f, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x01, 0x00, 0x05, 0x00, 0x90, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x01, 0x08, 0x05, 0x00, - 0x91, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x05, 0x01, 0x00, 0x05, 0x00, 0x92, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x05, 0x01, 0x08, 0x05, 0x00, 0x93, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x03, 0x01, 0x00, 0x05, 0x00, 0x94, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x03, 0x01, 0x08, 0x05, 0x00, - 0x95, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x01, 0x01, 0x00, 0x05, 0x00, 0x96, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x02, 0x01, 0x00, 0x05, 0x00, 0x97, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x03, 0x01, 0x00, 0x05, 0x00, 0x98, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x01, 0x00, 0x05, 0x00, - 0x99, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x01, 0x00, 0x05, 0x00, 0x9a, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x07, 0x05, 0x00, 0x05, 0x00, 0x9b, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x05, 0x00, 0x05, 0x00, 0x9c, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x00, 0x05, 0x00, - 0x9d, 0x04, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x00, 0x04, 0x00, 0x9d, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x08, 0x04, 0x00, 0x9e, 0x04, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb0, 0x00, 0x01, 0x40, 0x08, 0x00, 0x9e, 0x04, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x01, 0x40, 0x08, 0x00, - 0x9e, 0x04, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x01, 0x40, 0x08, 0x00, 0x9e, 0x04, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x01, 0x48, 0x08, 0x00, 0x9f, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x01, 0x40, 0x05, 0x00, 0xa0, 0x04, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x01, 0x48, 0x05, 0x00, - 0xa1, 0x04, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc0, 0x00, 0x01, 0x40, 0x08, 0x00, 0xa1, 0x04, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x00, 0x01, 0x40, 0x08, 0x00, 0xa1, 0x04, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x00, 0x01, 0x40, 0x08, 0x00, 0xa1, 0x04, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x00, 0x01, 0x48, 0x08, 0x00, - 0xa2, 0x04, 0x02, 0x3c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x0a, 0x00, 0xa2, 0x04, 0x03, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x0a, 0x00, 0xa3, 0x04, 0x13, 0x12, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x08, 0x00, 0xa4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xa5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x04, 0x02, 0x0b, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, 0xa7, 0x04, 0x03, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, - 0xa7, 0x04, 0x04, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x02, 0x08, 0x08, 0x00, 0xa7, 0x04, 0x0b, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x02, 0x00, 0x08, 0x00, 0xa7, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x02, 0x00, 0x08, 0x00, 0xa7, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x02, 0x08, 0x08, 0x00, - 0xa8, 0x04, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x00, 0x05, 0x00, 0xa8, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x00, 0x05, 0x00, 0xa8, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x08, 0x05, 0x00, 0xa9, 0x04, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x00, 0x05, 0x00, - 0xa9, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x00, 0x05, 0x00, 0xa9, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x08, 0x05, 0x00, 0xaa, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x01, 0x00, 0x00, 0x00, 0xab, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc8, 0x01, 0x00, 0x00, 0x00, - 0xac, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc9, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xca, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcb, 0x01, 0x00, 0x00, 0x00, 0xaf, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x09, 0x00, 0x05, 0x00, - 0xaf, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x09, 0x08, 0x05, 0x00, 0xb0, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x09, 0x00, 0x05, 0x00, 0xb0, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x09, 0x08, 0x05, 0x00, 0xb1, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x02, 0x09, 0x00, 0x05, 0x00, - 0xb1, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x02, 0x09, 0x08, 0x05, 0x00, 0xb2, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x03, 0x09, 0x00, 0x05, 0x00, 0xb2, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x03, 0x09, 0x08, 0x05, 0x00, 0xb3, 0x04, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x09, 0x00, 0x05, 0x00, - 0xb3, 0x04, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x09, 0x08, 0x05, 0x00, 0xb4, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x09, 0x00, 0x05, 0x00, 0xb5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0xb6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe8, 0x01, 0x00, 0x00, 0x00, - 0xb7, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x01, 0x00, 0x05, 0x00, 0xb8, 0x04, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x24, 0x00, 0xb8, 0x04, 0x1a, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x10, 0x24, 0x00, 0xb8, 0x04, 0x1b, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x24, 0x00, - 0xb8, 0x04, 0x19, 0x1e, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x20, 0x00, 0xb8, 0x04, 0x1a, 0x1e, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xed, 0x00, 0x00, 0x10, 0x20, 0x00, 0xb8, 0x04, 0x1b, 0x1e, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x20, 0x00, 0xb9, 0x04, 0x12, 0x19, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x24, 0x00, - 0xb9, 0x04, 0x12, 0x1a, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x10, 0x24, 0x00, 0xb9, 0x04, 0x12, 0x1b, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x24, 0x00, 0xb9, 0x04, 0x1e, 0x19, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x20, 0x00, 0xb9, 0x04, 0x1e, 0x1a, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xef, 0x00, 0x00, 0x10, 0x20, 0x00, - 0xb9, 0x04, 0x1e, 0x1b, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x20, 0x00, 0xba, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x05, 0x00, 0x05, 0x00, 0xbb, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x09, 0x00, 0x05, 0x00, 0xbc, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x0d, 0x00, 0x05, 0x00, - 0xbd, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x08, 0x00, 0xbd, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x08, 0x08, 0x00, 0xbe, 0x04, 0x04, 0x11, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x06, 0x00, 0x08, 0x00, 0xbf, 0x04, 0x04, 0x11, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x0e, 0x00, 0x08, 0x00, - 0xc0, 0x04, 0x04, 0x11, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x0a, 0x00, 0x08, 0x00, 0xc1, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x02, 0x00, 0x08, 0x00, 0xc1, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x02, 0x08, 0x08, 0x00, 0xc2, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x06, 0x00, 0x08, 0x00, - 0xc2, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x06, 0x08, 0x08, 0x00, 0xc3, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0e, 0x00, 0x08, 0x00, 0xc3, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0e, 0x08, 0x08, 0x00, 0xc4, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0a, 0x00, 0x08, 0x00, - 0xc4, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0a, 0x08, 0x08, 0x00, 0xc5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd5, 0x01, 0x00, 0x00, 0x00, 0xc6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd6, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd8, 0x01, 0x00, 0x00, 0x00, + 0x6d, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x09, 0x00, 0x11, 0x00, 0x6e, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x05, 0x00, 0x11, 0x00, 0x6f, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x00, 0x11, 0x00, 0x70, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x00, 0x11, 0x00, + 0x71, 0x04, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x78, 0x00, 0x01, 0x00, 0x20, 0x00, 0x72, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x79, 0x00, 0x01, 0x00, 0x20, 0x00, 0x73, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd4, 0x01, 0x00, 0x00, 0x00, 0x74, 0x04, 0x04, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x80, 0x00, 0x06, 0x00, 0x20, 0x00, + 0x75, 0x04, 0x04, 0x0f, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x81, 0x00, 0x06, 0x00, 0x20, 0x00, 0x76, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcf, 0x01, 0x00, 0x00, 0x00, 0x77, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd7, 0x01, 0x00, 0x00, 0x00, 0x78, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x79, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xee, 0x01, 0x00, 0x00, 0x00, 0x7a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xef, 0x01, 0x00, 0x00, 0x00, 0x7b, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x09, 0x00, 0x11, 0x00, 0x7c, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x09, 0x08, 0x11, 0x00, + 0x7d, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x09, 0x00, 0x11, 0x00, 0x7e, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x01, 0x09, 0x08, 0x11, 0x00, 0x7f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xea, 0x09, 0x00, 0x00, 0x00, 0x80, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x05, 0x09, 0x00, 0x11, 0x00, + 0x81, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf6, 0x00, 0x02, 0x00, 0x20, 0x00, 0x82, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf6, 0x00, 0x02, 0x08, 0x20, 0x00, 0x83, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x06, 0x00, 0x20, 0x00, 0x84, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf5, 0x00, 0x06, 0x08, 0x20, 0x00, + 0x85, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe8, 0x09, 0x00, 0x00, 0x00, 0x86, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x09, 0x00, 0x11, 0x00, 0x87, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xfa, 0x09, 0x00, 0x00, 0x00, 0x88, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xfb, 0x09, 0x00, 0x00, 0x00, + 0x89, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x01, 0x00, 0x11, 0x00, 0x8a, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x01, 0x08, 0x11, 0x00, 0x8b, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x01, 0x00, 0x11, 0x00, 0x8c, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x05, 0x01, 0x08, 0x11, 0x00, + 0x8d, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x01, 0x00, 0x11, 0x00, 0x8e, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x01, 0x08, 0x11, 0x00, 0x8f, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x01, 0x00, 0x11, 0x00, 0x90, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x01, 0x08, 0x11, 0x00, + 0x91, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x05, 0x01, 0x00, 0x11, 0x00, 0x92, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x05, 0x01, 0x08, 0x11, 0x00, 0x93, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x03, 0x01, 0x00, 0x11, 0x00, 0x94, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x03, 0x01, 0x08, 0x11, 0x00, + 0x95, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x01, 0x01, 0x00, 0x11, 0x00, 0x96, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x02, 0x01, 0x00, 0x11, 0x00, 0x97, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x03, 0x01, 0x00, 0x11, 0x00, 0x98, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x01, 0x00, 0x11, 0x00, + 0x99, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x01, 0x01, 0x00, 0x11, 0x00, 0x9a, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x07, 0x05, 0x00, 0x11, 0x00, 0x9b, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x05, 0x00, 0x11, 0x00, 0x9c, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x01, 0x00, 0x11, 0x00, + 0x9d, 0x04, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x00, 0x10, 0x00, 0x9d, 0x04, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x01, 0x08, 0x10, 0x00, 0x9e, 0x04, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb0, 0x00, 0x01, 0x40, 0x20, 0x00, 0x9e, 0x04, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x01, 0x40, 0x20, 0x00, + 0x9e, 0x04, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x01, 0x40, 0x20, 0x00, 0x9e, 0x04, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xb1, 0x00, 0x01, 0x48, 0x20, 0x00, 0x9f, 0x04, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x01, 0x40, 0x11, 0x00, 0xa0, 0x04, 0x0f, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x01, 0x48, 0x11, 0x00, + 0xa1, 0x04, 0x05, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc0, 0x00, 0x01, 0x40, 0x20, 0x00, 0xa1, 0x04, 0x06, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x00, 0x01, 0x40, 0x20, 0x00, 0xa1, 0x04, 0x07, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x00, 0x01, 0x40, 0x20, 0x00, 0xa1, 0x04, 0x08, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xc1, 0x00, 0x01, 0x48, 0x20, 0x00, + 0xa2, 0x04, 0x02, 0x3c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x22, 0x00, 0xa2, 0x04, 0x03, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x62, 0x00, 0x00, 0x00, 0x22, 0x00, 0xa3, 0x04, 0x13, 0x12, 0x00, 0x00, 0x06, 0x05, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x20, 0x00, 0xa4, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xa5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x04, 0x02, 0x0b, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x20, 0x00, 0xa7, 0x04, 0x03, 0x0c, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x02, 0x00, 0x20, 0x00, + 0xa7, 0x04, 0x04, 0x0d, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf0, 0x00, 0x02, 0x08, 0x20, 0x00, 0xa7, 0x04, 0x0b, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x02, 0x00, 0x20, 0x00, 0xa7, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x02, 0x00, 0x20, 0x00, 0xa7, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf1, 0x00, 0x02, 0x08, 0x20, 0x00, + 0xa8, 0x04, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x00, 0x11, 0x00, 0xa8, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x00, 0x11, 0x00, 0xa8, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x06, 0x01, 0x08, 0x11, 0x00, 0xa9, 0x04, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x00, 0x11, 0x00, + 0xa9, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x00, 0x11, 0x00, 0xa9, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x01, 0x08, 0x11, 0x00, 0xaa, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x01, 0x00, 0x00, 0x00, 0xab, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc8, 0x01, 0x00, 0x00, 0x00, + 0xac, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc9, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xca, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcb, 0x01, 0x00, 0x00, 0x00, 0xaf, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x09, 0x00, 0x11, 0x00, + 0xaf, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x00, 0x09, 0x08, 0x11, 0x00, 0xb0, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x09, 0x00, 0x11, 0x00, 0xb0, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x01, 0x09, 0x08, 0x11, 0x00, 0xb1, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x02, 0x09, 0x00, 0x11, 0x00, + 0xb1, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x02, 0x09, 0x08, 0x11, 0x00, 0xb2, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x03, 0x09, 0x00, 0x11, 0x00, 0xb2, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x03, 0x09, 0x08, 0x11, 0x00, 0xb3, 0x04, 0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x09, 0x00, 0x11, 0x00, + 0xb3, 0x04, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x04, 0x09, 0x08, 0x11, 0x00, 0xb4, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x07, 0x09, 0x00, 0x11, 0x00, 0xb5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0xb6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xe8, 0x01, 0x00, 0x00, 0x00, + 0xb7, 0x04, 0x0a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x01, 0x00, 0x11, 0x00, 0xb8, 0x04, 0x19, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xe4, 0x00, 0x00, 0x00, 0x90, 0x00, 0xb8, 0x04, 0x1a, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x10, 0x90, 0x00, 0xb8, 0x04, 0x1b, 0x12, 0x00, 0x00, 0x09, 0x05, 0x00, 0x00, 0xe5, 0x00, 0x00, 0x00, 0x90, 0x00, + 0xb8, 0x04, 0x19, 0x1e, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xec, 0x00, 0x00, 0x00, 0x80, 0x00, 0xb8, 0x04, 0x1a, 0x1e, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xed, 0x00, 0x00, 0x10, 0x80, 0x00, 0xb8, 0x04, 0x1b, 0x1e, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xed, 0x00, 0x00, 0x00, 0x80, 0x00, 0xb9, 0x04, 0x12, 0x19, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0xe6, 0x00, 0x00, 0x00, 0x90, 0x00, + 0xb9, 0x04, 0x12, 0x1a, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x10, 0x90, 0x00, 0xb9, 0x04, 0x12, 0x1b, 0x00, 0x00, 0x05, 0x09, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0x90, 0x00, 0xb9, 0x04, 0x1e, 0x19, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xee, 0x00, 0x00, 0x00, 0x80, 0x00, 0xb9, 0x04, 0x1e, 0x1a, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xef, 0x00, 0x00, 0x10, 0x80, 0x00, + 0xb9, 0x04, 0x1e, 0x1b, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0xef, 0x00, 0x00, 0x00, 0x80, 0x00, 0xba, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x05, 0x00, 0x11, 0x00, 0xbb, 0x04, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x09, 0x00, 0x11, 0x00, 0xbc, 0x04, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x06, 0x0d, 0x00, 0x11, 0x00, + 0xbd, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x00, 0x20, 0x00, 0xbd, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xf9, 0x00, 0x02, 0x08, 0x20, 0x00, 0xbe, 0x04, 0x04, 0x11, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x06, 0x00, 0x20, 0x00, 0xbf, 0x04, 0x04, 0x11, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x0e, 0x00, 0x20, 0x00, + 0xc0, 0x04, 0x04, 0x11, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x0a, 0x00, 0x20, 0x00, 0xc1, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x02, 0x00, 0x20, 0x00, 0xc1, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x02, 0x08, 0x20, 0x00, 0xc2, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x06, 0x00, 0x20, 0x00, + 0xc2, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x06, 0x08, 0x20, 0x00, 0xc3, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0e, 0x00, 0x20, 0x00, 0xc3, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0e, 0x08, 0x20, 0x00, 0xc4, 0x04, 0x0c, 0x03, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0a, 0x00, 0x20, 0x00, + 0xc4, 0x04, 0x0d, 0x04, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0xfc, 0x00, 0x0a, 0x08, 0x20, 0x00, 0xc5, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd5, 0x01, 0x00, 0x00, 0x00, 0xc6, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd6, 0x01, 0x00, 0x00, 0x00, 0xc7, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd8, 0x01, 0x00, 0x00, 0x00, 0xc8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd9, 0x01, 0x00, 0x00, 0x00, 0xc9, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xda, 0x01, 0x00, 0x00, 0x00, 0xca, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdb, 0x01, 0x00, 0x00, 0x00, 0xcb, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdc, 0x01, 0x00, 0x00, 0x00, 0xcc, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdd, 0x01, 0x00, 0x00, 0x00, 0xcd, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xde, 0x01, 0x00, 0x00, 0x00, 0xce, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xdf, 0x01, 0x00, 0x00, 0x00, 0xcf, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x01, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x01, 0x00, 0x00, 0x00, 0xd1, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0x0d, 0x00, 0x00, 0x00, 0xd2, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x09, 0x00, 0x00, 0x00, 0xd3, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xfe, 0x0d, 0x00, 0x00, 0x00, diff --git a/src/asm_tables_arm64.cpp b/src/asm_tables_arm64.cpp new file mode 100644 index 000000000..4ea4100e4 --- /dev/null +++ b/src/asm_tables_arm64.cpp @@ -0,0 +1,2928 @@ +// ============================================================================= +// GENERATED FILE - DO NOT EDIT +// ============================================================================= +// +// Produces a C++ equivalent of the encoding table from core:rexcode written in Odin +// odin run tablegen # Stage A: ENCODING_TABLE -> generated/ + this file +// odin run tablegen/generated # Stage B: typed Odin literals -> tables/*.bin +// odin run tablegen/cpp-compiler # Stage C: typed Odin literals -> C++ literals +// + + +struct Asm_arm64 { + enum Mnemonic : u16 { + M_INVALID, M_ADD, M_ADDS, M_SUB, M_SUBS, M_MOVZ, M_MOVN, M_MOVK, M_ADR, M_ADRP, M_AND, M_ANDS, M_ORR, M_EOR, M_BIC, M_BICS, + M_ORN, M_EON, M_LSL, M_LSR, M_ASR, M_ROR, M_UDIV, M_SDIV, M_MADD, M_MSUB, M_SMADDL, M_SMSUBL, M_UMADDL, M_UMSUBL, M_SMULH, M_UMULH, + M_CLZ, M_CLS, M_RBIT, M_REV, M_REV16, M_REV32, M_CSEL, M_CSINC, M_CSINV, M_CSNEG, M_CCMP, M_CCMN, M_CSET, M_CSETM, M_CINC, M_CINV, + M_CNEG, M_EXTR, M_B, M_BL, M_BR, M_BLR, M_RET, M_B_EQ, M_B_NE, M_B_CS, M_B_CC, M_B_MI, M_B_PL, M_B_VS, M_B_VC, M_B_HI, + M_B_LS, M_B_GE, M_B_LT, M_B_GT, M_B_LE, M_B_AL, M_B_NV, M_CBZ, M_CBNZ, M_TBZ, M_TBNZ, M_LDR, M_STR, M_LDRB, M_STRB, M_LDRSB, + M_LDRH, M_STRH, M_LDRSH, M_LDRSW, M_LDP, M_STP, M_LDPSW, M_LDAR, M_STLR, M_LDARB, M_STLRB, M_LDARH, M_STLRH, M_LDXR, M_STXR, M_LDAXR, + M_STLXR, M_NOP, M_YIELD, M_WFE, M_WFI, M_SEV, M_SEVL, M_HINT, M_MRS, M_MSR, M_ISB, M_DSB, M_DMB, M_SVC, M_HVC, M_SMC, + M_BRK, M_HLT, M_ERET, M_FMOV, M_FABS, M_FNEG, M_FSQRT, M_FADD, M_FSUB, M_FMUL, M_FDIV, M_FNMUL, M_FMADD, M_FMSUB, M_FNMADD, M_FNMSUB, + M_FCMP, M_FCMPE, M_FCSEL, M_FMAX, M_FMIN, M_FMAXNM, M_FMINNM, M_FCVT, M_SCVTF, M_UCVTF, M_FCVTZS, M_FCVTZU, M_FCVTAS, M_FCVTAU, M_FCVTNS, M_FCVTNU, + M_FCVTPS, M_FCVTPU, M_FCVTMS, M_FCVTMU, M_FRINTA, M_FRINTI, M_FRINTM, M_FRINTN, M_FRINTP, M_FRINTX, M_FRINTZ, M_TST, M_LDUR, M_STUR, M_LDURB, M_STURB, + M_LDURSB, M_LDURH, M_STURH, M_LDURSH, M_LDURSW, M_LDNP, M_STNP, M_LDXP, M_STXP, M_LDAXP, M_STLXP, M_LDXRB, M_STXRB, M_LDAXRB, M_STLXRB, M_LDXRH, + M_STXRH, M_LDAXRH, M_STLXRH, M_LDAPR, M_LDAPRB, M_LDAPRH, M_LDADD, M_LDADDA, M_LDADDL, M_LDADDAL, M_LDCLR, M_LDCLRA, M_LDCLRL, M_LDCLRAL, M_LDEOR, M_LDEORA, + M_LDEORL, M_LDEORAL, M_LDSET, M_LDSETA, M_LDSETL, M_LDSETAL, M_LDSMAX, M_LDSMAXA, M_LDSMAXL, M_LDSMAXAL, M_LDSMIN, M_LDSMINA, M_LDSMINL, M_LDSMINAL, M_LDUMAX, M_LDUMAXA, + M_LDUMAXL, M_LDUMAXAL, M_LDUMIN, M_LDUMINA, M_LDUMINL, M_LDUMINAL, M_SWP, M_SWPA, M_SWPL, M_SWPAL, M_CAS, M_CASA, M_CASL, M_CASAL, M_CASB, M_CASAB, + M_CASLB, M_CASALB, M_CASH, M_CASAH, M_CASLH, M_CASALH, M_CASP, M_CASPA, M_CASPL, M_CASPAL, M_PACIA, M_PACIB, M_PACDA, M_PACDB, M_PACIZA, M_PACIZB, + M_PACDZA, M_PACDZB, M_AUTIA, M_AUTIB, M_AUTDA, M_AUTDB, M_AUTIZA, M_AUTIZB, M_AUTDZA, M_AUTDZB, M_PACIASP, M_PACIBSP, M_AUTIASP, M_AUTIBSP, M_PACIA1716, M_PACIB1716, + M_AUTIA1716, M_AUTIB1716, M_PACGA, M_XPACI, M_XPACD, M_XPACLRI, M_RETAA, M_RETAB, M_BRAA, M_BRAB, M_BRAAZ, M_BRABZ, M_BLRAA, M_BLRAB, M_BLRAAZ, M_BLRABZ, + M_ERETAA, M_ERETAB, M_BTI, M_IRG, M_ADDG, M_SUBG, M_GMI, M_SUBP, M_SUBPS, M_LDG, M_STG, M_ST2G, M_STZG, M_STZ2G, M_STGP, M_LDGM, + M_STGM, M_STZGM, M_CRC32B, M_CRC32H, M_CRC32W, M_CRC32X, M_CRC32CB, M_CRC32CH, M_CRC32CW, M_CRC32CX, M_AESE, M_AESD, M_AESMC, M_AESIMC, M_SHA1H, M_SHA1C, + M_SHA1P, M_SHA1M, M_SHA1SU0, M_SHA1SU1, M_SHA256H, M_SHA256H2, M_SHA256SU0, M_SHA256SU1, M_SHA512H, M_SHA512H2, M_SHA512SU0, M_SHA512SU1, M_EOR3, M_BCAX, M_RAX1, M_XAR, + M_SM3PARTW1, M_SM3PARTW2, M_SM3SS1, M_SM3TT1A, M_SM3TT1B, M_SM3TT2A, M_SM3TT2B, M_SM4E, M_SM4EKEY, M_PMULL, M_PMULL2, M_BFCVT, M_BFDOT, M_BFMMLA, M_BFMLALB, M_BFMLALT, + M_BFCVTN, M_BFCVTN2, M_MUL, M_MLA, M_MLS, M_NEG, M_ABS, M_SHADD, M_UHADD, M_SHSUB, M_UHSUB, M_SRHADD, M_URHADD, M_SQADD, M_UQADD, M_SQSUB, + M_UQSUB, M_SMAX, M_UMAX, M_SMIN, M_UMIN, M_SABD, M_UABD, M_SABA, M_UABA, M_ADDP, M_ADDV, M_SADDLP, M_UADDLP, M_SADALP, M_UADALP, M_SADDLV, + M_UADDLV, M_SMAXV, M_UMAXV, M_SMINV, M_UMINV, M_SMAXP, M_UMAXP, M_SMINP, M_UMINP, M_SADDL, M_SADDL2, M_UADDL, M_UADDL2, M_SSUBL, M_SSUBL2, M_USUBL, + M_USUBL2, M_SADDW, M_SADDW2, M_UADDW, M_UADDW2, M_SSUBW, M_SSUBW2, M_USUBW, M_USUBW2, M_RADDHN, M_RADDHN2, M_RSUBHN, M_RSUBHN2, M_ADDHN, M_ADDHN2, M_SUBHN, + M_SUBHN2, M_XTN, M_XTN2, M_SQXTN, M_SQXTN2, M_UQXTN, M_UQXTN2, M_SQXTUN, M_SQXTUN2, M_SMULL, M_SMULL2, M_UMULL, M_UMULL2, M_SMLAL, M_SMLAL2, M_UMLAL, + M_UMLAL2, M_SMLSL, M_SMLSL2, M_UMLSL, M_UMLSL2, M_SQDMULL, M_SQDMULL2, M_SQDMLAL, M_SQDMLAL2, M_SQDMLSL, M_SQDMLSL2, M_SQDMULH, M_SQRDMULH, M_SDOT, M_UDOT, M_USDOT, + M_FMLA, M_FMLS, M_FMULX, M_FMAXP, M_FMINP, M_FMAXNMP, M_FMINNMP, M_FMAXV, M_FMINV, M_FMAXNMV, M_FMINNMV, M_FRECPE, M_FRSQRTE, M_FRECPS, M_FRSQRTS, M_FRECPX, + M_FADDP, M_FCVTL, M_FCVTL2, M_FCVTN, M_FCVTN2, M_FCVTXN, M_FCVTXN2, M_FCMEQ, M_FCMGE, M_FCMGT, M_FCMLE, M_FCMLT, M_FACGE, M_FACGT, M_CMEQ, M_CMGE, + M_CMGT, M_CMHI, M_CMHS, M_CMLE, M_CMLT, M_CMTST, M_MVN, M_BIT, M_BIF, M_BSL, M_SHL, M_SQSHL, M_SQSHLU, M_SRSHL, M_URSHL, M_SSHR, + M_USHR, M_SSRA, M_USRA, M_SRSHR, M_URSHR, M_SRSRA, M_URSRA, M_SSHL, M_USHL, M_SLI, M_SRI, M_SSHLL, M_SSHLL2, M_USHLL, M_USHLL2, M_SXTL, + M_SXTL2, M_UXTL, M_UXTL2, M_SHRN, M_SHRN2, M_RSHRN, M_RSHRN2, M_SQSHRN, M_SQSHRN2, M_UQSHRN, M_UQSHRN2, M_SQRSHRN, M_SQRSHRN2, M_UQRSHRN, M_UQRSHRN2, M_SQSHRUN, + M_SQSHRUN2, M_SQRSHRUN, M_SQRSHRUN2, M_DUP, M_INS, M_MOV, M_EXT, M_TBL, M_TBX, M_ZIP1, M_ZIP2, M_UZP1, M_UZP2, M_TRN1, M_TRN2, M_NOT, + M_REV64, M_CNT, M_URECPE, M_URSQRTE, M_MOVI, M_MVNI, M_LD1, M_LD2, M_LD3, M_LD4, M_ST1, M_ST2, M_ST3, M_ST4, M_LD1R, M_LD2R, + M_LD3R, M_LD4R, M_SUBR, M_ASRR, M_LSLR, M_LSRR, M_FTSMUL, M_FSUBR, M_FDIVR, M_FNMLA, M_FNMLS, M_NAND, M_NOR, M_SEL, M_ORRS, M_EORS, + M_NANDS, M_NORS, M_ORNS, M_MOVS, M_PTRUE, M_PTRUES, M_PFALSE, M_PFIRST, M_PNEXT, M_BRKA, M_BRKB, M_BRKAS, M_BRKBS, M_BRKPA, M_BRKPB, M_BRKN, + M_RDFFR, M_WRFFR, M_SETFFR, M_CMPEQ, M_CMPNE, M_CMPGE, M_CMPGT, M_CMPLE, M_CMPLT, M_CMPHI, M_CMPHS, M_CMPLO, M_CMPLS, M_FCMNE, M_FCMUO, M_INSR, + M_CPY, M_COMPACT, M_LD1B, M_LD1H, M_LD1W, M_LD1D, M_LD1SB, M_LD1SH, M_LD1SW, M_ST1B, M_ST1H, M_ST1W, M_ST1D, M_LDFF1B, M_LDFF1H, M_LDFF1W, + M_LDFF1D, M_WHILEGE, M_WHILEGT, M_WHILELE, M_WHILELT, M_WHILEHI, M_WHILEHS, M_WHILELO, M_WHILELS, M_SQRDMLAH, M_SQRDMLSH, M_ADCLB, M_ADCLT, M_SBCLB, M_SBCLT, M_MATCH, + M_NMATCH, M_HISTCNT, M_HISTSEG, M_SMSTART, M_SMSTOP, M_RDSVL, M_ADDHA, M_ADDVA, M_ZERO, M_FMOPA, M_FMOPS, M_BFMOPA, M_BFMOPS, M_SMOPA, M_SMOPS, M_UMOPA, + M_UMOPS, M_USMOPA, M_SUMOPA, M_CNTB, M_CNTH, M_CNTW, M_CNTD, M_INCB, M_INCH, M_INCW, M_INCD, M_DECB, M_DECH, M_DECW, M_DECD, M_SQINCB, + M_SQINCH, M_SQINCW, M_SQINCD, M_SQDECB, M_SQDECH, M_SQDECW, M_SQDECD, M_UQINCB, M_UQINCH, M_UQINCW, M_UQINCD, M_UQDECB, M_UQDECH, M_UQDECW, M_UQDECD, M_CNTP, + M_INCP, M_DECP, M_SQINCP, M_SQDECP, M_UQINCP, M_UQDECP, M_LD1Q, M_ST1Q, M_MOVA, M_FCMLA, M_FCADD, M_PRFB, M_PRFH, M_PRFW, M_PRFD, M_LDNT1B, + M_LDNT1H, M_LDNT1W, M_LDNT1D, M_STNT1B, M_STNT1H, M_STNT1W, M_STNT1D, M_SPLICE, M_INDEX, M_BSL1N, M_BSL2N, M_NBSL, M_PMUL, M_PMULLB, M_PMULLT, M_BFCVTNT, + M_LDRAA, M_LDRAB, M_TSTART, M_TCOMMIT, M_TCANCEL, M_TTEST, M_WFET, M_WFIT, M_BC_EQ, M_BC_NE, M_BC_CS, M_BC_CC, M_BC_MI, M_BC_PL, M_BC_VS, M_BC_VC, + M_BC_HI, M_BC_LS, M_BC_GE, M_BC_LT, M_BC_GT, M_BC_LE, M_BC_AL, M_BC_NV, M_UXTB, M_UXTH, M_UXTW, M_SXTB, M_SXTH, M_SXTW, M_ADC, M_ADCS, + M_SBC, M_SBCS, M_NGC, M_NGCS, M_LDAPUR, M_STLUR, M_LDAPURB, M_STLURB, M_LDAPURH, M_STLURH, M_LDAPURSB, M_LDAPURSH, M_LDAPURSW, M_BFADD, M_BFSUB, M_BFMUL, + M_BFMLA, M_BFMLS, M_SB, M_CSDB, M_DGH, M_PSB_CSYNC, M_TSB_CSYNC, M_BTI_J, M_BTI_C, M_BTI_JC, M_BFCLAMP, M_BFMAXNM, M_BFMINNM, M_LUTI2, M_LUTI4, M_ZIP, + M_UZP, M_TLBI_RPALOS, M_TLBI_RPAOS, M_AT_S1E1A, M_DC_CIPAPA, M_DC_CIGDPAPA, M_TLBI_PAALL, M_TLBI_PAALLOS, M_AMX_LDX, M_AMX_LDY, M_AMX_STX, M_AMX_STY, M_AMX_LDZ, M_AMX_STZ, M_AMX_LDZI, M_AMX_STZI, + M_AMX_EXTRX, M_AMX_EXTRY, M_AMX_FMA64, M_AMX_FMS64, M_AMX_FMA32, M_AMX_FMS32, M_AMX_MAC16, M_AMX_FMA16, M_AMX_FMS16, M_AMX_SET, M_AMX_CLR, M_AMX_VECINT, M_AMX_VECFP, M_AMX_MATINT, M_AMX_MATFP, M_AMX_GENLUT, + M_CPYP, M_CPYM, M_CPYE, M_CPYFP, M_CPYFM, M_CPYFE, M_SETP, M_SETM, M_SETE, M_DC_IVAC, M_DC_ISW, M_DC_CSW, M_DC_CISW, M_DC_ZVA, M_DC_CVAC, M_DC_CVAU, + M_DC_CIVAC, M_IC_IALLUIS, M_IC_IALLU, M_IC_IVAU, M_AT_S1E1R, M_AT_S1E1W, M_AT_S1E0R, M_AT_S1E0W, M_AT_S1E2R, M_AT_S1E2W, M_AT_S1E3R, M_AT_S1E3W, M_AT_S12E1R, M_AT_S12E1W, M_AT_S12E0R, M_AT_S12E0W, + M_TLBI_VMALLE1, M_TLBI_VMALLE1IS, M_TLBI_VAE1, M_TLBI_VAE1IS, M_TLBI_ASIDE1, M_TLBI_ASIDE1IS, M_TLBI_VAAE1, M_TLBI_VAAE1IS, M_TLBI_VALE1, M_TLBI_VALE1IS, M_TLBI_VAALE1, M_TLBI_VAALE1IS, M_TLBI_ALLE1, M_TLBI_ALLE1IS, M_TLBI_ALLE2, M_TLBI_ALLE2IS, + M_TLBI_ALLE3, M_TLBI_ALLE3IS, M_PRFM, M_PRFUM, M_NEGS, M_CMP, M_CMN, + + MNEMONIC_COUNT + }; + static String const mnemonic_strings[MNEMONIC_COUNT]; + + enum Prefix : u8 { + PREFIX_INVALID, + PREFIX_COUNT + }; + enum PrefixKind : u8 { PrefixKind_None }; + + + static const u16 REG_CLASS_NONE = 0x0000; + static const u16 REG_CLASS_X = 0x0100; // X0..X30, XZR + static const u16 REG_CLASS_W = 0x0200; // W0..W30, WZR + static const u16 REG_CLASS_XSP = 0x0300; // SP (opt-in, distinct from X) + static const u16 REG_CLASS_WSP = 0x0400; // WSP (opt-in, distinct from W) + static const u16 REG_CLASS_V = 0x0500; // V0..V31 (full 128-bit SIMD&FP) + static const u16 REG_CLASS_B = 0x0600; // B0..B31 (byte view) + static const u16 REG_CLASS_H = 0x0700; // H0..H31 (half view) + static const u16 REG_CLASS_S = 0x0800; // S0..S31 (single view) + static const u16 REG_CLASS_D = 0x0900; // D0..D31 (double view) + static const u16 REG_CLASS_Q = 0x0A00; // Q0..Q31 (quad view) + static const u16 REG_CLASS_Z = 0x0B00; // Z0..Z31 SVE scalable vector + static const u16 REG_CLASS_P = 0x0C00; // P0..P15 SVE predicate + static const u16 REG_CLASS_PN = 0x0D00; // PN8..PN15 SME2 predicate-as-counter + static const u16 REG_CLASS_ZT = 0x0E00; // ZT0 SME2 lookup table + static const u16 REG_CLASS_ZA = 0x0F00; // ZA0..ZA15 SME accumulator tiles + static const u16 REG_CLASS_SYS = 0x1000; // MRS/MSR system registers + + enum Register : u16 { + REG_INVALID, REG_X0, REG_X1, REG_X2, REG_X3, REG_X4, REG_X5, REG_X6, REG_X7, REG_X8, REG_X9, REG_X10, REG_X11, REG_X12, REG_X13, REG_X14, + REG_X15, REG_X16, REG_X17, REG_X18, REG_X19, REG_X20, REG_X21, REG_X22, REG_X23, REG_X24, REG_X25, REG_X26, REG_X27, REG_X28, REG_X29, REG_X30, + REG_XZR, REG_SP, REG_W0, REG_W1, REG_W2, REG_W3, REG_W4, REG_W5, REG_W6, REG_W7, REG_W8, REG_W9, REG_W10, REG_W11, REG_W12, REG_W13, + REG_W14, REG_W15, REG_W16, REG_W17, REG_W18, REG_W19, REG_W20, REG_W21, REG_W22, REG_W23, REG_W24, REG_W25, REG_W26, REG_W27, REG_W28, REG_W29, + REG_W30, REG_WZR, REG_WSP, REG_V0, REG_V1, REG_V2, REG_V3, REG_V4, REG_V5, REG_V6, REG_V7, REG_V8, REG_V9, REG_V10, REG_V11, REG_V12, + REG_V13, REG_V14, REG_V15, REG_V16, REG_V17, REG_V18, REG_V19, REG_V20, REG_V21, REG_V22, REG_V23, REG_V24, REG_V25, REG_V26, REG_V27, REG_V28, + REG_V29, REG_V30, REG_V31, REG_PN8, REG_PN9, REG_PN10, REG_PN11, REG_PN12, REG_PN13, REG_PN14, REG_PN15, REG_ZT0, REG_AFSR0_EL1, REG_AFSR1_EL1, REG_CURRENT_EL, REG_DAIF, + REG_ELR_EL1, REG_ELR_EL2, REG_ELR_EL3, REG_ESR_EL1, REG_ESR_EL2, REG_FAR_EL1, REG_FAR_EL2, REG_ISR_EL1, REG_NZCV, REG_SPSR_EL1, REG_SPSR_EL2, REG_SPSR_EL3, REG_SP_EL0, REG_SP_EL1, REG_VBAR_EL1, REG_VBAR_EL2, + REG_VBAR_EL3, REG_FPCR, REG_FPSR, REG_MVFR0_EL1, REG_MVFR1_EL1, REG_MVFR2_EL1, REG_CONTEXTIDR_EL1, REG_TPIDR2_EL0, REG_TPIDRRO_EL0, REG_TPIDR_EL0, REG_TPIDR_EL1, REG_TPIDR_EL2, REG_TPIDR_EL3, REG_CCSIDR_EL1, REG_CLIDR_EL1, REG_CSSELR_EL1, + REG_CTR_EL0, REG_DCZID_EL0, REG_GMID_EL1, REG_ID_AA64AFR0_EL1, REG_ID_AA64AFR1_EL1, REG_ID_AA64DFR0_EL1, REG_ID_AA64DFR1_EL1, REG_ID_AA64DFR2_EL1, REG_ID_AA64ISAR0_EL1, REG_ID_AA64ISAR1_EL1, REG_ID_AA64ISAR2_EL1, REG_ID_AA64ISAR3_EL1, REG_ID_AA64MMFR0_EL1, REG_ID_AA64MMFR1_EL1, REG_ID_AA64MMFR2_EL1, REG_ID_AA64PFR0_EL1, + REG_ID_AA64PFR1_EL1, REG_ID_AA64SMFR0_EL1, REG_ID_AA64ZFR0_EL1, REG_ID_AFR0_EL1, REG_ID_DFR0_EL1, REG_ID_ISAR0_EL1, REG_ID_ISAR1_EL1, REG_ID_ISAR2_EL1, REG_ID_ISAR3_EL1, REG_ID_ISAR4_EL1, REG_ID_ISAR5_EL1, REG_ID_ISAR6_EL1, REG_ID_MMFR0_EL1, REG_ID_MMFR1_EL1, REG_ID_MMFR2_EL1, REG_ID_MMFR3_EL1, + REG_ID_MMFR4_EL1, REG_ID_MMFR5_EL1, REG_ID_PFR0_EL1, REG_ID_PFR1_EL1, REG_ID_PFR2_EL1, REG_MIDR_EL1, REG_MPIDR_EL1, REG_APDAKEYHI_EL1, REG_APDAKEYLO_EL1, REG_APDBKEYHI_EL1, REG_APDBKEYLO_EL1, REG_APGAKEYHI_EL1, REG_APGAKEYLO_EL1, REG_APIAKEYHI_EL1, REG_APIAKEYLO_EL1, REG_APIBKEYHI_EL1, + REG_APIBKEYLO_EL1, REG_GCR_EL1, REG_RGSR_EL1, REG_TFSRE0_EL1, REG_TFSR_EL1, REG_SMCR_EL1, REG_SMCR_EL2, REG_SVCR, REG_ZCR_EL1, REG_ZCR_EL2, REG_ZCR_EL3, REG_ACTLR_EL1, REG_AMAIR_EL1, REG_CPACR_EL1, REG_LORC_EL1, REG_LOREA_EL1, + REG_LORID_EL1, REG_LORN_EL1, REG_LORSA_EL1, REG_MAIR_EL1, REG_PAR_EL1, REG_SCTLR_EL1, REG_SCTLR_EL2, REG_SCTLR_EL3, REG_TCR_EL1, REG_TTBR0_EL1, REG_TTBR1_EL1, REG_CNTFRQ_EL0, REG_CNTHCTL_EL2, REG_CNTHP_CTL_EL2, REG_CNTHP_CVAL_EL2, REG_CNTHP_TVAL_EL2, + REG_CNTHV_CTL_EL2, REG_CNTHV_CVAL_EL2, REG_CNTHV_TVAL_EL2, REG_CNTKCTL_EL1, REG_CNTPCT_EL0, REG_CNTPS_CTL_EL1, REG_CNTPS_CVAL_EL1, REG_CNTPS_TVAL_EL1, REG_CNTP_CTL_EL0, REG_CNTP_CVAL_EL0, REG_CNTP_TVAL_EL0, REG_CNTVCT_EL0, REG_CNTVOFF_EL2, REG_CNTV_CTL_EL0, REG_CNTV_CVAL_EL0, REG_CNTV_TVAL_EL0, + REG_PMBIDR_EL1, REG_PMBLIMITR_EL1, REG_PMBPTR_EL1, REG_PMBSR_EL1, REG_PMSCR_EL1, REG_PMSELR_EL0, REG_PMSEVFR_EL1, REG_PMSFCR_EL1, REG_PMSICR_EL1, REG_PMSIDR_EL1, REG_PMSIRR_EL1, REG_PMSLATFR_EL1, REG_PMSWINC_EL0, REG_PMCCFILTR_EL0, REG_PMCCNTR_EL0, REG_PMCEID0_EL0, + REG_PMCEID1_EL0, REG_PMCNTENCLR_EL0, REG_PMCNTENSET_EL0, REG_PMCR_EL0, REG_PMINTENCLR_EL1, REG_PMINTENSET_EL1, REG_PMOVSCLR_EL0, REG_PMUSERENR_EL0, REG_TRBBASER_EL1, REG_TRBIDR_EL1, REG_TRBLIMITR_EL1, REG_TRBMAR_EL1, REG_TRBPTR_EL1, REG_TRBSR_EL1, REG_TRBTRG_EL1, REG_DBGAUTHSTATUS_EL1, + REG_DBGCLAIMCLR_EL1, REG_DBGCLAIMSET_EL1, REG_DBGDTRRX_EL0, REG_DBGDTRTX_EL0, REG_DBGDTR_EL0, REG_DBGPRCR_EL1, REG_DLR_EL0, REG_DSPSR_EL0, REG_MDCCINT_EL1, REG_MDRAR_EL1, REG_MDSCR_EL1, REG_OSLAR_EL1, REG_OSLSR_EL1, REG_PRSELR_EL1, REG_ICC_ASGI1R_EL1, REG_ICC_BPR0_EL1, + REG_ICC_BPR1_EL1, REG_ICC_CTLR_EL1, REG_ICC_CTLR_EL3, REG_ICC_DIR_EL1, REG_ICC_EOIR0_EL1, REG_ICC_EOIR1_EL1, REG_ICC_HPPIR0_EL1, REG_ICC_HPPIR1_EL1, REG_ICC_IAR0_EL1, REG_ICC_IAR1_EL1, REG_ICC_IGRPEN0_EL1, REG_ICC_IGRPEN1_EL1, REG_ICC_IGRPEN1_EL3, REG_ICC_PMR_EL1, REG_ICC_RPR_EL1, REG_ICC_SGI0R_EL1, + REG_ICC_SGI1R_EL1, REG_ICC_SRE_EL1, REG_ICC_SRE_EL2, REG_ICC_SRE_EL3, REG_ICH_EISR_EL2, REG_ICH_ELRSR_EL2, REG_ICH_HCR_EL2, REG_ICH_MISR_EL2, REG_ICH_VMCR_EL2, REG_ICH_VTR_EL2, REG_DISR_EL1, REG_ERRIDR_EL1, REG_ERRSELR_EL1, REG_ERXADDR_EL1, REG_ERXCTLR_EL1, REG_ERXFR_EL1, + REG_ERXMISC0_EL1, REG_ERXMISC1_EL1, REG_ERXMISC2_EL1, REG_ERXMISC3_EL1, REG_ERXSTATUS_EL1, REG_VDISR_EL2, REG_VSESR_EL2, REG_GPCCR_EL3, REG_GPTBR_EL3, REG_HCR_EL2, REG_HSTR_EL2, REG_MDCR_EL2, REG_MFAR_EL3, REG_VTCR_EL2, REG_VTTBR_EL2, REG_DACR32_EL2, + REG_FPEXC32_EL2, REG_RNDR, REG_RNDRRS, + REG_COUNT + }; + + + enum OperandType : u8 { + OP_NONE, + OP_W_REG, + OP_X_REG, + OP_WSP_REG, + OP_XSP_REG, + OP_W_SHIFTED, + OP_X_SHIFTED, + OP_W_EXTENDED, + OP_X_EXTENDED, + OP_B_REG, + OP_H_REG, + OP_S_REG, + OP_D_REG, + OP_Q_REG, + OP_V_REG, + OP_V_8B, + OP_V_16B, + OP_V_4H, + OP_V_8H, + OP_V_2S, + OP_V_4S, + OP_V_1D, + OP_V_2D, + OP_V_4H_FP16, + OP_V_8H_FP16, + OP_V_ELEM_B, + OP_V_ELEM_H, + OP_V_ELEM_S, + OP_V_ELEM_D, + OP_Z_REG_B, + OP_Z_REG_H, + OP_Z_REG_S, + OP_Z_REG_D, + OP_P_REG, + OP_P_REG_MERGE, + OP_P_REG_ZERO, + OP_P_REG_GOV, + OP_ZA_TILE_B, + OP_ZA_TILE_H, + OP_ZA_TILE_S, + OP_ZA_TILE_D, + OP_ZA_TILE_Q, + OP_SME_PATTERN, + OP_SVE_PATTERN, + OP_SME_SLICE_B, + OP_SME_SLICE_H, + OP_SME_SLICE_W, + OP_SME_SLICE_D, + OP_SME_SLICE_Q, + OP_FCMLA_ROT, + OP_FCADD_ROT, + OP_SVE_PRFOP, + OP_LDRAA_IMM10, + OP_LSL_SHIFT_W, + OP_LSL_SHIFT_X, + OP_ROR_SHIFT, + OP_IMM_12, + OP_IMM_16, + OP_IMM_8, + OP_IMM_6, + OP_IMM_5, + OP_IMM_3, + OP_IMM_4, + OP_IMM_2, + OP_NZCV_IMM, + OP_SYS_REG, + OP_PSTATE_FIELD, + OP_HW_SHIFT, + OP_BITMASK_IMM, + OP_LSE_SIZE, + OP_IMM_MUL4, + OP_REL_26, + OP_REL_19, + OP_REL_14, + OP_REL_PG21, + OP_MEM_OFFSET, + OP_MEM_PRE, + OP_MEM_POST, + OP_MEM_REG, + OP_MEM_EXT, + OP_MEM_SVE_SS, + OP_MEM_SVE_SI, + OP_MEM_SVE_VEC, + OP_MEM_SVE_VB, + OP_COND, + OP_COND_NOT_AL, + OP_Z_REG_ANY, + OP_Z_PAIR_B, + OP_Z_PAIR_H, + OP_Z_PAIR_S, + OP_Z_PAIR_D, + OP_Z_QUAD_B, + OP_Z_QUAD_H, + OP_Z_QUAD_S, + OP_Z_QUAD_D, + OP_PN_REG, + OP_PN_REG_ZERO, + OP_ZT_REG, + OP_ZA_ARRAY, + OP_Z_LIST1_B, + OP_Z_LIST1_H, + OP_Z_LIST1_S, + OP_Z_LIST1_D, + OP_Z_LIST2_B, + OP_P_REG_B, + OP_P_REG_H, + OP_P_REG_S, + OP_P_REG_D, + OP_VEC_SHIFT, + OP_VEC_INDEX, + OP_V_1Q, + }; + + + enum OperandEncoding : u8 { + ENC_NONE, + ENC_IMPL, + ENC_RD, + ENC_RT, + ENC_RN, + ENC_RT2, + ENC_RA, + ENC_RM, + ENC_RN_RM, + ENC_IMM12, + ENC_IMM16, + ENC_IMM6, + ENC_IMM9, + ENC_IMM_HW, + ENC_ENC_SHIFT_IMMR, + ENC_ENC_IMM6_LO, + ENC_IMM_SH12, + ENC_SHIFT_TYPE, + ENC_EXT_OPT, + ENC_EXT_IMM3, + ENC_COND_HI, + ENC_COND_HI_INV, + ENC_COND_LO, + ENC_NZCV_FIELD, + ENC_SYS_FIELD, + ENC_HINT_FIELD, + ENC_BARRIER_FIELD, + ENC_OFFSET_BASE_U12, + ENC_OFFSET_BASE_S9, + ENC_OFFSET_BASE_PRE, + ENC_OFFSET_BASE_POST, + ENC_OFFSET_BASE_A, + ENC_OFFSET_PAIR_4, + ENC_OFFSET_PAIR_8, + ENC_OFFSET_PAIR_16, + ENC_OFFSET_REG, + ENC_OFFSET_EXT, + ENC_BRANCH_26, + ENC_BRANCH_19, + ENC_BRANCH_14, + ENC_BRANCH_PG21, + ENC_TBZ_BIT, + ENC_VD, + ENC_VN, + ENC_VM, + ENC_VA, + ENC_NEON_IMM8_FMOV, + ENC_NEON_INDEX_H, + ENC_NEON_INDEX_S, + ENC_NEON_INDEX_D, + ENC_NEON_SHL_IMM, + ENC_NEON_SHR_IMM, + ENC_VN_VM_DUP, + ENC_NEON_IDX5, + ENC_NEON_IDX4, + ENC_NEON_EXT_IDX, + ENC_IMM5_HI, + ENC_MSR_PSTATE, + ENC_FMOV_SCALAR_IMM, + ENC_PG4_PM_DUP, + ENC_PN_PM_DUP, + ENC_PN_PG_PM_DUP, + ENC_ZD_ZM_DUP, + ENC_SVE_EXT_IMM, + ENC_ZA_TILE_LOW, + ENC_NEON_LANE_B, + ENC_NEON_LANE_H, + ENC_NEON_LANE_S, + ENC_NEON_LANE_D, + ENC_SVE_XAR_SHIFT, + ENC_ATOMIC_RS, + ENC_ATOMIC_RT, + ENC_ATOMIC_RN, + ENC_BITMASK_FIELD, + ENC_PD, + ENC_PN, + ENC_PM, + ENC_PG, + ENC_PG4, + ENC_PM3, + ENC_SVE_IMM8, + ENC_SVE_IMM5, + ENC_SVE_SHIFT_TSZ_IMM, + ENC_SVE_PATTERN, + ENC_IMM_MUL4, + ENC_SVE_OFFSET_BASE_SS, + ENC_SVE_OFFSET_BASE_SI, + ENC_SVE_OFFSET_BASE_VEC, + ENC_SVE_OFFSET_VEC_BASE, + ENC_SVE_FMLA_IDX_H, + ENC_SVE_FMLA_IDX_S, + ENC_SVE_FMLA_IDX_D, + ENC_ZA_TILE_NUM_B, + ENC_ZA_TILE_NUM_H, + ENC_ZA_TILE_NUM_S, + ENC_ZA_TILE_NUM_D, + ENC_SME_PATTERN_FIELD, + ENC_SME_SLICE_B, + ENC_SME_SLICE_H, + ENC_SME_SLICE_W, + ENC_SME_SLICE_D, + ENC_SME_SLICE_Q, + ENC_ENC_FCMLA_ROT, + ENC_NEON_IDX2, + ENC_VD_LIST1, + ENC_VD_LIST2, + ENC_VD_LIST3, + ENC_VD_LIST4, + ENC_PNG, + ENC_ENC_ZT0, + ENC_LUTI_IDX, + ENC_SME_ZA_ARRAY, + ENC_SME_ZA_MASK, + ENC_SVE_OFFSET_BASE_SS1, + ENC_SVE_OFFSET_BASE_SS2, + ENC_SVE_OFFSET_BASE_SS3, + ENC_SVE_OFFSET_BASE_SS4, + ENC_SVE_OFFSET_BASE_VEC_S, + ENC_SVE_OFFSET_BASE_VEC_D, + ENC_SVE_OFFSET_BASE_VECST_S, + ENC_SVE_OFFSET_BASE_VECST_D, + ENC_SVE_IMM5A, + ENC_VD_TSZ, + ENC_VN_TSZ, + ENC_VN_LIST1, + ENC_VN_LIST2, + ENC_VN_LIST3, + ENC_VN_LIST4, + ENC_ENC_FCADD_ROT, + ENC_ENC_SVE_PRFOP, + ENC_ENC_LDRAA_IMM10, + ENC_ENC_LSL_IMM_W, + ENC_ENC_LSL_IMM_X, + ENC_ENC_DUAL_RN_RM, + ENC_ENC_ROR_SHIFT, + ENC_ENC_Z_PAIR_VD, + ENC_ENC_Z_PAIR_VN, + ENC_ENC_Z_PAIR_VM, + ENC_ENC_Z_QUAD_VD, + ENC_ENC_Z_QUAD_VN, + ENC_ENC_Z_QUAD_VM, + }; + + + enum Feature : u8 { + F_BASE, + F_FP, + F_NEON, + F_CRYPTO, + F_CRC32, + F_LSE, + F_LSE2, + F_FP16, + F_BF16, + F_DOT, + F_PAC, + F_BTI, + F_MTE, + F_SVE, + F_SVE2, + F_SME, + F_AMX, + }; + + typedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability + + #pragma pack(push, 1) + struct Encoding { + Mnemonic mnemonic; + OperandType ops[5]; + OperandEncoding enc[5]; + u32 bits; + u32 mask; + Feature feature; + EncodingFlags flags; + + bool has_implicit () const { return false; } + u8 explicit_count() const { return cast(u8)((flags>>5u)&((1u<<3)-1)); } + bool is_conditional() const { return ((flags>>1u)&1) != 0; } + u32 required_feature() const { return cast(u32)feature; } + }; + #pragma pack(pop) + GB_STATIC_ASSERT(gb_size_of(Encoding) == 22); + + + // Condition flags (PSTATE.NZCV). Named ClobberFlags to match the shared + // C++ front-end's "flags" concept (x86 EFLAGS / riscv fcsr exceptions). + enum ClobberFlags : u8 { + ClobberFlag_N = 1<<0, // negative result + ClobberFlag_Z = 1<<1, // zero result + ClobberFlag_C = 1<<2, // carry-out / no-borrow (unsigned sense) + ClobberFlag_V = 1<<3, // signed overflow + }; + static u16 const CLOBBER_FLAGS_COND = ClobberFlag_N|ClobberFlag_Z|ClobberFlag_C|ClobberFlag_V; + + char const *clobber_flag_bit_name(u16 bit) { + switch (bit) { + case ClobberFlag_N: return "n"; + case ClobberFlag_Z: return "z"; + case ClobberFlag_C: return "c"; + case ClobberFlag_V: return "v"; + } + return "?"; + } + + // FPSR cumulative FP exception / saturation flags (separate register from NZCV). + enum FPSRFlags : u8 { + FPSRFlag_IOC = 1<<0, // invalid operation + FPSRFlag_DZC = 1<<1, // divide by zero + FPSRFlag_OFC = 1<<2, // overflow + FPSRFlag_UFC = 1<<3, // underflow + FPSRFlag_IXC = 1<<4, // inexact + FPSRFlag_IDC = 1<<5, // input denormal + FPSRFlag_QC = 1<<6, // cumulative saturation (Advanced SIMD) + }; + + char const *fpsr_flag_bit_name(u16 bit) { + switch (bit) { + case FPSRFlag_IOC: return "ioc"; + case FPSRFlag_DZC: return "dzc"; + case FPSRFlag_OFC: return "ofc"; + case FPSRFlag_UFC: return "ufc"; + case FPSRFlag_IXC: return "ixc"; + case FPSRFlag_IDC: return "idc"; + case FPSRFlag_QC: return "qc"; + } + return "?"; + } + + enum ClobberRegs : u8 { + ClobberReg_LR = 1<<0, // x30, implicit link written by BL/BLR, read by RET + ClobberReg_SP = 1<<1, // sp, implicit base on PACIASP/AUTIASP + stack forms + ClobberReg_X16 = 1<<2, // implicit modifier register for PAC*1716 / AUT*1716 + ClobberReg_X17 = 1<<3, // implicit pointer register for PAC*1716 / AUT*1716 + }; + + static u8 const CLOBBER_REGS_NAMED = + ClobberReg_LR|ClobberReg_SP|ClobberReg_X16|ClobberReg_X17; + + enum SideEffectFlags : u16 { + SideEffectFlag_CONTROL = 1<<0, // writes pc: B/BL/BR/BLR/RET, B.cond, CBZ/CBNZ, TBZ/TBNZ + SideEffectFlag_EXCEPTION = 1<<1, // exception-generating call: SVC / HVC / SMC + SideEffectFlag_TRAP = 1<<2, // deliberately faults: BRK, UDF + SideEffectFlag_FENCE = 1<<3, // memory-ordering barrier: DMB/DSB, acquire/release + SideEffectFlag_ISYNC = 1<<4, // instruction-stream / context sync: ISB + SideEffectFlag_ATOMIC = 1<<5, // indivisible RMW: LDXR/STXR pair, LSE + SideEffectFlag_RESERVATION = 1<<6, // sets/tests/clears the local monitor: LDXR/STXR, CLREX + SideEffectFlag_CACHE = 1<<7, // cache maintenance with coherence effects: DC, IC + SideEffectFlag_HINT = 1<<8, // architecturally-inert hint: NOP/YIELD/PRFM/SEV/ESB/CSDB + SideEffectFlag_BTI = 1<<9, // branch-target-identification landing pad (CFI) + SideEffectFlag_PAC = 1<<10, // pointer authentication: reads an implicit key, may fault + SideEffectFlag_WAIT = 1<<11, // suspends execution until event/interrupt: WFI/WFE + SideEffectFlag_PRIVILEGED = 1<<12, // reads/writes system state: MSR/MRS, ERET, TLBI, AT, DAIF + SideEffectFlag_FFR = 1<<13, // reads/writes the SVE first-fault register + SideEffectFlag_NONDETERMINISTIC = 1<<14, // RNDR/RNDRRS, counter/timer reads (CNTVCT), TSTART + }; + + enum OperandSet : u8 { + OperandSet_OP0 = 1<<0, + OperandSet_OP1 = 1<<1, + OperandSet_OP2 = 1<<2, + OperandSet_OP3 = 1<<3, + }; + + u16 clobber_bit_for_reg_name(String const &pin) { + static const struct { String name; u16 bit; } table[] = { + {str_lit("lr"), ClobberReg_LR}, + {str_lit("x30"), ClobberReg_LR}, + {str_lit("w30"), ClobberReg_LR}, + {str_lit("sp"), ClobberReg_SP}, + {str_lit("wsp"), ClobberReg_SP}, + {str_lit("x16"), ClobberReg_X16}, + {str_lit("w16"), ClobberReg_X16}, + {str_lit("x17"), ClobberReg_X17}, + {str_lit("w17"), ClobberReg_X17}, + }; + for (auto const &t : table) { + if (pin == t.name) { + return t.bit; + } + } + return 0; + } + + char const *clobber_reg_bit_name(u16 bit) { + switch (bit) { + case ClobberReg_LR: return "lr"; + case ClobberReg_SP: return "sp"; + case ClobberReg_X16: return "x16"; + case ClobberReg_X17: return "x17"; + } + return ""; + } + + + u16 flag_from_name(String const &name) { + // NZCV condition flags. + static const struct { String name; ClobberFlags flag; } table[] = { + {str_lit("n"), ClobberFlag_N}, + {str_lit("z"), ClobberFlag_Z}, + {str_lit("c"), ClobberFlag_C}, + {str_lit("v"), ClobberFlag_V}, + }; + for (auto const &t : table) { + if (name == t.name) { + return cast(u16)t.flag; + } + } + return 0; + } + + u16 fpsr_flag_from_name(String const &name) { + static const struct { String name; FPSRFlags flag; } table[] = { + {str_lit("ioc"), FPSRFlag_IOC}, // Invalid Operation + {str_lit("dzc"), FPSRFlag_DZC}, // Divide by Zero + {str_lit("ofc"), FPSRFlag_OFC}, // Overflow + {str_lit("ufc"), FPSRFlag_UFC}, // Underflow + {str_lit("ixc"), FPSRFlag_IXC}, // Inexact + {str_lit("idc"), FPSRFlag_IDC}, // Input Denormal + {str_lit("qc"), FPSRFlag_QC}, // Cumulative Saturation + }; + for (auto const &t : table) { + if (name == t.name) { + return cast(u16)t.flag; + } + } + return 0; + } + + + i32 flag_bit_from_name(String const &name, i32 *width_) { + // Real PSTATE.NZCV bit positions (as read/written via MRS/MSR NZCV, bits 31:28). + static const struct { String name; i32 bit; } table[] = { + {str_lit("v"), 28}, // Overflow + {str_lit("c"), 29}, // Carry + {str_lit("z"), 30}, // Zero + {str_lit("n"), 31}, // Negative + }; + for (auto const &t : table) { + if (name == t.name) { + if (width_) { + *width_ = 1; + } + return t.bit; + } + } + return -1; + } + + + struct Clobber { + OperandSet written; // operand slots whose register/SIMD reg is written + OperandSet read; // operand slots whose register / mem-base is read + ClobberRegs implicit_wr; // implicit reg writes (LR on BL/BLR) + ClobberRegs implicit_rd; // implicit reg reads (LR on RET, SP on PAC*SP) + ClobberFlags nzcv_wr; // condition flags written (ADDS/SUBS/ANDS, CMP, FCMP, CCMP...) + ClobberFlags nzcv_undef; // condition flags left UNKNOWN (rare on A64, usually empty) + ClobberFlags nzcv_rd; // condition flags read (B.cond, CSEL, ADC/SBC, CCMP...) + FPSRFlags fpsr_wr; // FP cumulative exception/saturation flags this op may raise + bool reads_fpcr; // consumes the rounding mode / FP control from FPCR + bool writes_mem; + bool reads_mem; + SideEffectFlags side_effects; + + ClobberFlags flags_rd_call() const { + return nzcv_rd; + } + ClobberFlags flags_wr_call() const { + return nzcv_wr; + } + + bool implies_clobber_flags() const { + return ((cast(u16)nzcv_wr | cast(u16)nzcv_undef) != 0) || + (cast(u16)fpsr_wr != 0); + } + bool implies_clobber_memory() const { + return writes_mem || reads_mem || + (cast(u16)side_effects & (SideEffectFlag_FENCE|SideEffectFlag_ATOMIC|SideEffectFlag_CACHE)) != 0; + } + bool implies_side_effects() const { + u16 const VOLATILE_SE = + SideEffectFlag_CONTROL | + SideEffectFlag_EXCEPTION | + SideEffectFlag_TRAP | + SideEffectFlag_FENCE | + SideEffectFlag_ISYNC | + SideEffectFlag_ATOMIC | + SideEffectFlag_RESERVATION | + SideEffectFlag_CACHE | + SideEffectFlag_BTI | + SideEffectFlag_PAC | + SideEffectFlag_WAIT | + SideEffectFlag_PRIVILEGED | + SideEffectFlag_FFR | + SideEffectFlag_NONDETERMINISTIC; + // NOTE: SideEffectFlag_HINT deliberately excluded — inert, may be DCE'd. + return (cast(u16)side_effects & VOLATILE_SE) != 0; + } + u8 is_call_or_mem() const { + return (cast(u16)side_effects & SideEffectFlag_CONTROL) != 0 || + (cast(u16)implicit_wr & (ClobberReg_LR|ClobberReg_SP)) != 0; + } + bool has_control() const { + return (cast(u16)side_effects & SideEffectFlag_CONTROL) != 0; + } + bool has_halt() const { + // WFI/WFE suspend execution (x86 HLT analog); SVC/HVC/SMC gate out. + return (cast(u16)side_effects & (SideEffectFlag_WAIT|SideEffectFlag_EXCEPTION)) != 0; + } + bool is_conditional(struct Encoding const &valid_form) const { + if (valid_form.is_conditional()) { + return true; + } + return has_control() && (cast(u16)nzcv_rd != 0); + } + bool is_nondeterministic() const { + return (cast(u16)side_effects & SideEffectFlag_NONDETERMINISTIC) != 0; + } + bool has_implicit_mem() const { + if (!writes_mem && !reads_mem) { + return false; + } + u16 implicit = cast(u16)implicit_rd | cast(u16)implicit_wr; + bool is_atomic = (cast(u16)side_effects & SideEffectFlag_ATOMIC) != 0; + return (implicit & ClobberReg_SP) != 0 || is_atomic; + } + + bool is_status_snapshot() const { + u16 flags = cast(u16)this->flags_rd_call(); + return gb_count_set_bits(flags & CLOBBER_FLAGS_COND) >= 4; + } + }; + + void clobber_implicit_regs(StringSet *clobber_registers_set, u16 implicit_regs) { + u8 regs = cast(u8)implicit_regs & CLOBBER_REGS_NAMED; + + for (u8 bit = 1; bit != 0; bit <<= 1) { + if ((regs & bit) == 0) { + continue; + } + char const *rname = clobber_reg_bit_name(bit); + string_set_update(clobber_registers_set, make_string_c(rname)); + } + } + + enum AliasSrc : u8 { + AliasSrc_NONE, // slot unused + AliasSrc_ARG0, // user's 1st operand + AliasSrc_ARG1, // user's 2nd operand + AliasSrc_ARG2, // user's 3rd operand + AliasSrc_ZERO, // hardwired zero + AliasSrc_LINK, // link register + AliasSrc_LIT, // immediate literal + }; + + // NOTE(arm64): dummy — only riscv needs pseudo aliases; arm64 has none. + struct PseudoAlias { + Mnemonic target; // real instruction emitted + AliasSrc src[4]; // how to fill target's four operand slots + i16 lit; // immediate when a src slot is AliasSrc_LIT + u16 csr; // unused on arm64 + u8 nargs; // operands the user supplies (ARG0.. contiguous run in ENCODE_FORMS. + struct EncodeRun { + u32 start; // start index in ENCODE_FORMS + u32 count; // number of forms for this mnemonic + }; + + + static EncodeRun const raw_encode_runs [855]; + static u8 const raw_encode_forms [59884]; + static u8 const raw_clobber_forms[38108]; + + StringMap mnemonic_map; + StringMap register_map; + + bool init(i64 word_size) { + gb_unused(word_size); // A64 is fixed 64-bit; W views are the 32-bit half. + + string_map_init(&mnemonic_map, MNEMONIC_COUNT*2); + for (u16 m = M_INVALID+1; m < MNEMONIC_COUNT; m++) { + string_map_set(&mnemonic_map, mnemonic_strings[m], cast(Mnemonic)m); + } + + string_map_init(®ister_map, REG_COUNT*2); + for (u16 r = REG_INVALID+1; r < REG_COUNT; r++) { + string_map_set(®ister_map, register_strings[r], cast(Register)r); + } + return true; + } + + + enum MnemonicSuffix : u8 { + MnemonicSuffix_None = 0, + }; + + bool mnemonic_accepts_suffix(u16 m) const { + // A64 acquire/release/atomic variants are distinct mnemonics (LDAR, STLR, + // LDADDA...), not textual suffixes on a base mnemonic. + gb_unused(m); + return false; + } + + Mnemonic mnemonic_lookup_ordered(String const &name, u8 *suffixes_) { + gb_unused(name); + gb_unused(suffixes_); + return M_INVALID; + } + + enum PseudoMacroMnemonic : u8 { + PseudoMacroMnemonic_INVALID, + PseudoMacroMnemonic_COUNT + // NOTE: MOV-wide-immediate expansion (MOV -> MOVZ/MOVN/MOVK sequence) could + // be modelled here if the front-end wants macro lowering for arm64. + }; + + PseudoMacroMnemonic pseudo_macro_mnemonic_lookup(String const &name) { + gb_unused(name); + return PseudoMacroMnemonic_INVALID; + } + + Mnemonic mnemonic_lookup(String const &name) { + Mnemonic *found = string_map_get(&mnemonic_map, name); + return found ? *found : M_INVALID; + } + Prefix prefix_lookup(String const &name) { + gb_unused(name); + return PREFIX_INVALID; + } + static String const prefix_strings[PREFIX_COUNT]; + + Register register_lookup(String const &name) { + Register *found = string_map_get(®ister_map, name); + return found ? *found : REG_INVALID; + } + Slice encoding_forms(/*Mnemonic*/ u16 m) const { + EncodeRun r = raw_encode_runs[m]; + Encoding *ENCODE_FORMS = cast(Encoding *)raw_encode_forms; + return Slice{ENCODE_FORMS+r.start, r.count}; + } + Slice clobber_forms(/*Mnemonic*/ u16 m) const { + EncodeRun r = raw_encode_runs[m]; + Clobber *CLOBBER_FORMS = cast(Clobber *)raw_clobber_forms; + return Slice{CLOBBER_FORMS+r.start, r.count}; + } + u16 reg_class(u32 r) const { + return 0xFF00 & r; + } + // size in bits for register + u16 reg_size(Register r) const { + switch (reg_class(register_codes[r])) { + case REG_CLASS_X: return 64; + case REG_CLASS_W: return 32; + case REG_CLASS_XSP: return 64; + case REG_CLASS_WSP: return 32; + case REG_CLASS_V: return 128; + case REG_CLASS_B: return 8; + case REG_CLASS_H: return 16; + case REG_CLASS_S: return 32; + case REG_CLASS_D: return 64; + case REG_CLASS_Q: return 128; + case REG_CLASS_Z: return 0; // SVE scalable (VL, implementation-defined) + case REG_CLASS_P: return 0; // SVE predicate (scalable) + case REG_CLASS_PN: return 0; // SME2 predicate-as-counter (scalable) + case REG_CLASS_ZT: return 512; // ZT0 is a fixed 512-bit table + case REG_CLASS_ZA: return 0; // SME ZA tile (scalable) + case REG_CLASS_SYS: return 64; // 'word size' + } + return 0; + } + + bool reg_is_segment(u32 r) { + gb_unused(r); + return false; // arm64 has no segment registers + } + + bool integer_reg_width_is_exact() const { + return true; // X = 64, W = 32 always + } + bool float_reg_width_is_exact() const { + return true; // B/H/S/D/Q scalar views are exact widths + } + bool supports_memory_index_not_just_disp() const { + return true; // base + (optionally extended/shifted) index register + } + + AsmOperandKind kind_from_operand_type(OperandType type) const { + switch (type) { + case OP_NONE: + return AsmOperand_Invalid; + + // ---- Registers ---- + // Integer GPR / GPR-or-SP, including shifted- and extended-register forms. + case OP_W_REG: case OP_X_REG: + case OP_WSP_REG: case OP_XSP_REG: + case OP_W_SHIFTED: case OP_X_SHIFTED: + case OP_W_EXTENDED: case OP_X_EXTENDED: + // SIMD&FP scalar views. + case OP_B_REG: case OP_H_REG: case OP_S_REG: case OP_D_REG: case OP_Q_REG: + // NEON vector: plain, arrangement, FP16, element-indexed. + case OP_V_REG: + case OP_V_8B: case OP_V_16B: case OP_V_4H: case OP_V_8H: + case OP_V_2S: case OP_V_4S: case OP_V_1D: case OP_V_2D: + case OP_V_4H_FP16: case OP_V_8H_FP16: + // SVE vector + predicate registers. + case OP_Z_REG_B: case OP_Z_REG_H: case OP_Z_REG_S: case OP_Z_REG_D: + case OP_P_REG: case OP_P_REG_MERGE: case OP_P_REG_ZERO: case OP_P_REG_GOV: + // SME ZA tiles (ZA0.B .. ZAn.Q) — register-like tile operands. + case OP_ZA_TILE_B: case OP_ZA_TILE_H: case OP_ZA_TILE_S: + case OP_ZA_TILE_D: case OP_ZA_TILE_Q: + case OP_SYS_REG: // MRS/MSR system-register name -> 16-bit field (cf. riscv CSR) + return AsmOperand_Register; + + // ---- Immediates (numeric literals and immediate-encoded selectors) ---- + case OP_IMM_2: case OP_IMM_3: case OP_IMM_4: case OP_IMM_5: + case OP_IMM_6: case OP_IMM_8: case OP_IMM_12: case OP_IMM_16: + case OP_NZCV_IMM: + case OP_HW_SHIFT: + case OP_BITMASK_IMM: + case OP_LSE_SIZE: + case OP_LSL_SHIFT_W: case OP_LSL_SHIFT_X: case OP_ROR_SHIFT: + case OP_FCMLA_ROT: case OP_FCADD_ROT: + case OP_SVE_PRFOP: + case OP_VEC_SHIFT: case OP_VEC_INDEX: + // Enum-like tokens that encode into an immediate field: + case OP_COND: // condition code (EQ/NE/...) -> 4-bit field + case OP_COND_NOT_AL: // same, minus AL/NV (cset/cinc/cinv/cneg/csetm) + case OP_SME_PATTERN: case OP_SVE_PATTERN: // pattern / tile-list selectors + // JUDGMENT CALL: the following are register/tile-slice constructs + // syntactically, but this table models each as a single packed immediate + // descriptor (see Operand_Type comments). If the front-end parses their + // bracketed tile-slice / [Xn,#imm] syntax, reclassify as Register/Memory. + case OP_SME_SLICE_B: case OP_SME_SLICE_H: case OP_SME_SLICE_W: + case OP_SME_SLICE_D: case OP_SME_SLICE_Q: + case OP_LDRAA_IMM10: // signed imm10 displacement of the PAC-load address form + return AsmOperand_Immediate; + + // ---- Branch / PC-relative targets (written as labels) ---- + case OP_REL_26: case OP_REL_19: case OP_REL_14: case OP_REL_PG21: + return AsmOperand_Label; + + // ---- Memory addressing modes ---- + case OP_MEM_OFFSET: case OP_MEM_PRE: case OP_MEM_POST: + case OP_MEM_REG: case OP_MEM_EXT: + case OP_MEM_SVE_SS: case OP_MEM_SVE_SI: + case OP_MEM_SVE_VEC: case OP_MEM_SVE_VB: + return AsmOperand_Memory; + + case OP_V_ELEM_B: case OP_V_ELEM_H: case OP_V_ELEM_S: case OP_V_ELEM_D: + return AsmOperand_Lane; + } + return AsmOperand_Invalid; + } + + AsmRegClass reg_class_from_operand_type(OperandType type) const { + switch (type) { + // Integer GPRs (incl. GPR-or-SP and shifted/extended register forms). + case OP_W_REG: case OP_X_REG: + case OP_WSP_REG: case OP_XSP_REG: + case OP_W_SHIFTED: case OP_X_SHIFTED: + case OP_W_EXTENDED: case OP_X_EXTENDED: + return AsmRegClass_Integer; + + // SIMD&FP scalar views share the V register file; treated as the float class. + case OP_B_REG: case OP_H_REG: case OP_S_REG: case OP_D_REG: case OP_Q_REG: + return AsmRegClass_Float; + + // NEON vectors (plain / arrangement / FP16 / element-indexed), SVE Z + // vectors, and SME2 Z register-lists — all the vector register file. + case OP_V_REG: + case OP_V_8B: case OP_V_16B: case OP_V_4H: case OP_V_8H: + case OP_V_2S: case OP_V_4S: case OP_V_1D: case OP_V_2D: + case OP_V_4H_FP16: case OP_V_8H_FP16: + case OP_V_ELEM_B: case OP_V_ELEM_H: case OP_V_ELEM_S: case OP_V_ELEM_D: + case OP_Z_REG_B: case OP_Z_REG_H: case OP_Z_REG_S: case OP_Z_REG_D: + return AsmRegClass_Vector; + + // SVE predicate registers. + case OP_P_REG: case OP_P_REG_MERGE: case OP_P_REG_ZERO: case OP_P_REG_GOV: + return AsmRegClass_Mask; + + // Everything else has no GPR/vector/mask class: + // - immediates, selectors, memory, labels, cond, sysreg, patterns. + // - ZA_TILE_* are SME ZA-tile registers, but AsmRegClass has no + // matrix/tile class, so they fall through to Unknown here (still + // Register-kind, the same shape as x86 SREG/CR/DR). + default: + return AsmRegClass_Unknown; + } + } + + bool operand_type_is_implicit(OperandType t) const { + // A64 operands are written explicitly; fixed regs (LR on RET, SP/X16/X17 + // on PAC*) are tracked via the Clobber implicit_rd/implicit_wr sets, not + // as implicit operand-type slots. + gb_unused(t); + return false; + } + + bool operand_type_is_cond_code(OperandType t) const { + switch (t){ + case OP_COND: + case OP_COND_NOT_AL: + return true; + } + return false; + } + + // Does this slot's register spell as `vN.` (an arrangement) rather than a + // scalar view (bN/hN/sN/dN/qN), a lane (vN.[i]), or a bare vN? Drives the + // arrangement-suffix emission in the AArch64 backend. Element-indexed and + // scalar-view slots are deliberately excluded: those carry their width via the + // register-name modifier (${N:s|d|q}) or the explicit lane syntax instead. + bool operand_type_wants_arrangement(OperandType t) const { + switch (t) { + case OP_V_8B: case OP_V_16B: + case OP_V_4H: case OP_V_8H: + case OP_V_2S: case OP_V_4S: + case OP_V_1D: case OP_V_2D: + case OP_V_4H_FP16: case OP_V_8H_FP16: + return true; + } + return false; + } + + AsmRegClass operand_type_reg_class(OperandType t) const { + // Same mapping as reg_class_from_operand_type. + return reg_class_from_operand_type(t); + } + + // A64 has no operand slot that only one named hardware register can fill + // (SP-taking slots accept any Xn or SP via the *_SP classes). + u16 operand_type_named_reg_class(OperandType t) const { + if (t == OP_SYS_REG) { + return REG_CLASS_SYS; + } + return REG_CLASS_NONE; + } + + String named_reg_class_string(u16 reg_class) const { + if (reg_class == REG_CLASS_SYS) { + return str_lit("system"); + } + return str_lit("hardware"); + } + + u16 operand_type_bit_width(OperandType t) const { + switch (t) { + case OP_NONE: + return 0; + + // ---- Integer registers (incl. shifted/extended forms) -> data width ---- + case OP_W_REG: case OP_WSP_REG: case OP_W_SHIFTED: case OP_W_EXTENDED: + return 32; + case OP_X_REG: case OP_XSP_REG: case OP_X_SHIFTED: case OP_X_EXTENDED: + return 64; + + // ---- SIMD&FP scalar views ---- + case OP_B_REG: return 8; + case OP_H_REG: return 16; + case OP_S_REG: return 32; + case OP_D_REG: return 64; + case OP_Q_REG: return 128; + + // ---- NEON vectors: total register width of the arrangement ---- + case OP_V_REG: + return 128; // full V (Q view) + case OP_V_8B: case OP_V_4H: case OP_V_2S: case OP_V_1D: + case OP_V_4H_FP16: + return 64; // 64-bit (D-register) arrangements + case OP_V_16B: case OP_V_8H: case OP_V_4S: case OP_V_2D: + case OP_V_8H_FP16: + return 128; // 128-bit (Q-register) arrangements + + // ---- Element-indexed vector: width of the indexed element ---- + case OP_V_ELEM_B: return 8; + case OP_V_ELEM_H: return 16; + case OP_V_ELEM_S: return 32; + case OP_V_ELEM_D: return 64; + + // ---- Immediates -> value / encoded-field width ---- + case OP_IMM_2: return 2; + case OP_IMM_3: return 3; + case OP_IMM_4: return 4; + case OP_IMM_5: return 5; + case OP_IMM_6: return 6; + case OP_IMM_8: return 8; + case OP_IMM_12: return 12; + case OP_IMM_16: return 16; + case OP_NZCV_IMM: return 4; + case OP_HW_SHIFT: return 2; // 2-bit LSL hw (0/16/32/48) + case OP_LSE_SIZE: return 2; + case OP_SYS_REG: return 15; // op0:op1:CRn:CRm:op2 packed + case OP_LSL_SHIFT_W: return 5; // 0..31 + case OP_LSL_SHIFT_X: return 6; // 0..63 + case OP_ROR_SHIFT: return 6; // imms field + case OP_FCMLA_ROT: return 2; + case OP_FCADD_ROT: return 1; + case OP_SVE_PRFOP: return 4; + case OP_LDRAA_IMM10: return 10; + case OP_COND: return 4; + case OP_COND_NOT_AL: return 4; + case OP_SVE_PATTERN: return 5; // 5-bit pattern field (PTRUE) + + // ---- PC-relative displacement value widths ---- + case OP_REL_26: return 26; + case OP_REL_19: return 19; + case OP_REL_14: return 14; + case OP_REL_PG21: return 21; // ADR/ADRP imm21 (ADRP scaled << 12) + + // ---- Width is scalable, data-dependent, or set elsewhere -> 0 ---- + case OP_Z_REG_B: case OP_Z_REG_H: case OP_Z_REG_S: case OP_Z_REG_D: // SVE VL-scaled + case OP_P_REG: case OP_P_REG_MERGE: case OP_P_REG_ZERO: case OP_P_REG_GOV: // predicate (VL/8) + case OP_ZA_TILE_B: case OP_ZA_TILE_H: case OP_ZA_TILE_S: + case OP_ZA_TILE_D: case OP_ZA_TILE_Q: // SME tiles (scalable) + case OP_SME_PATTERN: // selector, no data width + case OP_SME_SLICE_B: case OP_SME_SLICE_H: case OP_SME_SLICE_W: + case OP_SME_SLICE_D: case OP_SME_SLICE_Q: // packed slice descriptor + case OP_BITMASK_IMM: // value width = operand width (32/64) + case OP_VEC_SHIFT: // element-size dependent + case OP_VEC_INDEX: // element-size dependent + case OP_MEM_OFFSET: case OP_MEM_PRE: case OP_MEM_POST: + case OP_MEM_REG: case OP_MEM_EXT: + case OP_MEM_SVE_SS: case OP_MEM_SVE_SI: + case OP_MEM_SVE_VEC: case OP_MEM_SVE_VB: // access size from opcode + return 0; + } + return 0; + } + + + bool target_has_feature(u64 enabled_features, u32 f) const { + if (f == F_BASE) { + return true; + } + return (enabled_features & (cast(u64)1 << cast(u64)f)) != 0; + } + + char const *feature_name(Feature f) const { + switch (f) { + case F_BASE: return ""; + case F_FP: return "fp-armv8"; + case F_NEON: return "neon"; + case F_CRYPTO: return "crypto"; + case F_CRC32: return "crc"; + case F_LSE: return "lse"; + case F_LSE2: return "lse2"; + case F_FP16: return "fullfp16"; + case F_BF16: return "bf16"; + case F_DOT: return "dotprod"; + case F_PAC: return "pauth"; + case F_BTI: return "bti"; + case F_MTE: return "mte"; + case F_SVE: return "sve"; + case F_SVE2: return "sve2"; + case F_SME: return "sme"; + case F_AMX: return ""; // Apple AMX: no LLVM feature flag + } + return ""; + } + u16 operand_type_transfer_bytes(OperandType t) const { + gb_unused(t); + return 0; // arm64 fills this from the *form*, not the slot; see below + } + bool operand_type_is_lane(OperandType t) const { + switch (t) { + case OP_V_ELEM_B: + case OP_V_ELEM_H: + case OP_V_ELEM_S: + case OP_V_ELEM_D: + return true; + } + return false; + } + + String feature_name_from_form(Encoding const &form) const { + char const *str = feature_name(form.feature); + return make_string_c(str); + } + + int form_explicit_slot(Encoding const &form, int explicit_index) const { + int seen = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) { + break; + } + if (operand_type_is_implicit(t)) { + continue; + } + if (seen == explicit_index) { + return j; + } + seen += 1; + } + return -1; + } + + // Transfer size (bytes) a memory form's scaled index must match: + // shift == log2(bytes). Derived from the widest register operand in the form + // (the data being loaded/stored). 0 => no such constraint. Generic across ISAs. + u16 form_transfer_bytes(Encoding const &form) const { + // Mnemonic-pinned access sizes (byte/halfword variants). + switch (form.mnemonic) { + case M_LDRB: case M_LDRSB: case M_STRB: + case M_LDARB: case M_STLRB: + case M_LDXRB: case M_STXRB: case M_LDAXRB: case M_STLXRB: + return 1; + case M_LDRH: case M_LDRSH: case M_STRH: + case M_LDARH: case M_STLRH: + case M_LDXRH: case M_STXRH: case M_LDAXRH: case M_STLXRH: + return 2; + case M_LDRSW: + return 4; + } + + // Otherwise the access equals the widest register operand (plain + // ldr/str x/w/q, ldp/stp, etc.). + u16 widest = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) break; + AsmOperandKind k = kind_from_operand_type(t); + if (k == AsmOperand_Register) { + u16 w = operand_type_bit_width(t); + if (w > widest) widest = w; + } + } + return cast(u16)(widest / 8); + } + + + bool prefix_kind_okay(u8 prefix, Encoding const &form, bool *requires_memory_dest_) const { + // arm64 does not have instruction prefixes. + gb_unused(prefix); + gb_unused(form); + gb_unused(requires_memory_dest_); + return false; + } + AsmOperandConstraint operand_value_constraint(u16 m, int op) const { + switch (m) { + case M_LSL: case M_LSR: case M_ASR: case M_ROR: + if (op == 2) return {AsmOperandConstraint_ShiftCount, /*reg width*/-1}; + break; + // NOTE: A64 SDIV/UDIV by zero returns 0 (no fault), so no + // NonZeroDivisor constraint is emitted for division. + } + return {AsmOperandConstraint_None, -1}; + } bool is_self_zeroing_idiom(u16 m) const { + switch (m) { + case M_EOR: // x ^ x == 0 + case M_SUB: // x - x == 0 + case M_BIC: // x & ~x == 0 + return true; + } + return false; + } +}; + + + +gb_global Asm_arm64 g_asm_arm64; + + + +String const Asm_arm64::prefix_strings[Asm_arm64::PREFIX_COUNT]{}; +String const Asm_arm64::mnemonic_strings[Asm_arm64::MNEMONIC_COUNT] { + str_lit(""), str_lit("add"), str_lit("adds"), str_lit("sub"), str_lit("subs"), str_lit("movz"), str_lit("movn"), str_lit("movk"), str_lit("adr"), str_lit("adrp"), str_lit("and"), str_lit("ands"), str_lit("orr"), str_lit("eor"), str_lit("bic"), str_lit("bics"), + str_lit("orn"), str_lit("eon"), str_lit("lsl"), str_lit("lsr"), str_lit("asr"), str_lit("ror"), str_lit("udiv"), str_lit("sdiv"), str_lit("madd"), str_lit("msub"), str_lit("smaddl"), str_lit("smsubl"), str_lit("umaddl"), str_lit("umsubl"), str_lit("smulh"), str_lit("umulh"), + str_lit("clz"), str_lit("cls"), str_lit("rbit"), str_lit("rev"), str_lit("rev16"), str_lit("rev32"), str_lit("csel"), str_lit("csinc"), str_lit("csinv"), str_lit("csneg"), str_lit("ccmp"), str_lit("ccmn"), str_lit("cset"), str_lit("csetm"), str_lit("cinc"), str_lit("cinv"), + str_lit("cneg"), str_lit("extr"), str_lit("b"), str_lit("bl"), str_lit("br"), str_lit("blr"), str_lit("ret"), str_lit("b_eq"), str_lit("b_ne"), str_lit("b_cs"), str_lit("b_cc"), str_lit("b_mi"), str_lit("b_pl"), str_lit("b_vs"), str_lit("b_vc"), str_lit("b_hi"), + str_lit("b_ls"), str_lit("b_ge"), str_lit("b_lt"), str_lit("b_gt"), str_lit("b_le"), str_lit("b_al"), str_lit("b_nv"), str_lit("cbz"), str_lit("cbnz"), str_lit("tbz"), str_lit("tbnz"), str_lit("ldr"), str_lit("str"), str_lit("ldrb"), str_lit("strb"), str_lit("ldrsb"), + str_lit("ldrh"), str_lit("strh"), str_lit("ldrsh"), str_lit("ldrsw"), str_lit("ldp"), str_lit("stp"), str_lit("ldpsw"), str_lit("ldar"), str_lit("stlr"), str_lit("ldarb"), str_lit("stlrb"), str_lit("ldarh"), str_lit("stlrh"), str_lit("ldxr"), str_lit("stxr"), str_lit("ldaxr"), + str_lit("stlxr"), str_lit("nop"), str_lit("yield"), str_lit("wfe"), str_lit("wfi"), str_lit("sev"), str_lit("sevl"), str_lit("hint"), str_lit("mrs"), str_lit("msr"), str_lit("isb"), str_lit("dsb"), str_lit("dmb"), str_lit("svc"), str_lit("hvc"), str_lit("smc"), + str_lit("brk"), str_lit("hlt"), str_lit("eret"), str_lit("fmov"), str_lit("fabs"), str_lit("fneg"), str_lit("fsqrt"), str_lit("fadd"), str_lit("fsub"), str_lit("fmul"), str_lit("fdiv"), str_lit("fnmul"), str_lit("fmadd"), str_lit("fmsub"), str_lit("fnmadd"), str_lit("fnmsub"), + str_lit("fcmp"), str_lit("fcmpe"), str_lit("fcsel"), str_lit("fmax"), str_lit("fmin"), str_lit("fmaxnm"), str_lit("fminnm"), str_lit("fcvt"), str_lit("scvtf"), str_lit("ucvtf"), str_lit("fcvtzs"), str_lit("fcvtzu"), str_lit("fcvtas"), str_lit("fcvtau"), str_lit("fcvtns"), str_lit("fcvtnu"), + str_lit("fcvtps"), str_lit("fcvtpu"), str_lit("fcvtms"), str_lit("fcvtmu"), str_lit("frinta"), str_lit("frinti"), str_lit("frintm"), str_lit("frintn"), str_lit("frintp"), str_lit("frintx"), str_lit("frintz"), str_lit("tst"), str_lit("ldur"), str_lit("stur"), str_lit("ldurb"), str_lit("sturb"), + str_lit("ldursb"), str_lit("ldurh"), str_lit("sturh"), str_lit("ldursh"), str_lit("ldursw"), str_lit("ldnp"), str_lit("stnp"), str_lit("ldxp"), str_lit("stxp"), str_lit("ldaxp"), str_lit("stlxp"), str_lit("ldxrb"), str_lit("stxrb"), str_lit("ldaxrb"), str_lit("stlxrb"), str_lit("ldxrh"), + str_lit("stxrh"), str_lit("ldaxrh"), str_lit("stlxrh"), str_lit("ldapr"), str_lit("ldaprb"), str_lit("ldaprh"), str_lit("ldadd"), str_lit("ldadda"), str_lit("ldaddl"), str_lit("ldaddal"), str_lit("ldclr"), str_lit("ldclra"), str_lit("ldclrl"), str_lit("ldclral"), str_lit("ldeor"), str_lit("ldeora"), + str_lit("ldeorl"), str_lit("ldeoral"), str_lit("ldset"), str_lit("ldseta"), str_lit("ldsetl"), str_lit("ldsetal"), str_lit("ldsmax"), str_lit("ldsmaxa"), str_lit("ldsmaxl"), str_lit("ldsmaxal"), str_lit("ldsmin"), str_lit("ldsmina"), str_lit("ldsminl"), str_lit("ldsminal"), str_lit("ldumax"), str_lit("ldumaxa"), + str_lit("ldumaxl"), str_lit("ldumaxal"), str_lit("ldumin"), str_lit("ldumina"), str_lit("lduminl"), str_lit("lduminal"), str_lit("swp"), str_lit("swpa"), str_lit("swpl"), str_lit("swpal"), str_lit("cas"), str_lit("casa"), str_lit("casl"), str_lit("casal"), str_lit("casb"), str_lit("casab"), + str_lit("caslb"), str_lit("casalb"), str_lit("cash"), str_lit("casah"), str_lit("caslh"), str_lit("casalh"), str_lit("casp"), str_lit("caspa"), str_lit("caspl"), str_lit("caspal"), str_lit("pacia"), str_lit("pacib"), str_lit("pacda"), str_lit("pacdb"), str_lit("paciza"), str_lit("pacizb"), + str_lit("pacdza"), str_lit("pacdzb"), str_lit("autia"), str_lit("autib"), str_lit("autda"), str_lit("autdb"), str_lit("autiza"), str_lit("autizb"), str_lit("autdza"), str_lit("autdzb"), str_lit("paciasp"), str_lit("pacibsp"), str_lit("autiasp"), str_lit("autibsp"), str_lit("pacia1716"), str_lit("pacib1716"), + str_lit("autia1716"), str_lit("autib1716"), str_lit("pacga"), str_lit("xpaci"), str_lit("xpacd"), str_lit("xpaclri"), str_lit("retaa"), str_lit("retab"), str_lit("braa"), str_lit("brab"), str_lit("braaz"), str_lit("brabz"), str_lit("blraa"), str_lit("blrab"), str_lit("blraaz"), str_lit("blrabz"), + str_lit("eretaa"), str_lit("eretab"), str_lit("bti"), str_lit("irg"), str_lit("addg"), str_lit("subg"), str_lit("gmi"), str_lit("subp"), str_lit("subps"), str_lit("ldg"), str_lit("stg"), str_lit("st2g"), str_lit("stzg"), str_lit("stz2g"), str_lit("stgp"), str_lit("ldgm"), + str_lit("stgm"), str_lit("stzgm"), str_lit("crc32b"), str_lit("crc32h"), str_lit("crc32w"), str_lit("crc32x"), str_lit("crc32cb"), str_lit("crc32ch"), str_lit("crc32cw"), str_lit("crc32cx"), str_lit("aese"), str_lit("aesd"), str_lit("aesmc"), str_lit("aesimc"), str_lit("sha1h"), str_lit("sha1c"), + str_lit("sha1p"), str_lit("sha1m"), str_lit("sha1su0"), str_lit("sha1su1"), str_lit("sha256h"), str_lit("sha256h2"), str_lit("sha256su0"), str_lit("sha256su1"), str_lit("sha512h"), str_lit("sha512h2"), str_lit("sha512su0"), str_lit("sha512su1"), str_lit("eor3"), str_lit("bcax"), str_lit("rax1"), str_lit("xar"), + str_lit("sm3partw1"), str_lit("sm3partw2"), str_lit("sm3ss1"), str_lit("sm3tt1a"), str_lit("sm3tt1b"), str_lit("sm3tt2a"), str_lit("sm3tt2b"), str_lit("sm4e"), str_lit("sm4ekey"), str_lit("pmull"), str_lit("pmull2"), str_lit("bfcvt"), str_lit("bfdot"), str_lit("bfmmla"), str_lit("bfmlalb"), str_lit("bfmlalt"), + str_lit("bfcvtn"), str_lit("bfcvtn2"), str_lit("mul"), str_lit("mla"), str_lit("mls"), str_lit("neg"), str_lit("abs"), str_lit("shadd"), str_lit("uhadd"), str_lit("shsub"), str_lit("uhsub"), str_lit("srhadd"), str_lit("urhadd"), str_lit("sqadd"), str_lit("uqadd"), str_lit("sqsub"), + str_lit("uqsub"), str_lit("smax"), str_lit("umax"), str_lit("smin"), str_lit("umin"), str_lit("sabd"), str_lit("uabd"), str_lit("saba"), str_lit("uaba"), str_lit("addp"), str_lit("addv"), str_lit("saddlp"), str_lit("uaddlp"), str_lit("sadalp"), str_lit("uadalp"), str_lit("saddlv"), + str_lit("uaddlv"), str_lit("smaxv"), str_lit("umaxv"), str_lit("sminv"), str_lit("uminv"), str_lit("smaxp"), str_lit("umaxp"), str_lit("sminp"), str_lit("uminp"), str_lit("saddl"), str_lit("saddl2"), str_lit("uaddl"), str_lit("uaddl2"), str_lit("ssubl"), str_lit("ssubl2"), str_lit("usubl"), + str_lit("usubl2"), str_lit("saddw"), str_lit("saddw2"), str_lit("uaddw"), str_lit("uaddw2"), str_lit("ssubw"), str_lit("ssubw2"), str_lit("usubw"), str_lit("usubw2"), str_lit("raddhn"), str_lit("raddhn2"), str_lit("rsubhn"), str_lit("rsubhn2"), str_lit("addhn"), str_lit("addhn2"), str_lit("subhn"), + str_lit("subhn2"), str_lit("xtn"), str_lit("xtn2"), str_lit("sqxtn"), str_lit("sqxtn2"), str_lit("uqxtn"), str_lit("uqxtn2"), str_lit("sqxtun"), str_lit("sqxtun2"), str_lit("smull"), str_lit("smull2"), str_lit("umull"), str_lit("umull2"), str_lit("smlal"), str_lit("smlal2"), str_lit("umlal"), + str_lit("umlal2"), str_lit("smlsl"), str_lit("smlsl2"), str_lit("umlsl"), str_lit("umlsl2"), str_lit("sqdmull"), str_lit("sqdmull2"), str_lit("sqdmlal"), str_lit("sqdmlal2"), str_lit("sqdmlsl"), str_lit("sqdmlsl2"), str_lit("sqdmulh"), str_lit("sqrdmulh"), str_lit("sdot"), str_lit("udot"), str_lit("usdot"), + str_lit("fmla"), str_lit("fmls"), str_lit("fmulx"), str_lit("fmaxp"), str_lit("fminp"), str_lit("fmaxnmp"), str_lit("fminnmp"), str_lit("fmaxv"), str_lit("fminv"), str_lit("fmaxnmv"), str_lit("fminnmv"), str_lit("frecpe"), str_lit("frsqrte"), str_lit("frecps"), str_lit("frsqrts"), str_lit("frecpx"), + str_lit("faddp"), str_lit("fcvtl"), str_lit("fcvtl2"), str_lit("fcvtn"), str_lit("fcvtn2"), str_lit("fcvtxn"), str_lit("fcvtxn2"), str_lit("fcmeq"), str_lit("fcmge"), str_lit("fcmgt"), str_lit("fcmle"), str_lit("fcmlt"), str_lit("facge"), str_lit("facgt"), str_lit("cmeq"), str_lit("cmge"), + str_lit("cmgt"), str_lit("cmhi"), str_lit("cmhs"), str_lit("cmle"), str_lit("cmlt"), str_lit("cmtst"), str_lit("mvn"), str_lit("bit"), str_lit("bif"), str_lit("bsl"), str_lit("shl"), str_lit("sqshl"), str_lit("sqshlu"), str_lit("srshl"), str_lit("urshl"), str_lit("sshr"), + str_lit("ushr"), str_lit("ssra"), str_lit("usra"), str_lit("srshr"), str_lit("urshr"), str_lit("srsra"), str_lit("ursra"), str_lit("sshl"), str_lit("ushl"), str_lit("sli"), str_lit("sri"), str_lit("sshll"), str_lit("sshll2"), str_lit("ushll"), str_lit("ushll2"), str_lit("sxtl"), + str_lit("sxtl2"), str_lit("uxtl"), str_lit("uxtl2"), str_lit("shrn"), str_lit("shrn2"), str_lit("rshrn"), str_lit("rshrn2"), str_lit("sqshrn"), str_lit("sqshrn2"), str_lit("uqshrn"), str_lit("uqshrn2"), str_lit("sqrshrn"), str_lit("sqrshrn2"), str_lit("uqrshrn"), str_lit("uqrshrn2"), str_lit("sqshrun"), + str_lit("sqshrun2"), str_lit("sqrshrun"), str_lit("sqrshrun2"), str_lit("dup"), str_lit("ins"), str_lit("mov"), str_lit("ext"), str_lit("tbl"), str_lit("tbx"), str_lit("zip1"), str_lit("zip2"), str_lit("uzp1"), str_lit("uzp2"), str_lit("trn1"), str_lit("trn2"), str_lit("not"), + str_lit("rev64"), str_lit("cnt"), str_lit("urecpe"), str_lit("ursqrte"), str_lit("movi"), str_lit("mvni"), str_lit("ld1"), str_lit("ld2"), str_lit("ld3"), str_lit("ld4"), str_lit("st1"), str_lit("st2"), str_lit("st3"), str_lit("st4"), str_lit("ld1r"), str_lit("ld2r"), + str_lit("ld3r"), str_lit("ld4r"), str_lit("subr"), str_lit("asrr"), str_lit("lslr"), str_lit("lsrr"), str_lit("ftsmul"), str_lit("fsubr"), str_lit("fdivr"), str_lit("fnmla"), str_lit("fnmls"), str_lit("nand"), str_lit("nor"), str_lit("sel"), str_lit("orrs"), str_lit("eors"), + str_lit("nands"), str_lit("nors"), str_lit("orns"), str_lit("movs"), str_lit("ptrue"), str_lit("ptrues"), str_lit("pfalse"), str_lit("pfirst"), str_lit("pnext"), str_lit("brka"), str_lit("brkb"), str_lit("brkas"), str_lit("brkbs"), str_lit("brkpa"), str_lit("brkpb"), str_lit("brkn"), + str_lit("rdffr"), str_lit("wrffr"), str_lit("setffr"), str_lit("cmpeq"), str_lit("cmpne"), str_lit("cmpge"), str_lit("cmpgt"), str_lit("cmple"), str_lit("cmplt"), str_lit("cmphi"), str_lit("cmphs"), str_lit("cmplo"), str_lit("cmpls"), str_lit("fcmne"), str_lit("fcmuo"), str_lit("insr"), + str_lit("cpy"), str_lit("compact"), str_lit("ld1b"), str_lit("ld1h"), str_lit("ld1w"), str_lit("ld1d"), str_lit("ld1sb"), str_lit("ld1sh"), str_lit("ld1sw"), str_lit("st1b"), str_lit("st1h"), str_lit("st1w"), str_lit("st1d"), str_lit("ldff1b"), str_lit("ldff1h"), str_lit("ldff1w"), + str_lit("ldff1d"), str_lit("whilege"), str_lit("whilegt"), str_lit("whilele"), str_lit("whilelt"), str_lit("whilehi"), str_lit("whilehs"), str_lit("whilelo"), str_lit("whilels"), str_lit("sqrdmlah"), str_lit("sqrdmlsh"), str_lit("adclb"), str_lit("adclt"), str_lit("sbclb"), str_lit("sbclt"), str_lit("match"), + str_lit("nmatch"), str_lit("histcnt"), str_lit("histseg"), str_lit("smstart"), str_lit("smstop"), str_lit("rdsvl"), str_lit("addha"), str_lit("addva"), str_lit("zero"), str_lit("fmopa"), str_lit("fmops"), str_lit("bfmopa"), str_lit("bfmops"), str_lit("smopa"), str_lit("smops"), str_lit("umopa"), + str_lit("umops"), str_lit("usmopa"), str_lit("sumopa"), str_lit("cntb"), str_lit("cnth"), str_lit("cntw"), str_lit("cntd"), str_lit("incb"), str_lit("inch"), str_lit("incw"), str_lit("incd"), str_lit("decb"), str_lit("dech"), str_lit("decw"), str_lit("decd"), str_lit("sqincb"), + str_lit("sqinch"), str_lit("sqincw"), str_lit("sqincd"), str_lit("sqdecb"), str_lit("sqdech"), str_lit("sqdecw"), str_lit("sqdecd"), str_lit("uqincb"), str_lit("uqinch"), str_lit("uqincw"), str_lit("uqincd"), str_lit("uqdecb"), str_lit("uqdech"), str_lit("uqdecw"), str_lit("uqdecd"), str_lit("cntp"), + str_lit("incp"), str_lit("decp"), str_lit("sqincp"), str_lit("sqdecp"), str_lit("uqincp"), str_lit("uqdecp"), str_lit("ld1q"), str_lit("st1q"), str_lit("mova"), str_lit("fcmla"), str_lit("fcadd"), str_lit("prfb"), str_lit("prfh"), str_lit("prfw"), str_lit("prfd"), str_lit("ldnt1b"), + str_lit("ldnt1h"), str_lit("ldnt1w"), str_lit("ldnt1d"), str_lit("stnt1b"), str_lit("stnt1h"), str_lit("stnt1w"), str_lit("stnt1d"), str_lit("splice"), str_lit("index"), str_lit("bsl1n"), str_lit("bsl2n"), str_lit("nbsl"), str_lit("pmul"), str_lit("pmullb"), str_lit("pmullt"), str_lit("bfcvtnt"), + str_lit("ldraa"), str_lit("ldrab"), str_lit("tstart"), str_lit("tcommit"), str_lit("tcancel"), str_lit("ttest"), str_lit("wfet"), str_lit("wfit"), str_lit("bc_eq"), str_lit("bc_ne"), str_lit("bc_cs"), str_lit("bc_cc"), str_lit("bc_mi"), str_lit("bc_pl"), str_lit("bc_vs"), str_lit("bc_vc"), + str_lit("bc_hi"), str_lit("bc_ls"), str_lit("bc_ge"), str_lit("bc_lt"), str_lit("bc_gt"), str_lit("bc_le"), str_lit("bc_al"), str_lit("bc_nv"), str_lit("uxtb"), str_lit("uxth"), str_lit("uxtw"), str_lit("sxtb"), str_lit("sxth"), str_lit("sxtw"), str_lit("adc"), str_lit("adcs"), + str_lit("sbc"), str_lit("sbcs"), str_lit("ngc"), str_lit("ngcs"), str_lit("ldapur"), str_lit("stlur"), str_lit("ldapurb"), str_lit("stlurb"), str_lit("ldapurh"), str_lit("stlurh"), str_lit("ldapursb"), str_lit("ldapursh"), str_lit("ldapursw"), str_lit("bfadd"), str_lit("bfsub"), str_lit("bfmul"), + str_lit("bfmla"), str_lit("bfmls"), str_lit("sb"), str_lit("csdb"), str_lit("dgh"), str_lit("psb_csync"), str_lit("tsb_csync"), str_lit("bti_j"), str_lit("bti_c"), str_lit("bti_jc"), str_lit("bfclamp"), str_lit("bfmaxnm"), str_lit("bfminnm"), str_lit("luti2"), str_lit("luti4"), str_lit("zip"), + str_lit("uzp"), str_lit("tlbi_rpalos"), str_lit("tlbi_rpaos"), str_lit("at_s1e1a"), str_lit("dc_cipapa"), str_lit("dc_cigdpapa"), str_lit("tlbi_paall"), str_lit("tlbi_paallos"), str_lit("amx_ldx"), str_lit("amx_ldy"), str_lit("amx_stx"), str_lit("amx_sty"), str_lit("amx_ldz"), str_lit("amx_stz"), str_lit("amx_ldzi"), str_lit("amx_stzi"), + str_lit("amx_extrx"), str_lit("amx_extry"), str_lit("amx_fma64"), str_lit("amx_fms64"), str_lit("amx_fma32"), str_lit("amx_fms32"), str_lit("amx_mac16"), str_lit("amx_fma16"), str_lit("amx_fms16"), str_lit("amx_set"), str_lit("amx_clr"), str_lit("amx_vecint"), str_lit("amx_vecfp"), str_lit("amx_matint"), str_lit("amx_matfp"), str_lit("amx_genlut"), + str_lit("cpyp"), str_lit("cpym"), str_lit("cpye"), str_lit("cpyfp"), str_lit("cpyfm"), str_lit("cpyfe"), str_lit("setp"), str_lit("setm"), str_lit("sete"), str_lit("dc_ivac"), str_lit("dc_isw"), str_lit("dc_csw"), str_lit("dc_cisw"), str_lit("dc_zva"), str_lit("dc_cvac"), str_lit("dc_cvau"), + str_lit("dc_civac"), str_lit("ic_ialluis"), str_lit("ic_iallu"), str_lit("ic_ivau"), str_lit("at_s1e1r"), str_lit("at_s1e1w"), str_lit("at_s1e0r"), str_lit("at_s1e0w"), str_lit("at_s1e2r"), str_lit("at_s1e2w"), str_lit("at_s1e3r"), str_lit("at_s1e3w"), str_lit("at_s12e1r"), str_lit("at_s12e1w"), str_lit("at_s12e0r"), str_lit("at_s12e0w"), + str_lit("tlbi_vmalle1"), str_lit("tlbi_vmalle1is"), str_lit("tlbi_vae1"), str_lit("tlbi_vae1is"), str_lit("tlbi_aside1"), str_lit("tlbi_aside1is"), str_lit("tlbi_vaae1"), str_lit("tlbi_vaae1is"), str_lit("tlbi_vale1"), str_lit("tlbi_vale1is"), str_lit("tlbi_vaale1"), str_lit("tlbi_vaale1is"), str_lit("tlbi_alle1"), str_lit("tlbi_alle1is"), str_lit("tlbi_alle2"), str_lit("tlbi_alle2is"), + str_lit("tlbi_alle3"), str_lit("tlbi_alle3is"), str_lit("prfm"), str_lit("prfum"), str_lit("negs"), str_lit("cmp"), str_lit("cmn"), +}; +u32 const Asm_arm64::register_codes[Asm_arm64::REG_COUNT] { + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 799, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, + 542, 543, 1055, 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, 3336, 3337, 3338, 3339, 3340, 3341, 3342, 3343, 3584, 1116213248, 1116278784, 1108480000, 1511067648, + 1107365888, 1644236800, 1912672256, 1116737536, 1653608448, 1124077568, 1660948480, 1174933504, 1511002112, 1107300352, 1644171264, 1912606720, 1107824640, 1644695552, 1174409216, 1711280128, + 1979715584, 1512050688, 1512116224, 1075318784, 1075384320, 1075449856, 1182863360, 1585778688, 1585647616, 1585582080, 1183059968, 1719799808, 1988235264, 1207963648, 1208029184, 1342181376, + 1476464640, 1476857856, 1208225792, 1076629504, 1076695040, 1076367360, 1076432896, 1076498432, 1076891648, 1076957184, 1077022720, 1077088256, 1077415936, 1077481472, 1077547008, 1075843072, + 1075908608, 1076170752, 1076105216, 1074466816, 1074401280, 1074794496, 1074860032, 1074925568, 1074991104, 1075056640, 1075122176, 1075253248, 1074532352, 1074597888, 1074663424, 1074728960, + 1075187712, 1075712000, 1074270208, 1074335744, 1075580928, 1073745920, 1074073600, 1091637248, 1091571712, 1091768320, 1091702784, 1092161536, 1092096000, 1091112960, 1091047424, 1091244032, + 1091178496, 1082527744, 1082462208, 1118900224, 1118834688, 1083576320, 1620447232, 1511133184, 1083183104, 1620054016, 1888489472, 1082200064, 1159204864, 1082265600, 1159925760, 1159794688, + 1160187904, 1159860224, 1159729152, 1158680576, 1134563328, 1082134528, 1619005440, 1887440896, 1090654208, 1090523136, 1090588672, 1593839616, 1728581632, 1729171456, 1729236992, 1729105920, + 1729695744, 1729761280, 1729630208, 1191710720, 1593905152, 2131824640, 2131890176, 2131759104, 1594953728, 1595019264, 1594888192, 1593970688, 1728253952, 1595478016, 1595543552, 1595412480, + 1154945024, 1154486272, 1154551808, 1154682880, 1153961984, 1558515712, 1154289664, 1154224128, 1154093056, 1154420736, 1154158592, 1154355200, 1558450176, 1602162688, 1558712320, 1558581248, + 1558646784, 1558319104, 1558253568, 1558188032, 1156714496, 1156648960, 1558384640, 1559236608, 1155141632, 1155469312, 1155010560, 1155272704, 1155076096, 1155207168, 1155403776, 66457600, + 63836160, 63311872, 405278720, 405278720, 404754432, 10752000, 1512640512, 1512574976, 1052672, 8392704, 1183744, 8654848, 9179136, 1125191680, 1180569600, 1178800128, + 1180897280, 1180962816, 1986269184, 1180241920, 1178669056, 1180766208, 1178734592, 1180831744, 1178603520, 1180700672, 1181093888, 1181159424, 1986465792, 1110446080, 1180372992, 1180635136, + 1180504064, 1181028352, 1716326400, 1986334720, 1717243904, 1717374976, 1717047296, 1717178368, 1717506048, 1717112832, 1174999040, 1117261824, 1117327360, 1117982720, 1117851648, 1117786112, + 1118310400, 1118375936, 1118441472, 1118507008, 1117917184, 1711869952, 1653805056, 1896747008, 1896615936, 1619529728, 1619726336, 1619595264, 1929711616, 1628049408, 1627918336, 1635782656, + 1654132736, 1495273472, 1495339008, +}; +String const Asm_arm64::register_strings[Asm_arm64::REG_COUNT] { + str_lit(""), str_lit("x0"), str_lit("x1"), str_lit("x2"), str_lit("x3"), str_lit("x4"), str_lit("x5"), str_lit("x6"), str_lit("x7"), str_lit("x8"), str_lit("x9"), str_lit("x10"), str_lit("x11"), str_lit("x12"), str_lit("x13"), str_lit("x14"), + str_lit("x15"), str_lit("x16"), str_lit("x17"), str_lit("x18"), str_lit("x19"), str_lit("x20"), str_lit("x21"), str_lit("x22"), str_lit("x23"), str_lit("x24"), str_lit("x25"), str_lit("x26"), str_lit("x27"), str_lit("x28"), str_lit("x29"), str_lit("x30"), + str_lit("xzr"), str_lit("sp"), str_lit("w0"), str_lit("w1"), str_lit("w2"), str_lit("w3"), str_lit("w4"), str_lit("w5"), str_lit("w6"), str_lit("w7"), str_lit("w8"), str_lit("w9"), str_lit("w10"), str_lit("w11"), str_lit("w12"), str_lit("w13"), + str_lit("w14"), str_lit("w15"), str_lit("w16"), str_lit("w17"), str_lit("w18"), str_lit("w19"), str_lit("w20"), str_lit("w21"), str_lit("w22"), str_lit("w23"), str_lit("w24"), str_lit("w25"), str_lit("w26"), str_lit("w27"), str_lit("w28"), str_lit("w29"), + str_lit("w30"), str_lit("wzr"), str_lit("wsp"), str_lit("v0"), str_lit("v1"), str_lit("v2"), str_lit("v3"), str_lit("v4"), str_lit("v5"), str_lit("v6"), str_lit("v7"), str_lit("v8"), str_lit("v9"), str_lit("v10"), str_lit("v11"), str_lit("v12"), + str_lit("v13"), str_lit("v14"), str_lit("v15"), str_lit("v16"), str_lit("v17"), str_lit("v18"), str_lit("v19"), str_lit("v20"), str_lit("v21"), str_lit("v22"), str_lit("v23"), str_lit("v24"), str_lit("v25"), str_lit("v26"), str_lit("v27"), str_lit("v28"), + str_lit("v29"), str_lit("v30"), str_lit("v31"), str_lit("pn8"), str_lit("pn9"), str_lit("pn10"), str_lit("pn11"), str_lit("pn12"), str_lit("pn13"), str_lit("pn14"), str_lit("pn15"), str_lit("zt0"), str_lit("afsr0_el1"), str_lit("afsr1_el1"), str_lit("current_el"), str_lit("daif"), + str_lit("elr_el1"), str_lit("elr_el2"), str_lit("elr_el3"), str_lit("esr_el1"), str_lit("esr_el2"), str_lit("far_el1"), str_lit("far_el2"), str_lit("isr_el1"), str_lit("nzcv"), str_lit("spsr_el1"), str_lit("spsr_el2"), str_lit("spsr_el3"), str_lit("sp_el0"), str_lit("sp_el1"), str_lit("vbar_el1"), str_lit("vbar_el2"), + str_lit("vbar_el3"), str_lit("fpcr"), str_lit("fpsr"), str_lit("mvfr0_el1"), str_lit("mvfr1_el1"), str_lit("mvfr2_el1"), str_lit("contextidr_el1"), str_lit("tpidr2_el0"), str_lit("tpidrro_el0"), str_lit("tpidr_el0"), str_lit("tpidr_el1"), str_lit("tpidr_el2"), str_lit("tpidr_el3"), str_lit("ccsidr_el1"), str_lit("clidr_el1"), str_lit("csselr_el1"), + str_lit("ctr_el0"), str_lit("dczid_el0"), str_lit("gmid_el1"), str_lit("id_aa64afr0_el1"), str_lit("id_aa64afr1_el1"), str_lit("id_aa64dfr0_el1"), str_lit("id_aa64dfr1_el1"), str_lit("id_aa64dfr2_el1"), str_lit("id_aa64isar0_el1"), str_lit("id_aa64isar1_el1"), str_lit("id_aa64isar2_el1"), str_lit("id_aa64isar3_el1"), str_lit("id_aa64mmfr0_el1"), str_lit("id_aa64mmfr1_el1"), str_lit("id_aa64mmfr2_el1"), str_lit("id_aa64pfr0_el1"), + str_lit("id_aa64pfr1_el1"), str_lit("id_aa64smfr0_el1"), str_lit("id_aa64zfr0_el1"), str_lit("id_afr0_el1"), str_lit("id_dfr0_el1"), str_lit("id_isar0_el1"), str_lit("id_isar1_el1"), str_lit("id_isar2_el1"), str_lit("id_isar3_el1"), str_lit("id_isar4_el1"), str_lit("id_isar5_el1"), str_lit("id_isar6_el1"), str_lit("id_mmfr0_el1"), str_lit("id_mmfr1_el1"), str_lit("id_mmfr2_el1"), str_lit("id_mmfr3_el1"), + str_lit("id_mmfr4_el1"), str_lit("id_mmfr5_el1"), str_lit("id_pfr0_el1"), str_lit("id_pfr1_el1"), str_lit("id_pfr2_el1"), str_lit("midr_el1"), str_lit("mpidr_el1"), str_lit("apdakeyhi_el1"), str_lit("apdakeylo_el1"), str_lit("apdbkeyhi_el1"), str_lit("apdbkeylo_el1"), str_lit("apgakeyhi_el1"), str_lit("apgakeylo_el1"), str_lit("apiakeyhi_el1"), str_lit("apiakeylo_el1"), str_lit("apibkeyhi_el1"), + str_lit("apibkeylo_el1"), str_lit("gcr_el1"), str_lit("rgsr_el1"), str_lit("tfsre0_el1"), str_lit("tfsr_el1"), str_lit("smcr_el1"), str_lit("smcr_el2"), str_lit("svcr"), str_lit("zcr_el1"), str_lit("zcr_el2"), str_lit("zcr_el3"), str_lit("actlr_el1"), str_lit("amair_el1"), str_lit("cpacr_el1"), str_lit("lorc_el1"), str_lit("lorea_el1"), + str_lit("lorid_el1"), str_lit("lorn_el1"), str_lit("lorsa_el1"), str_lit("mair_el1"), str_lit("par_el1"), str_lit("sctlr_el1"), str_lit("sctlr_el2"), str_lit("sctlr_el3"), str_lit("tcr_el1"), str_lit("ttbr0_el1"), str_lit("ttbr1_el1"), str_lit("cntfrq_el0"), str_lit("cnthctl_el2"), str_lit("cnthp_ctl_el2"), str_lit("cnthp_cval_el2"), str_lit("cnthp_tval_el2"), + str_lit("cnthv_ctl_el2"), str_lit("cnthv_cval_el2"), str_lit("cnthv_tval_el2"), str_lit("cntkctl_el1"), str_lit("cntpct_el0"), str_lit("cntps_ctl_el1"), str_lit("cntps_cval_el1"), str_lit("cntps_tval_el1"), str_lit("cntp_ctl_el0"), str_lit("cntp_cval_el0"), str_lit("cntp_tval_el0"), str_lit("cntvct_el0"), str_lit("cntvoff_el2"), str_lit("cntv_ctl_el0"), str_lit("cntv_cval_el0"), str_lit("cntv_tval_el0"), + str_lit("pmbidr_el1"), str_lit("pmblimitr_el1"), str_lit("pmbptr_el1"), str_lit("pmbsr_el1"), str_lit("pmscr_el1"), str_lit("pmselr_el0"), str_lit("pmsevfr_el1"), str_lit("pmsfcr_el1"), str_lit("pmsicr_el1"), str_lit("pmsidr_el1"), str_lit("pmsirr_el1"), str_lit("pmslatfr_el1"), str_lit("pmswinc_el0"), str_lit("pmccfiltr_el0"), str_lit("pmccntr_el0"), str_lit("pmceid0_el0"), + str_lit("pmceid1_el0"), str_lit("pmcntenclr_el0"), str_lit("pmcntenset_el0"), str_lit("pmcr_el0"), str_lit("pmintenclr_el1"), str_lit("pmintenset_el1"), str_lit("pmovsclr_el0"), str_lit("pmuserenr_el0"), str_lit("trbbaser_el1"), str_lit("trbidr_el1"), str_lit("trblimitr_el1"), str_lit("trbmar_el1"), str_lit("trbptr_el1"), str_lit("trbsr_el1"), str_lit("trbtrg_el1"), str_lit("dbgauthstatus_el1"), + str_lit("dbgclaimclr_el1"), str_lit("dbgclaimset_el1"), str_lit("dbgdtrrx_el0"), str_lit("dbgdtrtx_el0"), str_lit("dbgdtr_el0"), str_lit("dbgprcr_el1"), str_lit("dlr_el0"), str_lit("dspsr_el0"), str_lit("mdccint_el1"), str_lit("mdrar_el1"), str_lit("mdscr_el1"), str_lit("oslar_el1"), str_lit("oslsr_el1"), str_lit("prselr_el1"), str_lit("icc_asgi1r_el1"), str_lit("icc_bpr0_el1"), + str_lit("icc_bpr1_el1"), str_lit("icc_ctlr_el1"), str_lit("icc_ctlr_el3"), str_lit("icc_dir_el1"), str_lit("icc_eoir0_el1"), str_lit("icc_eoir1_el1"), str_lit("icc_hppir0_el1"), str_lit("icc_hppir1_el1"), str_lit("icc_iar0_el1"), str_lit("icc_iar1_el1"), str_lit("icc_igrpen0_el1"), str_lit("icc_igrpen1_el1"), str_lit("icc_igrpen1_el3"), str_lit("icc_pmr_el1"), str_lit("icc_rpr_el1"), str_lit("icc_sgi0r_el1"), + str_lit("icc_sgi1r_el1"), str_lit("icc_sre_el1"), str_lit("icc_sre_el2"), str_lit("icc_sre_el3"), str_lit("ich_eisr_el2"), str_lit("ich_elrsr_el2"), str_lit("ich_hcr_el2"), str_lit("ich_misr_el2"), str_lit("ich_vmcr_el2"), str_lit("ich_vtr_el2"), str_lit("disr_el1"), str_lit("erridr_el1"), str_lit("errselr_el1"), str_lit("erxaddr_el1"), str_lit("erxctlr_el1"), str_lit("erxfr_el1"), + str_lit("erxmisc0_el1"), str_lit("erxmisc1_el1"), str_lit("erxmisc2_el1"), str_lit("erxmisc3_el1"), str_lit("erxstatus_el1"), str_lit("vdisr_el2"), str_lit("vsesr_el2"), str_lit("gpccr_el3"), str_lit("gptbr_el3"), str_lit("hcr_el2"), str_lit("hstr_el2"), str_lit("mdcr_el2"), str_lit("mfar_el3"), str_lit("vtcr_el2"), str_lit("vttbr_el2"), str_lit("dacr32_el2"), + str_lit("fpexc32_el2"), str_lit("rndr"), str_lit("rndrrs"), +}; +String const Asm_arm64::pseudo_mnemonic_strings[Asm_arm64::PSEUDO_MNEMONIC_COUNT] {}; +Asm_arm64::EncodeRun const Asm_arm64::raw_encode_runs[855] = { + { 0, 0}, { 0, 21}, { 21, 6}, { 27, 18}, { 45, 6}, { 51, 2}, { 53, 2}, { 55, 2}, { 57, 1}, { 58, 1}, { 59, 10}, { 69, 5}, { 74, 10}, { 84, 10}, { 94, 8}, { 102, 3}, + { 105, 4}, { 109, 2}, { 111, 8}, { 119, 8}, { 127, 8}, { 135, 4}, { 139, 4}, { 143, 4}, { 147, 2}, { 149, 2}, { 151, 1}, { 152, 1}, { 153, 1}, { 154, 1}, { 155, 5}, { 160, 5}, + { 165, 12}, { 177, 12}, { 189, 4}, { 193, 7}, { 200, 4}, { 204, 5}, { 209, 2}, { 211, 2}, { 213, 2}, { 215, 2}, { 217, 4}, { 221, 4}, { 225, 6}, { 231, 6}, { 237, 6}, { 243, 6}, + { 249, 6}, { 255, 2}, { 257, 1}, { 258, 1}, { 259, 1}, { 260, 1}, { 261, 2}, { 263, 1}, { 264, 1}, { 265, 1}, { 266, 1}, { 267, 1}, { 268, 1}, { 269, 1}, { 270, 1}, { 271, 1}, + { 272, 1}, { 273, 1}, { 274, 1}, { 275, 1}, { 276, 1}, { 277, 1}, { 278, 1}, { 279, 2}, { 281, 2}, { 283, 1}, { 284, 1}, { 285, 33}, { 318, 31}, { 349, 4}, { 353, 4}, { 357, 4}, + { 361, 4}, { 365, 4}, { 369, 4}, { 373, 2}, { 375, 9}, { 384, 9}, { 393, 3}, { 396, 2}, { 398, 2}, { 400, 1}, { 401, 1}, { 402, 1}, { 403, 1}, { 404, 2}, { 406, 2}, { 408, 2}, + { 410, 2}, { 412, 1}, { 413, 1}, { 414, 1}, { 415, 1}, { 416, 1}, { 417, 1}, { 418, 1}, { 419, 1}, { 420, 2}, { 422, 1}, { 423, 1}, { 424, 1}, { 425, 1}, { 426, 1}, { 427, 1}, + { 428, 1}, { 429, 1}, { 430, 1}, { 431, 17}, { 448, 11}, { 459, 11}, { 470, 11}, { 481, 12}, { 493, 12}, { 505, 12}, { 517, 9}, { 526, 3}, { 529, 3}, { 532, 3}, { 535, 3}, { 538, 3}, + { 541, 3}, { 544, 3}, { 547, 3}, { 550, 11}, { 561, 11}, { 572, 11}, { 583, 11}, { 594, 6}, { 600, 10}, { 610, 10}, { 620, 10}, { 630, 10}, { 640, 11}, { 651, 11}, { 662, 11}, { 673, 11}, + { 684, 11}, { 695, 11}, { 706, 11}, { 717, 11}, { 728, 11}, { 739, 11}, { 750, 11}, { 761, 11}, { 772, 11}, { 783, 11}, { 794, 11}, { 805, 4}, { 809, 5}, { 814, 5}, { 819, 1}, { 820, 1}, + { 821, 2}, { 823, 1}, { 824, 1}, { 825, 2}, { 827, 1}, { 828, 2}, { 830, 2}, { 832, 2}, { 834, 2}, { 836, 2}, { 838, 2}, { 840, 1}, { 841, 1}, { 842, 1}, { 843, 1}, { 844, 1}, + { 845, 1}, { 846, 1}, { 847, 1}, { 848, 2}, { 850, 1}, { 851, 1}, { 852, 2}, { 854, 2}, { 856, 2}, { 858, 2}, { 860, 2}, { 862, 2}, { 864, 2}, { 866, 2}, { 868, 2}, { 870, 2}, + { 872, 2}, { 874, 2}, { 876, 2}, { 878, 2}, { 880, 2}, { 882, 2}, { 884, 2}, { 886, 2}, { 888, 2}, { 890, 2}, { 892, 2}, { 894, 2}, { 896, 2}, { 898, 2}, { 900, 2}, { 902, 2}, + { 904, 2}, { 906, 2}, { 908, 2}, { 910, 2}, { 912, 2}, { 914, 2}, { 916, 2}, { 918, 2}, { 920, 2}, { 922, 2}, { 924, 2}, { 926, 2}, { 928, 2}, { 930, 2}, { 932, 1}, { 933, 1}, + { 934, 1}, { 935, 1}, { 936, 1}, { 937, 1}, { 938, 1}, { 939, 1}, { 940, 2}, { 942, 2}, { 944, 2}, { 946, 2}, { 948, 1}, { 949, 1}, { 950, 1}, { 951, 1}, { 952, 1}, { 953, 1}, + { 954, 1}, { 955, 1}, { 956, 1}, { 957, 1}, { 958, 1}, { 959, 1}, { 960, 1}, { 961, 1}, { 962, 1}, { 963, 1}, { 964, 1}, { 965, 1}, { 966, 1}, { 967, 1}, { 968, 1}, { 969, 1}, + { 970, 1}, { 971, 1}, { 972, 1}, { 973, 1}, { 974, 1}, { 975, 1}, { 976, 1}, { 977, 1}, { 978, 1}, { 979, 1}, { 980, 1}, { 981, 1}, { 982, 1}, { 983, 1}, { 984, 1}, { 985, 1}, + { 986, 1}, { 987, 1}, { 988, 1}, { 989, 1}, { 990, 1}, { 991, 1}, { 992, 1}, { 993, 1}, { 994, 1}, { 995, 1}, { 996, 1}, { 997, 1}, { 998, 1}, { 999, 1}, {1000, 1}, {1001, 1}, + {1002, 1}, {1003, 1}, {1004, 1}, {1005, 1}, {1006, 1}, {1007, 1}, {1008, 1}, {1009, 1}, {1010, 1}, {1011, 1}, {1012, 2}, {1014, 2}, {1016, 2}, {1018, 2}, {1020, 1}, {1021, 1}, + {1022, 1}, {1023, 1}, {1024, 1}, {1025, 1}, {1026, 1}, {1027, 1}, {1028, 1}, {1029, 1}, {1030, 1}, {1031, 1}, {1032, 1}, {1033, 1}, {1034, 2}, {1036, 2}, {1038, 1}, {1039, 5}, + {1044, 1}, {1045, 1}, {1046, 1}, {1047, 1}, {1048, 1}, {1049, 1}, {1050, 1}, {1051, 1}, {1052, 1}, {1053, 2}, {1055, 2}, {1057, 2}, {1059, 1}, {1060, 1}, {1061, 1}, {1062, 1}, + {1063, 1}, {1064, 1}, {1065, 7}, {1072, 6}, {1078, 6}, {1084, 13}, {1097, 11}, {1108, 6}, {1114, 6}, {1120, 6}, {1126, 6}, {1132, 6}, {1138, 6}, {1144, 11}, {1155, 11}, {1166, 11}, + {1177, 11}, {1188, 10}, {1198, 10}, {1208, 10}, {1218, 10}, {1228, 10}, {1238, 10}, {1248, 6}, {1254, 6}, {1260, 7}, {1267, 5}, {1272, 6}, {1278, 6}, {1284, 6}, {1290, 6}, {1296, 5}, + {1301, 5}, {1306, 5}, {1311, 5}, {1316, 5}, {1321, 5}, {1326, 6}, {1332, 6}, {1338, 6}, {1344, 6}, {1350, 3}, {1353, 3}, {1356, 3}, {1359, 3}, {1362, 3}, {1365, 3}, {1368, 3}, + {1371, 3}, {1374, 3}, {1377, 3}, {1380, 3}, {1383, 3}, {1386, 3}, {1389, 3}, {1392, 3}, {1395, 3}, {1398, 3}, {1401, 3}, {1404, 3}, {1407, 3}, {1410, 3}, {1413, 3}, {1416, 3}, + {1419, 3}, {1422, 3}, {1425, 3}, {1428, 3}, {1431, 3}, {1434, 3}, {1437, 3}, {1440, 3}, {1443, 3}, {1446, 3}, {1449, 3}, {1452, 3}, {1455, 3}, {1458, 3}, {1461, 3}, {1464, 3}, + {1467, 3}, {1470, 3}, {1473, 3}, {1476, 3}, {1479, 3}, {1482, 2}, {1484, 2}, {1486, 2}, {1488, 2}, {1490, 2}, {1492, 2}, {1494, 4}, {1498, 4}, {1502, 2}, {1504, 2}, {1506, 2}, + {1508, 8}, {1516, 8}, {1524, 5}, {1529, 5}, {1534, 5}, {1539, 5}, {1544, 5}, {1549, 3}, {1552, 3}, {1555, 3}, {1558, 3}, {1561, 5}, {1566, 5}, {1571, 8}, {1579, 8}, {1587, 6}, + {1593, 5}, {1598, 2}, {1600, 2}, {1602, 2}, {1604, 2}, {1606, 1}, {1607, 1}, {1608, 8}, {1616, 8}, {1624, 8}, {1632, 8}, {1640, 8}, {1648, 5}, {1653, 5}, {1658, 4}, {1662, 7}, + {1669, 2}, {1671, 2}, {1673, 7}, {1680, 7}, {1687, 7}, {1694, 7}, {1701, 4}, {1705, 1}, {1706, 1}, {1707, 2}, {1709, 7}, {1716, 7}, {1723, 7}, {1730, 7}, {1737, 7}, {1744, 7}, + {1751, 7}, {1758, 7}, {1765, 7}, {1772, 7}, {1779, 7}, {1786, 7}, {1793, 7}, {1800, 7}, {1807, 7}, {1814, 7}, {1821, 7}, {1828, 3}, {1831, 3}, {1834, 3}, {1837, 3}, {1840, 3}, + {1843, 3}, {1846, 3}, {1849, 3}, {1852, 3}, {1855, 3}, {1858, 3}, {1861, 3}, {1864, 3}, {1867, 3}, {1870, 3}, {1873, 3}, {1876, 3}, {1879, 3}, {1882, 3}, {1885, 3}, {1888, 3}, + {1891, 3}, {1894, 3}, {1897, 3}, {1900, 18}, {1918, 8}, {1926, 28}, {1954, 4}, {1958, 7}, {1965, 3}, {1968, 12}, {1980, 12}, {1992, 12}, {2004, 12}, {2016, 12}, {2028, 12}, {2040, 3}, + {2043, 6}, {2049, 6}, {2055, 2}, {2057, 2}, {2059, 7}, {2066, 4}, {2070, 8}, {2078, 5}, {2083, 5}, {2088, 5}, {2093, 8}, {2101, 5}, {2106, 5}, {2111, 5}, {2116, 1}, {2117, 1}, + {2118, 1}, {2119, 1}, {2120, 4}, {2124, 4}, {2128, 4}, {2132, 4}, {2136, 3}, {2139, 3}, {2142, 3}, {2145, 3}, {2148, 3}, {2151, 1}, {2152, 1}, {2153, 1}, {2154, 1}, {2155, 1}, + {2156, 1}, {2157, 1}, {2158, 1}, {2159, 1}, {2160, 1}, {2161, 1}, {2162, 1}, {2163, 1}, {2164, 1}, {2165, 1}, {2166, 1}, {2167, 1}, {2168, 1}, {2169, 1}, {2170, 1}, {2171, 1}, + {2172, 1}, {2173, 1}, {2174, 1}, {2175, 4}, {2179, 4}, {2183, 4}, {2187, 4}, {2191, 4}, {2195, 4}, {2199, 4}, {2203, 4}, {2207, 4}, {2211, 4}, {2215, 3}, {2218, 3}, {2221, 4}, + {2225, 4}, {2229, 2}, {2231, 6}, {2237, 6}, {2243, 6}, {2249, 5}, {2254, 3}, {2257, 4}, {2261, 2}, {2263, 6}, {2269, 7}, {2276, 6}, {2282, 5}, {2287, 1}, {2288, 1}, {2289, 1}, + {2290, 1}, {2291, 4}, {2295, 4}, {2299, 4}, {2303, 4}, {2307, 4}, {2311, 4}, {2315, 4}, {2319, 4}, {2323, 4}, {2327, 4}, {2331, 2}, {2333, 2}, {2335, 2}, {2337, 2}, {2339, 2}, + {2341, 2}, {2343, 2}, {2345, 1}, {2346, 1}, {2347, 1}, {2348, 1}, {2349, 1}, {2350, 1}, {2351, 1}, {2352, 1}, {2353, 1}, {2354, 1}, {2355, 1}, {2356, 2}, {2358, 2}, {2360, 2}, + {2362, 2}, {2364, 1}, {2365, 1}, {2366, 1}, {2367, 1}, {2368, 1}, {2369, 1}, {2370, 1}, {2371, 2}, {2373, 2}, {2375, 2}, {2377, 1}, {2378, 2}, {2380, 2}, {2382, 2}, {2384, 2}, + {2386, 3}, {2389, 3}, {2392, 3}, {2395, 2}, {2397, 3}, {2400, 3}, {2403, 3}, {2406, 2}, {2408, 3}, {2411, 3}, {2414, 3}, {2417, 2}, {2419, 3}, {2422, 3}, {2425, 3}, {2428, 4}, + {2432, 7}, {2439, 7}, {2446, 11}, {2457, 11}, {2468, 11}, {2479, 11}, {2490, 1}, {2491, 1}, {2492, 2}, {2494, 4}, {2498, 4}, {2502, 1}, {2503, 1}, {2504, 1}, {2505, 1}, {2506, 1}, + {2507, 1}, {2508, 1}, {2509, 1}, {2510, 1}, {2511, 1}, {2512, 1}, {2513, 1}, {2514, 1}, {2515, 16}, {2531, 1}, {2532, 1}, {2533, 1}, {2534, 1}, {2535, 1}, {2536, 1}, {2537, 1}, + {2538, 2}, {2540, 2}, {2542, 1}, {2543, 1}, {2544, 1}, {2545, 1}, {2546, 1}, {2547, 1}, {2548, 1}, {2549, 1}, {2550, 1}, {2551, 1}, {2552, 1}, {2553, 1}, {2554, 1}, {2555, 1}, + {2556, 1}, {2557, 1}, {2558, 1}, {2559, 1}, {2560, 1}, {2561, 1}, {2562, 1}, {2563, 1}, {2564, 1}, {2565, 1}, {2566, 1}, {2567, 1}, {2568, 1}, {2569, 1}, {2570, 2}, {2572, 2}, + {2574, 2}, {2576, 2}, {2578, 2}, {2580, 2}, {2582, 2}, {2584, 2}, {2586, 1}, {2587, 1}, {2588, 1}, {2589, 1}, {2590, 2}, {2592, 2}, {2594, 1}, {2595, 2}, {2597, 2}, {2599, 2}, + {2601, 1}, {2602, 1}, {2603, 1}, {2604, 1}, {2605, 1}, {2606, 1}, {2607, 1}, {2608, 1}, {2609, 1}, {2610, 1}, {2611, 1}, {2612, 1}, {2613, 1}, {2614, 3}, {2617, 3}, {2620, 2}, + {2622, 2}, {2624, 1}, {2625, 1}, {2626, 1}, {2627, 1}, {2628, 1}, {2629, 1}, {2630, 1}, {2631, 1}, {2632, 1}, {2633, 1}, {2634, 1}, {2635, 1}, {2636, 1}, {2637, 1}, {2638, 1}, + {2639, 1}, {2640, 1}, {2641, 1}, {2642, 1}, {2643, 1}, {2644, 1}, {2645, 1}, {2646, 1}, {2647, 1}, {2648, 1}, {2649, 1}, {2650, 1}, {2651, 1}, {2652, 1}, {2653, 1}, {2654, 1}, + {2655, 1}, {2656, 1}, {2657, 1}, {2658, 1}, {2659, 1}, {2660, 1}, {2661, 1}, {2662, 1}, {2663, 1}, {2664, 1}, {2665, 1}, {2666, 1}, {2667, 1}, {2668, 1}, {2669, 1}, {2670, 1}, + {2671, 1}, {2672, 1}, {2673, 1}, {2674, 1}, {2675, 1}, {2676, 1}, {2677, 1}, {2678, 1}, {2679, 1}, {2680, 1}, {2681, 1}, {2682, 1}, {2683, 1}, {2684, 1}, {2685, 1}, {2686, 1}, + {2687, 1}, {2688, 1}, {2689, 1}, {2690, 1}, {2691, 1}, {2692, 1}, {2693, 1}, {2694, 1}, {2695, 1}, {2696, 1}, {2697, 1}, {2698, 1}, {2699, 1}, {2700, 1}, {2701, 1}, {2702, 1}, + {2703, 1}, {2704, 1}, {2705, 2}, {2707, 1}, {2708, 2}, {2710, 6}, {2716, 6}, +}; +u8 const Asm_arm64::raw_encode_forms[59884] = { + 0x01, 0x00, 0x03, 0x03, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x80, 0xff, 0x00, 0x60, 0x01, 0x00, 0x04, 0x04, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x01, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x20, 0xff, + 0x00, 0x60, 0x01, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x01, 0x00, 0x03, 0x03, 0x07, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0b, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x60, 0x01, 0x00, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8b, 0x00, 0x00, + 0xe0, 0xff, 0x00, 0x70, 0x01, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0xa0, 0x4e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, + 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x01, 0x00, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x01, 0x00, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x01, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x01, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x01, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x01, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x01, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x01, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, + 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xc0, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x02, 0x00, 0x01, 0x03, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x00, 0x00, 0x80, 0xff, 0x00, 0x68, 0x02, 0x00, 0x02, 0x04, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x00, 0x00, 0x80, 0xff, 0x00, 0x78, 0x02, 0x00, 0x01, 0x01, 0x05, 0x00, + 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x20, 0xff, 0x00, 0x68, 0x02, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x00, 0x00, 0x20, 0xff, 0x00, 0x78, 0x02, 0x00, 0x01, 0x03, 0x07, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2b, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x68, 0x02, 0x00, 0x02, 0x04, + 0x08, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0xab, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x78, 0x03, 0x00, 0x03, 0x03, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x80, 0xff, 0x00, 0x60, 0x03, 0x00, 0x04, 0x04, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x03, 0x00, + 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x03, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x03, 0x00, 0x03, 0x03, 0x07, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x4b, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x60, + 0x03, 0x00, 0x04, 0x04, 0x08, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0xcb, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x70, 0x03, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x03, 0x00, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x03, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x03, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x03, 0x00, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, 0x00, 0xfc, + 0xe0, 0xff, 0x0d, 0x60, 0x03, 0x00, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x03, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x03, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xe0, 0x04, + 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x03, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x03, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x41, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x03, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x81, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x03, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xc1, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x04, 0x00, 0x01, 0x03, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x80, 0xff, 0x00, 0x68, 0x04, 0x00, 0x02, 0x04, 0x38, 0x00, 0x00, 0x02, 0x04, 0x09, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf1, 0x00, 0x00, 0x80, 0xff, 0x00, 0x78, 0x04, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x00, 0x00, 0x20, 0xff, 0x00, 0x68, 0x04, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x00, 0x00, 0x20, 0xff, 0x00, 0x78, 0x04, 0x00, 0x01, 0x03, 0x07, 0x00, 0x00, 0x02, 0x04, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x6b, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x68, 0x04, 0x00, 0x02, 0x04, 0x08, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0xeb, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x78, 0x05, 0x00, 0x01, 0x39, 0x43, 0x00, 0x00, 0x02, 0x0a, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x52, 0x00, 0x00, 0x80, 0xff, 0x00, 0x60, 0x05, 0x00, 0x02, 0x39, 0x43, 0x00, 0x00, 0x02, + 0x0a, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd2, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x06, 0x00, 0x01, 0x39, 0x43, 0x00, 0x00, 0x02, 0x0a, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x12, 0x00, 0x00, 0x80, 0xff, 0x00, 0x60, 0x06, 0x00, 0x02, 0x39, 0x43, 0x00, 0x00, 0x02, 0x0a, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x92, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x07, 0x00, 0x01, 0x39, 0x43, 0x00, + 0x00, 0x02, 0x0a, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x72, 0x00, 0x00, 0x80, 0xff, 0x00, 0x60, 0x07, 0x00, 0x02, 0x39, 0x43, 0x00, 0x00, 0x02, 0x0a, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf2, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x08, 0x00, 0x02, 0x4a, 0x00, 0x00, 0x00, 0x02, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x40, 0x09, 0x00, 0x02, 0x4a, + 0x00, 0x00, 0x00, 0x02, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x9f, 0x00, 0x40, 0x0a, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x0a, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x0a, 0x00, + 0x03, 0x01, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x0a, 0x00, 0x04, 0x02, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x0a, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x0a, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x1a, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0a, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x5a, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0a, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x9a, 0x04, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x80, 0x0a, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xda, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x0a, 0x00, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x40, 0x00, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x0b, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x00, 0x00, + 0x20, 0xff, 0x00, 0x68, 0x0b, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x00, 0x00, 0x20, 0xff, 0x00, 0x78, 0x0b, 0x00, 0x01, 0x01, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x68, 0x0b, 0x00, 0x02, 0x02, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, + 0x00, 0x00, 0x80, 0xff, 0x00, 0x78, 0x0b, 0x00, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x40, 0x40, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x88, 0x0c, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x0c, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xaa, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x0c, 0x00, 0x03, 0x01, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x0c, 0x00, 0x04, 0x02, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x0c, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x1c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x18, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0c, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x58, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0c, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x98, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0c, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xd8, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x0c, 0x00, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x40, 0x80, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x0d, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, + 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x0d, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x0d, 0x00, 0x03, 0x01, 0x44, 0x00, 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x0d, 0x00, 0x04, 0x02, 0x44, 0x00, + 0x00, 0x02, 0x04, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x00, 0x80, 0xff, 0x00, 0x70, 0x0d, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x19, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0d, 0x00, 0x1e, 0x22, + 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x59, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0d, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x99, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0d, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xd9, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x0d, 0x00, + 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x42, 0x00, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x0e, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x0e, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x8a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, + 0x0e, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x1b, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0e, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x5b, 0x04, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x80, 0x0e, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x9b, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x0e, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xdb, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x0e, 0x00, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0x40, 0x00, 0x25, 0x10, 0xc2, + 0xe0, 0xff, 0x0d, 0x80, 0x0f, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x68, 0x0f, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0xea, 0x00, 0x00, 0x20, 0xff, 0x00, 0x78, 0x0f, 0x00, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0x40, 0x40, 0x25, + 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x88, 0x10, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x10, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0xaa, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x10, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, + 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x10, 0x00, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0x40, 0x80, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x11, 0x00, 0x01, 0x01, 0x05, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x4a, 0x00, 0x00, 0x20, 0xff, 0x00, 0x60, 0x11, 0x00, 0x02, 0x02, 0x06, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x20, 0xca, 0x00, 0x00, 0x20, 0xff, 0x00, 0x70, 0x12, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x20, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x12, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x20, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x12, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, + 0x2b, 0x00, 0x00, 0x80, 0x13, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x12, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x53, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x12, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x93, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x12, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, + 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xd3, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x12, 0x00, 0x01, 0x01, 0x3c, 0x00, 0x00, 0x02, 0x04, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x12, 0x00, 0x02, 0x02, 0x3b, 0x00, 0x00, 0x02, 0x04, 0x84, 0x00, 0x00, 0x00, 0x00, 0x40, 0xd3, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x13, 0x00, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x24, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x13, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x24, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x13, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x11, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x13, 0x00, 0x1e, 0x22, + 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x51, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x13, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x91, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x13, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xd1, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x13, 0x00, + 0x01, 0x01, 0x3c, 0x00, 0x00, 0x02, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x53, 0x00, 0xfc, 0xc0, 0xff, 0x00, 0x60, 0x13, 0x00, 0x02, 0x02, 0x3b, 0x00, 0x00, 0x02, 0x04, 0x0e, 0x00, 0x00, 0x00, 0xfc, 0x40, 0xd3, 0x00, 0xfc, 0xc0, 0xff, 0x00, 0x70, 0x14, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x28, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, + 0x14, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x28, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x14, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x10, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x14, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x50, 0x04, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x80, 0x14, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x90, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x14, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xd0, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x14, 0x00, 0x01, 0x01, 0x3c, 0x00, 0x00, 0x02, 0x04, 0x0e, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x13, 0x00, 0xfc, + 0xc0, 0xff, 0x00, 0x60, 0x14, 0x00, 0x02, 0x02, 0x3b, 0x00, 0x00, 0x02, 0x04, 0x0e, 0x00, 0x00, 0x00, 0xfc, 0x40, 0x93, 0x00, 0xfc, 0xc0, 0xff, 0x00, 0x70, 0x15, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x2c, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x15, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x2c, 0xc0, 0x9a, + 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x15, 0x00, 0x01, 0x01, 0x3c, 0x00, 0x00, 0x02, 0x85, 0x86, 0x00, 0x00, 0x00, 0x00, 0x80, 0x13, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x60, 0x15, 0x00, 0x02, 0x02, 0x3b, 0x00, 0x00, 0x02, 0x85, 0x86, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x93, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x70, 0x16, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x08, + 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x16, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x16, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x95, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x16, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0xd5, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x17, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x17, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x17, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x94, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x17, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xd4, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x18, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x80, 0x18, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, + 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x19, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x00, 0x1b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x80, 0x19, 0x00, 0x02, 0x02, 0x02, 0x02, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x00, 0x9b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x1a, 0x00, 0x02, 0x01, 0x01, 0x02, + 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0x20, 0x9b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x1b, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x20, 0x9b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x1c, 0x00, 0x02, 0x01, 0x01, 0x02, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0xa0, 0x9b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x1d, 0x00, 0x02, 0x01, + 0x01, 0x02, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0xa0, 0x9b, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x1e, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x7c, 0x40, 0x9b, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x1e, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x12, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x1e, 0x00, + 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x52, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x1e, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x92, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x1e, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xd2, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, + 0x1f, 0x00, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x7c, 0xc0, 0x9b, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x1f, 0x00, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x13, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x1f, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x53, 0x04, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x80, 0x1f, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x93, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x1f, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xd3, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x20, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0xc0, 0x5a, 0x00, 0xfc, + 0xff, 0xff, 0x00, 0x40, 0x20, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0xc0, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x20, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x20, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x20, 0x6e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x20, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x20, 0x00, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x20, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, + 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x20, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x20, 0x00, 0x1d, 0x22, 0x1d, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x19, 0x04, 0x00, 0xe0, 0xf9, 0xff, 0x0d, 0x60, 0x20, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, + 0x00, 0xa0, 0x59, 0x04, 0x00, 0xe0, 0xf9, 0xff, 0x0d, 0x60, 0x20, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x99, 0x04, 0x00, 0xe0, 0xf9, 0xff, 0x0d, 0x60, 0x20, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xd9, 0x04, 0x00, 0xe0, 0xf9, 0xff, 0x0d, 0x70, 0x21, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x14, 0xc0, 0x5a, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x21, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x14, 0xc0, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x21, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x00, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x60, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x00, 0x13, 0x13, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x00, 0x1d, 0x22, 0x1d, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x18, 0x04, 0x00, 0xe0, 0xf8, 0xff, 0x0d, 0x60, 0x21, 0x00, 0x1e, 0x22, + 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x58, 0x04, 0x00, 0xe0, 0xf8, 0xff, 0x0d, 0x60, 0x21, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x98, 0x04, 0x00, 0xe0, 0xf8, 0xff, 0x0d, 0x60, 0x21, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xd8, 0x04, 0x00, 0xe0, 0xf8, 0xff, 0x0d, 0x70, 0x22, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x5a, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x22, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x22, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x22, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x23, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x5a, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x23, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0xda, 0x00, 0xfc, 0xff, 0xff, + 0x00, 0x50, 0x23, 0x00, 0x1d, 0x1d, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x23, 0x00, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x78, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x23, 0x00, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xb8, 0x05, 0x00, 0xfc, + 0xff, 0xff, 0x0d, 0x40, 0x23, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xf8, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x50, 0x23, 0x00, 0x68, 0x68, 0x00, 0x00, 0x00, 0x4a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x05, 0x10, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0x24, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x5a, + 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x24, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc0, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x24, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x18, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x24, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x25, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x25, 0x00, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x25, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x25, 0x00, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x25, 0x00, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x26, 0x00, 0x01, 0x01, 0x01, 0x54, 0x00, 0x02, 0x04, 0x07, + 0x14, 0x00, 0x00, 0x00, 0x80, 0x1a, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x80, 0x26, 0x00, 0x02, 0x02, 0x02, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x00, 0x80, 0x9a, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x90, 0x27, 0x00, 0x01, 0x01, 0x01, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x04, 0x80, 0x1a, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x80, 0x27, 0x00, 0x02, 0x02, 0x02, 0x54, 0x00, 0x02, + 0x04, 0x07, 0x14, 0x00, 0x00, 0x04, 0x80, 0x9a, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x90, 0x28, 0x00, 0x01, 0x01, 0x01, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x00, 0x80, 0x5a, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x80, 0x28, 0x00, 0x02, 0x02, 0x02, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x00, 0x80, 0xda, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x90, 0x29, 0x00, 0x01, 0x01, 0x01, 0x54, + 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x04, 0x80, 0x5a, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x80, 0x29, 0x00, 0x02, 0x02, 0x02, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x04, 0x80, 0xda, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x90, 0x2a, 0x00, 0x01, 0x01, 0x40, 0x54, 0x00, 0x04, 0x07, 0x17, 0x14, 0x00, 0x00, 0x00, 0x40, 0x7a, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x88, 0x2a, 0x00, 0x02, 0x02, + 0x40, 0x54, 0x00, 0x04, 0x07, 0x17, 0x14, 0x00, 0x00, 0x00, 0x40, 0xfa, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x98, 0x2a, 0x00, 0x01, 0x3c, 0x40, 0x54, 0x00, 0x04, 0x38, 0x17, 0x14, 0x00, 0x00, 0x08, 0x40, 0x7a, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x88, 0x2a, 0x00, 0x02, 0x3c, 0x40, 0x54, 0x00, 0x04, 0x38, 0x17, 0x14, 0x00, 0x00, 0x08, 0x40, 0xfa, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x98, 0x2b, 0x00, + 0x01, 0x01, 0x40, 0x54, 0x00, 0x04, 0x07, 0x17, 0x14, 0x00, 0x00, 0x00, 0x40, 0x3a, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x88, 0x2b, 0x00, 0x02, 0x02, 0x40, 0x54, 0x00, 0x04, 0x07, 0x17, 0x14, 0x00, 0x00, 0x00, 0x40, 0xba, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x98, 0x2b, 0x00, 0x01, 0x3c, 0x40, 0x54, 0x00, 0x04, 0x38, 0x17, 0x14, 0x00, 0x00, 0x08, 0x40, 0x3a, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x88, + 0x2b, 0x00, 0x02, 0x3c, 0x40, 0x54, 0x00, 0x04, 0x38, 0x17, 0x14, 0x00, 0x00, 0x08, 0x40, 0xba, 0x10, 0x0c, 0xe0, 0xff, 0x00, 0x98, 0x2c, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x9f, 0x1a, 0xe0, 0x8f, 0xff, 0xff, 0x00, 0x40, 0x2c, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x87, 0x9f, 0x1a, 0xe0, 0xcf, 0xff, 0xff, + 0x00, 0x40, 0x2c, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0xc7, 0x9f, 0x1a, 0xe0, 0xef, 0xff, 0xff, 0x00, 0x40, 0x2c, 0x00, 0x02, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x9f, 0x9a, 0xe0, 0x8f, 0xff, 0xff, 0x00, 0x50, 0x2c, 0x00, 0x02, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x87, 0x9f, 0x9a, 0xe0, 0xcf, + 0xff, 0xff, 0x00, 0x50, 0x2c, 0x00, 0x02, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0xc7, 0x9f, 0x9a, 0xe0, 0xef, 0xff, 0xff, 0x00, 0x50, 0x2d, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x9f, 0x5a, 0xe0, 0x8f, 0xff, 0xff, 0x00, 0x40, 0x2d, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x83, 0x9f, 0x5a, + 0xe0, 0xcf, 0xff, 0xff, 0x00, 0x40, 0x2d, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0xc3, 0x9f, 0x5a, 0xe0, 0xef, 0xff, 0xff, 0x00, 0x40, 0x2d, 0x00, 0x02, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x9f, 0xda, 0xe0, 0x8f, 0xff, 0xff, 0x00, 0x50, 0x2d, 0x00, 0x02, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0x83, + 0x9f, 0xda, 0xe0, 0xcf, 0xff, 0xff, 0x00, 0x50, 0x2d, 0x00, 0x02, 0x55, 0x00, 0x00, 0x00, 0x02, 0x15, 0x00, 0x00, 0x00, 0xe0, 0xc3, 0x9f, 0xda, 0xe0, 0xef, 0xff, 0xff, 0x00, 0x50, 0x2e, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x04, 0x80, 0x1a, 0x00, 0x8c, 0xe0, 0xff, 0x00, 0x60, 0x2e, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, + 0x00, 0x84, 0x80, 0x1a, 0x00, 0xcc, 0xe0, 0xff, 0x00, 0x60, 0x2e, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc4, 0x80, 0x1a, 0x00, 0xec, 0xe0, 0xff, 0x00, 0x60, 0x2e, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x04, 0x80, 0x9a, 0x00, 0x8c, 0xe0, 0xff, 0x00, 0x70, 0x2e, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, + 0x00, 0x00, 0x00, 0x84, 0x80, 0x9a, 0x00, 0xcc, 0xe0, 0xff, 0x00, 0x70, 0x2e, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc4, 0x80, 0x9a, 0x00, 0xec, 0xe0, 0xff, 0x00, 0x70, 0x2f, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x00, 0x80, 0x5a, 0x00, 0x8c, 0xe0, 0xff, 0x00, 0x60, 0x2f, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, + 0x08, 0x15, 0x00, 0x00, 0x00, 0x80, 0x80, 0x5a, 0x00, 0xcc, 0xe0, 0xff, 0x00, 0x60, 0x2f, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc0, 0x80, 0x5a, 0x00, 0xec, 0xe0, 0xff, 0x00, 0x60, 0x2f, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x00, 0x80, 0xda, 0x00, 0x8c, 0xe0, 0xff, 0x00, 0x70, 0x2f, 0x00, 0x02, 0x02, 0x55, 0x00, + 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x80, 0x80, 0xda, 0x00, 0xcc, 0xe0, 0xff, 0x00, 0x70, 0x2f, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc0, 0x80, 0xda, 0x00, 0xec, 0xe0, 0xff, 0x00, 0x70, 0x30, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x04, 0x80, 0x5a, 0x00, 0x8c, 0xe0, 0xff, 0x00, 0x60, 0x30, 0x00, 0x01, 0x01, + 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x84, 0x80, 0x5a, 0x00, 0xcc, 0xe0, 0xff, 0x00, 0x60, 0x30, 0x00, 0x01, 0x01, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc4, 0x80, 0x5a, 0x00, 0xec, 0xe0, 0xff, 0x00, 0x60, 0x30, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x04, 0x80, 0xda, 0x00, 0x8c, 0xe0, 0xff, 0x00, 0x70, 0x30, 0x00, + 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0x84, 0x80, 0xda, 0x00, 0xcc, 0xe0, 0xff, 0x00, 0x70, 0x30, 0x00, 0x02, 0x02, 0x55, 0x00, 0x00, 0x02, 0x08, 0x15, 0x00, 0x00, 0x00, 0xc4, 0x80, 0xda, 0x00, 0xec, 0xe0, 0xff, 0x00, 0x70, 0x31, 0x00, 0x01, 0x01, 0x01, 0x3b, 0x00, 0x02, 0x04, 0x07, 0x0b, 0x00, 0x00, 0x00, 0x80, 0x13, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x80, + 0x31, 0x00, 0x02, 0x02, 0x02, 0x3b, 0x00, 0x02, 0x04, 0x07, 0x0b, 0x00, 0x00, 0x00, 0xc0, 0x93, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0x32, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x21, 0x33, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x21, 0x34, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xd6, 0x1f, 0xfc, 0xff, 0xff, 0x00, 0x25, 0x35, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xd6, 0x1f, 0xfc, 0xff, 0xff, 0x00, 0x25, 0x36, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xd6, 0x1f, 0xfc, + 0xff, 0xff, 0x00, 0x25, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x5f, 0xd6, 0xff, 0xff, 0xff, 0xff, 0x00, 0x05, 0x37, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x38, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x54, + 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x39, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x3a, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x3b, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x3c, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x3d, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x3e, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x3f, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x40, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x41, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, + 0x00, 0x00, 0x0a, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x42, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x43, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x44, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x45, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x46, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0x47, 0x00, 0x01, 0x48, 0x00, 0x00, + 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0xff, 0x00, 0x42, 0x47, 0x00, 0x02, 0x48, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, 0xff, 0x00, 0x52, 0x48, 0x00, 0x01, 0x48, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0xff, 0x00, 0x42, 0x48, 0x00, 0x02, 0x48, + 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x00, 0x00, 0x00, 0xff, 0x00, 0x52, 0x49, 0x00, 0x02, 0x3c, 0x49, 0x00, 0x00, 0x03, 0x29, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x62, 0x4a, 0x00, 0x02, 0x3c, 0x49, 0x00, 0x00, 0x03, 0x29, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x62, 0x4b, 0x00, + 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xb9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x4b, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xf9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x50, 0x4b, 0x00, 0x01, 0x48, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0xff, 0x00, 0x40, + 0x4b, 0x00, 0x02, 0x48, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x00, 0xff, 0x00, 0x50, 0x4b, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4b, 0x00, 0x02, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0xf8, 0x00, 0x0c, 0xe0, 0xff, + 0x00, 0x50, 0x4b, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4b, 0x00, 0x02, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x4b, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0xb8, 0x00, 0x0c, + 0xe0, 0xff, 0x00, 0x40, 0x4b, 0x00, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x4b, 0x00, 0x09, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x3d, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0a, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7d, + 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0b, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0c, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xfd, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0d, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x3d, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x09, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0a, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x7c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0b, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x60, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0c, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0d, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe0, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x09, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x40, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0a, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x7c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0b, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0c, 0x4c, 0x00, 0x00, 0x00, 0x03, + 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0d, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x09, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0a, 0x4d, 0x00, 0x00, + 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x7c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0b, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0c, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x0d, 0x4d, + 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4b, 0x00, 0x56, 0x51, 0x00, 0x00, 0x00, 0x2a, 0x56, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x85, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x40, 0x4b, 0x00, 0x21, 0x51, 0x00, 0x00, 0x00, 0x4a, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x85, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x40, 0x4b, 0x00, + 0x62, 0x51, 0x00, 0x00, 0x00, 0x6f, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x00, 0x80, 0xe0, 0xff, 0x0f, 0x40, 0x4c, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x4c, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x50, + 0x4c, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4c, 0x00, 0x02, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x4c, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xb8, 0x00, 0x0c, 0xe0, 0xff, + 0x00, 0x40, 0x4c, 0x00, 0x02, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x4c, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4c, 0x00, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xf8, 0x00, 0x0c, + 0xe0, 0xff, 0x00, 0x50, 0x4c, 0x00, 0x09, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0a, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0b, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, + 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0c, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0d, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x09, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x20, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0a, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x7c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0b, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0c, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x20, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0d, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x09, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0a, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x7c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0b, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0c, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0d, 0x4c, 0x00, 0x00, 0x00, 0x03, + 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x80, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x09, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0a, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x7c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0b, 0x4d, 0x00, 0x00, + 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0c, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x0d, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x80, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x40, 0x4c, 0x00, 0x56, 0x51, + 0x00, 0x00, 0x00, 0x2a, 0x56, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0xe5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x40, 0x4c, 0x00, 0x21, 0x51, 0x00, 0x00, 0x00, 0x4a, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe5, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x40, 0x4c, 0x00, 0x62, 0x51, 0x00, 0x00, 0x00, 0x6f, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe1, 0x00, 0x80, 0xe0, 0xff, 0x0f, 0x40, 0x4d, 0x00, + 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x39, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x4d, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4d, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, + 0x4d, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4e, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x4e, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x38, 0x00, 0x0c, 0xe0, 0xff, + 0x00, 0x40, 0x4e, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4e, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4f, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x39, 0x00, 0x00, + 0xc0, 0xff, 0x00, 0x50, 0x4f, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x39, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x4f, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe0, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x4f, 0x00, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0x38, + 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x50, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x79, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x50, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x50, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x40, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x50, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x51, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x51, 0x00, 0x01, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x51, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x00, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x51, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x52, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x79, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x50, 0x52, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x79, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x40, 0x52, 0x00, 0x01, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe0, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x52, 0x00, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x03, + 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x53, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x50, 0x53, 0x00, 0x02, 0x4e, 0x00, 0x00, 0x00, 0x03, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x54, 0x00, 0x01, 0x01, 0x4b, 0x00, + 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x29, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x54, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x54, 0x00, 0x01, 0x01, 0x4c, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x29, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x54, 0x00, 0x02, 0x02, + 0x4c, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x54, 0x00, 0x01, 0x01, 0x4d, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x28, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x54, 0x00, 0x02, 0x02, 0x4d, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xa8, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x54, 0x00, + 0x0b, 0x0b, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x2d, 0x00, 0x00, 0xc0, 0xff, 0x02, 0x60, 0x54, 0x00, 0x0c, 0x0c, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6d, 0x00, 0x00, 0xc0, 0xff, 0x02, 0x60, 0x54, 0x00, 0x0d, 0x0d, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x22, 0x00, 0x00, 0x00, 0x00, 0x40, 0xad, 0x00, 0x00, 0xc0, 0xff, 0x02, 0x60, + 0x55, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x55, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x55, 0x00, 0x01, 0x01, 0x4c, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x80, 0x29, 0x00, 0x00, 0xc0, 0xff, + 0x00, 0x60, 0x55, 0x00, 0x02, 0x02, 0x4c, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x55, 0x00, 0x01, 0x01, 0x4d, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x80, 0x28, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0x55, 0x00, 0x02, 0x02, 0x4d, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0x00, 0x00, + 0xc0, 0xff, 0x00, 0x70, 0x55, 0x00, 0x0b, 0x0b, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00, 0xc0, 0xff, 0x02, 0x60, 0x55, 0x00, 0x0c, 0x0c, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x00, 0x00, 0xc0, 0xff, 0x02, 0x60, 0x55, 0x00, 0x0d, 0x0d, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, + 0x00, 0x00, 0xc0, 0xff, 0x02, 0x60, 0x56, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x69, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x56, 0x00, 0x02, 0x02, 0x4c, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x69, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x56, 0x00, 0x02, 0x02, 0x4d, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x68, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0x57, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xdf, 0x88, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x57, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xdf, 0xc8, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x58, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x9f, 0x88, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x58, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x9f, 0xc8, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x59, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xdf, 0x08, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x5a, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x9f, 0x08, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x5b, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xdf, 0x48, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x5c, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x9f, 0x48, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x5d, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x5f, 0x88, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x5d, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x5f, 0xc8, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x5e, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x88, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x5e, 0x00, 0x01, 0x02, 0x4b, 0x00, + 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xc8, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x5f, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x5f, 0x88, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0x5f, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x5f, 0xc8, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0x60, 0x00, 0x01, 0x01, + 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x88, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0x60, 0x00, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xc8, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x62, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x67, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0x03, 0xd5, 0x1f, 0xf0, 0xff, 0xff, + 0x00, 0x20, 0x68, 0x00, 0x02, 0x41, 0x00, 0x00, 0x00, 0x03, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xd5, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x40, 0x69, 0x00, 0x42, 0x3e, 0x00, 0x00, 0x00, 0x39, 0x1a, 0x00, 0x00, 0x00, 0x1f, 0x40, 0x00, 0xd5, 0x1f, 0xf0, 0xf8, 0xff, 0x00, 0x40, 0x69, 0x00, 0x41, 0x02, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0xd5, 0x00, 0x00, + 0xf0, 0xff, 0x00, 0x40, 0x6a, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x30, 0x03, 0xd5, 0xff, 0xf0, 0xff, 0xff, 0x00, 0x20, 0x6b, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x30, 0x03, 0xd5, 0xff, 0xf0, 0xff, 0xff, 0x00, 0x20, 0x6c, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x30, 0x03, 0xd5, + 0xff, 0xf0, 0xff, 0xff, 0x00, 0x20, 0x6d, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0xd4, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x21, 0x6e, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xd4, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x21, 0x6f, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xd4, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x21, 0x70, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xd4, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x21, 0x71, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xd4, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x21, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x03, 0x9f, 0xd6, 0xff, 0xff, 0xff, 0xff, 0x00, 0x05, 0x73, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x73, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x73, 0x00, 0x0b, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x3a, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x20, 0x1e, 0xe0, 0x1f, 0xe0, 0xff, 0x01, 0x40, 0x73, 0x00, 0x0c, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x10, 0x60, 0x1e, 0xe0, 0x1f, 0xe0, 0xff, 0x01, 0x40, 0x73, 0x00, 0x0a, 0x3a, 0x00, 0x00, 0x00, 0x02, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x1e, 0xe0, 0x1f, 0xe0, 0xff, 0x07, 0x40, 0x73, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x73, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x73, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x73, 0x00, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x73, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe0, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x73, 0x00, 0x13, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x73, 0x00, 0x14, 0x3a, + 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x73, 0x00, 0x16, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x00, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x73, 0x00, 0x17, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x07, 0x40, 0x73, 0x00, + 0x18, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x07, 0x40, 0x73, 0x00, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x73, 0x00, 0x1c, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, + 0x74, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x74, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x74, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x1e, 0x00, 0xfc, 0xff, 0xff, + 0x07, 0x40, 0x74, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0x4e, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0x74, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x74, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x74, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x5c, 0x04, + 0x00, 0xe0, 0xfc, 0xff, 0x0d, 0x60, 0x74, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x9c, 0x04, 0x00, 0xe0, 0xfc, 0xff, 0x0d, 0x60, 0x74, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xdc, 0x04, 0x00, 0xe0, 0xfc, 0xff, 0x0d, 0x70, 0x75, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x21, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x75, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x61, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x75, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe1, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x75, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x75, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x75, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x75, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x75, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x75, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x5d, 0x04, 0x00, 0xe0, 0xfd, 0xff, 0x0d, 0x60, 0x75, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, + 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x04, 0x00, 0xe0, 0xfd, 0xff, 0x0d, 0x60, 0x75, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xdd, 0x04, 0x00, 0xe0, 0xfd, 0xff, 0x0d, 0x70, 0x76, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x21, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x76, 0x00, 0x0c, 0x0c, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x61, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x76, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x76, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x76, 0x00, 0x14, 0x14, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x76, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x76, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf9, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x76, 0x00, + 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf9, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x76, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x4d, 0x65, 0x00, 0xe0, 0xed, 0xff, 0x0d, 0x60, 0x76, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x8d, 0x65, 0x00, 0xe0, 0xed, 0xff, 0x0d, 0x60, + 0x76, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xcd, 0x65, 0x00, 0xe0, 0xed, 0xff, 0x0d, 0x70, 0x77, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x28, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x77, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x28, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, + 0x01, 0x60, 0x77, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x28, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x77, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x20, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x77, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x00, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x77, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x80, 0x65, + 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x77, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x77, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x40, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x77, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, + 0x80, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x77, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc0, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x78, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x38, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x78, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, + 0x00, 0x38, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x78, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x78, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0xd4, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x00, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x78, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x80, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x78, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x78, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x41, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x78, 0x00, 0x1f, 0x22, 0x1f, 0x1f, + 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x81, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x78, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc1, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x79, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x08, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x79, 0x00, 0x0c, 0x0c, + 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x08, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x79, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x08, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x79, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xdc, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x79, 0x00, + 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xdc, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x79, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xdc, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x79, 0x00, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x08, 0x40, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, + 0x79, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x08, 0x80, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x79, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x79, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x42, 0x65, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x80, 0x79, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x82, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x79, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc2, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x7a, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0x20, 0x1e, 0x00, 0xfc, + 0xe0, 0xff, 0x01, 0x60, 0x7a, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x7a, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x7a, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x20, 0x2e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7a, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7a, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7a, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, + 0x4d, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x7a, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x8d, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x7a, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xcd, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x7b, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, + 0x00, 0x88, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x7b, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x88, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x7b, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x88, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x7c, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x02, 0x04, 0x07, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7c, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0x40, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7c, 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x07, 0x80, 0x7d, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x02, + 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x00, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7d, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x40, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7d, 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0xc0, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x07, 0x80, 0x7e, 0x00, 0x0b, 0x0b, 0x0b, 0x0b, + 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0x20, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7e, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0x60, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7e, 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x07, 0x80, 0x7f, 0x00, 0x0b, 0x0b, + 0x0b, 0x0b, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x20, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7f, 0x00, 0x0c, 0x0c, 0x0c, 0x0c, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0x60, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x01, 0x80, 0x7f, 0x00, 0x0a, 0x0a, 0x0a, 0x0a, 0x00, 0x02, 0x04, 0x07, 0x06, 0x00, 0x00, 0x80, 0xe0, 0x1f, 0x00, 0x80, 0xe0, 0xff, 0x07, 0x80, 0x80, 0x00, + 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x1e, 0x1f, 0xfc, 0xe0, 0xff, 0x01, 0x48, 0x80, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0x60, 0x1e, 0x1f, 0xfc, 0xe0, 0xff, 0x01, 0x48, 0x80, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x1e, 0x1f, 0xfc, 0xe0, 0xff, 0x07, 0x48, + 0x81, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0x20, 0x20, 0x1e, 0x1f, 0xfc, 0xe0, 0xff, 0x01, 0x48, 0x81, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0x20, 0x60, 0x1e, 0x1f, 0xfc, 0xe0, 0xff, 0x01, 0x48, 0x81, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0x20, 0xe0, 0x1e, 0x1f, 0xfc, 0xe0, 0xff, + 0x07, 0x48, 0x82, 0x00, 0x0b, 0x0b, 0x0b, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x0c, 0x20, 0x1e, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x80, 0x82, 0x00, 0x0c, 0x0c, 0x0c, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x0c, 0x60, 0x1e, 0x00, 0x0c, 0xe0, 0xff, 0x01, 0x80, 0x82, 0x00, 0x0a, 0x0a, 0x0a, 0x54, 0x00, 0x02, 0x04, 0x07, 0x14, 0x00, 0x00, 0x0c, 0xe0, 0x1e, 0x00, 0x0c, + 0xe0, 0xff, 0x07, 0x80, 0x83, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x48, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x83, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x48, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x83, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x48, 0xe0, 0x1e, + 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x83, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x83, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x83, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, + 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x83, 0x00, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x83, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x83, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, + 0x00, 0x80, 0x46, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x83, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x86, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x83, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc6, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x84, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, + 0x00, 0x00, 0x00, 0x58, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x84, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x58, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x84, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x58, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x84, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x84, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x84, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x84, 0x00, 0x17, 0x17, 0x17, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0xc0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x84, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x84, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x47, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x84, 0x00, 0x1f, 0x22, + 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x87, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x84, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc7, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x85, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x68, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x85, 0x00, + 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x68, 0x60, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x85, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x68, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x85, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x85, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x85, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x85, 0x00, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x07, 0x60, 0x85, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x85, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x44, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x85, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x84, 0x65, 0x00, 0xe0, + 0xff, 0xff, 0x0d, 0x80, 0x85, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc4, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x86, 0x00, 0x0b, 0x0b, 0x0b, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x78, 0x20, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x86, 0x00, 0x0c, 0x0c, 0x0c, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x78, 0x60, 0x1e, + 0x00, 0xfc, 0xe0, 0xff, 0x01, 0x60, 0x86, 0x00, 0x0a, 0x0a, 0x0a, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x78, 0xe0, 0x1e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x86, 0x00, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x86, 0x00, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, + 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x86, 0x00, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x86, 0x00, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x86, 0x00, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x04, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0x86, 0x00, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x45, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x86, 0x00, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x85, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x86, 0x00, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, + 0x2b, 0x00, 0x00, 0x80, 0xc5, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x87, 0x00, 0x0c, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x22, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x87, 0x00, 0x0b, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x62, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x87, 0x00, 0x0a, 0x0b, 0x00, 0x00, 0x00, 0x02, + 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x23, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x87, 0x00, 0x0a, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x63, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x87, 0x00, 0x0b, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe2, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x87, 0x00, 0x0c, 0x0a, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe2, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x88, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x88, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x88, 0x00, 0x0b, 0x02, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x88, 0x00, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x88, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x88, 0x00, + 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x88, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x88, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x88, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x79, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x88, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x79, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x89, 0x00, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x1e, 0x00, 0xfc, 0xff, 0xff, + 0x01, 0x40, 0x89, 0x00, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x89, 0x00, 0x0b, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x89, 0x00, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x9e, 0x00, 0xfc, + 0xff, 0xff, 0x01, 0x50, 0x89, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x89, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x89, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x21, 0x6e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x89, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x89, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x79, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x89, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, + 0x79, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8a, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8a, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8a, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x8a, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x8a, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8a, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0xb8, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8a, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xa1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8a, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xe1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8a, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf9, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8a, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf9, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8b, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8b, 0x00, 0x01, 0x0c, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8b, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x8b, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x50, 0x8b, 0x00, 0x01, 0x0a, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8b, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8b, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8b, 0x00, + 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xe1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8b, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf9, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8b, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xf9, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, + 0x8c, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8c, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8c, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x1e, 0x00, 0xfc, 0xff, 0xff, + 0x07, 0x40, 0x8c, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8c, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8c, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x9e, 0x00, 0xfc, + 0xff, 0xff, 0x07, 0x40, 0x8c, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8c, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8c, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x61, 0x4e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8c, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x79, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8c, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x79, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8d, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x25, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8d, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8d, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8d, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x25, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8d, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8d, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8d, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0xc8, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8d, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x21, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8d, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8d, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x79, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8d, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x79, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8e, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8e, 0x00, 0x01, 0x0c, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8e, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8e, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8e, 0x00, 0x02, 0x0c, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8e, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8e, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8e, 0x00, + 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8e, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8e, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x79, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, + 0x8e, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x79, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8f, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8f, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x1e, 0x00, 0xfc, 0xff, 0xff, + 0x01, 0x40, 0x8f, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8f, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x8f, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x9e, 0x00, 0xfc, + 0xff, 0xff, 0x01, 0x40, 0x8f, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8f, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8f, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x21, 0x6e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8f, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x8f, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x79, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x8f, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, + 0x79, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x90, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x90, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x90, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe8, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x90, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x90, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x90, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe8, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x90, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x90, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x90, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xe1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x90, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xf9, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x90, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xf9, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x91, 0x00, 0x01, 0x0b, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x91, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x91, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x91, 0x00, 0x02, 0x0b, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x91, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x91, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x91, 0x00, + 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x91, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x91, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xe1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x91, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xf9, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x91, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xf9, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x92, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x1e, 0x00, 0xfc, 0xff, 0xff, + 0x01, 0x40, 0x92, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x92, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x92, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x9e, 0x00, 0xfc, + 0xff, 0xff, 0x01, 0x40, 0x92, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x92, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x92, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x21, 0x0e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x92, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x92, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x92, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, + 0x79, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x92, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x79, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x93, 0x00, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x93, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x71, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x93, 0x00, 0x01, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x93, 0x00, 0x02, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x93, 0x00, 0x02, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x71, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x93, 0x00, 0x02, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x9e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x93, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x93, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x21, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x93, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x93, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x79, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x93, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x79, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x94, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x26, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x94, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x66, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x94, 0x00, 0x0a, 0x0a, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe6, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x94, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x94, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x21, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x94, 0x00, + 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x94, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x79, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x94, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x79, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, + 0x94, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x44, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x94, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x84, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x94, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xc4, 0x65, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x70, 0x95, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x27, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x95, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x67, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x95, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe7, 0x1e, 0x00, 0xfc, + 0xff, 0xff, 0x07, 0x40, 0x95, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x95, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x95, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xe1, 0x6e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x95, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xf9, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x95, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xf9, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x95, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, + 0x47, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x95, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x87, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x95, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xc7, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x96, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x25, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x96, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x96, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe5, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x96, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0x98, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x96, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x96, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x96, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x79, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x96, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x79, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x96, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x42, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x96, 0x00, 0x1f, 0x22, 0x1f, 0x00, + 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x82, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x96, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xc2, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x97, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x24, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x97, 0x00, 0x0c, 0x0c, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x64, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x97, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe4, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x97, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x97, 0x00, + 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x97, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x97, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x79, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, + 0x97, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x79, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x97, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x40, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x97, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x80, 0x65, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x60, 0x97, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xc0, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x98, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x24, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x98, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x64, 0x1e, 0x00, 0xfc, + 0xff, 0xff, 0x01, 0x40, 0x98, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe4, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x98, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x98, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xa1, 0x4e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x98, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xe1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x98, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xf9, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x98, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x88, + 0xf9, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x98, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x41, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x98, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x81, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x98, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, + 0x00, 0xa0, 0xc1, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x99, 0x00, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x27, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x99, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x67, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x99, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x40, 0xe7, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x99, 0x00, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x99, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x21, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x99, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x99, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x79, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x99, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x79, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x99, 0x00, 0x1e, 0x22, 0x1e, 0x00, + 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x46, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x99, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x86, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x99, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xc6, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x9a, 0x00, 0x0b, 0x0b, + 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x25, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x9a, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x65, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0x9a, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe5, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x9a, 0x00, + 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x9a, 0x00, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x9a, 0x00, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xe1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x9a, 0x00, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xf9, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x9a, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xf9, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0x9a, 0x00, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x43, 0x65, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x60, 0x9a, 0x00, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x83, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x9a, 0x00, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xc3, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x9b, 0x00, 0x01, 0x44, 0x00, 0x00, 0x00, 0x04, 0x49, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x72, 0x1f, 0x00, + 0xc0, 0xff, 0x00, 0x48, 0x9b, 0x00, 0x02, 0x44, 0x00, 0x00, 0x00, 0x04, 0x49, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf2, 0x1f, 0x00, 0x80, 0xff, 0x00, 0x58, 0x9b, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x6a, 0x1f, 0x00, 0x20, 0xff, 0x00, 0x48, 0x9b, 0x00, 0x02, 0x06, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xea, + 0x1f, 0x00, 0x20, 0xff, 0x00, 0x58, 0x9c, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x9c, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x9c, 0x00, 0x0b, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x40, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x02, 0x40, 0x9c, 0x00, 0x0c, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x02, 0x40, 0x9c, 0x00, 0x0d, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x02, 0x40, 0x9d, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x9d, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x9d, 0x00, 0x0b, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x00, 0x0c, 0xe0, 0xff, 0x02, 0x40, 0x9d, 0x00, 0x0c, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x0c, 0xe0, 0xff, 0x02, 0x40, 0x9d, 0x00, 0x0d, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3c, 0x00, 0x0c, 0xe0, 0xff, 0x02, 0x40, 0x9e, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0x9f, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xa0, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xa0, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xa1, 0x00, 0x01, 0x4b, 0x00, 0x00, + 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xa2, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xa3, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xa3, 0x00, 0x01, 0x4b, + 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x78, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xa4, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xa5, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x40, 0x28, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0xa5, 0x00, + 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x40, 0xa8, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, 0xa6, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x60, 0xa6, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x70, + 0xa7, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x88, 0x00, 0x80, 0xff, 0xff, 0x00, 0x60, 0xa7, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xc8, 0x00, 0x80, 0xff, 0xff, 0x00, 0x70, 0xa8, 0x00, 0x01, 0x01, 0x01, 0x4b, 0x00, 0x02, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x88, 0x00, 0x80, 0xe0, 0xff, + 0x00, 0x80, 0xa8, 0x00, 0x01, 0x02, 0x02, 0x4b, 0x00, 0x02, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x00, 0x20, 0xc8, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0xa9, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x88, 0x00, 0x80, 0xff, 0xff, 0x00, 0x60, 0xa9, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x7f, 0xc8, 0x00, 0x80, + 0xff, 0xff, 0x00, 0x70, 0xaa, 0x00, 0x01, 0x01, 0x01, 0x4b, 0x00, 0x02, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x80, 0x20, 0x88, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x80, 0xaa, 0x00, 0x01, 0x02, 0x02, 0x4b, 0x00, 0x02, 0x03, 0x05, 0x1f, 0x00, 0x00, 0x80, 0x20, 0xc8, 0x00, 0x80, 0xe0, 0xff, 0x00, 0x90, 0xab, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x5f, 0x08, + 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xac, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0xad, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x5f, 0x08, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xae, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0xaf, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x5f, 0x48, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xb0, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0xb1, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x5f, 0x48, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xb2, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x02, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0xb3, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xbf, 0xb8, 0x00, 0xfc, 0xff, 0xff, 0x06, 0x40, 0xb3, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xbf, 0xf8, 0x00, 0xfc, 0xff, 0xff, 0x06, 0x50, 0xb4, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xbf, 0x38, 0x00, 0xfc, 0xff, 0xff, 0x06, 0x40, 0xb5, 0x00, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xbf, 0x78, 0x00, 0xfc, 0xff, 0xff, 0x06, 0x40, 0xb6, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, + 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xb6, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xb7, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xb7, 0x00, 0x02, 0x02, 0x4b, 0x00, + 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xb8, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xb8, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xb9, 0x00, 0x01, 0x01, + 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xb9, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xba, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xba, 0x00, + 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xbb, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xbb, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, + 0xbc, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xbc, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xbd, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, + 0x05, 0x60, 0xbd, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x10, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xbe, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xbe, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0x20, 0xf8, 0x00, 0xfc, + 0xe0, 0xff, 0x05, 0x70, 0xbf, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xbf, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc0, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0x60, 0xb8, + 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc0, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc1, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc1, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x20, + 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc2, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x30, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc2, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x30, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc3, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, + 0x00, 0x30, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc3, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x30, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc4, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x30, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc4, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, + 0x00, 0x00, 0x00, 0x30, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc5, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x30, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc5, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x30, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc6, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, + 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc6, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc7, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc7, 0x00, 0x02, 0x02, 0x4b, 0x00, + 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc8, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc8, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xc9, 0x00, 0x01, 0x01, + 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xc9, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x40, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xca, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xca, 0x00, + 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xcb, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xcb, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, + 0xcc, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xcc, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xcd, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, + 0x05, 0x60, 0xcd, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x50, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xce, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xce, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0x20, 0xf8, 0x00, 0xfc, + 0xe0, 0xff, 0x05, 0x70, 0xcf, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xcf, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd0, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0x60, 0xb8, + 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd0, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd1, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd1, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x60, + 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd2, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x70, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd2, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x70, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd3, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, + 0x00, 0x70, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd3, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x70, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd4, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x70, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd4, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, + 0x00, 0x00, 0x00, 0x70, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd5, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x70, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd5, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x70, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd6, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, + 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0x20, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd6, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0x20, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd7, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0xa0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd7, 0x00, 0x02, 0x02, 0x4b, 0x00, + 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0xa0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd8, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0x60, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd8, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0x60, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xd9, 0x00, 0x01, 0x01, + 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xb8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xd9, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xda, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x88, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xda, 0x00, + 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0xc8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xdb, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0x88, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xdb, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0xc8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, + 0xdc, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xa0, 0x88, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xdc, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xa0, 0xc8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xdd, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xe0, 0x88, 0x00, 0xfc, 0xe0, 0xff, + 0x05, 0x60, 0xdd, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xe0, 0xc8, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xde, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xdf, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0x08, 0x00, 0xfc, + 0xe0, 0xff, 0x05, 0x60, 0xe0, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xa0, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe1, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xe0, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe2, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x48, + 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe3, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe4, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0xa0, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe5, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, + 0xe0, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe6, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0x20, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe6, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0x20, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xe7, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, + 0x00, 0x7c, 0x60, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe7, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xe8, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0x20, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe8, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, + 0x00, 0x00, 0x00, 0xfc, 0x20, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xe9, 0x00, 0x01, 0x01, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0x60, 0x08, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x60, 0xe9, 0x00, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x46, 0x47, 0x48, 0x00, 0x00, 0x00, 0xfc, 0x60, 0x48, 0x00, 0xfc, 0xe0, 0xff, 0x05, 0x70, 0xea, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xeb, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xec, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xed, 0x00, 0x02, 0x04, 0x00, 0x00, + 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xee, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x23, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xef, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x27, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xf0, 0x00, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x2b, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xf1, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x2f, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xf2, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x10, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xf3, 0x00, + 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x14, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xf4, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x18, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, 0xf5, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xc1, 0xda, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x50, + 0xf6, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x33, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xf7, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x37, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xf8, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3b, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, + 0x0a, 0x30, 0xf9, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0xfa, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x23, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x23, 0x03, 0xd5, 0xff, 0xff, + 0xff, 0xff, 0x0a, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x23, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x23, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x21, 0x03, 0xd5, + 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x21, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x21, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x21, + 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0x02, 0x01, 0x02, 0x02, 0x04, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x30, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x0a, 0x70, 0x03, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x43, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0x04, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x47, 0xc1, 0xda, 0xe0, 0xff, 0xff, 0xff, 0x0a, 0x30, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x00, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0b, 0x5f, 0xd6, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x05, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x0f, 0x5f, 0xd6, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x05, 0x08, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x08, 0x1f, 0xd7, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x45, 0x09, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1f, 0xd7, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x45, 0x0a, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x1f, 0xd6, 0x1f, 0xfc, 0xff, 0xff, 0x0a, 0x25, 0x0b, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x0c, 0x1f, 0xd6, 0x1f, 0xfc, 0xff, 0xff, 0x0a, 0x25, 0x0c, 0x01, 0x02, 0x04, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x08, 0x3f, 0xd7, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x45, 0x0d, 0x01, 0x02, 0x04, 0x00, 0x00, + 0x00, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x3f, 0xd7, 0x00, 0xfc, 0xff, 0xff, 0x0a, 0x45, 0x0e, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x08, 0x3f, 0xd6, 0x1f, 0xfc, 0xff, 0xff, 0x0a, 0x25, 0x0f, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x0c, 0x3f, 0xd6, 0x1f, 0xfc, 0xff, 0xff, 0x0a, 0x25, 0x10, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0b, 0x9f, 0xd6, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x05, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x9f, 0xd6, 0xff, 0xff, 0xff, 0xff, 0x0a, 0x05, 0x12, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x24, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x00, 0x13, 0x01, + 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x0c, 0x70, 0x14, 0x01, 0x04, 0x04, 0x3b, 0x3e, 0x00, 0x02, 0x04, 0x0b, 0x0d, 0x00, 0x00, 0x00, 0x80, 0x91, 0x00, 0xc0, 0xc0, 0xff, 0x0c, 0x90, 0x15, 0x01, 0x04, 0x04, 0x3b, 0x3e, 0x00, 0x02, 0x04, 0x0b, 0x0d, 0x00, 0x00, 0x00, 0x80, 0xd1, 0x00, 0xc0, 0xc0, 0xff, 0x0c, 0x90, + 0x16, 0x01, 0x02, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x14, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x0c, 0x70, 0x17, 0x01, 0x02, 0x04, 0x04, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x0c, 0x70, 0x18, 0x01, 0x02, 0x04, 0x04, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xba, 0x00, 0xfc, 0xe0, 0xff, + 0x0c, 0x78, 0x19, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x1a, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x1b, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0xd9, 0x00, 0x0c, + 0xe0, 0xff, 0x0c, 0x50, 0x1c, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x1d, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x08, 0xe0, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x1e, 0x01, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x03, 0x05, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, + 0x00, 0x00, 0xc0, 0xff, 0x0c, 0x70, 0x1f, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x20, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x21, 0x01, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x20, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x0c, 0x50, 0x22, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x60, 0x23, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x44, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x60, 0x24, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, + 0x00, 0x48, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x60, 0x25, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x4c, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x70, 0x26, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x50, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x60, 0x27, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, + 0x00, 0x00, 0x00, 0x54, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x60, 0x28, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x58, 0xc0, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x60, 0x29, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x5c, 0xc0, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x04, 0x70, 0x2a, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x28, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x2a, 0x01, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xe0, 0x22, 0x45, 0x00, 0xfc, 0xff, 0xff, 0x0e, 0x60, 0x2b, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x28, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x2b, 0x01, 0x1d, 0x1d, 0x1d, 0x00, + 0x00, 0x2a, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xe4, 0x22, 0x45, 0x00, 0xfc, 0xff, 0xff, 0x0e, 0x60, 0x2c, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x28, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x2c, 0x01, 0x1d, 0x1d, 0x00, 0x00, 0x00, 0x2a, 0x2a, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x45, 0xe0, 0xff, 0xff, 0xff, 0x0e, 0x40, 0x2d, 0x01, 0x10, 0x10, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x78, 0x28, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x2d, 0x01, 0x1d, 0x1d, 0x00, 0x00, 0x00, 0x2a, 0x2a, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x20, 0x45, 0xe0, 0xff, 0xff, 0xff, 0x0e, 0x40, 0x2e, 0x01, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x28, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x2f, 0x01, + 0x0d, 0x0b, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x30, 0x01, 0x0d, 0x0b, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x5e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x31, 0x01, 0x0d, 0x0b, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x5e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, + 0x32, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x00, 0x5e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x33, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x18, 0x28, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x34, 0x01, 0x0d, 0x0d, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x5e, 0x00, 0xfc, 0xe0, 0xff, + 0x03, 0x60, 0x35, 0x01, 0x0d, 0x0d, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x50, 0x00, 0x5e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x36, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x28, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x37, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x00, 0x5e, 0x00, 0xfc, + 0xe0, 0xff, 0x03, 0x60, 0x38, 0x01, 0x0d, 0x0d, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x39, 0x01, 0x0d, 0x0d, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x84, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x3a, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xce, + 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x3b, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x88, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x3c, 0x01, 0x10, 0x10, 0x10, 0x10, 0x00, 0x2a, 0x2b, 0x2c, 0x2d, 0x00, 0x00, 0x00, 0x00, 0xce, 0x00, 0x80, 0xe0, 0xff, 0x03, 0x80, 0x3c, 0x01, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2a, 0x2a, 0x2c, 0x2b, 0x00, 0x00, 0x38, + 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x90, 0x3d, 0x01, 0x10, 0x10, 0x10, 0x10, 0x00, 0x2a, 0x2b, 0x2c, 0x2d, 0x00, 0x00, 0x00, 0x20, 0xce, 0x00, 0x80, 0xe0, 0xff, 0x03, 0x80, 0x3d, 0x01, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2a, 0x2a, 0x2c, 0x2b, 0x00, 0x00, 0x38, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x90, 0x3e, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x8c, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x3f, 0x01, 0x16, 0x16, 0x16, 0x3b, 0x00, 0x2a, 0x2b, 0x2c, 0x0b, 0x00, 0x00, 0x00, 0x80, 0xce, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x80, 0x3f, 0x01, 0x20, 0x20, 0x20, 0x6c, 0x00, 0x7a, 0x7a, 0x7b, 0x45, 0x00, 0x00, 0x34, 0xa0, 0x04, 0x00, 0xfc, 0xa0, 0xff, 0x0e, 0x80, 0x3f, 0x01, 0x1f, 0x1f, 0x1f, 0x6c, 0x00, 0x7a, 0x7a, 0x7b, + 0x45, 0x00, 0x00, 0x34, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x80, 0x3f, 0x01, 0x1e, 0x1e, 0x1e, 0x6c, 0x00, 0x7a, 0x7a, 0x7b, 0x45, 0x00, 0x00, 0x34, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0e, 0x80, 0x3f, 0x01, 0x1d, 0x1d, 0x1d, 0x6c, 0x00, 0x7a, 0x7a, 0x7b, 0x45, 0x00, 0x00, 0x34, 0x28, 0x04, 0x00, 0xfc, 0xf8, 0xff, 0x0e, 0x80, 0x40, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x41, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x42, 0x01, 0x14, 0x14, 0x14, 0x14, 0x00, 0x2a, 0x2b, 0x2c, 0x2d, 0x00, 0x00, 0x00, 0x40, 0xce, 0x00, 0x80, 0xe0, 0xff, 0x03, 0x80, 0x43, 0x01, 0x14, 0x14, 0x1b, 0x6d, + 0x00, 0x2a, 0x2b, 0x2c, 0x67, 0x00, 0x00, 0x80, 0x40, 0xce, 0x00, 0xcc, 0xe0, 0xff, 0x03, 0x80, 0x44, 0x01, 0x14, 0x14, 0x1b, 0x6d, 0x00, 0x2a, 0x2b, 0x2c, 0x67, 0x00, 0x00, 0x84, 0x40, 0xce, 0x00, 0xcc, 0xe0, 0xff, 0x03, 0x80, 0x45, 0x01, 0x14, 0x14, 0x1b, 0x6d, 0x00, 0x2a, 0x2b, 0x2c, 0x67, 0x00, 0x00, 0x88, 0x40, 0xce, 0x00, 0xcc, 0xe0, 0xff, 0x03, 0x80, 0x46, 0x01, 0x14, 0x14, + 0x1b, 0x6d, 0x00, 0x2a, 0x2b, 0x2c, 0x67, 0x00, 0x00, 0x8c, 0x40, 0xce, 0x00, 0xcc, 0xe0, 0xff, 0x03, 0x80, 0x47, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x84, 0xc0, 0xce, 0x00, 0xfc, 0xff, 0xff, 0x03, 0x40, 0x48, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc8, 0x60, 0xce, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x49, 0x01, + 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x49, 0x01, 0x6e, 0x15, 0x15, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x4a, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, + 0x4a, 0x01, 0x6e, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x03, 0x60, 0x4b, 0x01, 0x0a, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x63, 0x1e, 0x00, 0xfc, 0xff, 0xff, 0x08, 0x40, 0x4b, 0x01, 0x1e, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x8a, 0x65, 0x00, 0xe0, 0xff, 0xff, + 0x0d, 0x60, 0x4c, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x08, 0x60, 0x4d, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xec, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x08, 0x60, 0x4e, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0xc0, 0x2e, 0x00, 0xfc, + 0xe0, 0xff, 0x08, 0x60, 0x4f, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0xc0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x08, 0x60, 0x50, 0x01, 0x11, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x08, 0x40, 0x51, 0x01, 0x12, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0xa1, 0x4e, + 0x00, 0xfc, 0xff, 0xff, 0x08, 0x40, 0x52, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x9c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x52, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x9c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x52, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x9c, + 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x52, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x52, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x50, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x52, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x90, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x52, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xd0, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x53, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x53, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x94, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x53, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x53, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x53, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x53, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x54, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x54, 0x01, 0x10, 0x10, 0x10, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x54, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x54, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x54, 0x01, 0x13, 0x13, + 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x54, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x55, 0x01, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x55, 0x01, + 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x55, 0x01, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x55, 0x01, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x55, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x55, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x55, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xe0, 0x6e, 0x00, 0xfc, 0xff, 0xff, + 0x02, 0x40, 0x55, 0x01, 0x1d, 0x22, 0x1d, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x17, 0x04, 0x00, 0xe0, 0xf7, 0xff, 0x0d, 0x60, 0x55, 0x01, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x57, 0x04, 0x00, 0xe0, 0xf7, 0xff, 0x0d, 0x60, 0x55, 0x01, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x97, 0x04, 0x00, 0xe0, + 0xf7, 0xff, 0x0d, 0x60, 0x55, 0x01, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xd7, 0x04, 0x00, 0xe0, 0xf7, 0xff, 0x0d, 0x70, 0x55, 0x01, 0x01, 0x05, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x4b, 0xe0, 0x03, 0x20, 0xff, 0x00, 0x40, 0x55, 0x01, 0x02, 0x06, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xcb, + 0xe0, 0x03, 0x20, 0xff, 0x00, 0x50, 0x56, 0x01, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, + 0x60, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x60, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xa0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0xb8, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xe0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x56, 0x01, 0x1d, 0x22, 0x1d, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x16, 0x04, 0x00, 0xe0, 0xf6, 0xff, 0x0d, 0x60, 0x56, 0x01, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, + 0x00, 0x00, 0x00, 0xa0, 0x56, 0x04, 0x00, 0xe0, 0xf6, 0xff, 0x0d, 0x60, 0x56, 0x01, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x96, 0x04, 0x00, 0xe0, 0xf6, 0xff, 0x0d, 0x60, 0x56, 0x01, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xd6, 0x04, 0x00, 0xe0, 0xf6, 0xff, 0x0d, 0x70, 0x57, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x57, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x57, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x57, 0x01, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x57, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x57, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x58, 0x01, 0x0f, 0x0f, + 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x58, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x58, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x58, 0x01, + 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x58, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x58, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x59, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x59, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x59, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x59, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x59, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x59, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0xa0, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x5a, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5a, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5a, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x60, 0x2e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5a, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5a, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5a, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, + 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5b, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5b, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5b, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x14, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5b, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5b, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5b, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x14, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5c, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5c, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5c, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5c, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5c, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5c, 0x01, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x11, 0x11, + 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, + 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5d, 0x01, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, + 0x5d, 0x01, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5d, 0x01, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5d, 0x01, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, + 0x0d, 0x70, 0x5e, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x2e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xa0, 0x6e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5e, 0x01, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5e, 0x01, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, + 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5e, 0x01, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5e, 0x01, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x5f, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x2c, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x2c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x5f, 0x01, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5f, 0x01, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5f, 0x01, 0x1f, 0x1f, 0x1f, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x5f, 0x01, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x60, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x60, 0x01, 0x10, 0x10, + 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x60, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x60, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x60, 0x01, + 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x60, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x60, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x60, 0x01, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x60, 0x01, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x60, 0x01, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, + 0x0d, 0x60, 0x60, 0x01, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x61, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x61, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x20, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x61, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x61, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x61, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0xa0, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x61, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x61, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x08, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x61, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x48, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x61, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x88, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x61, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xc8, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x62, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x64, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x62, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x62, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x62, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x64, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x62, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x62, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x62, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, + 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x09, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x62, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x49, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x62, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x89, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x62, 0x01, 0x20, 0x22, 0x20, 0x20, + 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xc9, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x63, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x63, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x63, 0x01, 0x11, 0x11, + 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x63, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x63, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x63, 0x01, + 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x63, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x0a, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x63, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x4a, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, + 0x63, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x8a, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x63, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xca, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x64, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x64, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x64, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x64, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x60, 0x6e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x64, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x64, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x64, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x0b, 0x04, + 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x64, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x4b, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x64, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x8b, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x64, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0xcb, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x65, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x65, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x65, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x74, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x65, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x65, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x65, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x74, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x65, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x65, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x4c, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x65, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, + 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x8c, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x65, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xcc, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x66, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x66, 0x01, 0x10, 0x10, 0x10, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x66, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x66, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x66, 0x01, 0x13, 0x13, + 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x66, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x66, 0x01, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x0d, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x66, 0x01, + 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x4d, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x66, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x8d, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x66, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0xcd, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, + 0x67, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x67, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x67, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x67, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x67, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x67, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x68, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x68, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x68, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x2e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x68, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x68, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x68, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x7c, + 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xbc, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xbc, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0xbc, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xbc, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xbc, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0xbc, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x69, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xbc, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x6a, 0x01, 0x09, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x31, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6a, 0x01, 0x09, 0x10, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x31, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6a, 0x01, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x71, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6a, 0x01, 0x0a, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x71, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6a, 0x01, 0x0b, 0x14, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xb8, 0xb1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6b, 0x01, 0x11, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6b, 0x01, 0x12, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6b, 0x01, 0x13, 0x11, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x60, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6b, 0x01, 0x14, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x60, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6b, 0x01, 0x15, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6b, 0x01, + 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6c, 0x01, 0x11, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6c, 0x01, 0x12, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x6c, 0x01, 0x13, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6c, 0x01, 0x14, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6c, 0x01, 0x15, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, + 0x02, 0x40, 0x6c, 0x01, 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6d, 0x01, 0x11, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6d, 0x01, 0x12, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x20, 0x4e, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0x6d, 0x01, 0x13, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x60, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6d, 0x01, 0x14, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x60, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6d, 0x01, 0x15, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0xa0, 0x0e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6d, 0x01, 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6e, 0x01, 0x11, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6e, 0x01, 0x12, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, + 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6e, 0x01, 0x13, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6e, 0x01, 0x14, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6e, 0x01, 0x15, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x68, 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6e, 0x01, 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6f, 0x01, 0x0a, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6f, 0x01, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x30, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6f, 0x01, 0x0b, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6f, 0x01, 0x0b, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x6f, 0x01, 0x0c, 0x14, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xb0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x70, 0x01, 0x0a, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x70, 0x01, 0x0a, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x30, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x70, 0x01, 0x0b, 0x11, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x70, 0x01, 0x0b, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x70, 0x01, 0x0c, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xb0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x71, 0x01, 0x09, 0x0f, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x30, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x71, 0x01, 0x09, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x30, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x71, 0x01, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x70, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x71, 0x01, + 0x0a, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x70, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x71, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x72, 0x01, 0x09, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x30, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x72, 0x01, 0x09, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x30, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x72, 0x01, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x70, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x72, 0x01, 0x0a, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x70, 0x6e, 0x00, 0xfc, 0xff, 0xff, + 0x02, 0x40, 0x72, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x73, 0x01, 0x09, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x31, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x73, 0x01, 0x09, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x31, 0x4e, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0x73, 0x01, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x71, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x73, 0x01, 0x0a, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x71, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x73, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb1, 0x4e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x01, 0x09, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x31, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x01, 0x09, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x31, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x01, 0x0a, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, + 0x71, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x01, 0x0a, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x71, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x74, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x75, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0xa4, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x75, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x75, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x75, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0xa4, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x75, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x75, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x76, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x76, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x76, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x76, 0x01, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x76, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x76, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa4, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x01, 0x0f, 0x0f, + 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x01, + 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x77, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x78, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x78, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x78, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xac, 0xa0, 0x6e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x79, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x79, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x79, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7a, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7a, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7a, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, + 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7b, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7b, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7b, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x00, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7c, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7c, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7c, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7d, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7d, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7d, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7e, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7e, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7e, 0x01, 0x16, 0x14, 0x14, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7f, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7f, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x7f, 0x01, 0x16, 0x13, + 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x80, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x80, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x80, 0x01, + 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x81, 0x01, 0x12, 0x12, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x81, 0x01, 0x14, 0x14, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x81, 0x01, 0x16, 0x16, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x82, 0x01, 0x12, 0x12, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x82, 0x01, 0x14, 0x14, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x82, 0x01, 0x16, 0x16, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x83, 0x01, 0x12, 0x12, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x83, 0x01, 0x14, 0x14, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x60, 0x2e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x83, 0x01, 0x16, 0x16, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x84, 0x01, 0x12, 0x12, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x84, 0x01, 0x14, 0x14, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x60, 0x6e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x84, 0x01, 0x16, 0x16, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x85, 0x01, 0x12, 0x12, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x85, 0x01, 0x14, 0x14, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, + 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x85, 0x01, 0x16, 0x16, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x86, 0x01, 0x12, 0x12, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x86, 0x01, 0x14, 0x14, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x30, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x86, 0x01, 0x16, 0x16, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x87, 0x01, 0x12, 0x12, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x87, 0x01, 0x14, 0x14, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x30, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x87, 0x01, 0x16, 0x16, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x88, 0x01, 0x12, 0x12, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x88, 0x01, 0x14, 0x14, 0x12, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x88, 0x01, 0x16, 0x16, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x30, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x89, 0x01, 0x0f, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x89, 0x01, 0x11, 0x14, 0x14, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x89, 0x01, 0x13, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8a, 0x01, 0x10, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8a, 0x01, 0x12, 0x14, + 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8a, 0x01, 0x14, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8b, 0x01, 0x0f, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8b, 0x01, + 0x11, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8b, 0x01, 0x13, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8c, 0x01, 0x10, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x8c, 0x01, 0x12, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8c, 0x01, 0x14, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8d, 0x01, 0x0f, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x8d, 0x01, 0x11, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8d, 0x01, 0x13, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8e, 0x01, 0x10, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x20, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x8e, 0x01, 0x12, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8e, 0x01, 0x14, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8f, 0x01, 0x0f, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x20, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8f, 0x01, 0x11, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x8f, 0x01, 0x13, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x90, 0x01, 0x10, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, + 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x90, 0x01, 0x12, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x90, 0x01, 0x14, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x91, 0x01, 0x0f, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x91, 0x01, 0x11, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x61, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x91, 0x01, 0x13, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x92, 0x01, 0x10, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0x28, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x92, 0x01, 0x12, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x92, 0x01, 0x14, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x93, 0x01, 0x0f, 0x12, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x93, 0x01, 0x11, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x61, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x93, 0x01, 0x13, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x94, 0x01, 0x10, 0x12, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x94, 0x01, 0x12, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x94, 0x01, 0x14, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x95, 0x01, 0x0f, 0x12, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x95, 0x01, 0x11, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x61, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x95, 0x01, 0x13, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x96, 0x01, + 0x10, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x21, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x96, 0x01, 0x12, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x96, 0x01, 0x14, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x48, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x97, 0x01, 0x0f, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x21, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x97, 0x01, 0x11, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x61, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x97, 0x01, 0x13, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, + 0x02, 0x40, 0x98, 0x01, 0x10, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x21, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x98, 0x01, 0x12, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x98, 0x01, 0x14, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x28, 0xa1, 0x6e, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0x99, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x99, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x99, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0xa0, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9a, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9a, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9a, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, + 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9b, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9b, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9b, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0xc0, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9c, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9c, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9c, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0xc0, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9d, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9d, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9d, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9e, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9e, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9e, 0x01, 0x16, 0x14, 0x14, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9f, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9f, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x9f, 0x01, 0x16, 0x13, + 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa0, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa0, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa0, 0x01, + 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa1, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa1, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xa1, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa2, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa2, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0xa2, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa3, 0x01, 0x12, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa3, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x60, 0x2e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xa3, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa4, 0x01, 0x12, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa4, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x60, 0x6e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa4, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa5, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa5, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, + 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa6, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa6, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa7, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x90, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa7, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x90, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa8, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x90, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa8, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x90, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa9, 0x01, 0x14, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb0, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xa9, 0x01, 0x16, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb0, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xaa, 0x01, 0x14, 0x12, 0x12, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb0, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xaa, 0x01, 0x16, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb0, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xab, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xab, 0x01, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xab, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xab, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xac, 0x01, 0x11, 0x11, + 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xac, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xac, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xac, 0x01, + 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xb4, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xad, 0x01, 0x13, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x09, 0x60, 0xad, 0x01, 0x14, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x09, 0x60, + 0xae, 0x01, 0x13, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x80, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x09, 0x60, 0xae, 0x01, 0x14, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x94, 0x80, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x09, 0x60, 0xaf, 0x01, 0x13, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x9c, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x09, 0x60, 0xaf, 0x01, 0x14, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x9c, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x09, 0x60, 0xb0, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xcc, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb0, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xcc, 0x60, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xb0, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xb0, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xb0, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe0, 0x65, + 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0xb0, 0x01, 0x1e, 0x1e, 0x1e, 0x3d, 0x00, 0x2a, 0x2b, 0x2c, 0x59, 0x00, 0x00, 0x00, 0x20, 0x64, 0x00, 0xfc, 0xa0, 0xff, 0x0d, 0x80, 0xb0, 0x01, 0x1f, 0x1f, 0x1f, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x5a, 0x00, 0x00, 0x00, 0xa0, 0x64, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x80, 0xb0, 0x01, 0x20, 0x20, 0x20, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x5b, 0x00, 0x00, 0x00, + 0xe0, 0x64, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x90, 0xb1, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xcc, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb1, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xcc, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb1, 0x01, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, + 0x00, 0x20, 0x60, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xb1, 0x01, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x20, 0xa0, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xb1, 0x01, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x20, 0xe0, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0xb1, 0x01, 0x1e, 0x1e, 0x1e, 0x3d, 0x00, 0x2a, 0x2b, 0x2c, + 0x59, 0x00, 0x00, 0x04, 0x20, 0x64, 0x00, 0xfc, 0xa0, 0xff, 0x0d, 0x80, 0xb1, 0x01, 0x1f, 0x1f, 0x1f, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x5a, 0x00, 0x00, 0x04, 0xa0, 0x64, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x80, 0xb1, 0x01, 0x20, 0x20, 0x20, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x5b, 0x00, 0x00, 0x04, 0xe0, 0x64, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x90, 0xb2, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xdc, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb2, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xdc, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb2, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xdc, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb2, 0x01, 0x17, 0x17, 0x17, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb2, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb3, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb3, 0x01, 0x14, 0x14, + 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb3, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb3, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x40, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb3, 0x01, + 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb4, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb4, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xb4, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xf4, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb4, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0xc0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb4, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0xc0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, + 0x07, 0x60, 0xb5, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb5, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb5, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0x60, 0x6e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xb5, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb5, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb6, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0xa0, 0x2e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb6, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb6, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc4, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xb6, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, + 0xc0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb6, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xb7, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x30, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xb7, 0x01, 0x0a, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x30, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xb7, 0x01, 0x0a, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x30, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xb8, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xb8, 0x01, 0x0a, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xb0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xb8, 0x01, 0x0a, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xb0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xb9, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x30, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xb9, 0x01, 0x0a, 0x17, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x30, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xb9, 0x01, 0x0a, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x30, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xba, 0x01, 0x0b, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xb0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xba, 0x01, 0x0a, 0x17, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xb0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xba, 0x01, 0x0a, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xb0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xbb, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xbb, 0x01, 0x14, 0x14, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xa1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xbb, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe1, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xbb, 0x01, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf9, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xbb, 0x01, + 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf9, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xbc, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xbc, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0xbc, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xbc, 0x01, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf9, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xbc, 0x01, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf9, 0x6e, 0x00, 0xfc, 0xff, 0xff, + 0x07, 0x40, 0xbd, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xbd, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xbd, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0x60, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xbd, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xbd, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xbd, 0x01, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x40, 0x65, + 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xbd, 0x01, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x80, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xbd, 0x01, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0xc0, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0xbe, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, + 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xbe, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xbe, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xfc, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xbe, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x3c, 0xc0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xbe, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xbe, 0x01, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0x40, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xbe, 0x01, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x1c, 0x80, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xbe, 0x01, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0xc0, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0xbf, 0x01, 0x0b, 0x0b, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xa1, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0xbf, 0x01, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x02, + 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe1, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x40, 0xbf, 0x01, 0x0a, 0x0a, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf9, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xbf, 0x01, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x4c, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0xbf, 0x01, 0x1f, 0x22, 0x1f, 0x00, + 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x8c, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0xbf, 0x01, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xcc, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0xc0, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc0, 0x01, 0x14, 0x14, + 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc0, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc0, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x40, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc0, 0x01, + 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x14, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc1, 0x01, 0x14, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x78, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xc1, 0x01, 0x16, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x78, 0x61, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0xc2, 0x01, 0x14, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x78, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xc2, 0x01, 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x78, 0x61, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xc3, 0x01, 0x17, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x21, 0x0e, 0x00, 0xfc, 0xff, 0xff, + 0x07, 0x40, 0xc3, 0x01, 0x13, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xc4, 0x01, 0x18, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x21, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xc4, 0x01, 0x14, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x4e, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0xc5, 0x01, 0x13, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xc6, 0x01, 0x14, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x68, 0x61, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xc7, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0x20, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc7, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc7, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc7, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, + 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc7, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc7, 0x01, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x60, 0x40, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xc7, 0x01, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, + 0x00, 0x60, 0x80, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xc7, 0x01, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x60, 0xc0, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0xc8, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc8, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0xe4, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc8, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc8, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x40, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc8, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc8, 0x01, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x40, 0x40, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xc8, 0x01, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x40, 0x80, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xc8, 0x01, 0x6b, 0x23, 0x20, 0x20, + 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x40, 0xc0, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0xc9, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc9, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc9, 0x01, 0x16, 0x16, + 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xe4, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xc9, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0xc0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc9, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0xc0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xc9, 0x01, + 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x40, 0x40, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xc9, 0x01, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x40, 0x80, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xc9, 0x01, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x40, 0xc0, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x90, + 0xca, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xca, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xca, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xe0, 0x6e, 0x00, 0xfc, 0xff, 0xff, + 0x02, 0x40, 0xca, 0x01, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf8, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xca, 0x01, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xf8, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xca, 0x01, 0x69, 0x23, 0x1e, 0x00, 0x00, 0x4a, 0x4d, 0x2b, 0x00, 0x00, 0x10, 0x20, 0x51, 0x65, 0x10, 0xe0, + 0xff, 0xff, 0x0d, 0x60, 0xca, 0x01, 0x6a, 0x23, 0x1f, 0x00, 0x00, 0x4a, 0x4d, 0x2b, 0x00, 0x00, 0x10, 0x20, 0x91, 0x65, 0x10, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0xca, 0x01, 0x6b, 0x23, 0x20, 0x00, 0x00, 0x4a, 0x4d, 0x2b, 0x00, 0x00, 0x10, 0x20, 0xd1, 0x65, 0x10, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0xcb, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xa0, 0x0e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xcb, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xcb, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xcb, 0x01, 0x17, 0x17, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xe8, + 0xf8, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xcb, 0x01, 0x18, 0x18, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xf8, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x40, 0xcb, 0x01, 0x69, 0x23, 0x1e, 0x00, 0x00, 0x4a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0x20, 0x51, 0x65, 0x10, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0xcb, 0x01, 0x6a, 0x23, 0x1f, 0x00, 0x00, 0x4a, 0x4d, 0x2b, 0x00, 0x00, + 0x00, 0x20, 0x91, 0x65, 0x10, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0xcb, 0x01, 0x6b, 0x23, 0x20, 0x00, 0x00, 0x4a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0x20, 0xd1, 0x65, 0x10, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0xcc, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xec, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcc, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0xec, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcc, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xec, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcc, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x40, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xcc, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x40, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xcd, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xec, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcd, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xec, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcd, 0x01, 0x16, 0x16, 0x16, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xec, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcd, 0x01, 0x17, 0x17, 0x17, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xc0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xcd, 0x01, 0x18, 0x18, 0x18, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0xc0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x07, 0x60, 0xce, 0x01, 0x10, 0x10, + 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xce, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xce, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xce, 0x01, + 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcf, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcf, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xcf, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcf, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcf, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0xcf, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xcf, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd0, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x20, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xd0, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd1, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd1, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x34, 0xe0, 0x6e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, + 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x3c, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd2, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x3c, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd3, 0x01, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd3, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0x98, 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd3, 0x01, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x60, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd3, 0x01, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0x60, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd3, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa0, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd3, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd3, 0x01, 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x98, 0xe0, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, 0x0f, 0x0f, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x60, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, 0x12, 0x12, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x60, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd4, 0x01, + 0x16, 0x16, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xe0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd5, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd5, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xd5, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd5, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd5, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0xd5, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd5, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x8c, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd6, 0x01, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x20, 0x2e, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0xd6, 0x01, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xd6, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x20, 0x2a, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x40, 0xd6, 0x01, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x20, 0xaa, + 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x50, 0xd7, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd8, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd9, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x1c, + 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xd9, 0x01, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2a, 0x2a, 0x2c, 0x2b, 0x00, 0x00, 0x3c, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x90, 0xda, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xda, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, + 0x00, 0x54, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xda, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xda, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xda, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, + 0x00, 0x00, 0x00, 0x54, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xda, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xda, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x40, 0x4f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, + 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x12, 0x12, 0x6c, 0x00, + 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdb, 0x01, 0x16, 0x16, + 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x74, 0x40, 0x4f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xdc, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xdc, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xdc, 0x01, + 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xdc, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xdc, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xdc, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdc, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x64, 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xdd, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x20, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0xdd, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdd, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdd, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x60, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xdd, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdd, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdd, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0xe0, 0x4e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, + 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x54, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xde, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x54, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, + 0x00, 0x00, 0x00, 0x04, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, + 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xdf, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x40, 0x4f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe0, 0x01, 0x0f, 0x0f, 0x6c, 0x00, + 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe0, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe0, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe0, 0x01, 0x12, 0x12, + 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe0, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe0, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe0, 0x01, + 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x04, 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe1, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe1, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, + 0xe1, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe1, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe1, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0xe1, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe1, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x40, 0x4f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x08, 0x2f, 0x00, 0xfc, + 0xf8, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x10, 0x6f, + 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe2, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x14, + 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, + 0x00, 0x24, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, + 0x00, 0x00, 0x00, 0x24, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe3, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x40, 0x4f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, + 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x13, 0x13, 0x6c, 0x00, + 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe4, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x24, 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe5, 0x01, 0x0f, 0x0f, + 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe5, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe5, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe5, 0x01, + 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe5, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe5, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xe5, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x40, 0x4f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe6, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe6, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, + 0x02, 0x60, 0xe6, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe6, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe6, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x20, 0x2f, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0xe6, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe6, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x34, 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0x20, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0x20, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0x60, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, + 0x60, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe7, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x44, 0xe0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0x20, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0x20, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x44, 0x60, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0x60, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0xa0, 0x2e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0xa0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe8, 0x01, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x44, 0xe0, 0x6e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x10, 0x10, 0x6c, 0x00, + 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x13, 0x13, + 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xe9, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0x54, 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xea, 0x01, + 0x0f, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xea, 0x01, 0x10, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xea, 0x01, 0x11, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, + 0xea, 0x01, 0x12, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xea, 0x01, 0x13, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xea, 0x01, 0x14, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0xea, 0x01, 0x16, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x44, 0x40, 0x6f, 0x00, 0xfc, 0xc0, 0xff, 0x02, 0x60, 0xeb, 0x01, 0x12, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xeb, 0x01, 0x14, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x10, 0x0f, 0x00, 0xfc, + 0xf0, 0xff, 0x02, 0x60, 0xeb, 0x01, 0x16, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xec, 0x01, 0x12, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xec, 0x01, 0x14, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x10, 0x4f, + 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xec, 0x01, 0x16, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xed, 0x01, 0x12, 0x0f, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xed, 0x01, 0x14, 0x11, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, + 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xed, 0x01, 0x16, 0x13, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xee, 0x01, 0x12, 0x10, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xee, 0x01, 0x14, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, + 0x00, 0xa4, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xee, 0x01, 0x16, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x32, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xef, 0x01, 0x12, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x0f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xef, 0x01, 0x14, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, + 0x00, 0x00, 0x00, 0xa4, 0x10, 0x0f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xef, 0x01, 0x16, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x0f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf0, 0x01, 0x12, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x4f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf0, 0x01, 0x14, 0x12, 0x00, 0x00, 0x00, 0x2a, + 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x10, 0x4f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf0, 0x01, 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x4f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf1, 0x01, 0x12, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x2f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf1, 0x01, 0x14, 0x11, 0x00, 0x00, + 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x10, 0x2f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf1, 0x01, 0x16, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x2f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf2, 0x01, 0x12, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x08, 0x6f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf2, 0x01, 0x14, 0x12, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x10, 0x6f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf2, 0x01, 0x16, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x6f, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0xf3, 0x01, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xf3, 0x01, + 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf3, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xf4, 0x01, 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, + 0xf4, 0x01, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf4, 0x01, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xf5, 0x01, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, + 0x02, 0x60, 0xf5, 0x01, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf5, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xf6, 0x01, 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x08, 0x4f, 0x00, 0xfc, + 0xf8, 0xff, 0x02, 0x60, 0xf6, 0x01, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf6, 0x01, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xf7, 0x01, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x08, 0x0f, + 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xf7, 0x01, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf7, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xf8, 0x01, 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, + 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xf8, 0x01, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf8, 0x01, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xf9, 0x01, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, + 0x00, 0x94, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xf9, 0x01, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xf9, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xfa, 0x01, 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, + 0x00, 0x00, 0x00, 0x94, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xfa, 0x01, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xfa, 0x01, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x94, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xfb, 0x01, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, + 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x08, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xfb, 0x01, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x10, 0x0f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xfb, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x20, 0x0f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xfc, 0x01, 0x10, 0x12, 0x6c, 0x00, + 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x08, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xfc, 0x01, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x10, 0x4f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xfc, 0x01, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x20, 0x4f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xfd, 0x01, 0x0f, 0x12, + 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xfd, 0x01, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xfd, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0xfe, 0x01, + 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xfe, 0x01, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xfe, 0x01, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x9c, 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0xff, 0x01, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0xff, 0x01, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0xff, 0x01, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x20, 0x2f, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x00, 0x02, 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0x00, 0x02, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0x00, 0x02, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x84, 0x20, 0x6f, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x01, 0x02, 0x0f, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x08, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0x01, 0x02, 0x11, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x10, 0x2f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0x01, 0x02, 0x13, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x20, 0x2f, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x02, 0x02, 0x10, 0x12, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x08, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x60, 0x02, 0x02, 0x12, 0x14, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, 0x10, 0x6f, 0x00, 0xfc, 0xf0, 0xff, 0x02, 0x60, 0x02, 0x02, 0x14, 0x16, 0x6c, 0x00, 0x00, 0x2a, 0x2b, 0x33, 0x00, 0x00, 0x00, 0x8c, + 0x20, 0x6f, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x03, 0x02, 0x0f, 0x19, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, 0x00, 0x00, 0x00, 0x04, 0x01, 0x0e, 0x00, 0xfc, 0xe1, 0xff, 0x02, 0x60, 0x03, 0x02, 0x10, 0x19, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, 0x00, 0x00, 0x00, 0x04, 0x01, 0x4e, 0x00, 0xfc, 0xe1, 0xff, 0x02, 0x60, 0x03, 0x02, 0x11, 0x1a, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, 0x00, 0x00, + 0x00, 0x04, 0x02, 0x0e, 0x00, 0xfc, 0xe3, 0xff, 0x02, 0x60, 0x03, 0x02, 0x12, 0x1a, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, 0x00, 0x00, 0x00, 0x04, 0x02, 0x4e, 0x00, 0xfc, 0xe3, 0xff, 0x02, 0x60, 0x03, 0x02, 0x13, 0x1b, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, 0x00, 0x00, 0x00, 0x04, 0x04, 0x0e, 0x00, 0xfc, 0xe7, 0xff, 0x02, 0x60, 0x03, 0x02, 0x14, 0x1b, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, + 0x00, 0x00, 0x00, 0x04, 0x04, 0x4e, 0x00, 0xfc, 0xe7, 0xff, 0x02, 0x60, 0x03, 0x02, 0x16, 0x1c, 0x6d, 0x00, 0x00, 0x2a, 0x2b, 0x35, 0x00, 0x00, 0x00, 0x04, 0x08, 0x4e, 0x00, 0xfc, 0xef, 0xff, 0x02, 0x60, 0x03, 0x02, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00, 0x2a, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x01, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x11, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x12, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x13, 0x01, 0x00, 0x00, + 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x14, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x16, 0x02, 0x00, 0x00, 0x00, 0x2a, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x08, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x03, 0x02, 0x1d, 0x01, + 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x20, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x03, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x60, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x03, 0x02, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xa0, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x03, 0x02, + 0x20, 0x02, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x50, 0x04, 0x02, 0x19, 0x6d, 0x19, 0x6d, 0x00, 0x2a, 0x35, 0x2b, 0x36, 0x00, 0x00, 0x04, 0x01, 0x6e, 0x00, 0x84, 0xe1, 0xff, 0x02, 0x80, 0x04, 0x02, 0x1a, 0x6d, 0x1a, 0x6d, 0x00, 0x2a, 0x35, 0x2b, 0x36, 0x00, 0x00, 0x04, 0x02, 0x6e, 0x00, 0x8c, 0xe3, 0xff, 0x02, 0x80, + 0x04, 0x02, 0x1b, 0x6d, 0x1b, 0x6d, 0x00, 0x2a, 0x35, 0x2b, 0x36, 0x00, 0x00, 0x04, 0x04, 0x6e, 0x00, 0x9c, 0xe7, 0xff, 0x02, 0x80, 0x04, 0x02, 0x1c, 0x6d, 0x1c, 0x6d, 0x00, 0x2a, 0x35, 0x2b, 0x36, 0x00, 0x00, 0x04, 0x08, 0x6e, 0x00, 0xbc, 0xef, 0xff, 0x02, 0x80, 0x04, 0x02, 0x19, 0x6d, 0x01, 0x00, 0x00, 0x2a, 0x35, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x4e, 0x00, 0xfc, 0xe1, 0xff, + 0x02, 0x60, 0x04, 0x02, 0x1a, 0x6d, 0x01, 0x00, 0x00, 0x2a, 0x35, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x02, 0x4e, 0x00, 0xfc, 0xe3, 0xff, 0x02, 0x60, 0x04, 0x02, 0x1b, 0x6d, 0x01, 0x00, 0x00, 0x2a, 0x35, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x04, 0x4e, 0x00, 0xfc, 0xe7, 0xff, 0x02, 0x60, 0x04, 0x02, 0x1c, 0x6d, 0x02, 0x00, 0x00, 0x2a, 0x35, 0x04, 0x00, 0x00, 0x00, 0x1c, 0x08, 0x4e, 0x00, 0xfc, + 0xef, 0xff, 0x02, 0x60, 0x05, 0x02, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x34, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xa0, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x40, 0x05, 0x02, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x34, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xa0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x40, 0x05, 0x02, 0x1d, 0x22, 0x1d, 0x00, 0x00, 0x3e, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x05, + 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x05, 0x02, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x3e, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x05, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x05, 0x02, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x3e, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xc0, 0xa0, 0x05, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x05, 0x02, 0x20, 0x22, 0x20, 0x00, 0x00, 0x3e, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xc0, + 0xe0, 0x05, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0x05, 0x02, 0x68, 0x23, 0x21, 0x00, 0x00, 0x4a, 0x4e, 0x3c, 0x00, 0x00, 0x00, 0x40, 0x00, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x60, 0x05, 0x02, 0x68, 0x21, 0x00, 0x00, 0x00, 0x4a, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x40, 0x05, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, + 0xe0, 0x03, 0x00, 0x2a, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x40, 0x05, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xaa, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x50, 0x05, 0x02, 0x01, 0x44, 0x00, 0x00, 0x00, 0x02, 0x49, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x32, 0xe0, 0x03, 0xc0, 0xff, 0x00, 0x40, 0x05, 0x02, 0x02, 0x44, 0x00, 0x00, 0x00, 0x02, 0x49, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0xb2, 0xe0, 0x03, 0x80, 0xff, 0x00, 0x50, 0x05, 0x02, 0x09, 0x19, 0x00, 0x00, 0x00, 0x2a, 0x35, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x0a, 0x1a, 0x00, 0x00, 0x00, 0x2a, 0x35, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x0b, 0x1b, 0x00, 0x00, 0x00, 0x2a, + 0x35, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x0c, 0x1c, 0x00, 0x00, 0x00, 0x2a, 0x35, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x5e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x19, 0x01, 0x00, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x01, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x1a, 0x01, 0x00, 0x00, + 0x00, 0x35, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x02, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x04, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x1c, 0x02, 0x00, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x08, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x50, 0x05, 0x02, 0x19, 0x19, + 0x00, 0x00, 0x00, 0x35, 0x36, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x6e, 0x00, 0x84, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x1a, 0x1a, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x6e, 0x00, 0x84, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x1b, 0x1b, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x6e, 0x00, 0x84, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, + 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x35, 0x36, 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x6e, 0x00, 0x84, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x01, 0x19, 0x00, 0x00, 0x00, 0x02, 0x35, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x01, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x01, 0x1a, 0x00, 0x00, 0x00, 0x02, 0x35, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x02, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x05, 0x02, 0x01, 0x1b, 0x00, 0x00, 0x00, 0x02, 0x35, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x04, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x05, 0x02, 0x02, 0x1c, 0x00, 0x00, 0x00, 0x02, 0x35, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x08, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x50, 0x06, 0x02, 0x0f, 0x0f, 0x0f, 0x6d, 0x00, 0x2a, 0x2b, 0x2c, 0x37, 0x00, 0x00, 0x00, 0x00, 0x2e, 0x00, 0xc4, 0xe0, 0xff, + 0x02, 0x80, 0x06, 0x02, 0x10, 0x10, 0x10, 0x6d, 0x00, 0x2a, 0x2b, 0x2c, 0x37, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x00, 0x84, 0xe0, 0xff, 0x02, 0x80, 0x06, 0x02, 0x1d, 0x1d, 0x1d, 0x6c, 0x00, 0x2a, 0x2a, 0x2b, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x06, 0x02, 0x1d, 0x1d, 0x1d, 0x6c, 0x00, 0x2a, 0x2a, 0x2b, 0x3f, 0x00, 0x00, 0x00, 0x20, 0x05, 0x00, 0xe0, + 0xe0, 0xff, 0x0d, 0x80, 0x07, 0x02, 0x0f, 0x10, 0x0f, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x07, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x07, 0x02, 0x1d, 0x63, 0x1d, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x20, 0x05, + 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x07, 0x02, 0x1e, 0x64, 0x1e, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x30, 0x60, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x07, 0x02, 0x1f, 0x65, 0x1f, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x30, 0xa0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x07, 0x02, 0x20, 0x66, 0x20, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x30, + 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x07, 0x02, 0x1d, 0x67, 0x1d, 0x00, 0x00, 0x2a, 0x7d, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x08, 0x02, 0x0f, 0x10, 0x0f, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x08, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x7c, 0x2c, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x08, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x2c, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x09, 0x02, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x38, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x38, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x38, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x38, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x38, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x09, 0x02, 0x1d, 0x1d, 0x1d, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x09, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0x60, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x09, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0xa0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x09, 0x02, 0x20, 0x20, + 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x60, 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x09, 0x02, 0x68, 0x68, 0x68, 0x00, 0x00, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x40, 0x20, 0x05, 0x10, 0xfe, 0xe0, 0xff, 0x0d, 0x60, 0x0a, 0x02, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0a, 0x02, + 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0a, 0x02, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0a, 0x02, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, + 0x0a, 0x02, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0a, 0x02, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0a, 0x02, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x78, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x0a, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0a, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x60, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0a, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0xa0, 0x05, 0x00, 0xfc, + 0xe0, 0xff, 0x0d, 0x60, 0x0a, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x0a, 0x02, 0x68, 0x68, 0x68, 0x00, 0x00, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x44, 0x20, 0x05, 0x10, 0xfe, 0xe0, 0xff, 0x0d, 0x60, 0x0b, 0x02, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0e, + 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, + 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x18, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x18, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0b, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0b, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0x60, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0b, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x68, 0xa0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0b, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x0b, 0x02, 0x68, 0x68, 0x68, 0x00, 0x00, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x48, 0x20, 0x05, 0x10, 0xfe, 0xe0, 0xff, 0x0d, 0x60, 0x0c, 0x02, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x12, 0x12, 0x12, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x16, 0x16, + 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x58, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0c, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0c, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0x60, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0c, 0x02, + 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xa0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0c, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x0c, 0x02, 0x68, 0x68, 0x68, 0x00, 0x00, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x4c, 0x20, 0x05, 0x10, 0xfe, 0xe0, 0xff, 0x0d, 0x60, + 0x0d, 0x02, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x02, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, + 0x02, 0x60, 0x0d, 0x02, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x02, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x02, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0x80, 0x4e, 0x00, 0xfc, + 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x02, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x28, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0d, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0d, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0x60, 0x05, + 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0d, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0xa0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0d, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x0d, 0x02, 0x68, 0x68, 0x68, 0x00, 0x00, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x50, + 0x20, 0x05, 0x10, 0xfe, 0xe0, 0xff, 0x0d, 0x60, 0x0e, 0x02, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x10, 0x10, 0x10, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0x00, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x11, 0x11, 0x11, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, + 0x00, 0x68, 0x40, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x12, 0x12, 0x12, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0x40, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x13, 0x13, 0x13, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0x80, 0x0e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x14, 0x14, 0x14, 0x00, 0x00, 0x2a, 0x2b, 0x2c, + 0x00, 0x00, 0x00, 0x68, 0x80, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x16, 0x16, 0x16, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0xc0, 0x4e, 0x00, 0xfc, 0xe0, 0xff, 0x02, 0x60, 0x0e, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x20, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0e, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x60, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0e, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0xa0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x0e, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0xe0, 0x05, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x0e, 0x02, 0x68, 0x68, 0x68, 0x00, + 0x00, 0x4a, 0x4b, 0x4c, 0x00, 0x00, 0x00, 0x54, 0x20, 0x05, 0x10, 0xfe, 0xe0, 0xff, 0x0d, 0x60, 0x0f, 0x02, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x20, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x0f, 0x02, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x20, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x0f, 0x02, 0x68, 0x23, + 0x68, 0x00, 0x00, 0x4a, 0x3b, 0x4b, 0x00, 0x00, 0x00, 0x42, 0x00, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x60, 0x10, 0x02, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x10, 0x02, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x10, 0x02, + 0x11, 0x11, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x10, 0x02, 0x12, 0x12, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0x60, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x10, 0x02, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x10, 0x02, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x08, 0xa0, 0x4e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x11, 0x02, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x20, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x11, 0x02, 0x10, 0x10, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x58, 0x20, 0x4e, 0x00, 0xfc, 0xff, 0xff, + 0x02, 0x40, 0x11, 0x02, 0x1d, 0x22, 0x1d, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x1a, 0x04, 0x00, 0xe0, 0xfa, 0xff, 0x0d, 0x60, 0x11, 0x02, 0x1e, 0x22, 0x1e, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x5a, 0x04, 0x00, 0xe0, 0xfa, 0xff, 0x0d, 0x60, 0x11, 0x02, 0x1f, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x9a, 0x04, 0x00, 0xe0, + 0xfa, 0xff, 0x0d, 0x60, 0x11, 0x02, 0x20, 0x22, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xda, 0x04, 0x00, 0xe0, 0xfa, 0xff, 0x0d, 0x70, 0x12, 0x02, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xa1, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x12, 0x02, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xa1, 0x4e, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x13, 0x02, 0x13, 0x13, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xa1, 0x2e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x13, 0x02, 0x14, 0x14, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xa1, 0x6e, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x14, 0x02, 0x0f, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xe4, + 0x00, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x14, 0x02, 0x10, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x14, 0x02, 0x11, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x14, 0x02, 0x12, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, + 0x00, 0x84, 0x00, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x14, 0x02, 0x13, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x14, 0x02, 0x14, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x4f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x14, 0x02, 0x16, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, + 0x00, 0x00, 0x00, 0xe4, 0x00, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x15, 0x02, 0x11, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x15, 0x02, 0x12, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x15, 0x02, 0x13, 0x3a, 0x00, 0x00, 0x00, 0x2a, + 0x2e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x2f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x15, 0x02, 0x14, 0x3a, 0x00, 0x00, 0x00, 0x2a, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x6f, 0x00, 0xfc, 0xf8, 0xff, 0x02, 0x40, 0x16, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x70, 0x40, 0x4c, 0x00, 0xf0, 0xff, 0xff, 0x02, 0x40, 0x16, 0x02, 0x12, 0x4b, 0x00, 0x00, + 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x74, 0x40, 0x4c, 0x00, 0xf4, 0xff, 0xff, 0x02, 0x40, 0x16, 0x02, 0x14, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x78, 0x40, 0x4c, 0x00, 0xf8, 0xff, 0xff, 0x02, 0x40, 0x16, 0x02, 0x16, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x40, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x16, 0x02, 0x19, 0x6d, + 0x4b, 0x00, 0x00, 0x68, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x16, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x68, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x40, 0x40, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x16, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x68, 0x43, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x40, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x16, 0x02, + 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x68, 0x44, 0x1f, 0x00, 0x00, 0x00, 0x84, 0x40, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x17, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x69, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x17, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, + 0x17, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x40, 0x60, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x17, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x43, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x60, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x17, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x44, 0x1f, 0x00, 0x00, 0x00, 0x84, 0x60, 0x0d, 0x00, 0xfc, 0xff, 0xbf, + 0x02, 0x60, 0x18, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x6a, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x18, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x40, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x18, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x60, 0x40, 0x0d, 0x00, 0xe4, + 0xff, 0xbf, 0x02, 0x60, 0x18, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x43, 0x1f, 0x00, 0x00, 0x00, 0xa0, 0x40, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x18, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x44, 0x1f, 0x00, 0x00, 0x00, 0xa4, 0x40, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x19, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x6b, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x4c, + 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x19, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x60, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x19, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x60, 0x60, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x19, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x43, 0x1f, 0x00, 0x00, 0x00, 0xa0, + 0x60, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x19, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x44, 0x1f, 0x00, 0x00, 0x00, 0xa4, 0x60, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x1a, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x4c, 0x00, 0xf0, 0xff, 0xff, 0x02, 0x40, 0x1a, 0x02, 0x12, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x74, 0x00, 0x4c, 0x00, 0xf4, 0xff, 0xff, 0x02, 0x40, 0x1a, 0x02, 0x14, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x4c, 0x00, 0xf8, 0xff, 0xff, 0x02, 0x40, 0x1a, 0x02, 0x16, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x1a, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x68, 0x41, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x1a, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x68, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x40, 0x00, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x1a, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x68, 0x43, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x00, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x1a, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x68, + 0x44, 0x1f, 0x00, 0x00, 0x00, 0x84, 0x00, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x1b, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x69, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x1b, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x1b, 0x02, 0x1a, 0x6d, 0x4b, 0x00, + 0x00, 0x69, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x40, 0x20, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x1b, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x43, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x20, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x1b, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x69, 0x44, 0x1f, 0x00, 0x00, 0x00, 0x84, 0x20, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x1c, 0x02, 0x10, 0x4b, + 0x00, 0x00, 0x00, 0x6a, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x1c, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x1c, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x1c, 0x02, + 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x43, 0x1f, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x0d, 0x00, 0xec, 0xff, 0xbf, 0x02, 0x60, 0x1c, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x6a, 0x44, 0x1f, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x1d, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x6b, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, + 0x1d, 0x02, 0x19, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x41, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x20, 0x0d, 0x00, 0xe0, 0xff, 0xbf, 0x02, 0x60, 0x1d, 0x02, 0x1a, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x42, 0x1f, 0x00, 0x00, 0x00, 0x60, 0x20, 0x0d, 0x00, 0xe4, 0xff, 0xbf, 0x02, 0x60, 0x1d, 0x02, 0x1b, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x43, 0x1f, 0x00, 0x00, 0x00, 0xa0, 0x20, 0x0d, 0x00, 0xec, 0xff, 0xbf, + 0x02, 0x60, 0x1d, 0x02, 0x1c, 0x6d, 0x4b, 0x00, 0x00, 0x6b, 0x44, 0x1f, 0x00, 0x00, 0x00, 0xa4, 0x20, 0x0d, 0x00, 0xfc, 0xff, 0xbf, 0x02, 0x60, 0x1e, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x68, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x4d, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x1f, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x69, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x4d, 0x00, 0xfc, + 0xff, 0xff, 0x02, 0x40, 0x20, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x6a, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x40, 0x4d, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x21, 0x02, 0x10, 0x4b, 0x00, 0x00, 0x00, 0x6b, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x60, 0x4d, 0x00, 0xfc, 0xff, 0xff, 0x02, 0x40, 0x22, 0x02, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x03, 0x04, + 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x22, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x43, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x22, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x83, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x22, 0x02, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0xc3, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x23, 0x02, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x14, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x23, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x54, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x23, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, + 0x00, 0x80, 0x94, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x23, 0x02, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xd4, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x24, 0x02, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x17, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x24, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, + 0x2b, 0x00, 0x00, 0x80, 0x57, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x24, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x97, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x24, 0x02, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xd7, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x25, 0x02, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x2a, + 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x15, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x25, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x55, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x25, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x95, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x25, 0x02, 0x20, 0x22, 0x20, 0x20, + 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xd5, 0x04, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x26, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x40, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x26, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0x80, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0x26, 0x02, 0x20, 0x20, + 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x0c, 0xc0, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x70, 0x27, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x43, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x27, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x83, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x27, 0x02, + 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xc3, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x28, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x4c, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0x28, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x8c, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, + 0x28, 0x02, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0xcc, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x90, 0x29, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x40, 0x60, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x29, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x40, 0xa0, 0x65, 0x00, 0xe0, 0xe0, 0xff, + 0x0d, 0x80, 0x29, 0x02, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x40, 0xe0, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0x2a, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x60, 0x60, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x2a, 0x02, 0x1f, 0x22, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x60, 0xa0, 0x65, 0x00, 0xe0, + 0xe0, 0xff, 0x0d, 0x80, 0x2a, 0x02, 0x20, 0x22, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x60, 0xe0, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0x2b, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0x42, 0x80, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x2c, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x42, 0x80, 0x25, + 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x2d, 0x02, 0x68, 0x21, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0x42, 0x00, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x80, 0x2e, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x40, 0xc0, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x88, 0x2f, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x42, + 0x40, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x88, 0x30, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0x42, 0xc0, 0x25, 0x10, 0xc2, 0xf0, 0xff, 0x0d, 0x88, 0x31, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0x42, 0xc0, 0x25, 0x10, 0xc2, 0xf0, 0xff, 0x0d, 0x88, 0x32, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, + 0x10, 0x40, 0xc0, 0x25, 0x10, 0xc2, 0xf0, 0xff, 0x0d, 0x88, 0x33, 0x02, 0x68, 0x23, 0x21, 0x00, 0x00, 0x4a, 0x4e, 0x3c, 0x00, 0x00, 0x00, 0x40, 0x40, 0x25, 0x10, 0xc2, 0xe0, 0xff, 0x0d, 0x68, 0x34, 0x02, 0x68, 0x2b, 0x00, 0x00, 0x00, 0x4a, 0x53, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x25, 0x10, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x35, 0x02, 0x68, 0x2b, 0x00, 0x00, 0x00, 0x4a, 0x53, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x19, 0x25, 0x10, 0xfc, 0xff, 0xff, 0x0d, 0x48, 0x36, 0x02, 0x68, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x18, 0x25, 0xf0, 0xff, 0xff, 0xff, 0x0d, 0x20, 0x37, 0x02, 0x68, 0x21, 0x68, 0x00, 0x00, 0x4a, 0x4b, 0x4a, 0x00, 0x00, 0x00, 0xc0, 0x58, 0x25, 0x10, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0x38, 0x02, 0x68, 0x21, 0x68, 0x00, 0x00, 0x4a, + 0x4b, 0x4a, 0x00, 0x00, 0x00, 0xc4, 0x19, 0x25, 0x10, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0x39, 0x02, 0x68, 0x22, 0x68, 0x00, 0x00, 0x4a, 0x4e, 0x4b, 0x00, 0x00, 0x10, 0x40, 0x10, 0x25, 0x10, 0xc2, 0xff, 0xff, 0x0d, 0x60, 0x3a, 0x02, 0x68, 0x22, 0x68, 0x00, 0x00, 0x4a, 0x4e, 0x4b, 0x00, 0x00, 0x10, 0x40, 0x90, 0x25, 0x10, 0xc2, 0xff, 0xff, 0x0d, 0x60, 0x3b, 0x02, 0x68, 0x23, 0x68, 0x00, + 0x00, 0x4a, 0x4e, 0x4b, 0x00, 0x00, 0x00, 0x40, 0x50, 0x25, 0x10, 0xc2, 0xff, 0xff, 0x0d, 0x68, 0x3c, 0x02, 0x68, 0x23, 0x68, 0x00, 0x00, 0x4a, 0x4e, 0x4b, 0x00, 0x00, 0x00, 0x40, 0xd0, 0x25, 0x10, 0xc2, 0xff, 0xff, 0x0d, 0x68, 0x3d, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x00, 0xc0, 0x00, 0x25, 0x10, 0xc2, 0xf0, 0xff, 0x0d, 0x80, 0x3e, 0x02, 0x68, 0x23, + 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4c, 0x00, 0x10, 0xc0, 0x00, 0x25, 0x10, 0xc2, 0xf0, 0xff, 0x0d, 0x80, 0x3f, 0x02, 0x68, 0x23, 0x68, 0x68, 0x00, 0x4a, 0x4e, 0x4b, 0x4a, 0x00, 0x00, 0x40, 0x18, 0x25, 0x10, 0xc2, 0xff, 0xff, 0x0d, 0x80, 0x40, 0x02, 0x68, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x19, 0x25, 0xf0, 0xff, 0xff, 0xff, 0x0d, 0x20, 0x41, 0x02, + 0x68, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x28, 0x25, 0x1f, 0xfe, 0xff, 0xff, 0x0d, 0x20, 0x42, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x2c, 0x25, 0xff, 0xff, 0xff, 0xff, 0x0d, 0x00, 0x43, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xa0, 0x00, 0x24, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x88, + 0x43, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xa0, 0x40, 0x24, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x43, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xa0, 0x80, 0x24, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x43, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xa0, 0xc0, 0x24, 0x00, 0xe0, 0xe0, 0xff, + 0x0d, 0x98, 0x44, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0xa0, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x44, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0xa0, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x44, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0xa0, 0x80, 0x24, 0x10, 0xe0, + 0xe0, 0xff, 0x0d, 0x88, 0x44, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0xa0, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x45, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x45, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x40, 0x24, + 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x45, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x45, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x46, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x80, + 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x46, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x80, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x46, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x80, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x46, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, + 0x10, 0x80, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x47, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x80, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x47, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x80, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x47, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2c, + 0x2b, 0x00, 0x00, 0x80, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x47, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x80, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x48, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x80, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x48, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, + 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x80, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x48, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x80, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x48, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x80, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x49, 0x02, 0x68, 0x23, 0x1d, 0x1d, + 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x00, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x49, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x00, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x49, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x00, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x49, 0x02, 0x6b, 0x23, + 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x00, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x4a, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4a, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4a, 0x02, + 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4a, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x4b, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x00, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, + 0x4b, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x00, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4b, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x00, 0x80, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4b, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x10, 0x00, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, + 0x0d, 0x98, 0x4c, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4c, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x00, 0x40, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x88, 0x4c, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x00, 0x80, 0x24, 0x10, 0xe0, + 0xe0, 0xff, 0x0d, 0x88, 0x4c, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2c, 0x2b, 0x00, 0x00, 0x00, 0xc0, 0x24, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x98, 0x4d, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x60, 0x40, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x4d, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x60, 0x80, 0x65, + 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x4d, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x60, 0xc0, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0x4e, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xc0, 0x40, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x4e, 0x02, 0x6a, 0x23, 0x1f, 0x1f, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xc0, + 0x80, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0x4e, 0x02, 0x6b, 0x23, 0x20, 0x20, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xc0, 0xc0, 0x65, 0x10, 0xe0, 0xe0, 0xff, 0x0d, 0x90, 0x4f, 0x02, 0x1d, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0x24, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x4f, 0x02, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x64, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x4f, 0x02, 0x1f, 0x01, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xa4, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x40, 0x4f, 0x02, 0x20, 0x02, 0x00, 0x00, 0x00, 0x2a, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x38, 0xe4, 0x05, 0x00, 0xfc, 0xff, 0xff, 0x0d, 0x50, 0x50, 0x02, 0x1d, 0x22, 0x01, 0x00, 0x00, 0x2a, 0x4d, 0x2b, + 0x00, 0x00, 0x00, 0xa0, 0x28, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x50, 0x02, 0x1e, 0x22, 0x01, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x68, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x50, 0x02, 0x1f, 0x22, 0x01, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xa8, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x50, 0x02, 0x20, 0x22, 0x02, 0x00, 0x00, 0x2a, + 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0xe8, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x51, 0x02, 0x1f, 0x24, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0x80, 0xa1, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0x51, 0x02, 0x20, 0x24, 0x20, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0x80, 0xe1, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x70, 0x52, 0x02, 0x1d, 0x23, 0x50, 0x00, + 0x00, 0x68, 0x4d, 0x55, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x52, 0x02, 0x1f, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x75, 0x00, 0x00, 0x00, 0x40, 0x00, 0x84, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x60, 0x52, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x76, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc4, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x70, 0x52, 0x02, 0x2c, 0x23, + 0x50, 0x00, 0x00, 0x61, 0x4d, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0x52, 0x02, 0x57, 0x60, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x52, 0x02, 0x5b, 0x60, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x55, 0x00, 0x00, 0x00, 0x80, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x53, 0x02, + 0x1e, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x40, 0xa0, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x53, 0x02, 0x1f, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x75, 0x00, 0x00, 0x00, 0x40, 0x80, 0x84, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x60, 0x53, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x76, 0x00, 0x00, 0x00, 0x40, 0x80, 0xc4, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x70, + 0x53, 0x02, 0x2d, 0x23, 0x50, 0x00, 0x00, 0x62, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0x53, 0x02, 0x58, 0x60, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x71, 0x00, 0x00, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x53, 0x02, 0x5c, 0x60, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x71, 0x00, 0x00, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, + 0x0f, 0x60, 0x54, 0x02, 0x1f, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x72, 0x00, 0x00, 0x00, 0x40, 0x40, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x54, 0x02, 0x1f, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x75, 0x00, 0x00, 0x00, 0x40, 0x00, 0x85, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x60, 0x54, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x76, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc5, 0x00, 0xe0, + 0xa0, 0xff, 0x0d, 0x70, 0x54, 0x02, 0x2e, 0x23, 0x50, 0x00, 0x00, 0x63, 0x4d, 0x72, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0x54, 0x02, 0x59, 0x60, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x72, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x54, 0x02, 0x5d, 0x60, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x72, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xa0, + 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x55, 0x02, 0x20, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x73, 0x00, 0x00, 0x00, 0x40, 0xe0, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0x55, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x76, 0x00, 0x00, 0x00, 0x40, 0x80, 0xc5, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x70, 0x55, 0x02, 0x2f, 0x23, 0x50, 0x00, 0x00, 0x64, 0x4d, 0x73, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x70, 0x55, 0x02, 0x5a, 0x60, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x73, 0x00, 0x00, 0x00, 0x60, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x70, 0x55, 0x02, 0x5e, 0x60, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x73, 0x00, 0x00, 0x00, 0xe0, 0x00, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x70, 0x56, 0x02, 0x1e, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x55, 0x00, 0x00, + 0x00, 0x40, 0xc0, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x56, 0x02, 0x1f, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x60, 0x56, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x70, 0x57, 0x02, 0x20, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, + 0x00, 0x00, 0x00, 0x40, 0x00, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x57, 0x02, 0x1f, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x40, 0x20, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x57, 0x02, 0x1f, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x75, 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x60, 0x57, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, + 0x4d, 0x76, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc4, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x70, 0x58, 0x02, 0x20, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x72, 0x00, 0x00, 0x00, 0x40, 0x80, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0x58, 0x02, 0x20, 0x23, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0xe0, 0xa0, 0xff, 0x0d, 0x70, 0x59, 0x02, 0x1d, 0x21, 0x50, 0x00, + 0x00, 0x68, 0x4d, 0x55, 0x00, 0x00, 0x00, 0x40, 0x00, 0xe4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x59, 0x02, 0x1f, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x77, 0x00, 0x00, 0x00, 0x80, 0x40, 0xe4, 0x00, 0xa0, 0xe0, 0xff, 0x0d, 0x60, 0x59, 0x02, 0x20, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x78, 0x00, 0x00, 0x00, 0x80, 0x00, 0xe4, 0x00, 0xa0, 0xe0, 0xff, 0x0d, 0x70, 0x59, 0x02, 0x2c, 0x21, + 0x50, 0x00, 0x00, 0x61, 0x4d, 0x55, 0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0x59, 0x02, 0x57, 0x5f, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x55, 0x00, 0x00, 0x00, 0x00, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x59, 0x02, 0x5b, 0x5f, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x55, 0x00, 0x00, 0x00, 0x80, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x5a, 0x02, + 0x1e, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x40, 0xa0, 0xe4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x5a, 0x02, 0x20, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x78, 0x00, 0x00, 0x00, 0x80, 0x80, 0xe4, 0x00, 0xa0, 0xe0, 0xff, 0x0d, 0x60, 0x5a, 0x02, 0x20, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x78, 0x00, 0x00, 0x00, 0x80, 0x80, 0xe4, 0x00, 0xa0, 0xe0, 0xff, 0x0d, 0x70, + 0x5a, 0x02, 0x2d, 0x21, 0x50, 0x00, 0x00, 0x62, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x00, 0x60, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0x5a, 0x02, 0x58, 0x5f, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x71, 0x00, 0x00, 0x00, 0x20, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x5a, 0x02, 0x5c, 0x5f, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x71, 0x00, 0x00, 0x00, 0xa0, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, + 0x0f, 0x60, 0x5a, 0x02, 0x1f, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x77, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe4, 0x00, 0xa0, 0xe0, 0xff, 0x0f, 0x60, 0x5b, 0x02, 0x1f, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x72, 0x00, 0x00, 0x00, 0x40, 0x40, 0xe5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x5b, 0x02, 0x1f, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x77, 0x00, 0x00, 0x00, 0x80, 0x40, 0xe5, 0x00, 0xa0, + 0xe0, 0xff, 0x0d, 0x60, 0x5b, 0x02, 0x20, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x78, 0x00, 0x00, 0x00, 0x80, 0x00, 0xe5, 0x00, 0xa0, 0xe0, 0xff, 0x0d, 0x70, 0x5b, 0x02, 0x2e, 0x21, 0x50, 0x00, 0x00, 0x63, 0x4d, 0x72, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0x5b, 0x02, 0x59, 0x5f, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x72, 0x00, 0x00, 0x00, 0x40, 0x20, 0xa0, + 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x5b, 0x02, 0x5d, 0x5f, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x72, 0x00, 0x00, 0x00, 0xc0, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x60, 0x5c, 0x02, 0x20, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x73, 0x00, 0x00, 0x00, 0x40, 0xe0, 0xe5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0x5c, 0x02, 0x20, 0x21, 0x52, 0x00, 0x00, 0x68, 0x4d, 0x78, 0x00, 0x00, 0x00, 0x80, + 0x80, 0xe5, 0x00, 0xa0, 0xe0, 0xff, 0x0d, 0x70, 0x5c, 0x02, 0x2f, 0x21, 0x50, 0x00, 0x00, 0x64, 0x4d, 0x73, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x70, 0x5c, 0x02, 0x5a, 0x5f, 0x50, 0x00, 0x00, 0x87, 0x6c, 0x73, 0x00, 0x00, 0x00, 0x60, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x70, 0x5c, 0x02, 0x5e, 0x5f, 0x50, 0x00, 0x00, 0x8a, 0x6c, 0x73, 0x00, 0x00, + 0x00, 0xe0, 0x20, 0xa0, 0x00, 0xe0, 0xe0, 0xff, 0x0f, 0x70, 0x5d, 0x02, 0x1d, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x55, 0x00, 0x00, 0x00, 0x60, 0x00, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x5e, 0x02, 0x1e, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x60, 0xa0, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x5f, 0x02, 0x1f, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x72, + 0x00, 0x00, 0x00, 0x60, 0x40, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0x60, 0x02, 0x20, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x73, 0x00, 0x00, 0x00, 0x60, 0xe0, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0x61, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x61, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, + 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x61, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x61, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x62, 0x02, 0x68, 0x02, 0x02, 0x00, + 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x10, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x62, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x10, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x62, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x10, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x62, 0x02, 0x6b, 0x02, + 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x10, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x63, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x14, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x63, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x14, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x63, 0x02, + 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x14, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x63, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x14, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x64, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x14, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, + 0x64, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x14, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x64, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x14, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x64, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x14, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, + 0x0e, 0x78, 0x65, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x18, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x65, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x18, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x65, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x18, 0xa0, 0x25, 0x10, 0xfc, + 0xe0, 0xff, 0x0e, 0x78, 0x65, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x18, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x66, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x66, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0x60, 0x25, + 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x66, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x66, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x18, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x67, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1c, + 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x67, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1c, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x67, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1c, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x67, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, + 0x00, 0x1c, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x68, 0x02, 0x68, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x1c, 0x20, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x68, 0x02, 0x69, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x1c, 0x60, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x68, 0x02, 0x6a, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, + 0x00, 0x00, 0x10, 0x1c, 0xa0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x68, 0x02, 0x6b, 0x02, 0x02, 0x00, 0x00, 0x4a, 0x04, 0x07, 0x00, 0x00, 0x10, 0x1c, 0xe0, 0x25, 0x10, 0xfc, 0xe0, 0xff, 0x0e, 0x78, 0x69, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0x00, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x69, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, + 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0x40, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x69, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0x80, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x69, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x70, 0xc0, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0x6a, 0x02, 0x1d, 0x1d, 0x1d, 0x00, + 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x00, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x6a, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x40, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x6a, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0x80, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x6a, 0x02, 0x20, 0x20, + 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x74, 0xc0, 0x44, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0x6b, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x6b, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0x40, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0x6c, 0x02, + 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x6c, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x40, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0x6d, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0x80, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, + 0x6d, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0xc0, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0x6e, 0x02, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0x80, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x6e, 0x02, 0x20, 0x20, 0x20, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd4, 0xc0, 0x45, 0x00, 0xfc, 0xe0, 0xff, + 0x0e, 0x70, 0x6f, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x20, 0x45, 0x10, 0xe0, 0xe0, 0xff, 0x0e, 0x88, 0x6f, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x60, 0x45, 0x10, 0xe0, 0xe0, 0xff, 0x0e, 0x88, 0x70, 0x02, 0x68, 0x23, 0x1d, 0x1d, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x80, 0x20, 0x45, 0x10, 0xe0, + 0xe0, 0xff, 0x0e, 0x88, 0x70, 0x02, 0x69, 0x23, 0x1e, 0x1e, 0x00, 0x4a, 0x4d, 0x2b, 0x2c, 0x00, 0x10, 0x80, 0x60, 0x45, 0x10, 0xe0, 0xe0, 0xff, 0x0e, 0x88, 0x71, 0x02, 0x1f, 0x23, 0x1f, 0x1f, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xc0, 0xa0, 0x45, 0x00, 0xe0, 0xe0, 0xff, 0x0e, 0x80, 0x71, 0x02, 0x20, 0x23, 0x20, 0x20, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0xc0, 0xe0, 0x45, + 0x00, 0xe0, 0xe0, 0xff, 0x0e, 0x90, 0x72, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xa0, 0x20, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x47, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x74, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x46, + 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x75, 0x02, 0x02, 0x3b, 0x00, 0x00, 0x00, 0x02, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x58, 0xbf, 0x04, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x50, 0x76, 0x02, 0x27, 0x22, 0x22, 0x1f, 0x00, 0x40, 0x4d, 0x4f, 0x2b, 0x00, 0x00, 0x00, 0x90, 0xc0, 0x1c, 0x00, 0xff, 0xff, 0x0f, 0x80, 0x77, 0x02, 0x27, 0x22, 0x22, 0x1f, 0x00, 0x40, 0x4d, 0x4f, 0x2b, 0x00, + 0x00, 0x00, 0x91, 0xc0, 0x1c, 0x00, 0xff, 0xff, 0x0f, 0x80, 0x78, 0x02, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xc0, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x20, 0x79, 0x02, 0x27, 0x22, 0x22, 0x1f, 0x1f, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x80, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7a, 0x02, 0x27, 0x22, 0x22, 0x1f, 0x1f, 0x5e, 0x4d, 0x4f, + 0x2b, 0x2c, 0x10, 0x00, 0x80, 0x80, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7b, 0x02, 0x27, 0x22, 0x22, 0x1e, 0x1e, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0x81, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7c, 0x02, 0x27, 0x22, 0x22, 0x1e, 0x1e, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x10, 0x00, 0x80, 0x81, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7d, 0x02, 0x27, 0x22, 0x22, 0x1d, 0x1d, 0x5e, + 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0xa0, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7d, 0x02, 0x28, 0x22, 0x22, 0x1e, 0x1e, 0x5f, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0xc0, 0xa0, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xb0, 0x7e, 0x02, 0x27, 0x22, 0x22, 0x1d, 0x1d, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x10, 0x00, 0x80, 0xa0, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7e, 0x02, 0x28, 0x22, 0x22, 0x1e, + 0x1e, 0x5f, 0x4d, 0x4f, 0x2b, 0x2c, 0x10, 0x00, 0xc0, 0xa0, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xb0, 0x7f, 0x02, 0x27, 0x22, 0x22, 0x1d, 0x1d, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0xa0, 0xa1, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x7f, 0x02, 0x28, 0x22, 0x22, 0x1e, 0x1e, 0x5f, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0xe0, 0xa1, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xb0, 0x80, 0x02, 0x27, 0x22, + 0x22, 0x1d, 0x1d, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x10, 0x00, 0xa0, 0xa1, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x80, 0x02, 0x28, 0x22, 0x22, 0x1e, 0x1e, 0x5f, 0x4d, 0x4f, 0x2b, 0x2c, 0x10, 0x00, 0xe0, 0xa1, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xb0, 0x81, 0x02, 0x27, 0x22, 0x22, 0x1d, 0x1d, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0x80, 0xa1, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x82, 0x02, + 0x27, 0x22, 0x22, 0x1d, 0x1d, 0x5e, 0x4d, 0x4f, 0x2b, 0x2c, 0x00, 0x00, 0xa0, 0xa0, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0xa0, 0x83, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x84, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, + 0x85, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x86, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x87, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, + 0x0d, 0x70, 0x88, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x88, 0x02, 0x1e, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc0, 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x89, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0xb0, 0x04, 0x00, 0xfc, + 0xf0, 0xff, 0x0d, 0x70, 0x89, 0x02, 0x1f, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc0, 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x8a, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x8a, 0x02, 0x20, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc0, 0xf0, 0x04, + 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x8b, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe4, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x8c, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe4, 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x8c, 0x02, 0x1e, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc4, + 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x8d, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xe4, 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x8d, 0x02, 0x1f, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc4, 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x8e, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, + 0x00, 0xe4, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x8e, 0x02, 0x20, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc4, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x8f, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf0, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x8f, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, + 0x54, 0x00, 0x00, 0xf0, 0x20, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x90, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf0, 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x90, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf0, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x90, 0x02, 0x1e, 0x2b, 0x46, 0x00, 0x00, 0x2a, + 0x53, 0x54, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x91, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf0, 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x91, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf0, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x91, 0x02, 0x1f, 0x2b, 0x46, 0x00, + 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc0, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x92, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x92, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf0, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x92, 0x02, 0x20, 0x2b, + 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x93, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf8, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x93, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf8, 0x20, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x94, 0x02, + 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf8, 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x94, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf8, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x94, 0x02, 0x1e, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc8, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, + 0x95, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf8, 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x95, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf8, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x95, 0x02, 0x1f, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc8, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, + 0x0d, 0x60, 0x96, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x96, 0x02, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x02, 0x02, 0x53, 0x54, 0x00, 0x00, 0xf8, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x80, 0x96, 0x02, 0x20, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc8, 0xe0, 0x04, 0x00, 0xfc, + 0xf0, 0xff, 0x0d, 0x60, 0x97, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x97, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, 0x20, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x98, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, 0x70, 0x04, + 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x98, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x98, 0x02, 0x1e, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc4, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x99, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, + 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x99, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x99, 0x02, 0x1f, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc4, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9a, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, + 0x00, 0xf4, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x9a, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xf4, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9a, 0x02, 0x20, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xc4, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9b, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, + 0x00, 0x00, 0x00, 0xfc, 0x30, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x9b, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0x20, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9c, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0x70, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x9c, 0x02, 0x01, 0x2b, 0x46, 0x00, 0x00, 0x02, + 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9c, 0x02, 0x1e, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xcc, 0x60, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9d, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0xb0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x9d, 0x02, 0x01, 0x2b, 0x46, 0x00, + 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9d, 0x02, 0x1f, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xcc, 0xa0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9e, 0x02, 0x02, 0x2b, 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0xf0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x70, 0x9e, 0x02, 0x01, 0x2b, + 0x46, 0x00, 0x00, 0x02, 0x53, 0x54, 0x00, 0x00, 0x00, 0xfc, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9e, 0x02, 0x20, 0x2b, 0x46, 0x00, 0x00, 0x2a, 0x53, 0x54, 0x00, 0x00, 0x00, 0xcc, 0xe0, 0x04, 0x00, 0xfc, 0xf0, 0xff, 0x0d, 0x60, 0x9f, 0x02, 0x02, 0x24, 0x68, 0x00, 0x00, 0x02, 0x4d, 0x4b, 0x00, 0x00, 0x20, 0x80, 0x20, 0x25, 0x20, 0xe2, 0xff, 0xff, 0x0d, 0x70, 0x9f, 0x02, + 0x02, 0x24, 0x69, 0x00, 0x00, 0x02, 0x4d, 0x4b, 0x00, 0x00, 0x20, 0x80, 0x60, 0x25, 0x20, 0xe2, 0xff, 0xff, 0x0d, 0x70, 0x9f, 0x02, 0x02, 0x24, 0x6a, 0x00, 0x00, 0x02, 0x4d, 0x4b, 0x00, 0x00, 0x20, 0x80, 0xa0, 0x25, 0x20, 0xe2, 0xff, 0xff, 0x0d, 0x70, 0x9f, 0x02, 0x02, 0x24, 0x6b, 0x00, 0x00, 0x02, 0x4d, 0x4b, 0x00, 0x00, 0x20, 0x80, 0xe0, 0x25, 0x20, 0xe2, 0xff, 0xff, 0x0d, 0x70, + 0xa0, 0x02, 0x02, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x2c, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa0, 0x02, 0x02, 0x69, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x6c, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa0, 0x02, 0x02, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xac, 0x25, 0x00, 0xfe, 0xff, 0xff, + 0x0d, 0x50, 0xa0, 0x02, 0x02, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xec, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa0, 0x02, 0x1e, 0x69, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6c, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa0, 0x02, 0x1f, 0x6a, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xac, 0x25, 0x00, 0xfe, + 0xff, 0xff, 0x0d, 0x40, 0xa0, 0x02, 0x20, 0x6b, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa1, 0x02, 0x02, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x2d, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa1, 0x02, 0x02, 0x69, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x6d, 0x25, + 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa1, 0x02, 0x02, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xad, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa1, 0x02, 0x02, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xed, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa1, 0x02, 0x1e, 0x69, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x6d, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa1, 0x02, 0x1f, 0x6a, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xad, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa1, 0x02, 0x20, 0x6b, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xed, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa2, 0x02, 0x02, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, + 0x00, 0x8c, 0x28, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa2, 0x02, 0x02, 0x69, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x68, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa2, 0x02, 0x02, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xa8, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa2, 0x02, 0x02, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, + 0x00, 0x00, 0x00, 0x8c, 0xe8, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa2, 0x02, 0x02, 0x68, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0x28, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa2, 0x02, 0x02, 0x69, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0x68, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa2, 0x02, 0x02, 0x6a, 0x01, 0x00, 0x00, 0x02, + 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0xa8, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa2, 0x02, 0x02, 0x6b, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0xe8, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa2, 0x02, 0x1e, 0x69, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0x68, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa2, 0x02, 0x1f, 0x6a, 0x00, 0x00, + 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa8, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa2, 0x02, 0x20, 0x6b, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe8, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa3, 0x02, 0x02, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x2a, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa3, 0x02, 0x02, 0x69, + 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x6a, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa3, 0x02, 0x02, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xaa, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa3, 0x02, 0x02, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xea, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa3, 0x02, + 0x02, 0x68, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0x2a, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa3, 0x02, 0x02, 0x69, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0x6a, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa3, 0x02, 0x02, 0x6a, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0xaa, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, + 0xa3, 0x02, 0x02, 0x6b, 0x01, 0x00, 0x00, 0x02, 0x4b, 0x02, 0x00, 0x00, 0x00, 0x88, 0xea, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x60, 0xa3, 0x02, 0x1e, 0x69, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6a, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa3, 0x02, 0x1f, 0x6a, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0x25, 0x00, 0xfe, 0xff, 0xff, + 0x0d, 0x40, 0xa3, 0x02, 0x20, 0x6b, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xea, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x02, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x29, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa4, 0x02, 0x02, 0x69, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x69, 0x25, 0x00, 0xfe, + 0xff, 0xff, 0x0d, 0x50, 0xa4, 0x02, 0x02, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xa9, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa4, 0x02, 0x02, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xe9, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa4, 0x02, 0x01, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x29, 0x25, + 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x01, 0x69, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x69, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x01, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xa9, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x01, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, + 0xe9, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x1e, 0x69, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0x69, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x1f, 0x6a, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xa9, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa4, 0x02, 0x20, 0x6b, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xe9, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x02, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x2b, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa5, 0x02, 0x02, 0x69, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x6b, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa5, 0x02, 0x02, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, + 0x00, 0x00, 0x00, 0x8c, 0xab, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa5, 0x02, 0x02, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xeb, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x50, 0xa5, 0x02, 0x01, 0x68, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x2b, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x01, 0x69, 0x00, 0x00, 0x00, 0x02, + 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0x6b, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x01, 0x6a, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xab, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x01, 0x6b, 0x00, 0x00, 0x00, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x88, 0xeb, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x1e, 0x69, 0x00, 0x00, + 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6b, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x1f, 0x6a, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xab, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa5, 0x02, 0x20, 0x6b, 0x00, 0x00, 0x00, 0x2a, 0x4b, 0x00, 0x00, 0x00, 0x00, 0x80, 0xeb, 0x25, 0x00, 0xfe, 0xff, 0xff, 0x0d, 0x40, 0xa6, 0x02, 0x30, 0x23, + 0x50, 0x00, 0x00, 0x65, 0x4d, 0x74, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0xa7, 0x02, 0x30, 0x21, 0x50, 0x00, 0x00, 0x65, 0x4d, 0x74, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x60, 0xa8, 0x02, 0x1d, 0x22, 0x2c, 0x00, 0x00, 0x2a, 0x4d, 0x61, 0x00, 0x00, 0x00, 0x00, 0x02, 0xc0, 0x10, 0x80, 0xe2, 0xff, 0x0f, 0x60, 0xa8, 0x02, + 0x2c, 0x22, 0x1d, 0x00, 0x00, 0x61, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x10, 0x80, 0xe0, 0xff, 0x0f, 0x60, 0xa9, 0x02, 0x11, 0x11, 0x11, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x66, 0x00, 0x00, 0xc4, 0x40, 0x2e, 0x00, 0xcc, 0xe0, 0xff, 0x02, 0x80, 0xa9, 0x02, 0x12, 0x12, 0x12, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x66, 0x00, 0x00, 0xc4, 0x40, 0x6e, 0x00, 0xcc, 0xe0, 0xff, 0x02, 0x80, + 0xa9, 0x02, 0x14, 0x14, 0x14, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x66, 0x00, 0x00, 0xc4, 0x80, 0x6e, 0x00, 0xcc, 0xe0, 0xff, 0x02, 0x80, 0xa9, 0x02, 0x16, 0x16, 0x16, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x66, 0x00, 0x00, 0xc4, 0xc0, 0x6e, 0x00, 0xcc, 0xe0, 0xff, 0x02, 0x80, 0xaa, 0x02, 0x11, 0x11, 0x11, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x80, 0x00, 0x00, 0xe4, 0x40, 0x2e, 0x00, 0xec, 0xe0, 0xff, + 0x02, 0x80, 0xaa, 0x02, 0x12, 0x12, 0x12, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x80, 0x00, 0x00, 0xe4, 0x40, 0x6e, 0x00, 0xec, 0xe0, 0xff, 0x02, 0x80, 0xaa, 0x02, 0x14, 0x14, 0x14, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x80, 0x00, 0x00, 0xe4, 0x80, 0x6e, 0x00, 0xec, 0xa0, 0xff, 0x02, 0x80, 0xaa, 0x02, 0x16, 0x16, 0x16, 0x3f, 0x00, 0x2a, 0x2b, 0x2c, 0x80, 0x00, 0x00, 0xe4, 0xc0, 0x6e, 0x00, 0xec, + 0xe0, 0xff, 0x02, 0x80, 0xab, 0x02, 0x3e, 0x24, 0x50, 0x00, 0x00, 0x81, 0x4d, 0x55, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x84, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xac, 0x02, 0x3e, 0x24, 0x50, 0x00, 0x00, 0x81, 0x4d, 0x71, 0x00, 0x00, 0x00, 0xc0, 0x80, 0x84, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xad, 0x02, 0x3e, 0x24, 0x50, 0x00, 0x00, 0x81, 0x4d, 0x72, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x85, + 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xae, 0x02, 0x3e, 0x24, 0x50, 0x00, 0x00, 0x81, 0x4d, 0x73, 0x00, 0x00, 0x00, 0xc0, 0x80, 0x85, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xaf, 0x02, 0x1d, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x55, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xb0, 0x02, 0x1e, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, 0x00, 0x00, 0x00, 0xc0, + 0x80, 0xa4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xb1, 0x02, 0x1f, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x72, 0x00, 0x00, 0x00, 0xc0, 0x00, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xb2, 0x02, 0x20, 0x23, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x73, 0x00, 0x00, 0x00, 0xc0, 0x80, 0xa5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0xb3, 0x02, 0x1d, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x55, 0x00, 0x00, + 0x00, 0x60, 0x00, 0xe4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xb4, 0x02, 0x1e, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x71, 0x00, 0x00, 0x00, 0x60, 0x80, 0xe4, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xb5, 0x02, 0x1f, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x72, 0x00, 0x00, 0x00, 0x60, 0x00, 0xe5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x60, 0xb6, 0x02, 0x20, 0x21, 0x50, 0x00, 0x00, 0x68, 0x4d, 0x73, + 0x00, 0x00, 0x00, 0x60, 0x80, 0xe5, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x70, 0xb7, 0x02, 0x1d, 0x24, 0x1d, 0x1d, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x2c, 0x05, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0xb8, 0x02, 0x1d, 0x3c, 0x3c, 0x00, 0x00, 0x2a, 0x79, 0x51, 0x00, 0x00, 0x00, 0x40, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1d, 0x3c, 0x01, 0x00, 0x00, 0x2a, + 0x79, 0x07, 0x00, 0x00, 0x00, 0x48, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1d, 0x01, 0x3c, 0x00, 0x00, 0x2a, 0x04, 0x51, 0x00, 0x00, 0x00, 0x44, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1d, 0x01, 0x01, 0x00, 0x00, 0x2a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x4c, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1e, 0x3c, 0x3c, 0x00, + 0x00, 0x2a, 0x79, 0x51, 0x00, 0x00, 0x00, 0x40, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1e, 0x3c, 0x01, 0x00, 0x00, 0x2a, 0x79, 0x07, 0x00, 0x00, 0x00, 0x48, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1e, 0x01, 0x3c, 0x00, 0x00, 0x2a, 0x04, 0x51, 0x00, 0x00, 0x00, 0x44, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1e, 0x01, + 0x01, 0x00, 0x00, 0x2a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x4c, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1f, 0x3c, 0x3c, 0x00, 0x00, 0x2a, 0x79, 0x51, 0x00, 0x00, 0x00, 0x40, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1f, 0x3c, 0x01, 0x00, 0x00, 0x2a, 0x79, 0x07, 0x00, 0x00, 0x00, 0x48, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, + 0x1f, 0x01, 0x3c, 0x00, 0x00, 0x2a, 0x04, 0x51, 0x00, 0x00, 0x00, 0x44, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x1f, 0x01, 0x01, 0x00, 0x00, 0x2a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x4c, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x20, 0x3c, 0x3c, 0x00, 0x00, 0x2a, 0x79, 0x51, 0x00, 0x00, 0x00, 0x40, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, + 0xb8, 0x02, 0x20, 0x3c, 0x02, 0x00, 0x00, 0x2a, 0x79, 0x07, 0x00, 0x00, 0x00, 0x48, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x20, 0x02, 0x3c, 0x00, 0x00, 0x2a, 0x04, 0x51, 0x00, 0x00, 0x00, 0x44, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0d, 0x60, 0xb8, 0x02, 0x20, 0x02, 0x02, 0x00, 0x00, 0x2a, 0x04, 0x07, 0x00, 0x00, 0x00, 0x4c, 0xe0, 0x04, 0x00, 0xfc, 0xe0, 0xff, + 0x0d, 0x60, 0xb9, 0x02, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2a, 0x2a, 0x2c, 0x2b, 0x00, 0x00, 0x3c, 0x60, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x90, 0xba, 0x02, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2a, 0x2a, 0x2c, 0x2b, 0x00, 0x00, 0x3c, 0xa0, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x90, 0xbb, 0x02, 0x20, 0x20, 0x20, 0x20, 0x00, 0x2a, 0x2a, 0x2c, 0x2b, 0x00, 0x00, 0x3c, 0xe0, 0x04, 0x00, 0xfc, + 0xe0, 0xff, 0x0e, 0x90, 0xbc, 0x02, 0x1d, 0x1d, 0x1d, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x64, 0x20, 0x04, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0xbd, 0x02, 0x20, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x68, 0xc0, 0x45, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0xbe, 0x02, 0x20, 0x1f, 0x1f, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x6c, 0xc0, 0x45, + 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x70, 0xbf, 0x02, 0x1e, 0x22, 0x1f, 0x00, 0x00, 0x2a, 0x4d, 0x2b, 0x00, 0x00, 0x00, 0xa0, 0x8a, 0x64, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x60, 0xc0, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0xf8, 0x00, 0x0c, 0xa0, 0xff, 0x0a, 0x50, 0xc0, 0x02, 0x02, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x20, 0xf8, 0x00, 0x0c, 0xa0, 0xff, 0x0a, 0x50, 0xc1, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x04, 0xa0, 0xf8, 0x00, 0x0c, 0xa0, 0xff, 0x0a, 0x50, 0xc1, 0x02, 0x02, 0x4c, 0x00, 0x00, 0x00, 0x03, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xa0, 0xf8, 0x00, 0x0c, 0xa0, 0xff, 0x0a, 0x50, 0xc2, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x30, 0x23, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0xc3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x30, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xc4, 0x02, 0x39, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xd4, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x20, 0xc5, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x31, 0x23, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0xc6, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x03, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0xc7, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x03, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0xc8, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xc9, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xca, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xcb, 0x02, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xcc, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xcd, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xce, 0x02, 0x48, 0x00, + 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xcf, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd0, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd1, 0x02, + 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd2, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd3, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, + 0xd4, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd5, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd6, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, + 0x00, 0x22, 0xd7, 0x02, 0x48, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x54, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x22, 0xd8, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x53, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xd9, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x53, 0x00, 0xfc, + 0xff, 0xff, 0x00, 0x40, 0xda, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x40, 0xd3, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0xdb, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x13, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xdc, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x13, + 0x00, 0xfc, 0xff, 0xff, 0x00, 0x40, 0xdd, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x40, 0x93, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x50, 0xde, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0xde, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x9a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0xdf, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x68, 0xdf, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x78, 0xe0, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x5a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x60, 0xe0, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x70, 0xe1, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x68, 0xe1, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x00, 0xfc, 0xe0, 0xff, 0x00, 0x78, 0xe2, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x5a, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x40, 0xe2, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xda, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x50, 0xe3, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02, + 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x7a, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x48, 0xe3, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xfa, 0xe0, 0xff, 0xe0, 0xff, 0x00, 0x58, 0xe4, 0x02, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x99, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xe4, 0x02, 0x02, 0x4b, 0x00, 0x00, + 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xe5, 0x02, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xe5, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xe6, 0x02, 0x01, 0x4b, + 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xe7, 0x02, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xe8, 0x02, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x59, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xe9, 0x02, + 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xea, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x19, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xea, 0x02, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x19, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, + 0xeb, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x59, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0xeb, 0x02, 0x01, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x59, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x40, 0xec, 0x02, 0x02, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x99, 0x00, 0x0c, 0xe0, 0xff, + 0x00, 0x50, 0xed, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x00, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0xed, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0xee, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x01, 0x65, 0x00, 0xe0, + 0xff, 0xff, 0x0d, 0x80, 0xee, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x65, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0xef, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x02, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0d, 0x80, 0xef, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x65, + 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0xf0, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x20, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xf1, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2b, 0x2c, 0x00, 0x00, 0x20, 0x20, 0x65, 0x00, 0xe0, 0xe0, 0xff, 0x0d, 0x80, 0xf2, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x30, + 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf3, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x22, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf4, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x20, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf5, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0x22, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf6, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x22, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xf7, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x24, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x00, 0xf8, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5f, 0x24, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x00, 0xf9, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x24, 0x03, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x0b, 0x00, 0xfa, 0x02, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x2a, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0x24, 0x20, 0x64, 0x00, 0xfc, 0xe0, 0xff, 0x0e, 0x60, 0xfb, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, + 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x04, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0e, 0x80, 0xfc, 0x02, 0x1e, 0x22, 0x1e, 0x1e, 0x00, 0x2a, 0x4d, 0x2a, 0x2b, 0x00, 0x00, 0x80, 0x05, 0x65, 0x00, 0xe0, 0xff, 0xff, 0x0e, 0x80, 0xfd, 0x02, 0x57, 0x61, 0x56, 0x6d, 0x00, 0x87, 0x6d, 0x2b, 0x6e, 0x00, 0x00, 0x40, 0x8c, 0xc0, 0x00, 0x7c, 0xfe, 0xff, 0x0f, 0x80, 0xfd, 0x02, 0x58, 0x61, 0x56, 0x6d, + 0x00, 0x87, 0x6d, 0x2b, 0x6e, 0x00, 0x00, 0x50, 0x8c, 0xc0, 0x00, 0x7c, 0xfe, 0xff, 0x0f, 0x80, 0xfd, 0x02, 0x59, 0x61, 0x56, 0x6d, 0x00, 0x87, 0x6d, 0x2b, 0x6e, 0x00, 0x00, 0x60, 0x8c, 0xc0, 0x00, 0x7c, 0xfe, 0xff, 0x0f, 0x80, 0xfe, 0x02, 0x57, 0x61, 0x56, 0x6d, 0x00, 0x87, 0x6d, 0x2b, 0x6e, 0x00, 0x00, 0x40, 0x8a, 0xc0, 0x00, 0x7c, 0xfe, 0xff, 0x0f, 0x80, 0xfe, 0x02, 0x58, 0x61, + 0x56, 0x6d, 0x00, 0x87, 0x6d, 0x2b, 0x6e, 0x00, 0x00, 0x50, 0x8a, 0xc0, 0x00, 0x7c, 0xfe, 0xff, 0x0f, 0x80, 0xfe, 0x02, 0x59, 0x61, 0x56, 0x6d, 0x00, 0x87, 0x6d, 0x2b, 0x6e, 0x00, 0x00, 0x60, 0x8a, 0xc0, 0x00, 0x7c, 0xfe, 0xff, 0x0f, 0x80, 0xff, 0x02, 0x57, 0x1d, 0x1d, 0x00, 0x00, 0x87, 0x2b, 0x2c, 0x00, 0x00, 0x00, 0xd0, 0x20, 0xc1, 0x00, 0xfc, 0xe0, 0xff, 0x0f, 0x60, 0xff, 0x02, + 0x5b, 0x5b, 0x00, 0x00, 0x00, 0x8a, 0x8b, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x36, 0xc1, 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x40, 0x00, 0x03, 0x57, 0x1d, 0x1d, 0x00, 0x00, 0x87, 0x2b, 0x2c, 0x00, 0x00, 0x01, 0xd0, 0x20, 0xc1, 0x01, 0xfc, 0xe0, 0xff, 0x0f, 0x60, 0x00, 0x03, 0x5b, 0x5b, 0x00, 0x00, 0x00, 0x8a, 0x8b, 0x00, 0x00, 0x00, 0x02, 0xe0, 0x36, 0xc1, 0x02, 0xfc, 0xff, 0xff, 0x0f, 0x40, + 0x01, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x4e, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x02, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x4e, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x91, 0x07, 0xd5, 0xe0, 0xff, 0xff, 0xff, + 0x00, 0x30, 0x04, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7c, 0x0e, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x05, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7d, 0x0e, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x87, 0x0e, 0xd5, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x81, 0x0e, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x08, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x09, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x20, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x0a, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x0b, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x10, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x0c, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, + 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x0d, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x10, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x0e, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x10, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x0f, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x10, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x10, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x11, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x12, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x13, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x14, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x15, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x16, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x17, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x11, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x18, 0x03, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x19, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x12, 0x20, 0x00, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x1a, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x12, 0x20, 0x00, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x1b, 0x03, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x12, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x1c, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x12, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x1d, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x12, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x1e, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x12, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x1f, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x12, 0x20, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x10, 0x30, 0x20, 0x03, 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x3c, 0xe0, 0xff, 0x00, 0x70, + 0x21, 0x03, 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x40, 0x1d, 0x00, 0x3c, 0xe0, 0xff, 0x00, 0x70, 0x22, 0x03, 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x80, 0x1d, 0x00, 0x3c, 0xe0, 0xff, 0x00, 0x70, 0x23, 0x03, 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x19, 0x00, 0x3c, 0xe0, 0xff, + 0x00, 0x70, 0x24, 0x03, 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x40, 0x19, 0x00, 0x3c, 0xe0, 0xff, 0x00, 0x70, 0x25, 0x03, 0x04, 0x04, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0x80, 0x19, 0x00, 0x3c, 0xe0, 0xff, 0x00, 0x70, 0x26, 0x03, 0x04, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x04, 0xc0, 0x19, 0x00, 0x3c, + 0xe0, 0xff, 0x00, 0x70, 0x27, 0x03, 0x04, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x44, 0xc0, 0x19, 0x00, 0x7c, 0xe0, 0xff, 0x00, 0x70, 0x28, 0x03, 0x04, 0x02, 0x02, 0x00, 0x00, 0x02, 0x04, 0x07, 0x00, 0x00, 0x00, 0x84, 0xc0, 0x19, 0x00, 0xbc, 0xe0, 0xff, 0x00, 0x70, 0x29, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x08, 0xd5, + 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x2a, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x76, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x2b, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7a, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x2c, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, + 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x2d, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x74, 0x0b, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x2e, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7a, 0x0b, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x2f, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x20, 0x7b, 0x0b, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x30, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x0b, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x31, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x71, 0x08, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x32, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x75, 0x08, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x33, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x75, 0x0b, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x34, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x35, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x78, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x36, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x78, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x37, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x78, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x38, 0x03, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0c, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x39, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x78, 0x0c, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x3a, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0e, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x3b, 0x03, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x78, 0x0e, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x3c, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x78, 0x0c, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x3d, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x78, 0x0c, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x3e, 0x03, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x78, 0x0c, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x3f, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x78, 0x0c, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x87, 0x08, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x41, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x83, 0x08, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x42, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x87, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x43, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x83, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, + 0x00, 0x30, 0x44, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x87, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x45, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x40, 0x83, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x46, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x87, 0x08, 0xd5, 0xe0, 0xff, + 0xff, 0xff, 0x00, 0x30, 0x47, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x83, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x48, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x87, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x49, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x83, 0x08, 0xd5, + 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x4a, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x87, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x4b, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x83, 0x08, 0xd5, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x30, 0x4c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x87, + 0x08, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x4d, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x83, 0x08, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x4e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x87, 0x0c, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x4f, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x83, 0x0c, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x50, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x87, 0x0e, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x51, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x83, 0x0e, 0xd5, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x52, 0x03, 0x3c, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1b, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xf9, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x50, 0x52, 0x03, 0x3c, 0x48, 0x00, 0x00, 0x00, 0x03, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x00, 0x00, 0xff, 0x00, 0x50, 0x53, 0x03, 0x3c, 0x4b, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf8, 0x00, 0x0c, 0xe0, 0xff, 0x00, 0x50, 0x54, 0x03, 0x01, 0x05, 0x00, 0x00, 0x00, 0x02, + 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x6b, 0xe0, 0x03, 0x20, 0xff, 0x00, 0x48, 0x54, 0x03, 0x02, 0x06, 0x00, 0x00, 0x00, 0x02, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xeb, 0xe0, 0x03, 0x20, 0xff, 0x00, 0x58, 0x55, 0x03, 0x01, 0x05, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x6b, 0x1f, 0x00, 0x20, 0xff, 0x00, 0x48, 0x55, 0x03, 0x02, 0x06, 0x00, 0x00, + 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xeb, 0x1f, 0x00, 0x20, 0xff, 0x00, 0x58, 0x55, 0x03, 0x03, 0x07, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x20, 0x6b, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x48, 0x55, 0x03, 0x04, 0x08, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x20, 0xeb, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x58, 0x55, 0x03, 0x03, 0x38, + 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x71, 0x1f, 0x00, 0x80, 0xff, 0x00, 0x48, 0x55, 0x03, 0x04, 0x38, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xf1, 0x1f, 0x00, 0x80, 0xff, 0x00, 0x58, 0x56, 0x03, 0x01, 0x05, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x2b, 0x1f, 0x00, 0x20, 0xff, 0x00, 0x48, 0x56, 0x03, + 0x02, 0x06, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xab, 0x1f, 0x00, 0x20, 0xff, 0x00, 0x58, 0x56, 0x03, 0x03, 0x07, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x20, 0x2b, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x48, 0x56, 0x03, 0x04, 0x08, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x20, 0xab, 0x1f, 0x00, 0xe0, 0xff, 0x00, 0x58, + 0x56, 0x03, 0x03, 0x38, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x31, 0x1f, 0x00, 0x80, 0xff, 0x00, 0x48, 0x56, 0x03, 0x04, 0x38, 0x00, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xb1, 0x1f, 0x00, 0x80, 0xff, 0x00, 0x58, +}; +u8 const Asm_arm64::raw_clobber_forms[38108] = { + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x60, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x60, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x60, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x68, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x68, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, + 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, + 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, + 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x20, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x00, 0x20, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x28, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x08, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x04, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x01, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, + 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/src/asm_tables_riscv.cpp b/src/asm_tables_riscv.cpp index 76f540513..d108305ab 100644 --- a/src/asm_tables_riscv.cpp +++ b/src/asm_tables_riscv.cpp @@ -41,22 +41,9 @@ struct Asm_riscv { enum PrefixKind : u8 { PrefixKind_None }; - static const u16 REG_CLASS_NONE = 0x000; - static const u16 REG_CLASS_GPR64 = 0x100; - static const u16 REG_CLASS_GPR32 = 0x200; - static const u16 REG_CLASS_GPR16 = 0x300; - static const u16 REG_CLASS_GPR8 = 0x400; - static const u16 REG_CLASS_GPR8H = 0x500; // AH, CH, DH, BH - legacy high byte regs - static const u16 REG_CLASS_XMM = 0x600; - static const u16 REG_CLASS_YMM = 0x700; - static const u16 REG_CLASS_ZMM = 0x800; - static const u16 REG_CLASS_K = 0x900; // opmask - static const u16 REG_CLASS_SEG = 0xA00; // segment - static const u16 REG_CLASS_CR = 0xB00; // control - static const u16 REG_CLASS_DR = 0xC00; // debug - static const u16 REG_CLASS_BND = 0xD00; // bound - static const u16 REG_CLASS_MM = 0xE00; // MMX - static const u16 REG_CLASS_ST = 0xF00; // x87 FPU + static const u16 REG_CLASS_NONE = 0x0000; + static const u16 REG_CLASS_GPR = 0x0100; // x0..x31 + static const u16 REG_CLASS_FPR = 0x0200; // f0..f31 enum Register : u16 { REG_INVALID, REG_ZERO, REG_RA, REG_SP, REG_GP, REG_TP, REG_T0, REG_T1, REG_T2, REG_S0, REG_S1, REG_A0, REG_A1, REG_A2, REG_A3, REG_A4, @@ -68,6 +55,123 @@ struct Asm_riscv { }; + enum OperandType : u8 { + OP_NONE, + OP_GPR, + OP_FPR, + OP_IMM12, + OP_IMM12U, + OP_IMM5, + OP_IMM6, + OP_IMM20, + OP_REL13, + OP_REL21, + OP_MEM, + OP_CSR, + OP_FENCE_FLAGS, + OP_ROUND_MODE, + OP_ZIMM5, + OP_GPR_C, + OP_GPR_SP, + OP_GPR_NONZERO, + OP_FPR_C, + OP_IMM_C6S, + OP_IMM_C6U, + OP_IMM_C8U, + OP_IMM_C10S, + OP_IMM_C18S, + OP_REL9, + OP_REL12, + OP_MEM_C_W, + OP_MEM_C_D, + OP_MEM_C_SP_W, + OP_MEM_C_SP_D, + }; + + + enum OperandEncoding : u8 { + ENC_NONE, + ENC_RD, + ENC_RS1, + ENC_RS2, + ENC_RS3, + ENC_SHAMT5, + ENC_SHAMT6, + ENC_IMM_I, + ENC_IMM_S, + ENC_IMM_B, + ENC_IMM_U, + ENC_IMM_J, + ENC_OFFSET_BASE_I, + ENC_OFFSET_BASE_S, + ENC_OFFSET_BASE_A, + ENC_CSR_FIELD, + ENC_ZIMM_FIELD, + ENC_FENCE_PRED, + ENC_FENCE_SUCC, + ENC_ROUND_FIELD, + ENC_AQRL, + ENC_C_RD_RS1, + ENC_C_RS2, + ENC_C_RD_PRIMED, + ENC_C_RS1_PRIMED, + ENC_C_RS2_PRIMED, + ENC_C_RD_RS1_PRIMED, + ENC_C_IMM_CI_S, + ENC_C_IMM_CI_U, + ENC_C_IMM_CIW, + ENC_C_IMM_LUI, + ENC_C_IMM_ADDI16SP, + ENC_C_IMM_CSS_W, + ENC_C_IMM_CSS_D, + ENC_C_IMM_CL_W, + ENC_C_IMM_CL_D, + ENC_C_BRANCH9, + ENC_C_BRANCH12, + ENC_C_OFFSET_BASE_W, + ENC_C_OFFSET_BASE_D, + ENC_C_SP_OFFSET_W, + ENC_C_SP_OFFSET_D, + }; + + + enum Feature : u16 { + ENC_I, + ENC_M, + ENC_A, + ENC_F, + ENC_D, + ENC_ZICSR, + ENC_ZIFENCEI, + ENC_C, + ENC_ZBA, + ENC_ZBB, + ENC_ZBC, + ENC_ZBS, + ENC_ZICOND, + ENC_ZFH, + ENC_PRIV, + }; + + typedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability + + #pragma pack(push, 1) + struct Encoding { + Mnemonic mnemonic; + OperandType ops[4]; + OperandEncoding enc[4]; + u32 bits; + u32 mask; + Feature feature; + EncodingFlags flags; + + bool has_implicit () const { return ((flags>>7u)&1) != 0; } + u8 explicit_count() const { return cast(u8)((flags>>4u)&((1u<<3)-1)); } + }; + #pragma pack(pop) + GB_STATIC_ASSERT(gb_size_of(Encoding) == 21); + + enum ClobberFlags : u8 { ClobberFlag_NV = 1<<0, // invalid operation ClobberFlag_DZ = 1<<1, // divide by zero @@ -212,6 +316,9 @@ struct Asm_riscv { ClobberFlags flags_rd_call() const { return {}; } + ClobberFlags flags_wr_call() const { + return flags_wr; + } bool implies_clobber_flags() const { return (flags_wr != 0); @@ -233,7 +340,7 @@ struct Asm_riscv { bool has_halt() const { return (cast(u16)side_effects & SideEffectFlag_TRAP) != 0; } - bool is_conditional() const { + bool is_conditional(struct Encoding const &valid_form) const { return has_control(); } bool is_nondeterministic() const { @@ -247,6 +354,19 @@ struct Asm_riscv { bool is_atomic = false; // TODO(bill): Add ATOMIC flag to SideEffectFlags in the original INSTRUCTION_TABLE return (implicit & (ClobberReg_SP)) != 0 || is_atomic; } + bool is_status_snapshot() const { + // RiscV64 has no architectural condition flags: branches compare two GPRs + // directly (beq/bltu/…) and slt/sltu materialise a 0/1 into a GPR, so nothing + // ever consumes status as an implicit condition — flags_rd_call() is always + // empty and the flag read-before-write check is already vacuous here. + // + // The only status that exists — the accrued fcsr exception flags (fflags[4:0]) + // and the frm rounding field — is read solely through an explicit CSR access + // (csrr* / frflags / frrm), which pulls the register out as an opaque value + // into a GPR. That is a snapshot by construction and must never require a + // producer, so every status read that RV64 can express qualifies. + return true; + } }; void clobber_implicit_regs(StringSet *clobber_registers_set, u16 implicit_regs) { @@ -327,123 +447,6 @@ struct Asm_riscv { static String const register_strings[REG_COUNT]; - enum OperandType : u8 { - OP_NONE, - OP_GPR, - OP_FPR, - OP_IMM12, - OP_IMM12U, - OP_IMM5, - OP_IMM6, - OP_IMM20, - OP_REL13, - OP_REL21, - OP_MEM, - OP_CSR, - OP_FENCE_FLAGS, - OP_ROUND_MODE, - OP_ZIMM5, - OP_GPR_C, - OP_GPR_SP, - OP_GPR_NONZERO, - OP_FPR_C, - OP_IMM_C6S, - OP_IMM_C6U, - OP_IMM_C8U, - OP_IMM_C10S, - OP_IMM_C18S, - OP_REL9, - OP_REL12, - OP_MEM_C_W, - OP_MEM_C_D, - OP_MEM_C_SP_W, - OP_MEM_C_SP_D, - }; - - - enum OperandEncoding : u8 { - ENC_NONE, - ENC_RD, - ENC_RS1, - ENC_RS2, - ENC_RS3, - ENC_SHAMT5, - ENC_SHAMT6, - ENC_IMM_I, - ENC_IMM_S, - ENC_IMM_B, - ENC_IMM_U, - ENC_IMM_J, - ENC_OFFSET_BASE_I, - ENC_OFFSET_BASE_S, - ENC_OFFSET_BASE_A, - ENC_CSR_FIELD, - ENC_ZIMM_FIELD, - ENC_FENCE_PRED, - ENC_FENCE_SUCC, - ENC_ROUND_FIELD, - ENC_AQRL, - ENC_C_RD_RS1, - ENC_C_RS2, - ENC_C_RD_PRIMED, - ENC_C_RS1_PRIMED, - ENC_C_RS2_PRIMED, - ENC_C_RD_RS1_PRIMED, - ENC_C_IMM_CI_S, - ENC_C_IMM_CI_U, - ENC_C_IMM_CIW, - ENC_C_IMM_LUI, - ENC_C_IMM_ADDI16SP, - ENC_C_IMM_CSS_W, - ENC_C_IMM_CSS_D, - ENC_C_IMM_CL_W, - ENC_C_IMM_CL_D, - ENC_C_BRANCH9, - ENC_C_BRANCH12, - ENC_C_OFFSET_BASE_W, - ENC_C_OFFSET_BASE_D, - ENC_C_SP_OFFSET_W, - ENC_C_SP_OFFSET_D, - }; - - - enum Feature : u16 { - ENC_I, - ENC_M, - ENC_A, - ENC_F, - ENC_D, - ENC_ZICSR, - ENC_ZIFENCEI, - ENC_C, - ENC_ZBA, - ENC_ZBB, - ENC_ZBC, - ENC_ZBS, - ENC_ZICOND, - ENC_ZFH, - ENC_PRIV, - }; - - typedef u8 EncodingFlags; // cannot use a C++ bit field to due lack of portability - - #pragma pack(push, 1) - struct Encoding { - Mnemonic mnemonic; - OperandType ops[4]; - OperandEncoding enc[4]; - u32 bits; - u32 mask; - Feature feature; - EncodingFlags flags; - - bool has_implicit () const { return ((flags>>7u)&1) != 0; } - u8 explicit_count() const { return cast(u8)((flags>>4u)&((1u<<3)-1)); } - }; - #pragma pack(pop) - GB_STATIC_ASSERT(gb_size_of(Encoding) == 21); - - // Companion run index: ENCODE_RUNS[mnemonic] -> contiguous run in ENCODE_FORMS. struct EncodeRun { u32 start; // start index in ENCODE_FORMS @@ -576,25 +579,16 @@ struct Asm_riscv { // size in bits for register u16 reg_size(Register r) const { switch (reg_class(register_codes[r])) { - case REG_CLASS_GPR64: return 64; - case REG_CLASS_GPR32: return 32; - case REG_CLASS_GPR16: return 16; - case REG_CLASS_GPR8: return 8; - case REG_CLASS_GPR8H: return 8; - case REG_CLASS_XMM: return 128; - case REG_CLASS_YMM: return 256; - case REG_CLASS_ZMM: return 512; - case REG_CLASS_K: return 64; - case REG_CLASS_MM: return 64; - case REG_CLASS_ST: return 80; - case REG_CLASS_SEG: return 16; - case REG_CLASS_CR: return 64; - case REG_CLASS_DR: return 64; - case REG_CLASS_BND: return 128; + case REG_CLASS_GPR: return XLEN; + case REG_CLASS_FPR: return FLEN; } return 0; } + bool reg_is_segment(/*Register*/ u16 r) { + return false; + } + bool integer_reg_width_is_exact() const { return false; } @@ -775,6 +769,24 @@ struct Asm_riscv { return 0; } + bool target_has_feature(u64 enabled_features, u32 f) const { + return true; + } + char const *feature_name(u32 f) const { + return ""; + } + u16 operand_type_transfer_bytes(OperandType t) const { + gb_unused(t); + return 0; + } + bool operand_type_is_lane(OperandType t) const { + return false; + } + + String feature_name_from_form(Encoding const &form) const { + return {}; + } + int form_explicit_slot(Encoding const &form, int explicit_index) const { int seen = 0; for (int j = 0; j < gb_count_of(form.ops); j++) { @@ -793,6 +805,27 @@ struct Asm_riscv { return -1; } + // Transfer size (bytes) a memory form's scaled index must match: + // shift == log2(bytes). Derived from the widest register operand in the form + // (the data being loaded/stored). 0 => no such constraint. Generic across ISAs. + u16 form_transfer_bytes(Encoding const &form) const { + u16 widest = 0; + for (int j = 0; j < gb_count_of(form.ops); j++) { + auto t = form.ops[j]; + if (!t) { + break; + } + AsmOperandKind k = kind_from_operand_type(t); + if (k == AsmOperand_Register) { + u16 w = operand_type_bit_width(t); + if (w > widest) { + widest = w; + } + } + } + return cast(u16)(widest / 8); + } + bool prefix_kind_okay(u8 prefix, Encoding const &form, bool *requires_memory_dest_) const { // RISC-V does not have prefixes return false; diff --git a/src/check_asm.cpp b/src/check_asm.cpp index 3a570692d..633bfd5dd 100644 --- a/src/check_asm.cpp +++ b/src/check_asm.cpp @@ -81,6 +81,10 @@ gb_internal AsmOperandKind determine_asm_operand_kind(Operand const *operand) { } return AsmOperand_Register; case_end; + + case_ast_node(ie, IndexExpr, expr); + return AsmOperand_Lane; + case_end; } return AsmOperand_Invalid; } @@ -89,6 +93,7 @@ gb_internal bool asm_reg_class_compatible(AsmRegClass want, AsmRegClass got) { switch (want) { case AsmRegClass_Integer: return got == AsmRegClass_Integer; + case AsmRegClass_Float: case AsmRegClass_Vector: // A scalar float uses only the low lane, so it is valid in any vector // register slot; a #simd vector matches the vector class exactly. @@ -151,6 +156,10 @@ gb_internal void check_asm_collect_refs(AsmCtx *asm_ctx, PtrSet *refs, check_asm_collect_refs(asm_ctx, refs, m->disp, touched_regs_); return; } + case Ast_IndexExpr: + check_asm_collect_refs(asm_ctx, refs, expr->IndexExpr.expr, touched_regs_); + check_asm_collect_refs(asm_ctx, refs, expr->IndexExpr.index, touched_regs_); + return; } } enum AsmMismatch : u8 { @@ -311,7 +320,8 @@ gb_internal bool check_asm_operand_size_class(AsmCtx *asm_ctx, typename AsmCtx:: // must not be held against the slot's register class. Only width matters for the // memory interpretation. Register operands still get the full class check. if (want_class != AsmRegClass_Unknown && !is_memory) { - if (!asm_reg_class_compatible(want_class, got_class)) { + bool is_lane = asm_ctx->operand_type_is_lane(slot); + if (!is_lane && !asm_reg_class_compatible(want_class, got_class)) { if (mismatch_) *mismatch_ = AsmMismatch_Class; return false; } @@ -322,7 +332,10 @@ gb_internal bool check_asm_operand_size_class(AsmCtx *asm_ctx, typename AsmCtx:: if (want_class == AsmRegClass_Vector && !is_memory) { // A scalar float uses only the low lane, so it may be narrower than the // slot; a #simd vector must match the vector width exactly. - bool width_ok = (got_class == AsmRegClass_Float) ? (got_w <= want_w) : (got_w == want_w); + bool is_lane = asm_ctx->operand_type_is_lane(slot); + bool width_ok = (got_class == AsmRegClass_Float && !is_lane) + ? (got_w <= want_w) // scalar float in a vector slot: narrower ok + : (got_w == want_w); // lane element (or #simd vector): exact if (!width_ok) { if (mismatch_) *mismatch_ = AsmMismatch_Size; return false; @@ -848,13 +861,6 @@ gb_internal bool check_register(AsmCtx *asm_ctx, Operand *operand, AstAsmRegiste if (r) { operand->mode = Addressing_Value; - u16 reg_class = asm_ctx->reg_class(r); - if (reg_class == asm_ctx->REG_CLASS_K) { - // Opmask register: classify as a mask, not a 64-bit integer. - // operand->type = t_asm_mask; // see note if this type does not yet exist - // return true; - } - u16 width_in_bits = asm_ctx->reg_size(r); switch (width_in_bits) { case 0: @@ -1149,6 +1155,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm auto form_user_operand_count = [&](typename AsmCtx::Encoding const &form) -> int { int count = is_pseudo ? target_explicit_count : cast(int)form.explicit_count(); + GB_ASSERT_MSG(count <= 4, "%d", count); return gb_max(count, 0); }; @@ -1185,7 +1192,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm return asm_ctx->OP_NONE; }; - auto describe_form = [&](typename AsmCtx::Encoding const &form, typename AsmCtx::Clobber const &clobber) -> gbString { + auto describe_form = [&](typename AsmCtx::Encoding const &form, typename AsmCtx::Clobber const &clobber, isize max_count) -> gbString { gbString s = gb_string_make(heap_allocator(), ""); int count = form_user_operand_count(form); for (int i = 0; i < count; i++) { @@ -1213,6 +1220,10 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm s = (w > 0) ? gb_string_append_fmt(s, "%s%d", reg, cast(int)w) : gb_string_appendc(s, reg); break; + case AsmOperand_Lane: + s = (w > 0) ? gb_string_append_fmt(s, "v%d[i]", cast(int)w) + : gb_string_appendc(s, "v[i]"); + break; case AsmOperand_Memory: s = (w > 0) ? gb_string_append_fmt(s, "m%d", cast(int)w) : gb_string_appendc(s, "m"); @@ -1231,27 +1242,34 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm s = gb_string_appendc(s, ", "); } - switch (k) { - case AsmOperand_Label: // 5 characters - break; - case AsmOperand_Immediate: // 3+ characters - case AsmOperand_Register_Or_Memory: - if (w == 0) { - s = gb_string_appendc(s, " "); - } else if (w < 10) { - s = gb_string_appendc(s, " "); + if (max_count > 1) { + switch (k) { + case AsmOperand_Label: // 5 characters + break; + case AsmOperand_Immediate: // 3+ characters + case AsmOperand_Register_Or_Memory: + if (w == 0) { + s = gb_string_appendc(s, " "); + } else if (w < 10) { + s = gb_string_appendc(s, " "); + } else if (w < 100) { + s = gb_string_appendc(s, " "); + } + break; + case AsmOperand_Register: // 1+ characters + case AsmOperand_Lane: + case AsmOperand_Memory: + if (w == 0) { + s = gb_string_appendc(s, " "); + } else if (w < 10) { + s = gb_string_appendc(s, " "); + } else if (w < 100) { + s = gb_string_appendc(s, " "); + } else { + s = gb_string_appendc(s, " "); + } + break; } - break; - case AsmOperand_Register: // 1+ characters - case AsmOperand_Memory: - if (w == 0) { - s = gb_string_appendc(s, " "); - } else if (w < 10) { - s = gb_string_appendc(s, " "); - } else if (w < 100) { - s = gb_string_appendc(s, " "); - } - break; } } bool all_implicit = true; @@ -1261,6 +1279,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm switch (k) { case AsmOperand_Label: case AsmOperand_Register: + case AsmOperand_Lane: case AsmOperand_Memory: case AsmOperand_Register_Or_Memory: all_implicit = false; @@ -1321,7 +1340,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm return; } - gbString desc = describe_form(forms[form_index], clobber_forms[form_index]); + gbString desc = describe_form(forms[form_index], clobber_forms[form_index], 1); defer (gb_string_free(desc)); String line = make_string(cast(u8 const *)desc, gb_string_length(desc)); line = string_trim_trailing_whitespace(line); @@ -1343,7 +1362,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm ); for_array(fi, forms) { - gbString desc = describe_form(forms[fi], clobber_forms[fi]); + gbString desc = describe_form(forms[fi], clobber_forms[fi], forms.count); bool dup = false; for (auto const &l : lines) { if (gb_string_are_equal(l, desc)) { @@ -1538,6 +1557,86 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm check_operand_constraints(asm_ctx, operands, mnemonic, name); + + // NOTE(bill): The scaled-index shift must equal log2(transfer size) on targets that require it + // e.g. on AArch64 register-offset loads/stores. + // Generic: forms with form_transfer_bytes()==0, or operands with no constant scale, impose nothing. + { + u16 tb = asm_ctx->form_transfer_bytes(forms[valid_form_index]); + if (tb != 0) { + i64 want = 0; { u16 b = tb; while (b > 1) { b >>= 1; want++; } } + for_array(oi, operands) { + Ast *e = operands[oi].expr; + if (e == nullptr || e->kind != Ast_AsmMemoryOperand) { + continue; + } + auto *m = &e->AsmMemoryOperand; + if (m->scale == nullptr || m->scale->tav.mode != Addressing_Constant) { + continue; + } + i64 raw = exact_value_to_i64(exact_value_to_integer(m->scale->tav.value)); + // Normalise the '*' form to a shift amount; '<<'/'>>' are already shifts. + i64 shift = raw; + if (m->scale_op.kind == Token_Mul) { + switch (raw) { + case 1: shift = 0; break; + case 2: shift = 1; break; + case 4: shift = 2; break; + case 8: shift = 3; break; + case 16: shift = 4; break; + default: shift = -1; break; + } + } + // shift 0 (unscaled) is always legal; otherwise it must match log2(size). + if (shift != 0 && shift != want) { + if (m->scale_op.kind == Token_Mul) { + error(m->scale, "'%.*s' scaled-index multiplier must be %lld (the %u-byte transfer size), got %lld", + LIT(name), cast(long long)(cast(i64)1 << want), cast(unsigned)tb, cast(long long)raw); + } else { + error(m->scale, "'%.*s' scaled-index shift must be %lld (log2 of the %u-byte transfer), got %lld", + LIT(name), cast(long long)want, cast(unsigned)tb, cast(long long)shift); + } + } + } + } + } + { + // Feature gate: the matched form may require a target feature (crc32b needs + // +crc, LSE atomics need +lse, ...). The form carries its Feature. It is + // satisfied if the feature is globally enabled for the target, OR if this + // template's own signature declares it via #require_target_feature / + // #enable_target_feature — a template opting in to a feature shouldn't be + // rejected just because the global build didn't enable it. + String feat = asm_ctx->feature_name_from_form(forms[valid_form_index]); + if (feat.len != 0) { + bool ok = check_target_feature_is_enabled(feat, nullptr); + + if (!ok) { + // The proc type may declare the feature itself. + Type *pt = base_type(tmpl_entity->type); + GB_ASSERT(pt->kind == Type_Proc); + String req = pt->Proc.require_target_feature; + String en = pt->Proc.enable_target_feature; + // These are comma-lists; `feat` is a single bare name. is_superset_of + // checks whether the declared list contains it. + if (req.len != 0 && check_target_feature_is_superset_of(req, feat, nullptr)) { + ok = true; + } + if (!ok && en.len != 0 && check_target_feature_is_superset_of(en, feat, nullptr)) { + ok = true; + } + } + + if (!ok) { + error(instr->name, + "'%.*s' requires the target feature '%.*s', which is not enabled; " + "enable it on this 'asm' template (e.g. @(enable_target_feature=\"%.*s\")), " + "or globally via '-target-features:\"%.*s\"' or a matching micro-architecture", + LIT(name), LIT(feat), LIT(feat), LIT(feat)); + } + } + } + // Handle clobbering from mnemonic auto clobber = clobber_forms[valid_form_index]; @@ -1591,7 +1690,6 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm u16 written_ops = cast(u16)clobber.written; u16 pinned_param_writes = 0; - auto const &decls = tmpl_entity->AsmTemplate.decls; for_array(i, operands) { int tslot = user_operand_target_index(cast(int)i); if (tslot < 0 || tslot >= 4 || (written_ops & (1u << tslot)) == 0) { @@ -1604,12 +1702,17 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm explicit_writes |= b; continue; } - Entity *pe = entity_of_node(operands[i].expr); - if (pe != nullptr && pe->kind == Entity_Variable) { - i32 di = -1; - check_asm_find_group(pe, decls, &di); // reuse existing index finder - pinned_param_writes |= asm_decl_resolve_pin_bit(asm_ctx, decls, di); + // NOTE(bill): A lane operand `v[idx]` is an IndexExpr with no entity of its own + Ast *op_expr = operands[i].expr; + if (op_expr != nullptr && op_expr->kind == Ast_IndexExpr) { + op_expr = op_expr->IndexExpr.expr; } + Entity *pe = entity_of_node(op_expr); + if (pe != nullptr && pe->kind == Entity_Variable) { + i32 di = -1; + check_asm_find_group(pe, tmpl_entity->AsmTemplate.decls, &di); + pinned_param_writes |= asm_decl_resolve_pin_bit(asm_ctx, tmpl_entity->AsmTemplate.decls, di); + } } if (is_pseudo && @@ -1631,7 +1734,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm } facts->gen_regs = produced | pinned_param_writes; - facts->gen_flags = cast(u16)clobber.flags_wr; + facts->gen_flags = cast(u16)clobber.flags_wr_call(); facts->read_flags = cast(u16)clobber.flags_rd_call(); // NOTE(bill): mnemonics such as `xor r, r` / `sub r, r` act as zeroing the destination @@ -1697,6 +1800,20 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm if (slot < 0) { continue; } + // A pre/post-index memory operand writes back (and reads) its base + // register. The operand kind is Memory, so the register/lane path below + // won't see it; record the base's def+use here so liveness sees the + // cursor advance and a later read of it isn't flagged undefined. + if (operands[i].expr != nullptr && operands[i].expr->kind == Ast_AsmMemoryOperand) { + auto *m = &operands[i].expr->AsmMemoryOperand; + if (m->kind == AsmMemoryOperand_Pre || m->kind == AsmMemoryOperand_Post) { + Entity *be = entity_of_node(m->base); + if (be != nullptr && be->kind == Entity_Variable) { + array_add(&facts->gen_params, be); + array_add(&facts->read_params, be); + } + } + } Entity *pe = entity_of_node(operands[i].expr); if (pe == nullptr || pe->kind != Entity_Variable) { continue; @@ -1776,7 +1893,7 @@ gb_internal bool check_mnemonic(AsmCtx *asm_ctx, CheckerContext *ctx, Entity *tm bool control = clobber.has_control(); bool halt = clobber.has_halt(); // A conditional branch reads a flag and can fall through -> not terminal. - bool conditional = clobber.is_conditional(); + bool conditional = clobber.is_conditional(valid_form); facts->is_control = control; facts->is_conditional = conditional; @@ -2019,8 +2136,7 @@ gb_internal void check_asm_instruction_operand(AsmCtx *asm_ctx, CheckerContext * } else if (segment_override.expr->kind == Ast_AsmRegister) { String reg_name = segment_override.expr->AsmRegister.name.string; auto reg = asm_ctx->register_lookup(reg_name); - auto reg_class = asm_ctx->reg_class(asm_ctx->register_codes[reg]); - if (reg_class != asm_ctx->REG_CLASS_SEG) { + if (!asm_ctx->reg_is_segment(cast(u16)reg)) { gbString s = expr_to_string(segment_override.expr); error(segment_override.expr, "A segment override must be a selector register parameter, got %s", s); gb_string_free(s); @@ -2031,6 +2147,17 @@ gb_internal void check_asm_instruction_operand(AsmCtx *asm_ctx, CheckerContext * gb_string_free(s); } + switch (mem_op->kind) { + case AsmMemoryOperand_Default: + break; + case AsmMemoryOperand_Pre: + case AsmMemoryOperand_Post: + if (build_context.metrics.arch != TargetArch_arm64) { + error(expr, "#pre/#post asm memory operands are not supported by the target platform"); + } + break; + } + Operand base = {}; Operand index = {}; Operand scale = {}; @@ -2156,7 +2283,11 @@ gb_internal void check_asm_instruction_operand(AsmCtx *asm_ctx, CheckerContext * } // base and index must be the same width - if (have_base && have_index && base_w != index_w) { + // AArch64 register-offset addressing allows a 32-bit index with a 64-bit base + // (extended-register form: uxtw/sxtw). Other targets require equal widths. + bool ext_index_ok = build_context.metrics.arch == TargetArch_arm64 && + base_w == 64 && index_w == 32; + if (have_base && have_index && base_w != index_w && !ext_index_ok) { Ast *at = mem_op->base ? mem_op->base : expr; error(at, "A memory operand's base and index registers must be the same width, got a %d-bit base and a %d-bit index", cast(int)base_w, cast(int)index_w); @@ -2217,6 +2348,10 @@ gb_internal void check_asm_instruction_operand(AsmCtx *asm_ctx, CheckerContext * error(op, "The target platform does not support '%.*s' for shifting scale parameters in memory operands", LIT(op.string)); } } + + // Persist the folded scale so check_mnemonic can validate it against + // the matched form's transfer size (it reads mem_op->scale->tav). + add_type_and_value(ctx, mem_op->scale, scale.mode, scale.type, scale.value); } } else { Entity *param_entity = entity_of_node(scale.expr); @@ -2313,6 +2448,65 @@ gb_internal void check_asm_instruction_operand(AsmCtx *asm_ctx, CheckerContext * add_type_and_value(ctx, expr, Addressing_Value, found->type, {}); return; case_end; + + case_ast_node(ie, IndexExpr, expr); + if (!allow_memory_operands) { + error(expr, "Invalid use of an index expression in an asm operand"); + return; + } + + Operand lhs = {}; + Operand rhs = {}; + check_asm_instruction_operand(asm_ctx, ctx, entity, &lhs, ie->expr, false); + check_asm_instruction_operand(asm_ctx, ctx, entity, &rhs, ie->index, false); + + auto lhs_kind = determine_asm_operand_kind(&lhs); + if (lhs_kind != AsmOperand_Register) { + gbString s = expr_to_string(lhs.expr); + error(lhs.expr, "Expected a vector register, got '%s' which is %.*s", + s, LIT(asm_operand_kind_expected_strings[lhs_kind])); + gb_string_free(s); + } else if (!is_type_simd_vector(lhs.type)) { + gbString s = type_to_string(lhs.type); + error(lhs.expr, "Expected a vector register, got %s", s); + gb_string_free(s); + } + + auto rhs_kind = determine_asm_operand_kind(&rhs); + if (rhs_kind != AsmOperand_Immediate) { + gbString s = expr_to_string(rhs.expr); + error(rhs.expr, "Expected an integer immediate as an index, got '%s' which is %.*s", + s, LIT(asm_operand_kind_expected_strings[rhs_kind])); + gb_string_free(s); + } else if (!is_type_integer(rhs.type)) { + gbString s = type_to_string(rhs.type); + error(rhs.expr, "Expected an integer immediate as an index, got %s", s); + gb_string_free(s); + } else if (rhs.mode != Addressing_Constant || rhs.value.kind != ExactValue_Integer) { + Entity *pe = entity_of_node(rhs.expr); + bool is_poly_const = pe != nullptr && pe->kind == Entity_Variable && + (pe->flags & EntityFlag_PolyConst) != 0; + if (!is_poly_const) { + error(rhs.expr, "A vector lane index must be an assemble-time integer constant"); + } + } + + if (build_context.metrics.arch != TargetArch_arm64) { + error(expr, "The target platform does not support vector element extraction syntax"); + } + + operand->expr = expr; + operand->mode = Addressing_Value; + operand->type = base_array_type(lhs.type); + operand->value = {}; + + add_type_and_value(ctx, operand->expr, operand->mode, operand->type, operand->value); + + if (rhs.mode == Addressing_Constant) { + add_type_and_value(ctx, rhs.expr, rhs.mode, rhs.type, rhs.value); + } + return; + case_end; } { @@ -2355,9 +2549,14 @@ gb_internal void check_asm_template(AsmCtx *asm_ctx, CheckerContext *ctx, Entity // always require the results of `asm` templates type->Proc.require_results = true; } - entity->type = type; + AttributeContext ac = make_attribute_context({}, {}); + if (d != nullptr) { + check_decl_attributes(ctx, d->attributes, proc_decl_attribute, &ac); + } + check_target_feature_attributes(ac, entity, type); + check_asm_specs(asm_ctx, ctx, ate->param_scope, at->specs, &ate->decls); bool is_pure_annotated = false; @@ -2814,6 +3013,8 @@ gb_internal void check_asm_template_from_entity(CheckerContext *c, Entity *e, De check_asm_template(&g_asm_amd64, c, e, d); } else if (build_context.metrics.arch == TargetArch_riscv64) { check_asm_template(&g_asm_riscv, c, e, d); + } else if (build_context.metrics.arch == TargetArch_arm64) { + check_asm_template(&g_asm_arm64, c, e, d); } else { error(e->token, "asm templates are not currently supported for this target"); } diff --git a/src/check_asm_cfg.cpp b/src/check_asm_cfg.cpp index e6e134d82..abc68925a 100644 --- a/src/check_asm_cfg.cpp +++ b/src/check_asm_cfg.cpp @@ -1,3 +1,4 @@ +// check_asm_cfg.cpp enum { ASM_WIDTH_REG_COUNT = 16 @@ -692,7 +693,19 @@ gb_internal void check_asm_cfg_analyse(AsmCtx *asm_ctx, AsmCfg *cfg, CheckerCont check_asm_cfg_report_undef_reg(asm_ctx, cfg, entity, instr, f->name, bit); } + bool is_status_snapshot = false; + if (instr->mnemonic && instr->valid_form_index >= 0) { + auto clobber_forms = asm_ctx->clobber_forms(instr->mnemonic); + if (clobber_forms.count > 0 && instr->valid_form_index < clobber_forms.count) { + auto &clobber = clobber_forms[instr->valid_form_index]; + is_status_snapshot = clobber.is_status_snapshot(); + } + } + u16 undef_flags = f->read_flags & ~run_flags & ~reported_flags; + if (is_status_snapshot) { + undef_flags = 0; + } if (undef_flags != 0) { reported_flags |= undef_flags; diff --git a/src/check_decl.cpp b/src/check_decl.cpp index cdb1b9b54..49d695c8a 100644 --- a/src/check_decl.cpp +++ b/src/check_decl.cpp @@ -1219,6 +1219,41 @@ gb_internal void check_objc_methods(CheckerContext *ctx, Entity *e, AttributeCon } } +gb_internal void check_target_feature_attributes(AttributeContext &ac, Entity *entity, Type *type) { + GB_ASSERT(type->kind == Type_Proc); + TypeProc *pt = &type->Proc; + if (ac.require_target_feature.len != 0 && ac.enable_target_feature.len != 0) { + error(entity->token, "A procedure cannot have both @(require_target_feature=\"...\") and @(enable_target_feature=\"...\")"); + } + + if (build_context.strict_target_features && ac.enable_target_feature.len != 0) { + ac.require_target_feature = ac.enable_target_feature; + ac.enable_target_feature.len = 0; + } + + if (ac.require_target_feature.len != 0) { + pt->require_target_feature = ac.require_target_feature; + String invalid; + if (!check_target_feature_is_valid_globally(ac.require_target_feature, &invalid)) { + error(entity->token, "Required target feature '%.*s' is not a valid target feature", LIT(invalid)); + } else if (!check_target_feature_is_enabled(ac.require_target_feature, nullptr)) { + entity->flags |= EntityFlag_Disabled; + } + } else if (ac.enable_target_feature.len != 0) { + + // NOTE: disallow wasm, features on that arch are always global to the module. + if (is_arch_wasm()) { + error(entity->token, "@(enable_target_feature=\"...\") is not allowed on wasm, features for wasm must be declared globally"); + } + + pt->enable_target_feature = ac.enable_target_feature; + String invalid; + if (!check_target_feature_is_valid_globally(ac.enable_target_feature, &invalid)) { + error(entity->token, "Procedure enabled target feature '%.*s' is not a valid target feature", LIT(invalid)); + } + } +} + gb_internal void check_foreign_procedure(CheckerContext *ctx, Entity *e, DeclInfo *d) { GB_ASSERT(e != nullptr); GB_ASSERT(e->kind == Entity_Procedure); @@ -1345,38 +1380,7 @@ gb_internal void check_proc_decl(CheckerContext *ctx, Entity *e, DeclInfo *d) { check_objc_methods(ctx, e, ac); - { - if (ac.require_target_feature.len != 0 && ac.enable_target_feature.len != 0) { - error(e->token, "A procedure cannot have both @(require_target_feature=\"...\") and @(enable_target_feature=\"...\")"); - } - - if (build_context.strict_target_features && ac.enable_target_feature.len != 0) { - ac.require_target_feature = ac.enable_target_feature; - ac.enable_target_feature.len = 0; - } - - if (ac.require_target_feature.len != 0) { - pt->require_target_feature = ac.require_target_feature; - String invalid; - if (!check_target_feature_is_valid_globally(ac.require_target_feature, &invalid)) { - error(e->token, "Required target feature '%.*s' is not a valid target feature", LIT(invalid)); - } else if (!check_target_feature_is_enabled(ac.require_target_feature, nullptr)) { - e->flags |= EntityFlag_Disabled; - } - } else if (ac.enable_target_feature.len != 0) { - - // NOTE: disallow wasm, features on that arch are always global to the module. - if (is_arch_wasm()) { - error(e->token, "@(enable_target_feature=\"...\") is not allowed on wasm, features for wasm must be declared globally"); - } - - pt->enable_target_feature = ac.enable_target_feature; - String invalid; - if (!check_target_feature_is_valid_globally(ac.enable_target_feature, &invalid)) { - error(e->token, "Procedure enabled target feature '%.*s' is not a valid target feature", LIT(invalid)); - } - } - } + check_target_feature_attributes(ac, e, proc_type); switch (e->Procedure.optimization_mode) { case ProcedureOptimizationMode_None: diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 5175ef58c..f4e633c02 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -9150,25 +9150,29 @@ gb_internal ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *c break; } - { + if (pt->kind == Type_Proc) { + char const *kind = "procedure"; + if (pt->Proc.calling_convention == ProcCC_InlineAsm) { + kind = "inline 'asm' template"; + } String invalid; - if (pt->kind == Type_Proc && pt->Proc.require_target_feature.len != 0) { + if (pt->Proc.require_target_feature.len != 0) { if (!check_target_feature_is_valid_for_target_arch(pt->Proc.require_target_feature, &invalid)) { - error(call, "Called procedure requires target feature '%.*s' which is invalid for the build target", LIT(invalid)); + error(call, "Called %s requires target feature '%.*s' which is invalid for the build target", kind, LIT(invalid)); } else if (!check_target_feature_is_enabled(pt->Proc.require_target_feature, &invalid)) { - error(call, "Calling this procedure requires target feature '%.*s' to be enabled", LIT(invalid)); + error(call, "Calling this %s requires target feature '%.*s' to be enabled", kind, LIT(invalid)); } } - if (pt->kind == Type_Proc && pt->Proc.enable_target_feature.len != 0) { + if (pt->Proc.enable_target_feature.len != 0) { if (!check_target_feature_is_valid_for_target_arch(pt->Proc.enable_target_feature, &invalid)) { - error(call, "Called procedure enables target feature '%.*s' which is invalid for the build target", LIT(invalid)); + error(call, "Called %s enables target feature '%.*s' which is invalid for the build target", kind, LIT(invalid)); } // NOTE: Due to restrictions in LLVM you can not inline calls with a superset of features. if (is_call_inlined) { if (c->curr_proc_decl == nullptr) { - error(call, "Calling a '#force_inline' procedure that enables target features is not allowed at file scope"); + error(call, "Calling a '#force_inline' %s that enables target features is not allowed at file scope", kind); } else { Entity *e = c->curr_proc_decl->entity.load(); GB_ASSERT(e); @@ -9176,7 +9180,7 @@ gb_internal ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *c String scope_features = e->type->Proc.enable_target_feature; if (!check_target_feature_is_superset_of(scope_features, pt->Proc.enable_target_feature, &invalid)) { ERROR_BLOCK(); - error(call, "Inlined procedure enables target feature '%.*s', this requires the calling procedure to at least enable the same feature", LIT(invalid)); + error(call, "Inlined %s enables target feature '%.*s', this requires the calling %s to at least enable the same feature", kind, LIT(invalid), kind); error_line("\tSuggested Example: @(enable_target_feature=\"%.*s\")\n", LIT(invalid)); } diff --git a/src/checker.cpp b/src/checker.cpp index 2e161505d..f9e1f523f 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -4564,6 +4564,35 @@ gb_internal DECL_ATTRIBUTE_PROC(type_decl_attribute) { return false; } +gb_internal DECL_ATTRIBUTE_PROC(asm_decl_attribute) { + if (name == ATTRIBUTE_USER_TAG_NAME) { + ExactValue ev = check_decl_attribute_value(c, value); + if (ev.kind != ExactValue_String) { + error(elem, "Expected a string value for '%.*s'", LIT(name)); + } + return true; + } else if (name == "private") { + // NOTE(bill): Handled elsewhere `check_collect_value_decl` + return true; + } else if (name == "require_target_feature") { + ExactValue ev = check_decl_attribute_value(c, value); + if (ev.kind == ExactValue_String) { + ac->require_target_feature = ev.value_string; + } else { + error(elem, "Expected a string value for '%.*s'", LIT(name)); + } + return true; + } else if (name == "enable_target_feature") { + ExactValue ev = check_decl_attribute_value(c, value); + if (ev.kind == ExactValue_String) { + ac->enable_target_feature = ev.value_string; + } else { + error(elem, "Expected a string value for '%.*s'", LIT(name)); + } + return true; + } + return false; +} #include "check_expr.cpp" #include "check_builtin.cpp" diff --git a/src/llvm_backend_asm.cpp b/src/llvm_backend_asm.cpp index 2be5129a8..a7e0a2424 100644 --- a/src/llvm_backend_asm.cpp +++ b/src/llvm_backend_asm.cpp @@ -8,6 +8,18 @@ struct lbAsmGenerate { gbString asm_string; gbString constraints; + // Stable per-template numbering for internal labels (assigned on first sight). + PtrMap label_numbers; + i32 next_label_number; + PtrMap label_def_pos; + + AstAsmInstruction * curr_instr; + isize curr_operand_index; + i32 curr_instr_pos; + Array const *curr_args; + + PtrSet lane_written; + enum WriteOperandFlags : u32 { WriteOperandFlag_PrintPrefixes = 1<<0, WriteOperandFlag_IsScale = 1<<1, @@ -34,11 +46,32 @@ struct lbAsmGenerate { this->asm_string = gb_string_make_reserve(heap_allocator(), 256); this->constraints = gb_string_make_reserve(heap_allocator(), 64); + map_init(&this->label_numbers); + + // Pre-scan the body: any `dst[i]` operand written by INS marks its base + // entity as lane-written. + for (Ast *node : this->tmpl_node->instructions) { + if (node->kind != Ast_AsmInstruction) { + continue; + } + auto *in = &node->AsmInstruction; + // Destination is operand 0 on A64 (dst-first). A lane dest is an IndexExpr. + if (in->operands.count >= 1 && in->operands[0]->kind == Ast_IndexExpr) { + Ast *base = in->operands[0]->IndexExpr.expr; + Entity *be = entity_of_node(base); + if (be != nullptr) { + ptr_set_add(&this->lane_written, be); + } + } + } } void destroy() { gb_string_free(this->asm_string); gb_string_free(this->constraints); + map_destroy(&this->label_numbers); + map_destroy(&this->label_def_pos); + ptr_set_destroy(&this->lane_written); } void write_cstr(char const *cstr) { asm_string = gb_string_appendc (asm_string, cstr); } @@ -48,16 +81,31 @@ struct lbAsmGenerate { void write_u64(u64 val) { asm_string = gb_string_append_fmt (asm_string, "%llu", cast(unsigned long long)val); } void write_i64(i64 val) { asm_string = gb_string_append_fmt (asm_string, "%lld", cast(long long)val); } - void write_label(AstIdent *label_ident) { + // AArch64's assembler requires conditional-branch targets to be assembler-local. + // Named .L symbols are treated as external within an inline-asm string, so use + // numeric locals: each label entity gets a small integer, a definition prints + // `N:`, and a reference prints `Nf` (forward) or `Nb` (backward). For targets + // that don't need this (amd64), the named form is still fine; this base method + // is overridden per target. + virtual void write_label_def(AstIdent *label_ident) { String name = label_ident->token.string; write_cstr(".L_"); write_string(tmpl_entity->token.string); write_cstr("_"); write_string(name); - // ${:uid} expands to a per-instantiation unique integer, so repeated - // inlining of the same template can't collide on the label symbol. write_cstr("${:uid}"); } + virtual void write_label_ref(AstIdent *label_ident) { + this->write_label_def(label_ident); // default: same spelling for def and ref + } + + void write_label(AstIdent *label_ident) { + this->write_label_ref(label_ident); + } + + virtual void prescan_label_positions() { + // do nothing by default + } AsmTemplateEntityDecl *entity_op(Entity *parameter) { for (AsmTemplateEntityDecl &op : *ops) { @@ -109,6 +157,8 @@ struct lbAsmGenerate { gb_string_clear(this->asm_string); gb_string_clear(this->constraints); + this->curr_args = &args; + TEMPORARY_ALLOCATOR_GUARD(); auto param_types = array_make (temporary_allocator(), 0, ops->count); @@ -164,12 +214,22 @@ struct lbAsmGenerate { sep(); + // A lane-written operand is only PARTIALLY written (INS touches one lane, + // the rest read through), so it must be read-write '+' and cannot be + // early-clobber. Everything else is a normal '=' (early-clobber when a + // later instruction could read past it). + bool lane_rw = ptr_set_exists(&this->lane_written, e.entity); + // Register output: '=' ['&'] ( '{pin}' | class-letter ) - raw("="); - // early-clobber: keep scratch, and any output a later instruction could read past, - // off an input's register. One instruction reads before it writes, so it is safe. - if (is_alloc_scratch || tmpl_node->instructions.count > 1) { - raw("&"); + if (lane_rw) { + raw("+"); + } else { + raw("="); + // early-clobber: keep scratch, and any output a later instruction could + // read past, off an input's register. + if (is_alloc_scratch || tmpl_node->instructions.count > 1) { + raw("&"); + } } if (e.pin.len != 0) { clobber("{", e.pin, "}"); @@ -181,6 +241,13 @@ struct lbAsmGenerate { ret_slot[i] = cast(i32)ret_types.count; array_add(&ret_types, ty); + // A '+' operand is both a result and an argument: it needs an input value + // too. A scratch has no incoming value, so pass undef; a real output that + // is lane-written likewise starts undef (the body fully defines its lanes). + if (lane_rw) { + LLVMValueRef undef = LLVMGetUndef(ty); + add_input_value(¶m_types, &call_args, undef); + } op_number[i] = next_op++; } @@ -247,10 +314,16 @@ struct lbAsmGenerate { op_number[i] = next_op++; } + // AArch64 uses numeric local labels for internal branches; resolve each label's + // definition position up front so references can pick f/b correctly. + this->prescan_label_positions(); + // Build the template text u32 op_flags = this->default_operand_write_flags(); bool reverse = this->reverse_operand_order(); for_array(i, tmpl_node->instructions) { + this->curr_instr_pos = cast(i32)i; + if (i > 0) { write_cstr("\n"); } @@ -269,12 +342,13 @@ struct lbAsmGenerate { if (k > 0) { write_cstr(", "); } u32 f = op_flags; if (indirect) f |= WriteOperandFlag_IndirectBranch; + this->curr_instr = instr; + this->curr_operand_index = j; this->write_operand(op_number, instr->operands[j], f); } case_end; case_ast_node(label, AsmLabelDecl, instr_); - this->write_label(&label->name->Ident); - write_cstr(":"); + this->write_label_def(&label->name->Ident); case_end; case_ast_node(dir, AsmDirective, instr_); String name = dir->name.string; @@ -975,12 +1049,558 @@ struct lbAsmGenerate_riscv64 : lbAsmGenerate { } }; +struct lbAsmGenerate_arm64 : lbAsmGenerate { + void prescan_label_positions() override { + map_init(&label_def_pos); + i32 pos = 0; + for (Ast *node : tmpl_node->instructions) { + if (node->kind == Ast_AsmLabelDecl) { + Entity *le = node->AsmLabelDecl.name->Ident.entity; + if (le != nullptr) { + map_set(&label_def_pos, le, pos); + } + } + pos += 1; // count every node so refs can compare positions consistently + } + } + + i32 arm64_label_number(AstIdent *label_ident) { + Entity *le = label_ident->entity; + GB_ASSERT(le != nullptr); + if (i32 *n = map_get(&label_numbers, le)) { + return *n; + } + if (next_label_number == 0) { + map_init(&label_numbers); + } + i32 n = ++next_label_number; // 1-based; 0 reserved as "unassigned" + map_set(&label_numbers, le, n); + return n; + } + + void write_label_def(AstIdent *label_ident) override { + // Numeric local definition: `N:` — never an f/b suffix. + asm_string = gb_string_append_fmt(asm_string, "%d:", this->arm64_label_number(label_ident)); + } + void write_label_ref(AstIdent *label_ident) override { + Entity *le = label_ident->entity; + i32 n = this->arm64_label_number(label_ident); + i32 def_pos = -1; + if (i32 *p = map_get(&label_def_pos, le)) { + def_pos = *p; + } + // Forward if the definition comes at or after the referencing instruction. + // (A self/loop-top reference at the same position is backward once emitted; + // a branch to a label defined later is forward.) + bool forward = def_pos > this->curr_instr_pos; + asm_string = gb_string_append_fmt(asm_string, "%d%c", n, forward ? 'f' : 'b'); + } + + // ARM64 condition-code encodings -> mnemonic. csel/cset/ccmp/b. take the + // bare mnemonic, NOT '#'; the frontend resolves the cond to its 0..15 encoding. + static char const *arm64_cond_name(i64 e) { + static char const *n[16] = { + "eq","ne","hs","lo","mi","pl","vs","vc", + "hi","ls","ge","lt","gt","le","al","nv", + }; + return (0 <= e && e < 16) ? n[e] : nullptr; + } + + // Is user-operand `i` of this instruction the condition-code slot? + bool arm64_is_cond_slot(AstAsmInstruction *instr, isize i) { + if (instr->mnemonic == 0 || instr->valid_form_index < 0) { + return false; + } + auto forms = g_asm_arm64.encoding_forms(instr->mnemonic); + if (instr->valid_form_index >= forms.count) { + return false; + } + auto const &form = forms[instr->valid_form_index]; + int slot = this->reverse_operand_order() ? cast(int)i : cast(int)i; // A64: no flip + if (slot < 0 || slot >= cast(int)gb_count_of(form.ops)) { + return false; + } + return g_asm_arm64.operand_type_is_cond_code(form.ops[slot]); + } + + // The register-name modifier this *form slot* mandates, independent of the + // operand's Odin type. ldrb/strb want W even for an i64 param; a 128-bit vector + // load wants the Q name; scalar FP wants s/d. Returns 0 when bare $N is correct. + char arm64_slot_reg_modifier(AstAsmInstruction *instr, isize i) { + if (instr->mnemonic == 0 || instr->valid_form_index < 0) { + return 0; + } + auto forms = g_asm_arm64.encoding_forms(instr->mnemonic); + if (instr->valid_form_index >= forms.count) { + return 0; + } + auto const &form = forms[instr->valid_form_index]; + if (i < 0 || i >= cast(isize)gb_count_of(form.ops)) { + return 0; + } + auto slot = form.ops[i]; + AsmOperandKind k = g_asm_arm64.kind_from_operand_type(slot); + if (k != AsmOperand_Register && k != AsmOperand_Register_Or_Memory) { + return 0; + } + AsmRegClass cls = g_asm_arm64.operand_type_reg_class(slot); + i32 w = g_asm_arm64.operand_type_bit_width(slot); + if (cls == AsmRegClass_Integer) { + return (w == 32) ? 'w' : (w == 64) ? 'x' : 0; + } + if (cls == AsmRegClass_Float || cls == AsmRegClass_Vector) { + switch (w) { + case 8: return 'b'; + case 16: return 'h'; + case 32: return 's'; + case 64: return 'd'; + case 128: return 'q'; + } + } + return 0; + } + + // NEON arrangement suffix (".4s", ".2d", ...) for a #simd operand in a slot that + // wants a vector arrangement rather than a scalar name. Empty when not applicable. + String arm64_arrangement_suffix(AstAsmInstruction *instr, isize i, Type *operand_type) { + if (instr->mnemonic == 0 || instr->valid_form_index < 0) { + return {}; + } + auto forms = g_asm_arm64.encoding_forms(instr->mnemonic); + if (instr->valid_form_index >= forms.count) { + return {}; + } + auto const &form = forms[instr->valid_form_index]; + if (i < 0 || i >= cast(isize)gb_count_of(form.ops)) { + return {}; + } + if (!g_asm_arm64.operand_type_wants_arrangement(form.ops[i])) { + return {}; + } + Type *bt = base_type(operand_type); + if (bt->kind != Type_SimdVector) { + return {}; + } + i64 lanes = bt->SimdVector.count; + i64 esz = type_size_of(base_type(bt->SimdVector.elem)); + switch (esz) { + case 1: return (lanes == 8) ? str_lit(".8b") : (lanes == 16) ? str_lit(".16b") : String{}; + case 2: return (lanes == 4) ? str_lit(".4h") : (lanes == 8) ? str_lit(".8h") : String{}; + case 4: return (lanes == 2) ? str_lit(".2s") : (lanes == 4) ? str_lit(".4s") : String{}; + case 8: return (lanes == 1) ? str_lit(".1d") : (lanes == 2) ? str_lit(".2d") : String{}; + } + return {}; + } + + bool reverse_operand_order() override { + return false; + } + + // ARM64 immediates carry their own '#'; registers are bare. No AT&T-style + // prefixes, so the generic PrintPrefixes bit is unused here. + u32 default_operand_write_flags() override { + return WriteOperandFlag_NONE; + } + + // #clobber flags -> the ARM64 condition-code clobber (NZCV). + void emit_flags_clobber() override { + sep(); raw("~{cc}"); + } + + // LLVM inline-asm constraint class letters for ARM64. + char const *class_letter(AsmRegClass rc) override { + switch (rc) { + case AsmRegClass_Integer: return "r"; // GPR (x/w) + case AsmRegClass_Float: return "w"; // FP/SIMD scalar (v/q/d/s/h/b) + case AsmRegClass_Vector: return "w"; // Advanced SIMD / SVE data vector + case AsmRegClass_Mask: return "^Upl"; // SVE governing predicate (p0-p7); use ^Upa for p0-p15 + default: + GB_PANIC("asm: unknown reg class"); + return "r"; + } + } + + // BR/BLR/RET take a bare register operand; there is no AT&T '*' indirection to + // emit, so nothing needs the IndirectBranch marker. + bool is_indirect_control_transfer(AstAsmInstruction *instr) override { + return false; + } + + // ARM64 immediates are written '#'; no scale/log2 addressing forms. + void write_constant_operand(Ast *op, u32 flags) override { + GB_ASSERT(op->tav.mode == Addressing_Constant); + op->tav.value = exact_value_to_integer(op->tav.value); + ExactValue ev = op->tav.value; + GB_ASSERT(ev.kind != ExactValue_Invalid); + switch (ev.kind) { + case ExactValue_Integer: { + GB_ASSERT((flags & (WriteOperandFlag_IsScale|WriteOperandFlag_IsScaleLog2)) == 0); + i64 val = exact_value_to_i64(ev); + if (flags & WriteOperandFlag_Negate) { + val = -val; + } + write_cstr("#"); + this->write_i64(val); + break; + } + case ExactValue_Float: + error(op, "Floating-point literals that cannot be represented as an integer are not supported within asm operands"); + break; + default: + GB_PANIC("Unsupported asm immediate literal %s", expr_to_string(op)); + break; + } + } + + // ARM64 lane element qualifier for `vN.[i]`, from the operand's element type. + char arm64_lane_qualifier_for_type(Type *t) { + Type *bt = base_type(t); + Type *elem = bt; + if (bt->kind == Type_SimdVector) { + elem = bt->SimdVector.elem; + } else if (bt->kind == Type_Array) { + elem = bt->Array.elem; + } + switch (type_size_of(base_type(elem))) { + case 1: return 'b'; + case 2: return 'h'; + case 4: return 's'; + case 8: return 'd'; + } + return 0; + } + + void write_operand(Slice const &op_number, Ast *op, u32 flags) override { + AstAsmInstruction *instr = this->curr_instr; + isize opi = this->curr_operand_index; + + if (op->tav.mode == Addressing_Constant) { + // A condition-code slot is a constant in the frontend but must print as a + // mnemonic (gt/lt/...), never '#'. + if (instr != nullptr && this->arm64_is_cond_slot(instr, opi)) { + i64 e = exact_value_to_i64(exact_value_to_integer(op->tav.value)); + char const *cc = arm64_cond_name(e); + GB_ASSERT_MSG(cc != nullptr, "asm: bad ARM64 condition encoding %lld", cast(long long)e); + write_cstr(cc); + return; + } + this->write_constant_operand(op, flags); + return; + } + + // No '*' indirection on ARM64; the register prints normally. + flags &= ~WriteOperandFlag_IndirectBranch; + + bool negate = (flags & WriteOperandFlag_Negate) != 0; + flags &= ~WriteOperandFlag_Negate; + + switch (op->kind) { + case_ast_node(i, Ident, op); + Entity *e = entity_of_node(op); + auto *ed = entity_op(e); + + if (ed->view_of >= 0) { + // Width-view (e.g. `p0w: u32 = p0`): the allocator picks one register; + // print it at the requested width via LLVM's w/x operand modifier so both + // names share it. ARM64 GPRs only expose 32-bit (w) and 64-bit (x) + // names; sub-word views still use the w register. + i32 idx = op_number[ed->view_of]; + GB_ASSERT(idx >= 0); + char mod = 0; + switch (ed->view_bits) { + case 8: case 16: case 32: mod = 'w'; break; + case 64: mod = 'x'; break; + default: GB_PANIC("asm: invalid ARM64 width-view size %d", ed->view_bits); break; + } + asm_string = gb_string_append_fmt(asm_string, "${%d:%c}", idx, mod); + } else { + i32 idx = op_number[ed->total_index]; + GB_ASSERT(idx >= 0); + if (ed->kind == AsmTemplateEntityDecl_Immediate) { + // Immediate parameter: '#' prefix, then LLVM substitutes the bare value. + if (negate) { + asm_string = gb_string_append_fmt(asm_string, "#-$%d", idx); + } else { + asm_string = gb_string_append_fmt(asm_string, "#$%d", idx); + } + } else { + GB_ASSERT(!negate); // only immediates/displacements negate + // An arrangement operand prints `vN.` — bare $N (which lowers to + // the full vN) plus the ".4s"/".2d"/... suffix. It must NOT also take + // a register-name modifier: ${N:q} + .4s yields the invalid `q1.4s`. + // Only non-arrangement slots take the w/x/q/d/s modifier. + String arr = {}; + if (instr != nullptr) { + arr = this->arm64_arrangement_suffix(instr, opi, ed->entity->type); + } + if (arr.len != 0) { + asm_string = gb_string_append_fmt(asm_string, "$%d", idx); + write_string(arr); + } else { + char mod = (instr != nullptr) ? this->arm64_slot_reg_modifier(instr, opi) : 0; + if (mod != 0) { + asm_string = gb_string_append_fmt(asm_string, "${%d:%c}", idx, mod); + } else { + asm_string = gb_string_append_fmt(asm_string, "$%d", idx); + } + } + } + } + case_end; + case_ast_node(mem_op, AsmMemoryOperand, op); + this->write_memory_operand(op_number, mem_op, flags&~WriteOperandFlag_PrintPrefixes); + case_end; + case_ast_node(bl, BasicLit, op); + GB_PANIC("NOTE(bill): this should have been handled above"); + case_end; + case_ast_node(label, AsmLabelDecl, op); + this->write_label(&label->name->Ident); + case_end; + case_ast_node(reg, AsmRegister, op); + this->write_string(reg->name.string); // bare: x0, w0, sp, xzr, v0, ... + case_end; + case_ast_node(ie, IndexExpr, op); + // Vector-lane access: `acc[0]` -> `$N.d[0]` (i.e. v.d[0]). The base names + // the SIMD operand; the index is a constant lane encoded in the instruction. + Ast *base_op = ie->expr; + Ast *index = ie->index; + + // Resolve the lane to a concrete i64. Two spellings reach here: + // v[0] — literal lane, folded onto the index node's tav + // v[idx] — $-immediate parameter; its value is the operand argument, + // looked up via the decl exactly like any other immediate. + i64 lane = -1; + bool have_lane = false; + + if (index->kind == Ast_Ident) { + // Immediate-parameter lane: find its decl, confirm it's an immediate, read value. + Entity *ie_ = entity_of_node(index); + if (ie_ != nullptr) { + auto *ed = entity_op(ie_); // the AsmTemplateEntityDecl for this parameter + if (ed != nullptr && ed->kind == AsmTemplateEntityDecl_Immediate) { + GB_ASSERT(ed->param_index >= 0); + lbValue v = (*this->curr_args)[ed->param_index]; + GB_ASSERT_MSG(LLVMIsAConstantInt(v.value), + "asm: lane immediate '%.*s' is not a constant", + LIT(ed->entity->token.string)); + lane = cast(i64)LLVMConstIntGetSExtValue(v.value); + have_lane = true; + } + } + } + + if (!have_lane) { + // Literal lane: value folded onto the index node by the checker. + GB_ASSERT_MSG(index->tav.mode == Addressing_Constant, + "asm: AArch64 lane index reached lowering unfolded"); + ExactValue ev = exact_value_to_integer(index->tav.value); + GB_ASSERT(ev.kind == ExactValue_Integer); + lane = exact_value_to_i64(ev); + have_lane = true; + } + + GB_ASSERT(lane >= 0); + + switch (base_op->kind) { + case_ast_node(reg, AsmRegister, base_op); + // Explicit register: the arrangement (`.d`, `.2d`, `.4s`) is part of the + // spelling, so print the name verbatim and append the lane. If it was + // written bare (`v0`), there is no element size to index by. + String rname = reg->name.string; + bool has_arrangement = false; + for (isize i = 0; i < rname.len; i++) { + if (rname.text[i] == '.') { + has_arrangement = true; + break; + } + } + GB_ASSERT_MSG(has_arrangement, + "asm: ARM64 lane access on register '%.*s' needs an element qualifier " + "(e.g. '%.*s.d[%lld]')", + LIT(rname), LIT(rname), cast(long long)lane); + this->write_string(rname); + asm_string = gb_string_append_fmt(asm_string, "[%lld]", cast(long long)lane); + case_end; + + case_ast_node(id, Ident, base_op); + Entity *e = entity_of_node(base_op); + auto *ed = entity_op(e); + + // Lane form needs the v-register, so index the source operand directly with no + // width modifier (a width-view would force a scalar d/s name that can't take a lane). + i32 idx = (ed->view_of >= 0) ? op_number[ed->view_of] : op_number[ed->total_index]; + GB_ASSERT(idx >= 0); + + char q = this->arm64_lane_qualifier_for_type(ed->entity->type); + GB_ASSERT_MSG(q != 0, "asm: cannot determine ARM64 lane element size for '%.*s'", + LIT(e->token.string)); + + // fmov is the ONE exception: it has no `vN.[i]` lane form for S/D + // elements — lane i of an S/D element aliases the scalar view, so emit + // the scalar name (${N:s}/${N:d}) with no lane suffix. (The `.d[1]` + // high-half form is the only real fmov lane form.) + // mov/dup DO have the general `.[i]` lane form, so they take the + // normal path below and emit e.g. `mov s0, v0.s[2]` — with the scalar + // destination coming from the matched form's S_REG/D_REG slot (Fix 1). + bool is_fmov = instr != nullptr && instr->mnemonic == Asm_arm64::M_FMOV; + if (is_fmov && (q == 's' || q == 'd')) { + GB_ASSERT_MSG(lane == 0 || (q == 'd' && lane == 1), + "asm: fmov has no lane form for %c[%lld]; only s[0]/d[0] (scalar) and d[1] exist", + q, cast(long long)lane); + if (q == 'd' && lane == 1) { + // the one genuine fmov lane form: fmov Xd, Vn.d[1] + asm_string = gb_string_append_fmt(asm_string, "$%d.d[1]", idx); + } else { + asm_string = gb_string_append_fmt(asm_string, "${%d:%c}", idx, q); + } + } else { + asm_string = gb_string_append_fmt(asm_string, "$%d.%c[%lld]", idx, q, cast(long long)lane); + } + case_end; + + default: + GB_PANIC("asm: ARM64 lane base must be an operand or explicit register, got '%s'", + expr_to_string(base_op)); + break; + } + case_end; + default: + GB_PANIC("TODO(bill): write_operand for '%s'", expr_to_string(op)); + break; + } + } + + // Resolve a memory scale to an ARM64 `LSL #n` shift amount. The frontend + // encodes scale either as a multiply (index * {1,2,4,8,16}) or as an explicit + // shift (index << n); ARM64 register-offset addressing always wants the shift. + i64 arm64_scale_shift_amount(AstAsmMemoryOperand *mem_op) { + Ast *scale = mem_op->scale; + GB_ASSERT(scale != nullptr); + GB_ASSERT_MSG(scale->tav.mode == Addressing_Constant, + "asm: ARM64 memory scale must be a constant shift amount"); + ExactValue ev = exact_value_to_integer(scale->tav.value); + GB_ASSERT(ev.kind == ExactValue_Integer); + i64 v = exact_value_to_i64(ev); + + switch (mem_op->scale_op.kind) { + case Token_Mul: + switch (v) { + case 1: return 0; + case 2: return 1; + case 4: return 2; + case 8: return 3; + case 16: return 4; // 128-bit (Q) transfers + default: + error(scale, "asm: ARM64 memory scale must be 1, 2, 4, 8, or 16, got %lld", cast(long long)v); + return 0; + } + case Token_Shl: + case Token_Shr: + if (v < 0 || v > 4) { + error(scale, "asm: ARM64 memory shift amount must be between 0 and 4, got %lld", cast(long long)v); + return 0; + } + return v; + default: + GB_PANIC("asm: invalid ARM64 memory scale operator"); + return 0; + } + } + + char const *arm64_index_extend(AstAsmMemoryOperand *mem_op) { + Ast *idx = mem_op->index; + if (idx == nullptr) { + return "lsl"; + } + // Resolve the index operand's type: explicit reg -> its reg width; a param -> + // its Odin type. + Type *ty = idx->tav.type; + if (ty == nullptr) { + return "lsl"; + } + i32 w = check_asm_operand_bit_width(ty); + if (w == 64) { + return "lsl"; + } + // 32-bit index: pick zero/sign extend from the type's signedness. + Type *bt = base_type(ty); + bool is_signed = is_type_integer(bt) && !is_type_unsigned(bt); + return is_signed ? "sxtw" : "uxtw"; + } + + // ARM64 addressing: `[base]`, `[base, #disp]`, `[base, Xindex]`, or + // `[base, Xindex, LSL #n]`. Base+index and base+disp are mutually exclusive + // addressing modes, so an index precludes a displacement. + void write_memory_operand(Slice const &op_number, AstAsmMemoryOperand *mem_op, u32 flags) override { + GB_ASSERT_MSG(mem_op->segment_override == nullptr, "asm: ARM64 has no segment overrides"); + GB_ASSERT_MSG(mem_op->scale == nullptr || mem_op->index != nullptr, + "asm: ARM64 memory scale requires an index register"); + + write_cstr("["); + if (mem_op->base != nullptr) { + this->write_operand(op_number, mem_op->base, flags&~WriteOperandFlag_PrintPrefixes); + } + if (mem_op->index != nullptr) { + write_cstr(", "); + this->write_operand(op_number, mem_op->index, flags&~WriteOperandFlag_PrintPrefixes); + if (mem_op->scale != nullptr) { + // A 32-bit index needs an extend specifier (uxtw/sxtw); a 64-bit index + // uses lsl. The extend for a w-index is mandatory even at shift 0. + char const *extend = this->arm64_index_extend(mem_op); // "lsl", "uxtw", or "sxtw" + i64 shift = (mem_op->scale != nullptr) ? this->arm64_scale_shift_amount(mem_op) : 0; + bool is_lsl = (extend[0] == 'l'); + if (!is_lsl) { + // w-index: always print the extend; shift optional. + if (shift != 0) { + asm_string = gb_string_append_fmt(asm_string, ", %s #%lld", extend, cast(long long)shift); + } else { + asm_string = gb_string_append_fmt(asm_string, ", %s", extend); + } + } else if (shift != 0) { + asm_string = gb_string_append_fmt(asm_string, ", lsl #%lld", cast(long long)shift); + } + } + } else if (mem_op->disp) { + write_cstr(", "); + u32 disp_flags = flags; + if (mem_op->disp_op.kind == Token_Sub) { + disp_flags |= WriteOperandFlag_Negate; + } + this->write_operand(op_number, mem_op->disp, disp_flags); + } + write_cstr("]"); + } + + // A flag output '= %flags.' lowers to '=@cc', where the condition + // is true exactly when that NZCV bit is set. (cs is an accepted alias of hs.) + String flag_output_cc_suffix(String const &pin_flag) override { + if (pin_flag == "n") return str_lit("mi"); // N == 1 + if (pin_flag == "z") return str_lit("eq"); // Z == 1 + if (pin_flag == "c") return str_lit("hs"); // C == 1 + if (pin_flag == "v") return str_lit("vs"); // V == 1 + return {}; + } + + // A64 spells conditional branches (and a few others) with '.', e.g. b.eq, which + // an Odin identifier can't contain; accept '_' and translate (b_eq -> b.eq). + void write_instruction_mnemonic(AstAsmInstruction *instr) override { + String name = instr->name->Ident.token.string; + for (isize i = 0; i < name.len; i++) { + char c = cast(char)name.text[i]; + write_char(c == '_' ? '.' : c); + } + } +}; + gb_internal lbValue lb_emit_asm_template_call(lbProcedure *p, Entity *entity, Array const &args) { lbAsmGenerate_amd64 generator_amd64 = {}; + lbAsmGenerate_arm64 generator_arm64 = {}; lbAsmGenerate_riscv64 generator_riscv64 = {}; lbAsmGenerate *generator = nullptr; if (build_context.metrics.arch == TargetArch_amd64) { generator = &generator_amd64; + } else if (build_context.metrics.arch == TargetArch_arm64) { + generator = &generator_arm64; } else if (build_context.metrics.arch == TargetArch_riscv64) { generator = &generator_riscv64; } else { diff --git a/src/parser.cpp b/src/parser.cpp index 922f30257..c14fa1ac8 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -600,6 +600,10 @@ gb_internal Ast *clone_ast(Ast *node, AstFile *f) { n->AsmMemoryOperand.disp = clone_ast(n->AsmMemoryOperand.disp, f); n->AsmMemoryOperand.type = clone_ast(n->AsmMemoryOperand.type, f); break; + case Ast_AsmRegisterGroup: + n->AsmRegisterGroup.registers = clone_ast_array(n->AsmRegisterGroup.registers, f); + n->AsmRegisterGroup.type = clone_ast(n->AsmRegisterGroup.type, f); + break; case Ast_AsmDirective: n->AsmDirective.operands = clone_ast_array(n->AsmDirective.operands, f); break; @@ -2510,6 +2514,7 @@ gb_internal Ast *parse_asm_register(AstFile *f) { return reg; } gb_internal Ast *parse_asm_operand(AstFile *f, bool allow_memory_operand) { + Ast *operand = nullptr; switch (f->curr_token.kind) { case Token_Period: { @@ -2521,9 +2526,11 @@ gb_internal Ast *parse_asm_operand(AstFile *f, bool allow_memory_operand) { return label_decl; } case Token_Ident: - return parse_ident(f); + operand = parse_ident(f); + break; case Token_Mod: - return parse_asm_register(f); + operand = parse_asm_register(f); + break; case Token_Integer: case Token_Float: case Token_Rune: @@ -2540,6 +2547,29 @@ gb_internal Ast *parse_asm_operand(AstFile *f, bool allow_memory_operand) { case Token_OpenParen: return parse_expr(f, false); + + case Token_Hash: + { + Token hash = expect_token(f, Token_Hash); + Token name = expect_token(f, Token_Ident); + if (name.string == "pre" || + name.string == "post") { + operand = parse_asm_operand(f, allow_memory_operand); + if (operand == nullptr || + operand->kind != Ast_AsmMemoryOperand) { + error(name, "Expected an asm memory operand after #%.*s", LIT(name.string)); + } else { + GB_ASSERT(operand->kind == Ast_AsmMemoryOperand); + if (name.string == "pre") { + operand->AsmMemoryOperand.kind = AsmMemoryOperand_Pre; + } else if (name.string == "post") { + operand->AsmMemoryOperand.kind = AsmMemoryOperand_Post; + } + } + } + } + break; + case Token_OpenBracket: if (allow_memory_operand) { Token open = expect_token(f, Token_OpenBracket); @@ -2612,11 +2642,75 @@ gb_internal Ast *parse_asm_operand(AstFile *f, bool allow_memory_operand) { return mem; } break; + case Token_OpenBrace: + if (allow_memory_operand) { + Token open = expect_token(f, Token_OpenBrace); + + Array registers = {}; + registers.allocator = heap_allocator(); + Ast *type = nullptr; + + Ast *first_reg = parse_asm_operand(f, false); + Token range_token = {}; + switch (f->curr_token.kind) { + case Token_RangeHalf: + case Token_RangeFull: + { + range_token = advance_token(f); + Ast *second_reg = parse_asm_operand(f, false); + array_reserve(®isters, 2); + array_add(®isters, first_reg); + array_add(®isters, second_reg); + + if (allow_token(f, Token_Comma)) { + // allow for trailing comma + } + } + break; + default: + if (allow_token(f, Token_Comma)) { + // allow for trailing comma + } + while (f->curr_token.kind != Token_CloseBrace && + f->curr_token.kind != Token_EOF) { + Ast *reg = parse_asm_operand(f, false); + array_add(®isters, reg); + + if (!allow_token(f, Token_Comma)) { + break; + } + } + break; + } + Token close = expect_token(f, Token_CloseBrace); + if (allow_token(f, Token_Colon)) { + type = parse_type(f); + } + + Ast *rg = alloc_ast_node(f, Ast_AsmRegisterGroup); + rg->AsmRegisterGroup.open = open; + rg->AsmRegisterGroup.registers = registers; + rg->AsmRegisterGroup.range_token = range_token; + rg->AsmRegisterGroup.close = close; + rg->AsmRegisterGroup.type = type; + + return rg; + } + break; } - syntax_error(f->curr_token, "Invalid asm operand, found '%.*s'", LIT(f->curr_token.string)); - advance_token(f); - return nullptr; + if (operand == nullptr) { + syntax_error(f->curr_token, "Invalid asm operand, found '%.*s'", LIT(f->curr_token.string)); + advance_token(f); + } else if (f->curr_token.kind == Token_OpenBracket) { + f->expr_level++; + Token open = expect_token(f, Token_OpenBracket); + Ast *index = parse_asm_operand(f, false); + Token close = expect_token(f, Token_CloseBracket); + f->expr_level--; + operand = ast_index_expr(f, operand, index, open, close); + } + return operand; } gb_internal Slice parse_asm_operands(AstFile *f) { @@ -2881,10 +2975,11 @@ gb_internal Ast *parse_asm_template(AstFile *f) { } if (build_context.metrics.arch == TargetArch_amd64 || - build_context.metrics.arch == TargetArch_riscv64) { + build_context.metrics.arch == TargetArch_riscv64 || + build_context.metrics.arch == TargetArch_arm64) { // okay } else { - syntax_error(token, "asm templates are currently only supported on -target:*_amd64 or -target:*_riscv64"); + syntax_error(token, "asm templates are currently only supported on -target:*_amd64 or -target:*_riscv64 or -target:*_arm64"); } Ast *asm_template = alloc_ast_node(f, Ast_AsmTemplate); @@ -3650,7 +3745,7 @@ gb_internal Ast *parse_operand(AstFile *f, bool lhs) { Token close = expect_token(f, Token_CloseBrace); if (args.count == 0) { - syntax_error(token, "Expected a least 1 argument in a procedure group"); + syntax_error(token, "Expected a least 1 argument in an asm group"); } return ast_asm_group(f, token, open, close, args); diff --git a/src/parser.hpp b/src/parser.hpp index 260cb8a85..e68c4e1cb 100644 --- a/src/parser.hpp +++ b/src/parser.hpp @@ -391,20 +391,6 @@ enum StmtAllowFlag { StmtAllowFlag_Label = 1<<1, }; -enum InlineAsmDialectKind : u8 { - InlineAsmDialect_Default, // ATT is default - InlineAsmDialect_ATT, - InlineAsmDialect_Intel, - - InlineAsmDialect_COUNT, -}; - -gb_global char const *inline_asm_dialect_strings[InlineAsmDialect_COUNT] = { - "", - "att", - "intel", -}; - enum UnionTypeKind : u8 { UnionType_Normal = 0, UnionType_no_nil = 2, @@ -425,6 +411,13 @@ struct AstSplitArgs { Slice named; }; +enum AsmMemoryOperandKind : u8 { + AsmMemoryOperand_Default, + AsmMemoryOperand_Pre, + AsmMemoryOperand_Post, + AsmMemoryOperand_COUNT +}; + #define AST_KINDS \ AST_KIND(Ident, "identifier", struct { \ Token token; \ @@ -513,17 +506,25 @@ struct AstSplitArgs { struct AsmInstructionFacts *facts; \ }) \ AST_KIND(AsmMemoryOperand, "asm memory operand", struct { \ - Token open; \ - Ast * segment_override; \ - Ast * base; \ - Token index_op; \ - Ast * index; \ - Token scale_op; \ - Ast * scale; \ - Token disp_op; \ - Ast * disp; \ - Ast * type; \ - Token close; \ + AsmMemoryOperandKind kind; \ + Token open; \ + Ast * segment_override; \ + Ast * base; \ + Token index_op; \ + Ast * index; \ + Token scale_op; \ + Ast * scale; \ + Token disp_op; \ + Ast * disp; \ + Ast * type; \ + Token close; \ + }) \ + AST_KIND(AsmRegisterGroup, "asm register group", struct { \ + Token open; \ + Array registers; \ + Token range_token; \ + Token close; \ + Ast * type; \ }) \ AST_KIND(AsmDirective, "asm directive", struct { \ Token token; \ diff --git a/src/parser_pos.cpp b/src/parser_pos.cpp index 70ba92728..4bcfd898d 100644 --- a/src/parser_pos.cpp +++ b/src/parser_pos.cpp @@ -28,6 +28,8 @@ gb_internal Token ast_token(Ast *node) { return ast_token(node->AsmInstruction.name); case Ast_AsmMemoryOperand: return node->AsmMemoryOperand.open; + case Ast_AsmRegisterGroup: + return node->AsmRegisterGroup.open; case Ast_AsmDirective: return node->AsmDirective.token; @@ -211,6 +213,11 @@ Token ast_end_token(Ast *node) { return ast_end_token(node->AsmMemoryOperand.type); } return node->AsmMemoryOperand.close; + case Ast_AsmRegisterGroup: + if (node->AsmRegisterGroup.type) { + return ast_end_token(node->AsmRegisterGroup.type); + } + return node->AsmRegisterGroup.close; case Ast_BadExpr: return node->BadExpr.end; case Ast_TagExpr: